begin basehouse generics

This commit is contained in:
mark 2006-06-21 21:20:25 +00:00
parent c5027649a1
commit ef97e49eb2
4 changed files with 45 additions and 37 deletions

View file

@ -41,10 +41,10 @@ namespace Server.Accounting
if ( m == null )
continue;
ArrayList list = Multis.BaseHouse.GetHouses( m );
List<BaseHouse> list = Multis.BaseHouse.GetHouses( m );
for ( int j = 0; j < list.Count; ++j )
( (Item) list[j] ).Delete();
list[j].Delete();
m.Delete();

View file

@ -1,5 +1,6 @@
using System;
using System.Collections;
using System.Collections.Generic;
using Server;
using Server.Items;
using Server.Multis;
@ -29,19 +30,19 @@ namespace Server.Gumps
from.SendGump( new ViewHousesGump( from, GetHouses( (Mobile)targeted ), null ) );
}
private class HouseComparer : IComparer
private class HouseComparer : IComparer<BaseHouse>
{
public static readonly IComparer Instance = new HouseComparer();
public static readonly IComparer<BaseHouse> Instance = new HouseComparer();
public int Compare( object x, object y )
public int Compare( BaseHouse x, BaseHouse y )
{
return ((BaseHouse)x).BuiltOn.CompareTo( ((BaseHouse)y).BuiltOn );
return x.BuiltOn.CompareTo( y.BuiltOn );
}
}
public static ArrayList GetHouses( Mobile owner )
public static List<BaseHouse> GetHouses( Mobile owner )
{
ArrayList list = new ArrayList();
List<BaseHouse> list = new List<BaseHouse>();
Account acct = owner.Account as Account;
@ -66,10 +67,10 @@ namespace Server.Gumps
}
private Mobile m_From;
private ArrayList m_List;
private List<BaseHouse> m_List;
private BaseHouse m_Selection;
public ViewHousesGump( Mobile from, ArrayList list, BaseHouse sel ) : base( 50, 40 )
public ViewHousesGump( Mobile from, List<BaseHouse> list, BaseHouse sel ) : base( 50, 40 )
{
m_From = from;
m_List = list;
@ -109,7 +110,7 @@ namespace Server.Gumps
AddButton( 190, 17, 0x15E3, 0x15E7, 0, GumpButtonType.Page, page-1 );
}
object name = FindHouseName( (BaseHouse)list[i] );
object name = FindHouseName( list[i] );
AddHtml( 15, 40 + ((i % 15) * 20), 20, 20, Color( String.Format( "{0}.", i+1 ), White ), false, false );
@ -192,7 +193,7 @@ namespace Server.Gumps
int v = info.ButtonID - 1;
if ( v >= 0 && v < m_List.Count )
m_From.SendGump( new ViewHousesGump( m_From, m_List, (BaseHouse)m_List[v] ) );
m_From.SendGump( new ViewHousesGump( m_From, m_List, m_List[v] ) );
}
else if ( !m_Selection.Deleted )
{

View file

@ -29,7 +29,7 @@ namespace Server.Multis
public static void Decay_OnTick()
{
for ( int i = 0; i < m_AllHouses.Count; ++i )
((BaseHouse)m_AllHouses[i]).CheckDecay();
m_AllHouses[i].CheckDecay();
}
private DateTime m_LastRefreshed;
@ -83,7 +83,7 @@ namespace Server.Multis
if ( (acct.LastLogin + TimeSpan.FromDays( 90.0 )) < DateTime.Now )
return DecayType.Condemned;
ArrayList allHouses = new ArrayList( 2 );
List<BaseHouse> allHouses = new List<BaseHouse>( 2 );
for ( int i = 0; i < acct.Length; ++i )
{
@ -97,7 +97,7 @@ namespace Server.Multis
for ( int i = 0; i < allHouses.Count; ++i )
{
BaseHouse check = (BaseHouse)allHouses[i];
BaseHouse check = allHouses[i];
if ( newest == null || IsNewer( check, newest ) )
newest = check;
@ -246,7 +246,7 @@ namespace Server.Multis
private Point3D m_RelativeBanLocation;
private static Hashtable m_Table = new Hashtable();
private static Dictionary<Mobile, List<BaseHouse>> m_Table = new Dictionary<Mobile, List<BaseHouse>>();
public virtual bool IsAosRules{ get{ return Core.AOS; } }
@ -820,19 +820,20 @@ namespace Server.Multis
return ( house != null && (house.IsSecure( item ) || house.IsLockedDown( item )) );
}
public static ArrayList GetHouses( Mobile m )
public static List<BaseHouse> GetHouses( Mobile m )
{
ArrayList list = new ArrayList();
List<BaseHouse> list = new List<BaseHouse>();
if ( m != null )
{
ArrayList exists = (ArrayList)m_Table[m];
List<BaseHouse> exists = null;
m_Table.TryGetValue( m, out exists );
if ( exists != null )
{
for ( int i = 0; i < exists.Count; ++i )
{
BaseHouse house = exists[i] as BaseHouse;
BaseHouse house = exists[i];
if ( house != null && !house.Deleted && house.Owner == m )
list.Add( house );
@ -1040,7 +1041,7 @@ namespace Server.Multis
return SecureAccessResult.Insecure;
}
private static ArrayList m_AllHouses = new ArrayList();
private static List<BaseHouse> m_AllHouses = new List<BaseHouse>();
public BaseHouse( int multiID, Mobile owner, int MaxLockDown, int MaxSecure ) : base( multiID | 0x4000 )
{
@ -1075,10 +1076,11 @@ namespace Server.Multis
if ( owner != null )
{
ArrayList list = (ArrayList)m_Table[owner];
List<BaseHouse list = null;
m_Table.TryGetValue( owner, out list );
if ( list == null )
m_Table[owner] = list = new ArrayList();
m_Table[owner] = list = new List<BaseHouse>();
list.Add( this );
}
@ -2478,10 +2480,11 @@ namespace Server.Multis
if ( m_Owner != null )
{
ArrayList list = (ArrayList)m_Table[m_Owner];
List<BaseHouse list = null;
m_Table.TryGetValue( m_Owner, out list );
if ( list == null )
m_Table[m_Owner] = list = new ArrayList();
m_Table[m_Owner] = list = new List<BaseHouse>();
list.Add( this );
}
@ -2533,7 +2536,7 @@ namespace Server.Multis
public static void HandleDeletion( Mobile mob )
{
ArrayList houses = GetHouses( mob );
List<BaseHouse> houses = GetHouses( mob );
if ( houses.Count == 0 )
return;
@ -2549,7 +2552,7 @@ namespace Server.Multis
for ( int i = 0; i < houses.Count; ++i )
{
BaseHouse house = houses[i] as BaseHouse;
BaseHouse house = houses[i];
bool canClaim = false;
@ -2586,10 +2589,11 @@ namespace Server.Multis
{
if ( m_Owner != null )
{
ArrayList list = (ArrayList)m_Table[m_Owner];
List<BaseHouse list = null;
m_Table.TryGetValue( m_Owner, out list );
if ( list == null )
m_Table[m_Owner] = list = new ArrayList();
m_Table[m_Owner] = list = new List<BaseHouse>();
list.Remove( this );
m_Owner.Delta( MobileDelta.Noto );
@ -2599,10 +2603,11 @@ namespace Server.Multis
if ( m_Owner != null )
{
ArrayList list = (ArrayList)m_Table[m_Owner];
List<BaseHouse list = null;
m_Table.TryGetValue( m_Owner, out list );
if ( list == null )
m_Table[m_Owner] = list = new ArrayList();
m_Table[m_Owner] = list = new List<BaseHouse>();
list.Add( this );
m_Owner.Delta( MobileDelta.Noto );
@ -2834,10 +2839,11 @@ namespace Server.Multis
if ( m_Owner != null )
{
ArrayList list = (ArrayList)m_Table[m_Owner];
List<BaseHouse list = null;
m_Table.TryGetValue( m_Owner, out list );
if ( list == null )
m_Table[m_Owner] = list = new ArrayList();
m_Table[m_Owner] = list = new List<BaseHouse>();
list.Remove( this );
}
@ -2966,14 +2972,15 @@ namespace Server.Multis
if ( m == null )
return false;
ArrayList list = (ArrayList)m_Table[m];
List<BaseHouse list = null;
m_Table.TryGetValue( m, out list );
if ( list == null )
return false;
for ( int i = 0; i < list.Count; ++i )
{
BaseHouse h = (BaseHouse)list[i];
BaseHouse h = list[i];
if ( !h.Deleted )
return true;

View file

@ -79,7 +79,7 @@ namespace Server.Spells
for ( int i = 0; i < sector.Multis.Count; ++i )
{
BaseMulti multi = (BaseMulti) sector.Multis[i];
BaseMulti multi = sector.Multis[i];
if ( multi is BaseHouse )
{