Fix offset error on function anim.

This commit is contained in:
2023-03-09 22:02:34 +08:00
parent 536a3066b2
commit 613ca467d0

View File

@@ -527,7 +527,7 @@ namespace Cryville.Crtr {
} }
else { else {
var ret = GetReturnFrame(PdtInternalType.Vector, dim0 * sizeof(float) + sizeof(int)); var ret = GetReturnFrame(PdtInternalType.Vector, dim0 * sizeof(float) + sizeof(int));
for (int i = 0; i < dim0; i++) { for (int i = 0; i < dim0 * sizeof(float); i += sizeof(float)) {
ret.SetNumber(op1.AsNumber(i) * (1 - time) + op2.AsNumber(i) * time, i); ret.SetNumber(op1.AsNumber(i) * (1 - time) + op2.AsNumber(i) * time, i);
} }
ret.SetArraySuffix(PdtInternalType.Number); ret.SetArraySuffix(PdtInternalType.Number);
@@ -537,11 +537,11 @@ namespace Cryville.Crtr {
switch (op.Type) { switch (op.Type) {
case PdtInternalType.Number: return 1; case PdtInternalType.Number: return 1;
case PdtInternalType.Vector: case PdtInternalType.Vector:
int arrtype, pc; int arrtype, _;
op.GetArraySuffix(out arrtype, out pc); op.GetArraySuffix(out arrtype, out _);
if (arrtype != PdtInternalType.Number) if (arrtype != PdtInternalType.Number)
throw new ArgumentException("Not animatable"); throw new ArgumentException("Not animatable");
return pc; return (op.Length - sizeof(int)) / sizeof(float);
default: throw new ArgumentException("Not animatable"); default: throw new ArgumentException("Not animatable");
} }
} }