public ExchangeDay(GenericReader reader) { int version = reader.ReadInt(); HighestPrice = reader.ReadDouble(); LowestPrice = reader.ReadDouble(); TotalQuantity = reader.ReadLong(); TotalRevenue = reader.ReadLong(); Average = reader.ReadDouble(); Day = reader.ReadInt(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); mDelay = (double) reader.ReadDouble(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); reader.ReadInt(); StorageIncrease = reader.ReadDouble(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); LootType = LootType.Blessed; reader.ReadInt(); VendorIncrease = reader.ReadDouble(); }
public TransactionInfo(GenericReader reader) { int version = reader.ReadInt(); Price = reader.ReadDouble(); Quantity = reader.ReadInt(); Name = reader.ReadString(); Buyer = reader.ReadBool(); Date = reader.ReadDateTime(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_PriceInSilver = reader.ReadInt(); m_MaxCanBuyTo = reader.ReadDouble(); m_SkillIncrease = reader.ReadInt(); m_CoolLooking = reader.ReadBool(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.GetVersion(); switch (version) { case 1: InstantKillHead = reader.ReadBool(); goto case 0; case 0: { InstantKillForced = reader.ReadBool(); InstantKillChance = reader.ReadDouble(); } break; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); m_toClone = (NubiaCreature)reader.ReadMobile(); m_bonusStr = reader.ReadInt(); m_bonusDex = reader.ReadInt(); m_bonusInt = reader.ReadInt(); m_bonusSkill = reader.ReadDouble(); m_nom = reader.ReadString(); if (version > 0) { int count = reader.ReadInt(); for (int i = 0; i < count; i++) { m_listItem.Add(reader.ReadItem()); } } }
public void Deserialize( GenericReader reader ) { int version = reader.ReadInt(); switch( version ) { case 1: { Points = reader.ReadDouble(); goto case 1; } case 0: { m_Player = reader.ReadMobile(); m_Kills = reader.ReadInt(); m_Deaths = reader.ReadInt(); break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); ContainerID = reader.ReadInt(); ContainerGump = reader.ReadInt(); ContainerHue = reader.ReadInt(); ContainerFlip = reader.ReadInt(); ContainerWeight = reader.ReadDouble(); ContainerName = reader.ReadString(); ContainerLevel = reader.ReadInt(); ContainerTouched = reader.ReadInt(); ContainerNoSpawn = reader.ReadInt(); ContainerLockable = reader.ReadInt(); if (ContainerTouched > 0) { RemoveBox(); } }
public VvVPlayerBattleStats(GenericReader reader, PlayerMobile pm) { int version = reader.ReadInt(); Player = pm; Points = reader.ReadDouble(); if (version == 0) { reader.ReadInt(); } Kills = reader.ReadInt(); Assists = reader.ReadInt(); Deaths = reader.ReadInt(); Stolen = reader.ReadInt(); ViceReturned = reader.ReadInt(); VirtueReturned = reader.ReadInt(); Disarmed = reader.ReadInt(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 1: { ArcherMod = reader.ReadDouble(); BardMod = reader.ReadDouble(); TamerMod = reader.ReadDouble(); SummonMod = reader.ReadDouble(); } goto case 0; case 0: break; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 3: { m_Chance = reader.ReadDouble(); m_Emote = reader.ReadString(); goto case 2; } case 2: { if (version < 3) { m_Chance = 100; } m_Silent = reader.ReadBool(); m_MountOnly = reader.ReadBool(); goto case 1; } case 1: { m_Message = reader.ReadString(); goto case 0; } case 0: { m_Active = reader.ReadBool(); m_Direction = (Direction)reader.ReadInt(); break; } } }
public void Deserialize(GenericReader reader) { int version = reader.ReadInt(); switch (version) { case 1: { Points = reader.ReadDouble(); goto case 1; } case 0: { m_Player = reader.ReadMobile(); m_Kills = reader.ReadInt(); m_Deaths = reader.ReadInt(); break; } } }
public BODEntry(GenericReader reader) { int version = reader.ReadInt(); if (reader.ReadInt() == 0) { switch (version) { case 0: _CachedDeeds = reader.ReadInt(); LastBulkOrder = reader.ReadDateTime(); BankedPoints = reader.ReadDouble(); PendingRewardPoints = reader.ReadInt(); break; } } else { _NextBulkOrder = reader.ReadDateTime(); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadEncodedInt(); switch (version) { case 3: { m_LastUserName = reader.ReadString(); goto case 2; } case 2: case 1: { m_ActiveItemID = reader.ReadInt(); m_InactiveItemID = reader.ReadInt(); goto case 0; } case 0: { m_Account = reader.ReadString(); m_NextUse = reader.ReadDateTime(); //TODO: delete it in a harmless way m_Skill = (SkillName)reader.ReadEncodedInt(); m_SkillValue = reader.ReadDouble(); break; } } if (version == 0) { m_ActiveItemID = 0x2A94; m_InactiveItemID = 0x2A93; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); m_MaxRange = reader.ReadInt(); m_ToDelete = reader.ReadDateTime(); m_Caster = reader.ReadMobile(); m_Bonus = reader.ReadDouble(); m_EffectID = reader.ReadInt(); m_EffectSpeed = reader.ReadInt(); m_EffectDuration = reader.ReadInt(); m_EffectLayer = (EffectLayer)reader.ReadInt(); m_SoundID = reader.ReadInt(); m_TotemType = (TotemType)reader.ReadInt(); if (m_DeleteTimer == null) { m_DeleteTimer = new DeleteTotemTimer(this); m_DeleteTimer.Start(); } if (m_TotemType == TotemType.Refecteur) new RefecteurSpell.RefecteurTimer(this).Start(); if (m_TotemType == TotemType.Miracle) new MiracleSpell.MiracleTimer(this).Start(); if (m_TotemType == TotemType.PointDeParesse) new PointDeParesseSpell.PointDeParesseTimer(this).Start(); foreach (Mobile m in this.GetMobilesInRange(20)) { m.InvalidateProperties(); m.Delta(MobileDelta.Armor); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadEncodedInt(); switch (version) { case 2: { m_Level = (SecureLevel)reader.ReadInt(); goto case 1; } case 1: { m_ActiveItemID = reader.ReadInt(); m_InactiveItemID = reader.ReadInt(); goto case 0; } case 0: { m_Account = reader.ReadString(); m_NextUse = reader.ReadDateTime(); m_Skill = (SkillName)reader.ReadEncodedInt(); m_SkillValue = reader.ReadDouble(); break; } } if (version == 0) { m_ActiveItemID = 0x2A94; m_InactiveItemID = 0x2A93; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 1: { MaxZombiesQuadrant1 = reader.ReadInt(); MaxZombiesQuadrant2 = reader.ReadInt(); MaxZombiesQuadrant3 = reader.ReadInt(); MaxZombiesQuadrant4 = reader.ReadInt(); } goto case 0; case 0: MeleeMod = reader.ReadDouble(); break; } }
public MetamorphoseEntry(GenericReader reader) { int version = reader.ReadInt(); switch (version) { case 0: { m_Art = reader.ReadInt(); m_Body = reader.ReadInt(); m_Num = reader.ReadInt(); m_StrMod = reader.ReadInt(); m_DexMod = reader.ReadInt(); m_IntMod = reader.ReadInt(); m_SkillReq = reader.ReadDouble(); m_Name = reader.ReadString(); m_Hue = reader.ReadInt(); break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 3: m_BonusSkill = (SkillName)reader.ReadInt(); goto case 2; case 2: delay = reader.ReadTimeSpan(); goto case 1; case 1: m_DamageType = reader.ReadString(); goto case 0; case 0: { m_TrapOwner = reader.ReadMobile(); m_UsesRemaining = reader.ReadInt(); m_TrapPower = reader.ReadInt(); m_ManaCost = reader.ReadInt(); m_DamageRange = reader.ReadInt(); m_TriggerRange = reader.ReadInt(); m_ParalyzeTime = reader.ReadInt(); m_Poison = Poison.Deserialize(reader); m_DamageScalar = reader.ReadDouble(); m_PointDest = reader.ReadPoint3D(); m_MapDest = reader.ReadMap(); break; } } }
public virtual void Deserialize(GenericReader reader) { Version = reader.ReadInt(); switch (Version) { case 2: // added serialize/deserialize in all base classes. Poor implementation on my part, should have had from the get-go case 1: case 0: { int count = reader.ReadInt(); for (int i = 0; i < count; i++) { PlayerMobile player = reader.ReadMobile() as PlayerMobile; PointsEntry entry = GetSystemEntry(player); if (Version > 0) { entry.Deserialize(reader); } else { entry.Points = reader.ReadDouble(); } if (player != null) { if (!PlayerTable.Contains(entry)) { PlayerTable.Add(entry); } } } } break; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); StoredSkills = new ArrayList(); m_Owner = reader.ReadMobile(); Str = reader.ReadInt(); Dex = reader.ReadInt(); Int = reader.ReadInt(); Fame = reader.ReadInt(); Karma = reader.ReadInt(); Kills = reader.ReadInt(); int Count = reader.ReadInt(); for (int i = 0; i < Count; i++) { StoredSkills.Add(reader.ReadDouble()); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); m_Victim = reader.ReadMobile(); m_Type = reader.ReadString(); m_Virulence = reader.ReadInt(); m_Severity = reader.ReadInt(); m_Period = reader.ReadDouble(); m_Expiry = reader.ReadDateTime(); m_PlayerOnly = reader.ReadBool(); m_Expires = reader.ReadBool(); if (DateTime.Now > m_Expiry && m_Expires) { Delete(); } m_afflictTimer = new AfflictionTimer(this, m_Period); m_afflictTimer.Start(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.GetVersion(); switch (version) { case 0: { MySQL = new MySQLConnectionInfo(reader); CurrencyType = new ItemTypeSelectProperty(reader); TableName = reader.ReadString(); ShowHistory = reader.ReadBool(); ExchangeRate = reader.ReadDouble(); MoneySymbol = reader.ReadChar(); MoneyAbbr = reader.ReadString(); GiftingEnabled = reader.ReadBool(); } break; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 1: _DisplayName = reader.ReadString(); goto case 0; case 0: Level = (SecureLevel)reader.ReadInt(); RA = reader.ReadInt(); DEC = reader.ReadDouble(); break; } if (version == 0) { _DisplayName = _Names[Utility.Random(_Names.Length)]; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); var v = reader.GetVersion(); if (v > 0) { MatchSuddenDeath = reader.ReadDouble(); } else { MatchSuddenDeath = 0.25; } MatchDelay = reader.ReadTimeSpan(); MatchDuration = reader.ReadTimeSpan(); FinalBestOfCur = reader.ReadInt(); FinalBestOfMax = reader.ReadInt(); Matches = reader.ReadBlockList(r => new TournamentMatch(r), Matches); }
public override void Deserialize(GenericReader reader) { _Components = new List <MovableAddonComponent>(); base.Deserialize(reader); int version = reader.ReadInt(); int count = reader.ReadInt(); for (int i = 0; i < count; i++) { _Components.Add((MovableAddonComponent)reader.ReadItem()); } _Direction = (MovableAddonDirection)reader.ReadInt(); _Controller = (MovableAddonControlComponent)reader.ReadItem(); _Key = (MovableAddonKey)reader.ReadItem(); #if ( RunUORC1 ) _Extrema = new Rectangle3D(new Point3D(reader.ReadInt(), reader.ReadInt(), reader.ReadInt()), new Point3D(reader.ReadInt(), reader.ReadInt(), reader.ReadInt())); #else /*To RunUO 2.0 RC1 users: if you're getting an error here, then uncomment line 2 of this file to read: * #define RunUORC1 * */ _Extrema = reader.ReadRect3D(); #endif _Delay = TimeSpan.FromSeconds(reader.ReadDouble()); ExhaustPowerTimeSpan = reader.ReadTimeSpan(); _Speed = MovableAddonSpeed.Regular; }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); if (version >= 0) { m_Owner = reader.ReadMobile(); m_IntervalDuration = reader.ReadDouble(); m_MaxIntervals = reader.ReadInt(); m_MinDamage = reader.ReadInt(); m_MaxDamage = reader.ReadInt(); m_HitOwner = reader.ReadBool(); m_HitMonsters = reader.ReadBool(); m_HitPlayers = reader.ReadBool(); m_HitSound = reader.ReadInt(); m_ActivateOnMoveOver = reader.ReadBool(); } m_Timer = new InternalTimer(this, m_Owner, m_IntervalDuration, m_MaxIntervals, m_MinDamage, m_MaxDamage, m_HitOwner, m_HitMonsters, m_HitPlayers, m_HitSound); m_Timer.Start(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 1: { i_Owner = reader.ReadInt(); goto case 0; } case 0: { i_Gold = reader.ReadInt(); b_GoldAutoLoot = reader.ReadBool(); b_GoldSweeper = reader.ReadBool(); d_WeightScale = reader.ReadDouble(); break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); #region Critical Non-Versioned Values UID = new TemplateSerial(reader); #endregion int version = reader.GetVersion(); switch (version) { case 0: { Name = reader.ReadString(); Notes = reader.ReadString(); Skills = reader.ReadBlockDictionary( () => { var key = reader.ReadFlag <SkillName>(); double val = reader.ReadDouble(); return(new KeyValuePair <SkillName, double>(key, val)); }, Skills); Stats = reader.ReadBlockDictionary( () => { var key = reader.ReadFlag <StatType>(); int val = reader.ReadInt(); return(new KeyValuePair <StatType, int>(key, val)); }, Stats); } break; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 0: _AlchemyBonusPercentageOfSkill = reader.ReadDouble(); _AlchemyBonusMax = reader.ReadInt(); _GreaterExplosionPotDmgMin = reader.ReadInt(); _GreaterExplosionPotDmgMax = reader.ReadInt(); _GreaterExplosionPotTimeDelay = reader.ReadDouble(); _ExplosionPotDmgMin = reader.ReadInt(); _ExplosionPotDmgMax = reader.ReadInt(); _ExplosionPotTimeDelay = reader.ReadDouble(); _LesserExplosionPotDmgMin = reader.ReadInt(); _LesserExplosionPotDmgMax = reader.ReadInt(); _LesserExplosionPotTimeDelay = reader.ReadDouble(); _ExplosionPotionHandsNotFreeDelay = reader.ReadDouble(); break; } m_Instance = this; }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 1: { m_CreaturePlays = reader.ReadBool(); goto case 0; } case 0: { m_Active = reader.ReadBool(); m_Desc = reader.ReadString(); m_Range = reader.ReadInt(); m_Random = reader.ReadBool(); m_Chance = reader.ReadDouble(); m_MinPause = reader.ReadInt(); m_MaxPause = reader.ReadInt(); m_Creature = reader.ReadString(); m_CreatureRange = reader.ReadInt(); for (int i = 0; i < m_Sounds.Length; ++i) { m_Sounds[i] = reader.ReadInt(); } this.Sounds = m_Sounds; // required for initialization on World Load break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 0: { GoldAmount = reader.ReadInt(); GoldChance = reader.ReadDouble(); NickelAmount = reader.ReadInt(); NickelChance = reader.ReadDouble(); InvulArmorChance = reader.ReadDouble(); VanqWeaponChance = reader.ReadDouble(); BlessedItemChance = reader.ReadDouble(); MustangChance = reader.ReadDouble(); break; } } initPrizes(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch( version ) { case 7: { m_RestFlags = (EGRFlags)PSerial.ReadEncodedLong( reader ); m_OptFlags = (EGateOptFlags)reader.ReadEncodedInt(); m_MaxPlayers = reader.ReadInt(); m_TollItem = Reflector.Deserialize( reader ); m_TollAmount = reader.ReadInt(); m_SkillName1 = (SkillName)reader.ReadInt(); m_SkillName2 = (SkillName)reader.ReadInt(); m_SkillValue1 = reader.ReadDouble(); m_SkillValue2 = reader.ReadDouble(); m_GMsNeeded = reader.ReadInt(); m_StrValue = reader.ReadInt(); m_IntValue = reader.ReadInt(); m_DexValue = reader.ReadInt(); m_Confirmation = reader.ReadString(); m_GameRobeHue = reader.ReadInt(); m_Delay = reader.ReadTimeSpan(); m_KarmaThreshold = reader.ReadInt(); break; } case 6: { switch ( reader.ReadInt() ) { case 0: TollLocation = TollOption.Backpack; break; case 1: TollLocation = TollOption.BankBox; break; case 2: TollLocation = TollOption.Both; break; } goto case 5; } case 5: { CannotFleeFromBattle = reader.ReadBool(); goto case 4; } case 4: { m_GameRobeHue = reader.ReadInt(); GiveGameRobe = !reader.ReadBool(); goto case 3; } case 3: { StaffOverride = !reader.ReadBool(); m_Confirmation = reader.ReadString(); StaffOnly = reader.ReadBool(); switch( reader.ReadInt() ) //Sex-Select { case 1: Gender = GenderOption.Male; break; case 2: Gender = GenderOption.Female; break; } int npcguild = reader.ReadInt(); if ( npcguild > 0 ) { SetRestFlag( EGRFlags.No_NPCGuilds, true ); SetRestFlag( (EGRFlags)(1ul<<(25+npcguild)), false ); } switch( reader.ReadInt() ) //Faction-Select { case 1: SetRestFlag( EGRFlags.No_Factions, true ); break; case 2: SetRestFlag( EGRFlags.No_Factionless, true ); break; case 3: SetRestFlag( EGRFlags.No_Minax | EGRFlags.No_Shadowlords | EGRFlags.No_TrueBrits, true ); break; case 4: SetRestFlag( EGRFlags.No_COM | EGRFlags.No_Shadowlords | EGRFlags.No_TrueBrits, true ); break; case 5: SetRestFlag( EGRFlags.No_COM | EGRFlags.No_Minax | EGRFlags.No_TrueBrits, true ); break; case 6: SetRestFlag( EGRFlags.No_COM | EGRFlags.No_Minax | EGRFlags.No_Shadowlords, true ); break; } switch( reader.ReadInt() ) //ChaosOrder-Select { case 1: SetRestFlag( EGRFlags.No_ChaosGuild | EGRFlags.No_OrderGuild, true ); break; case 2: SetRestFlag( EGRFlags.No_RegGuild | EGRFlags.No_Guildless, true ); break; case 3: SetRestFlag( EGRFlags.No_OrderGuild | EGRFlags.No_RegGuild | EGRFlags.No_Guildless, true ); break; case 4: SetRestFlag( EGRFlags.No_ChaosGuild | EGRFlags.No_RegGuild | EGRFlags.No_Guildless, true ); break; } goto case 2; } case 2: { switch( reader.ReadInt() ) //Young-Select { case 1: Veterans = VetOption.Veteran; break; case 2: Veterans = VetOption.Young; break; } switch( reader.ReadInt() ) //Factioners-Select { case 1: SetRestFlag( EGRFlags.No_Factions, true ); break; case 2: No_Factionless = true; break; } goto case 1; } case 1: { int stat = reader.ReadInt(); int amount = (int)reader.ReadDouble(); switch( stat ) { case 1: m_StrValue = amount; break; case 2: m_IntValue = amount; break; case 3: m_DexValue = amount; break; } reader.ReadString(); //obselete switch( reader.ReadInt() ) { case 1: SetRestFlag( EGRFlags.No_Ghosts, true ); break; case 2: SetRestFlag( EGRFlags.No_Living, true ); break; } ResGhosts = reader.ReadBool(); RemoveFSL = reader.ReadBool(); SetOptFlag( EGateOptFlags.StrMax | EGateOptFlags.IntMax | EGateOptFlags.DexMax, reader.ReadInt() == 0 ); reader.ReadInt(); //obselete m_MaxPlayers = reader.ReadInt(); HideWhenFull = reader.ReadBool(); switch( reader.ReadInt() ) { case 1: Mounted = MountOption.Unmounted; break; case 2: Mounted = MountOption.Mounted; break; } TransportPets = reader.ReadBool(); SetRestFlag( EGRFlags.No_Clothed, reader.ReadBool() ); SetRestFlag( EGRFlags.No_NonDonators, reader.ReadBool() ); switch( reader.ReadInt() ) { case 1: No_Murderer = true; break; case 2: No_BlueKarma = No_GrayKarma = No_Criminal = true; break; } m_TollItem = ScriptCompiler.FindTypeByFullName( reader.ReadString() ); m_TollAmount = reader.ReadInt(); FreeForDonators = reader.ReadBool(); m_SkillName1 = (SkillName)reader.ReadInt(); m_SkillValue1 = reader.ReadDouble(); reader.ReadString(); //obselete m_GMsNeeded = reader.ReadInt(); break; } } }
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(); 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(); // version 0 this.m_Hue = reader.ReadInt(); this.m_HitsBuff = reader.ReadDouble(); this.m_StrBuff = reader.ReadDouble(); this.m_IntBuff = reader.ReadDouble(); this.m_DexBuff = reader.ReadDouble(); this.m_SkillsBuff = reader.ReadDouble(); this.m_SpeedBuff = reader.ReadDouble(); this.m_FameBuff = reader.ReadDouble(); this.m_KarmaBuff = reader.ReadDouble(); this.m_DamageBuff = reader.ReadInt(); this.m_EnableParagon = reader.ReadBool(); this.m_ChestChance = reader.ReadDouble(); this.m_ParagonLabel = reader.ReadString(); this.m_ConvertFactor = reader.ReadDouble(); this.m_ArtifactFactor = reader.ReadDouble(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 2: _WeaponDurabilityLossVsMobs = reader.ReadDouble(); goto case 1; case 1: // global attributes m_AllWeaponDamageMultiplier = reader.ReadDouble(); m_PlayerVsMobMultiplier = reader.ReadDouble(); m_MobVsPlayerMultiplier = reader.ReadDouble(); m_MobVsPlayerReduction = reader.ReadInt(); // individual weapon attributes m_AxeDamageMin = reader.ReadInt(); m_AxeDamageMax = reader.ReadInt(); m_BattleAxeDamageMin = reader.ReadInt(); m_BattleAxeDamageMax = reader.ReadInt(); m_DoubleAxeDamageMin = reader.ReadInt(); m_DoubleAxeDamageMax = reader.ReadInt(); m_ExecutionersAxeDamageMin = reader.ReadInt(); m_ExecutionersAxeDamageMax = reader.ReadInt(); m_HatchetDamageMin = reader.ReadInt(); m_HatchetDamageMax = reader.ReadInt(); m_LargeBattleAxeDamageMin = reader.ReadInt(); m_LargeBattleAxeDamageMax = reader.ReadInt(); m_PickaxeDamageMin = reader.ReadInt(); m_PickaxeDamageMax = reader.ReadInt(); m_TwoHandedAxeDamageMin = reader.ReadInt(); m_TwoHandedAxeDamageMax = reader.ReadInt(); m_WarAxeDamageMin = reader.ReadInt(); m_WarAxeDamageMax = reader.ReadInt(); m_ButcherKnifeDamageMin = reader.ReadInt(); m_ButcherKnifeDamageMax = reader.ReadInt(); m_CleaverDamageMin = reader.ReadInt(); m_CleaverDamageMax = reader.ReadInt(); m_DaggerDamageMin = reader.ReadInt(); m_DaggerDamageMax = reader.ReadInt(); m_SkinningKnifeDamageMin = reader.ReadInt(); m_SkinningKnifeDamageMax = reader.ReadInt(); m_ClubDamageMin = reader.ReadInt(); m_ClubDamageMax = reader.ReadInt(); m_HammerPickDamageMin = reader.ReadInt(); m_HammerPickDamageMax = reader.ReadInt(); m_MaceDamageMin = reader.ReadInt(); m_MaceDamageMax = reader.ReadInt(); m_WarHammerDamageMin = reader.ReadInt(); m_WarHammerDamageMax = reader.ReadInt(); m_WarMaceDamageMin = reader.ReadInt(); m_WarMaceDamageMax = reader.ReadInt(); m_BardicheDamageMin = reader.ReadInt(); m_BardicheDamageMax = reader.ReadInt(); m_HalberdDamageMin = reader.ReadInt(); m_HalberdDamageMax = reader.ReadInt(); m_BowDamageMin = reader.ReadInt(); m_BowDamageMax = reader.ReadInt(); m_CrossbowDamageMin = reader.ReadInt(); m_CrossbowDamageMax = reader.ReadInt(); m_HeavyCrossbowDamageMin = reader.ReadInt(); m_HeavyCrossbowDamageMax = reader.ReadInt(); m_PitchforkDamageMin = reader.ReadInt(); m_PitchforkDamageMax = reader.ReadInt(); m_ShortSpearDamageMin = reader.ReadInt(); m_ShortSpearDamageMax = reader.ReadInt(); m_SpearDamageMin = reader.ReadInt(); m_SpearDamageMax = reader.ReadInt(); m_TribalSpearDamageMin = reader.ReadInt(); m_TribalSpearDamageMax = reader.ReadInt(); m_WarForkDamageMin = reader.ReadInt(); m_WarForkDamageMax = reader.ReadInt(); m_BlackStaffDamageMin = reader.ReadInt(); m_BlackStaffDamageMax = reader.ReadInt(); m_GnarledStaffDamageMin = reader.ReadInt(); m_GnarledStaffDamageMax = reader.ReadInt(); m_QuarterStaffDamageMin = reader.ReadInt(); m_QuarterStaffDamageMax = reader.ReadInt(); m_ShepherdsCrookDamageMin = reader.ReadInt(); m_ShepherdsCrookDamageMax = reader.ReadInt(); m_BroadswordDamageMin = reader.ReadInt(); m_BroadswordDamageMax = reader.ReadInt(); m_CutlassDamageMin = reader.ReadInt(); m_CutlassDamageMax = reader.ReadInt(); m_KatanaDamageMin = reader.ReadInt(); m_KatanaDamageMax = reader.ReadInt(); m_KryssDamageMin = reader.ReadInt(); m_KryssDamageMax = reader.ReadInt(); m_LongswordDamageMin = reader.ReadInt(); m_LongswordDamageMax = reader.ReadInt(); m_ScimitarDamageMin = reader.ReadInt(); m_ScimitarDamageMax = reader.ReadInt(); m_VikingSwordDamageMin = reader.ReadInt(); m_VikingSwordDamageMax = reader.ReadInt(); m_WeaponDurabilityLossPercentage = reader.ReadDouble(); m_WeaponDurabilitySpeedAdjustment = reader.ReadDouble(); break; } m_Instance = this; }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); m_Copyable = true; // take care of all the grandfathered-in books m_LastEdited = ""; // erl: init LastEdited string switch (version) { case 4: { m_Subtype = (BookSubtype)reader.ReadInt(); m_Version = reader.ReadDouble(); goto case 3; } case 3: // wea: mirrored bpi fix { goto case 2; } case 2: // erl: new LastEdited property { m_LastEdited = reader.ReadString(); goto case 1; } case 1: { m_Copyable = reader.ReadBool(); goto case 0; } case 0: { m_Title = reader.ReadString(); m_Author = reader.ReadString(); m_Writable = reader.ReadBool(); BookPageInfo[] bpi = new BookPageInfo[reader.ReadInt()]; for (int i = 0; i < bpi.Length; ++i) { bpi[i] = new BookPageInfo(reader); } m_Pages = bpi; /* Run2.0 style now * if (version <= 2) * { * // wea: freshen up this bpi list so that the book's pages * // are properly defined * * m_Pages = new ArrayList(); * * for (int i = 0; i < bpi.Length; ++i) * { * BookPageInfo bpiFresh = new BookPageInfo(); * bpiFresh.Lines = bpi[i].Lines; * * m_Pages.Add(bpiFresh); * } * } * else * { * // This book doesn't need fixing * m_Pages = new ArrayList(bpi); * }*/ break; } } Weight = BookWeight; }
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) { int version = reader.GetVersion(); switch (version) { case 0: { _level = reader.ReadInt(); Name = reader.ReadString(); MetaSkillType = (MetaSkillType) reader.ReadInt(); ChanceToActivate = reader.ReadDouble(); CoolDown = reader.ReadTimeSpan(); AbilityMultiplier = reader.ReadDouble(); Experience = reader.ReadInt(); NextLevelExperience = reader.ReadInt(); MaxLevel = reader.ReadInt(); } break; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch( version ) { case 0: { this.m_Skill = (RepairSkillType)reader.ReadInt(); this.m_SkillLevel = reader.ReadDouble(); this.m_Crafter = reader.ReadMobile(); break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch ( version ) { case 0: { this.m_MinSkill = reader.ReadDouble(); this.m_MaxSkill = reader.ReadDouble(); if (this.m_MinSkill == 0.0 && this.m_MaxSkill == 60.0) { this.m_MinSkill = -60.0; this.m_MaxSkill = +60.0; } break; } } this.UpdateItemID(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadEncodedInt(); switch( version ) { case 3: { m_LastUserName = reader.ReadString(); goto case 2; } case 2: { m_Level = (SecureLevel)reader.ReadInt(); goto case 1; } case 1: { m_ActiveItemID = reader.ReadInt(); m_InactiveItemID = reader.ReadInt(); goto case 0; } case 0: { m_Account = reader.ReadString(); m_NextUse = reader.ReadDateTime(); //TODO: delete it in a harmless way m_Skill = (SkillName)reader.ReadEncodedInt(); m_SkillValue = reader.ReadDouble(); break; } } if( version == 0 ) { m_ActiveItemID = 0x2A94; m_InactiveItemID = 0x2A93; } }
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(); switch(version) { case 1: // version 1 this.m_RequiredSkill2 = (SkillName)reader.ReadInt(); this.m_MinSkillLevel2 = reader.ReadDouble(); goto case 0; case 0: // version 0 this.m_MaxSockets = reader.ReadInt(); string resourcetype = reader.ReadString(); try { this.m_RequiredResource = Type.GetType(resourcetype); } catch { } this.m_ResourceQuantity = reader.ReadInt(); this.m_RequiredSkill = (SkillName)reader.ReadInt(); this.m_MinSkillLevel = reader.ReadDouble(); break; } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); if ( version >= 16 && version <= 18 ) reader.ReadItem(); // spawner 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(); 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 ( 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(); if ( version < 25 ) { int i, iCount; iCount = reader.ReadInt(); for ( i = 0; i < iCount; i++ ) reader.ReadString(); iCount = reader.ReadInt(); for ( i = 0; i < iCount; i++ ) reader.ReadString(); } } 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 = (PetLoyalty) reader.ReadInt(); else m_Loyalty = PetLoyalty.WonderfullyHappy; 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(); m_IsChampionMonster = reader.ReadBool(); } else { m_Paragon = false; m_IsChampionMonster = false; } if ( version >= 13 && reader.ReadBool() ) m_Friends = reader.ReadStrongMobileList(); else if ( version < 13 && m_ControlOrder >= OrderType.Unfriend ) ++m_ControlOrder; if ( version >= 14 ) m_SpawnLevel = reader.ReadInt(); else m_SpawnLevel = 0; if ( version >= 15 ) m_ChampionType = (ChampionSpawnType) reader.ReadInt(); if ( version >= 17 ) m_StolenFrom = reader.ReadBool(); if ( version >= 18 ) { int count = reader.ReadInt(); for ( int i = 0; i < count; i++ ) { Item rummaged = reader.ReadItem(); Mobile owner = reader.ReadMobile(); if ( rummaged != null && owner != null ) m_RummagedItems.Add( rummaged, owner ); } } if ( version >= 20 ) { m_IsMinichampMonster = reader.ReadBool(); m_MinichampType = (MiniChampType) reader.ReadInt(); } if ( version >= 21 ) { m_NextTastyTreat = reader.ReadDateTime(); } if ( version >= 22 ) { m_Petrified = reader.ReadBool(); if ( m_Petrified ) { m_StatueAnimation = reader.ReadInt(); m_StatueFrames = reader.ReadInt(); Frozen = true; HueMod = 2401; } } if ( version >= 23 ) { m_NextArmorEssence = reader.ReadDateTime(); } if ( version >= 24 ) { m_IsGolem = reader.ReadBool(); } else { m_IsGolem = this is Golem; } CheckStatTimers(); ChangeAIType( m_CurrentAI ); AddFollowers(); if ( IsAnimatedDead ) Spells.Necromancy.AnimateDeadSpell.Register( m_SummonMaster, this ); if ( Controlled ) Skills.Cap = 15000; }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch ( version ) { case 0: { this.m_MinSkill = reader.ReadDouble(); this.m_MaxSkill = reader.ReadDouble(); this.m_Arrows = reader.ReadInt(); this.m_Bolts = reader.ReadInt(); if (this.m_MinSkill == 0.0 && this.m_MaxSkill == 30.0) { this.m_MinSkill = -25.0; this.m_MaxSkill = +25.0; } break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); int storedHitPoints = 1000; int storedMaxHitPoints = 1000; //Version 0 if (version >= 0) { m_AllowRepair = reader.ReadBool(); m_RepairSound = reader.ReadInt(); m_DamageState = (DamageStateType)reader.ReadInt(); m_InteractionRange = reader.ReadInt(); m_InteractionDelay = reader.ReadDouble(); m_MinInteractDamage = reader.ReadInt(); m_MaxInteractDamage = reader.ReadInt(); m_InteractDamageScalar = reader.ReadDouble(); m_WeaponDamageScalar = reader.ReadDouble(); m_LockpickDamageScalar = reader.ReadDouble(); m_MiningDamageScalar = reader.ReadDouble(); m_LumberjackingDamageScalar = reader.ReadDouble(); m_ObjectBreakingDeviceDamageScalar = reader.ReadDouble(); storedHitPoints = reader.ReadInt(); storedMaxHitPoints = reader.ReadInt(); m_AddLOSBlocker = reader.ReadBool(); m_HitSound = reader.ReadInt(); m_NormalItemId = reader.ReadInt(); m_NormalHue = reader.ReadInt(); m_LightlyDamagedPercent = reader.ReadDouble(); m_LightlyDamagedSound = reader.ReadInt(); m_LightlyDamagedItemId = reader.ReadInt(); m_LightlyDamagedHue = reader.ReadInt(); m_HeavilyDamagedPercent = reader.ReadDouble(); m_HeavilyDamagedSound = reader.ReadInt(); m_HeavilyDamagedItemId = reader.ReadInt(); m_HeavilyDamagedHue = reader.ReadInt(); m_BrokenSound = reader.ReadInt(); m_BrokenItemId = reader.ReadInt(); m_BrokenHue = reader.ReadInt(); m_DeleteOnBreak = reader.ReadBool(); m_CreateTimedStaticAfterBreak = reader.ReadBool(); m_TimedStaticOnBreakItemId = reader.ReadInt(); m_TimedStaticOnBreakHue = reader.ReadInt(); m_TimedStaticDuration = reader.ReadDouble(); m_TimedStaticOnBreakName = reader.ReadString(); m_RevealNearbyHiddenItemsOnBreak = reader.ReadBool(); m_RevealNearbyHiddenItemsOnBreakRadius = reader.ReadInt(); m_RefreshNearbyMovables = reader.ReadBool(); m_RefreshNearbyMovablesRadius = reader.ReadInt(); m_LOSBlocker = reader.ReadItem() as LOSBlocker; } //Version 1 if (version >= 1) { m_RequiresFullRepair = reader.ReadBool(); m_PlayerPlaced = reader.ReadBool(); m_Facing = (Direction)reader.ReadInt(); } //-------- //Make Sure This Gets Fired Off Last MaxHitPoints = storedMaxHitPoints; HitPoints = storedHitPoints; }
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(); m_TinkerLevel = reader.ReadDouble(); m_HidingLevel = reader.ReadDouble(); m_Owner = (PlayerMobile) reader.ReadMobile(); if ( Visible ) BeginConceal(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 0: { m_Skill = (SkillName)reader.ReadInt(); m_Required = reader.ReadDouble(); m_MessageString = reader.ReadString(); m_MessageNumber = reader.ReadInt(); break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 0: { m_MinSkill = reader.ReadDouble(); m_MaxSkill = reader.ReadDouble(); if ( m_MinSkill == 0.0 && m_MaxSkill == 30.0 ) { m_MinSkill = -25.0; m_MaxSkill = +25.0; } break; } } UpdateItemID(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); m_Active = reader.ReadBool(); m_Theme = (ThemeType)reader.ReadInt(); m_TotalSpins = reader.ReadULong(); m_TotalCollected = reader.ReadULong(); m_TotalWon = reader.ReadULong(); m_ErrorCode = reader.ReadInt(); m_OrigHue = reader.ReadInt(); m_Throttle = reader.ReadBool(); m_ThrottleSeconds = reader.ReadDouble(); m_CardClubOnly = reader.ReadBool(); m_MembershipCard = reader.ReadBool(); m_LastWonBy = reader.ReadMobile(); m_LastWonByDate = reader.ReadDateTime(); m_LastWonAmount = reader.ReadInt(); m_SecurityCamMobile = reader.ReadMobile(); m_SecurityChatter = (VerboseType)reader.ReadInt(); m_TotalPlayers = reader.ReadInt(); InvalidateProperties(); if (m_TotalPlayers > 0) { for (int i = 0; i < m_TotalPlayers; i++) { PlayerInfo player = new PlayerInfo(); player.mobile = reader.ReadMobile(); player.LastPlayed = reader.ReadDateTime(); player.OnCredit = reader.ReadInt(); player.Cost = reader.ReadInt(); PlayerList.Add(player); } } for (int i = 0; i < m_HitStats.Length; i++) m_HitStats[i] = reader.ReadULong(); if (m_OrigHue != -1 && m_Active) { Hue = m_OrigHue; m_OrigHue = -1; } SetupTheme(m_Theme); ActivateIdleTimer(TimeSpan.FromMinutes(5)); m_GameSpeed = Utility.RandomList(5, 6, 7, 8, 9, 10, 11, 12); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.GetVersion(); switch (version) { case 1: case 0: { Skill = (SkillName)reader.ReadInt(); SkillAmount = version > 0 ? reader.ReadDouble() : reader.ReadInt(); Children = reader.ReadBool(); ChangeSkillReset = reader.ReadBool(); } break; } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch( version ) { case 1: m_alDisabledSkills = new ArrayList(); int size = reader.ReadInt(); for ( int i=0;i<size;i++ ) m_alDisabledSkills.Add( (SkillName) reader.ReadInt() ); goto case 0; case 0: m_PriceInGold = reader.ReadInt(); m_MaxCanBuyTo = reader.ReadDouble(); m_SkillIncrease = reader.ReadInt(); m_CoolLooking = reader.ReadBool(); break; } if( version == 0 ) m_alDisabledSkills = new ArrayList(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 14: { int nentries = reader.ReadInt(); if (nentries > 0) { this.m_Journal = new ArrayList(); for (int i = 0; i < nentries; i++) { string entryID = reader.ReadString(); string entryText = reader.ReadString(); this.m_Journal.Add(new XmlQuest.JournalEntry(entryID, entryText)); } } goto case 13; } case 13: { this.m_Repeatable = reader.ReadBool(); goto case 12; } case 12: { this.m_QuestDifficulty = reader.ReadInt(); goto case 11; } case 11: { this.m_AttachmentString = reader.ReadString(); goto case 10; } case 10: { this.m_NextRepeatable = reader.ReadTimeSpan(); goto case 9; } case 9: { this.m_RewardAttachmentSerialNumber = reader.ReadInt(); goto case 8; } case 8: { this.m_ReturnContainer = (Container)reader.ReadItem(); goto case 7; } case 7: { this.m_Pack = (Container)reader.ReadItem(); this.m_RewardItem = reader.ReadItem(); this.m_AutoReward = reader.ReadBool(); this.m_CanSeeReward = reader.ReadBool(); this.m_PlayerMade = reader.ReadBool(); this.m_Creator = reader.ReadMobile() as PlayerMobile; goto case 6; } case 6: { this.m_Description1 = reader.ReadString(); this.m_Description2 = reader.ReadString(); this.m_Description3 = reader.ReadString(); this.m_Description4 = reader.ReadString(); this.m_Description5 = reader.ReadString(); goto case 5; } case 5: { this.m_Owner = reader.ReadMobile() as PlayerMobile; goto case 4; } case 4: { this.m_RewardString = reader.ReadString(); goto case 3; } case 3: { this.m_ConfigFile = reader.ReadString(); this.m_NoteString = reader.ReadString(); this.m_TitleString = reader.ReadString(); goto case 2; } case 2: { this.m_PartyEnabled = reader.ReadBool(); this.m_PartyRange = reader.ReadInt(); goto case 1; } case 1: { this.m_State1 = reader.ReadString(); this.m_State2 = reader.ReadString(); this.m_State3 = reader.ReadString(); this.m_State4 = reader.ReadString(); this.m_State5 = reader.ReadString(); goto case 0; } case 0: { this.m_wasMoved = reader.ReadBool(); this.Expiration = reader.ReadDouble(); this.m_TimeCreated = reader.ReadDateTime(); this.m_Objective1 = reader.ReadString(); this.m_Objective2 = reader.ReadString(); this.m_Objective3 = reader.ReadString(); this.m_Objective4 = reader.ReadString(); this.m_Objective5 = reader.ReadString(); this.m_Completed1 = reader.ReadBool(); this.m_Completed2 = reader.ReadBool(); this.m_Completed3 = reader.ReadBool(); this.m_Completed4 = reader.ReadBool(); this.m_Completed5 = reader.ReadBool(); } break; } }
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) { TimeSpan ts = TimeSpan.Zero; base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 3: { m_LevelScale = reader.ReadDouble(); goto case 2; } case 2: { m_LevelError = (LevelErrors)reader.ReadInt(); goto case 1; } case 1: { ts = reader.ReadDeltaTime() - DateTime.Now; goto case 0; } case 0: { // read it all back in m_Type = ((ChampLevelData.SpawnTypes)reader.ReadInt()); int a = reader.ReadInt(); SpawnLevels = new ArrayList(); // create new level array through deserialise constructors for (int i = 0; i < a; ++i) { SpawnLevels.Add(new ChampLevelData(reader)); } m_Monsters = reader.ReadMobileList(); m_FreeMonsters = reader.ReadMobileList(); m_LevelCounter = reader.ReadInt(); m_Kills = reader.ReadInt(); m_ExpireTime = reader.ReadDateTime(); m_NavDest = (NavDestinations)reader.ReadInt(); // the bools m_bActive = reader.ReadBool(); m_bGraphics = reader.ReadBool(); // if graphics were on remake them thru deserialise constructor if (m_bGraphics) { m_Graphics = new ChampGraphics(this, reader); } // and the restart... m_bRestart = reader.ReadBool(); m_RestartDelay = reader.ReadTimeSpan(); if (reader.ReadBool() && !m_bActive && m_bRestart) { // in this case the champ is activley in restart mode, so create new timer //pla: 13/01/07 //changed so we don't lose time on restart if (ts == TimeSpan.Zero) { DoTimer(m_RestartDelay); } else { DoTimer(ts); } } else if (m_bActive) { // if spawn was active then start the wheels turning... StartSlice(); } break; } } }