summaryrefslogtreecommitdiff
path: root/NW4RTools/Models/Animation
diff options
context:
space:
mode:
Diffstat (limited to 'NW4RTools/Models/Animation')
-rw-r--r--NW4RTools/Models/Animation/CharacterAnim.cs2
-rw-r--r--NW4RTools/Models/Animation/Shared.cs40
2 files changed, 42 insertions, 0 deletions
diff --git a/NW4RTools/Models/Animation/CharacterAnim.cs b/NW4RTools/Models/Animation/CharacterAnim.cs
index dd496f6..72efd56 100644
--- a/NW4RTools/Models/Animation/CharacterAnim.cs
+++ b/NW4RTools/Models/Animation/CharacterAnim.cs
@@ -81,6 +81,8 @@ namespace NW4RTools.Models.Animation {
public STFormatType ScaleFormat;
public STFormatType TranslateFormat;
public RotateFormatType RotateFormat;
+
+ public bool ScaleUseModel, RotateUseModel, TranslateUseModel;
}
public CharacterAnim() {
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);
+ }
}
}