diff --git a/OpenRA.Game/Sync.cs b/OpenRA.Game/Sync.cs index 7e41470919..78881db317 100755 --- a/OpenRA.Game/Sync.cs +++ b/OpenRA.Game/Sync.cs @@ -82,27 +82,27 @@ namespace OpenRA } else if (type == typeof(WRange)) { - il.EmitCall(OpCodes.Call, ((Func)(a => a.GetHashCode())).Method, null); + il.EmitCall(OpCodes.Call, ((Func)hash).Method, null); il.Emit(OpCodes.Xor); } else if (type == typeof(WPos)) { - il.EmitCall(OpCodes.Call, ((Func)(a => a.GetHashCode())).Method, null); + il.EmitCall(OpCodes.Call, ((Func)hash).Method, null); il.Emit(OpCodes.Xor); } else if (type == typeof(WVec)) { - il.EmitCall(OpCodes.Call, ((Func)(a => a.GetHashCode())).Method, null); + il.EmitCall(OpCodes.Call, ((Func)hash).Method, null); il.Emit(OpCodes.Xor); } else if (type == typeof(WAngle)) { - il.EmitCall(OpCodes.Call, ((Func)(a => a.GetHashCode())).Method, null); + il.EmitCall(OpCodes.Call, ((Func)hash).Method, null); il.Emit(OpCodes.Xor); } else if (type == typeof(WRot)) { - il.EmitCall(OpCodes.Call, ((Func)(a => a.GetHashCode())).Method, null); + il.EmitCall(OpCodes.Call, ((Func)hash).Method, null); il.Emit(OpCodes.Xor); } else if (type == typeof(TypeDictionary)) @@ -217,6 +217,11 @@ namespace OpenRA return 0; } + public static int hash(T t) + { + return t.GetHashCode(); + } + public static void CheckSyncUnchanged( World world, Action fn ) { CheckSyncUnchanged( world, () => { fn(); return true; } );