diff --git a/Scripts/Misc/ResourceInfo.cs b/Scripts/Misc/ResourceInfo.cs index d9668235f..2ffd52d18 100644 --- a/Scripts/Misc/ResourceInfo.cs +++ b/Scripts/Misc/ResourceInfo.cs @@ -1,5 +1,5 @@ using System; -using System.Collections; +using System.Collections.Generic; namespace Server.Items { @@ -480,7 +480,7 @@ namespace Server.Items return ( resource == CraftResource.None || resource == CraftResource.Iron || resource == CraftResource.RegularLeather || resource == CraftResource.RegularWood ); } - private static Hashtable m_TypeTable; + private static Dictionary m_TypeTable; /// /// Registers that '' uses '' so that it can later be queried by @@ -488,7 +488,7 @@ namespace Server.Items public static void RegisterType( Type resourceType, CraftResource resource ) { if ( m_TypeTable == null ) - m_TypeTable = new Hashtable(); + m_TypeTable = new Dictionary(); m_TypeTable[resourceType] = resource; } @@ -501,12 +501,12 @@ namespace Server.Items if ( m_TypeTable == null ) return CraftResource.None; - object obj = m_TypeTable[resourceType]; - - if ( !(obj is CraftResource) ) + CraftResource res; + + if (!m_TypeTable.TryGetValue(resourceType, out res)) return CraftResource.None; - return (CraftResource)obj; + return res; } /// diff --git a/Scripts/Mobiles/AI/SpeedInfo.cs b/Scripts/Mobiles/AI/SpeedInfo.cs index 5866e40f4..8890c1919 100644 --- a/Scripts/Mobiles/AI/SpeedInfo.cs +++ b/Scripts/Mobiles/AI/SpeedInfo.cs @@ -1,5 +1,5 @@ using System; -using System.Collections; +using System.Collections.Generic; using Server; using Server.Mobiles; using Server.Factions; @@ -48,7 +48,9 @@ namespace Server if ( m_Table == null ) LoadTable(); - SpeedInfo sp = (SpeedInfo)m_Table[obj.GetType()]; + SpeedInfo sp = null; + + m_Table.TryGetValue(obj.GetType(), out sp); return ( sp != null ); } @@ -61,7 +63,9 @@ namespace Server if ( m_Table == null ) LoadTable(); - SpeedInfo sp = (SpeedInfo)m_Table[obj.GetType()]; + SpeedInfo sp = null; + + m_Table.TryGetValue(obj.GetType(), out sp); if ( sp == null ) return false; @@ -74,7 +78,7 @@ namespace Server private static void LoadTable() { - m_Table = new Hashtable(); + m_Table = new Dictionary(); for ( int i = 0; i < m_Speeds.Length; ++i ) { @@ -86,7 +90,7 @@ namespace Server } } - private static Hashtable m_Table; + private static Dictionary m_Table; private static SpeedInfo[] m_Speeds = new SpeedInfo[] { diff --git a/Scripts/Mobiles/Vendors/BaseVendor.cs b/Scripts/Mobiles/Vendors/BaseVendor.cs index 7cb06abb7..1e1436d41 100644 --- a/Scripts/Mobiles/Vendors/BaseVendor.cs +++ b/Scripts/Mobiles/Vendors/BaseVendor.cs @@ -710,7 +710,7 @@ namespace Server.Mobiles { IShopSellInfo[] info = GetSellInfo(); - Hashtable table = new Hashtable(); + Dictionary table = new Dictionary(); foreach ( IShopSellInfo ssi in info ) { @@ -730,7 +730,7 @@ namespace Server.Mobiles { SendPacksTo( from ); - from.Send( new VendorSellList( this, table ) ); + from.Send( new VendorSellList( this, table.Values ) ); } else { diff --git a/Scripts/Mobiles/Vendors/PlayerVendor.cs b/Scripts/Mobiles/Vendors/PlayerVendor.cs index 82a3dfd83..8b6a2d7c0 100644 --- a/Scripts/Mobiles/Vendors/PlayerVendor.cs +++ b/Scripts/Mobiles/Vendors/PlayerVendor.cs @@ -1,5 +1,4 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Globalization; using Server; @@ -276,7 +275,7 @@ namespace Server.Mobiles public class PlayerVendor : Mobile { - private Hashtable m_SellItems; + private Dictionary m_SellItems; private Mobile m_Owner; private BaseHouse m_House; @@ -309,7 +308,7 @@ namespace Server.Mobiles ShopName = "Shop Not Yet Named"; - m_SellItems = new Hashtable(); + m_SellItems = new Dictionary(); CantWalk = true; @@ -384,9 +383,10 @@ namespace Server.Mobiles m_BankAccount = reader.ReadInt(); m_HoldGold = reader.ReadInt(); - m_SellItems = new Hashtable(); - int count = reader.ReadInt(); + + m_SellItems = new Dictionary(count); + for ( int i = 0; i < count; i++ ) { Item item = reader.ReadItem(); @@ -779,7 +779,9 @@ namespace Server.Mobiles public VendorItem GetVendorItem( Item item ) { - return (VendorItem) m_SellItems[item]; + VendorItem v = null; + m_SellItems.TryGetValue(item, out v); + return v; } private VendorItem SetVendorItem( Item item, int price, string description ) diff --git a/Server/Network/PacketHandlers.cs b/Server/Network/PacketHandlers.cs index c29e37bbf..29ab6cb11 100644 --- a/Server/Network/PacketHandlers.cs +++ b/Server/Network/PacketHandlers.cs @@ -20,7 +20,6 @@ using System; using System.Text; -using System.Collections; using System.Collections.Generic; using System.IO; using System.Net; diff --git a/Server/Network/Packets.cs b/Server/Network/Packets.cs index a33e656e7..e7e4177e3 100644 --- a/Server/Network/Packets.cs +++ b/Server/Network/Packets.cs @@ -19,7 +19,6 @@ ***************************************************************************/ using System; -using System.Collections; using System.Collections.Generic; using System.IO; using System.Net; @@ -378,15 +377,15 @@ namespace Server.Network public sealed class VendorSellList : Packet { - public VendorSellList( Mobile shopkeeper, Hashtable table ) : base( 0x9E ) + public VendorSellList( Mobile shopkeeper, ICollection sis ) : base( 0x9E ) { this.EnsureCapacity( 256 ); m_Stream.Write( (int) shopkeeper.Serial ); - m_Stream.Write( (ushort) table.Count ); + m_Stream.Write( (ushort) sis.Count); - foreach ( SellItemState state in table.Values ) + foreach (SellItemState state in sis) { m_Stream.Write( (int) state.Item.Serial ); m_Stream.Write( (ushort) state.Item.ItemID );