private bool GetAreVariablesEqual(NWN2WaypointTemplate waypoint, string variable1, string variable2)
{
if (waypoint == null) return true;
if (waypoint.Variables.GetVariable(variable1) == null && waypoint.Variables.GetVariable(variable2) == null) return true;
if (waypoint.Variables.GetVariable(variable1) == null || waypoint.Variables.GetVariable(variable2) == null) return false;
if (waypoint.Variables.GetVariable(variable1).VariableType != waypoint.Variables.GetVariable(variable2).VariableType) return false;
switch (waypoint.Variables.GetVariable(variable1).VariableType)
{
case NWN2ScriptVariableType.Float:
return (waypoint.Variables.GetVariable(variable1).ValueFloat == waypoint.Variables.GetVariable(variable2).ValueFloat);
case NWN2ScriptVariableType.Int:
return (waypoint.Variables.GetVariable(variable1).ValueInt == waypoint.Variables.GetVariable(variable2).ValueInt);
case NWN2ScriptVariableType.Location:
return (waypoint.Variables.GetVariable(variable1).ValueLocation == waypoint.Variables.GetVariable(variable2).ValueLocation);
case NWN2ScriptVariableType.String:
return (waypoint.Variables.GetVariable(variable1).ValueString == waypoint.Variables.GetVariable(variable2).ValueString);
}
return false;
}