This commit is contained in:
mark 2009-02-21 21:58:45 +00:00
parent 49b5e96850
commit d903852b37
4 changed files with 21 additions and 16 deletions

View file

@ -495,6 +495,15 @@ namespace Server
public delegate void Callback();
#if MONO
private static bool GenericComparator( Type type, object obj )
{
return ( type.IsGenericType )
&& ( type.GetGenericTypeDefinition() == typeof( IComparable<> ) )
&& ( type.GetGenericArguments()[0].IsAssignableFrom(obj as Type) );
}
#endif
public bool CompareTo( int sign, Callback argGenerator )
{
Type active = this.Active;
@ -526,12 +535,16 @@ namespace Server
* Bleh.
*/
#if MONO
Type[] ifaces = active.FindInterfaces( GenericComparator, active );
#else
Type[] ifaces = active.FindInterfaces( delegate( Type type, object obj )
{
return ( type.IsGenericType )
&& ( type.GetGenericTypeDefinition() == typeof( IComparable<> ) )
&& ( type.GetGenericArguments()[0].IsAssignableFrom( active ) );
}, null );
#endif
if ( ifaces.Length > 0 )
{

View file

@ -399,11 +399,8 @@ namespace Server
fixed ( StaticTile *pTiles = staTiles )
{
#if !MONO
NativeReader.Read( m_Statics.SafeFileHandle.DangerousGetHandle(), pTiles, length );
#else
NativeReader.Read( m_Statics.Handle, pTiles, length );
#endif
if ( m_Lists == null )
{
m_Lists = new TileList[8][];
@ -472,11 +469,7 @@ namespace Server
fixed ( Tile *pTiles = tiles )
{
#if !MONO
NativeReader.Read( m_Map.SafeFileHandle.DangerousGetHandle(), pTiles, 192 );
#else
NativeReader.Read( m_Map.Handle, pTiles, 192 );
#endif
}
return tiles;

View file

@ -99,11 +99,7 @@ namespace Server
fixed ( Tile *pTiles = tiles )
{
#if !MONO
NativeReader.Read( fsData.SafeFileHandle.DangerousGetHandle(), pTiles, 192 );
#else
NativeReader.Read( fsData.Handle, pTiles, 192 );
#endif
}
matrix.SetLandBlock( x, y, tiles );
@ -168,11 +164,7 @@ namespace Server
fixed ( StaticTile *pTiles = staTiles )
{
#if !MONO
NativeReader.Read( fsData.SafeFileHandle.DangerousGetHandle(), pTiles, length );
#else
NativeReader.Read( fsData.Handle, pTiles, length );
#endif
StaticTile *pCur = pTiles, pEnd = pTiles + tileCount;
while ( pCur < pEnd )

View file

@ -1247,10 +1247,17 @@ namespace Server
m.FacialHairHue = m.Race.RandomHairHue();
}
#if MONO
public static List<TOutput> CastConvertList<TInput, TOutput>( List<TInput> list ) where TInput : class where TOutput : class
{
return list.ConvertAll<TOutput>( new Converter<TInput, TOutput>( delegate( TInput value ) { return value as TOutput; } ) );
}
#else
public static List<TOutput> CastConvertList<TInput, TOutput>( List<TInput> list ) where TOutput : TInput
{
return list.ConvertAll<TOutput>( new Converter<TInput, TOutput>( delegate( TInput value ) { return (TOutput)value; } ) );
}
#endif
public static List<TOutput> SafeConvertList<TInput, TOutput>( List<TInput> list ) where TOutput : class
{