summaryrefslogtreecommitdiff
path: root/NW4RTools/Models/Animation/Shared.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--NW4RTools/Models/Animation/Shared.cs40
1 files changed, 40 insertions, 0 deletions
diff --git a/NW4RTools/Models/Animation/Shared.cs b/NW4RTools/Models/Animation/Shared.cs
index f87bea6..62cca94 100644
--- a/NW4RTools/Models/Animation/Shared.cs
+++ b/NW4RTools/Models/Animation/Shared.cs
@@ -28,5 +28,45 @@ namespace NW4RTools.Models.Animation {
Values = null;
FloatValues = null;
}
+
+
+ public bool IsConstWith(float cv) {
+ return (IsConstant && (ConstValue == cv));
+ }
+
+
+ public override bool Equals(object obj) {
+ return obj is KeyframeAnim && this == (KeyframeAnim)obj;
+ }
+
+ public override int GetHashCode() {
+ return
+ IsConstant.GetHashCode() ^
+ ConstValue.GetHashCode() ^
+ BaseValue.GetHashCode() ^
+ Multiplier.GetHashCode() ^
+ Misc.ArrayHash(Keyframes) ^
+ Misc.ArrayHash(Values) ^
+ Misc.ArrayHash(FloatValues);
+ }
+
+ public static bool operator ==(KeyframeAnim x, KeyframeAnim y) {
+ return
+ (x.IsConstant == y.IsConstant) &&
+ (x.ConstValue == y.ConstValue) &&
+ (x.BaseValue == y.BaseValue) &&
+ (x.Multiplier == y.Multiplier) &&
+ Misc.ArrayCompare(x.Keyframes, y.Keyframes) &&
+ Misc.ArrayCompare(x.Values, y.Values) &&
+ Misc.ArrayCompare(x.FloatValues, y.FloatValues);
+ }
+
+ public static bool operator !=(KeyframeAnim x, KeyframeAnim y) {
+ return !(x == y);
+ }
+
+ public void Dump() {
+ Console.WriteLine("IsC:{0} CV:{1} KF:{2} BV:{3} M:{4} V:{5} FV:{6}", IsConstant, ConstValue, Keyframes, BaseValue, Multiplier, Values, FloatValues);
+ }
}
}