public virtual int CompareTo(BTriggerSystem ts, TriggerScriptDbObjectWithArgs obj)
{
if (Name != obj.Name)
{
Debug.Trace.Engine.TraceInformation(
"TriggerProtoDbObject: '{0}' - Encountered different names for {1}, '{2}' != '{3}'",
ts, this.DbId.ToString(), this.Name, obj.Name);
}
if (ContainsUserClassTypeVar(ts, obj))
{
Debug.Trace.Engine.TraceInformation(
"TriggerProtoDbObject: {0} - Encountered {1}/{2} which has a UserClassType Var, skipping comparison",
ts, DbId.ToString(), Name);
return(0);
}
Contract.Assert(Version == obj.Version);
Contract.Assert(Params.Count == obj.Args.Count);
int diff = 0;
for (int x = 0; x < Params.Count; x++)
{
int sig = Params[x].SigID;
int obj_sig = obj.Args[x].SigID;
sig = sig < 0 ? 0 : sig;
obj_sig = obj_sig < 0 ? 0 : obj_sig;
diff += sig - obj_sig;
}
return(diff);
}