core: Ignore NaN in StageObject setters
This commit is contained in:
parent
e36dbad7d2
commit
d5f7521061
|
@ -363,7 +363,9 @@ fn set_x<'gc>(
|
||||||
val: Value<'gc>,
|
val: Value<'gc>,
|
||||||
) -> Result<(), Error> {
|
) -> Result<(), Error> {
|
||||||
let val = val.as_number(avm, context)?;
|
let val = val.as_number(avm, context)?;
|
||||||
this.set_x(context.gc_context, val);
|
if !val.is_nan() {
|
||||||
|
this.set_x(context.gc_context, val);
|
||||||
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -382,7 +384,9 @@ fn set_y<'gc>(
|
||||||
val: Value<'gc>,
|
val: Value<'gc>,
|
||||||
) -> Result<(), Error> {
|
) -> Result<(), Error> {
|
||||||
let val = val.as_number(avm, context)?;
|
let val = val.as_number(avm, context)?;
|
||||||
this.set_y(context.gc_context, val);
|
if !val.is_nan() {
|
||||||
|
this.set_y(context.gc_context, val);
|
||||||
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -402,7 +406,9 @@ fn set_x_scale<'gc>(
|
||||||
val: Value<'gc>,
|
val: Value<'gc>,
|
||||||
) -> Result<(), Error> {
|
) -> Result<(), Error> {
|
||||||
let val = val.as_number(avm, context)? / 100.0;
|
let val = val.as_number(avm, context)? / 100.0;
|
||||||
this.set_scale_x(context.gc_context, val);
|
if !val.is_nan() {
|
||||||
|
this.set_scale_x(context.gc_context, val);
|
||||||
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -422,7 +428,9 @@ fn set_y_scale<'gc>(
|
||||||
val: Value<'gc>,
|
val: Value<'gc>,
|
||||||
) -> Result<(), Error> {
|
) -> Result<(), Error> {
|
||||||
let val = val.as_number(avm, context)? / 100.0;
|
let val = val.as_number(avm, context)? / 100.0;
|
||||||
this.set_scale_y(context.gc_context, val);
|
if !val.is_nan() {
|
||||||
|
this.set_scale_y(context.gc_context, val);
|
||||||
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -468,7 +476,9 @@ fn set_alpha<'gc>(
|
||||||
val: Value<'gc>,
|
val: Value<'gc>,
|
||||||
) -> Result<(), Error> {
|
) -> Result<(), Error> {
|
||||||
let val = val.as_number(avm, context)? / 100.0;
|
let val = val.as_number(avm, context)? / 100.0;
|
||||||
this.set_alpha(context.gc_context, val);
|
if !val.is_nan() {
|
||||||
|
this.set_alpha(context.gc_context, val);
|
||||||
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -507,7 +517,9 @@ fn set_width<'gc>(
|
||||||
val: Value<'gc>,
|
val: Value<'gc>,
|
||||||
) -> Result<(), Error> {
|
) -> Result<(), Error> {
|
||||||
let val = val.as_number(avm, context)?;
|
let val = val.as_number(avm, context)?;
|
||||||
this.set_width(context.gc_context, val);
|
if !val.is_nan() {
|
||||||
|
this.set_width(context.gc_context, val);
|
||||||
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -526,7 +538,9 @@ fn set_height<'gc>(
|
||||||
val: Value<'gc>,
|
val: Value<'gc>,
|
||||||
) -> Result<(), Error> {
|
) -> Result<(), Error> {
|
||||||
let val = val.as_number(avm, context)?;
|
let val = val.as_number(avm, context)?;
|
||||||
this.set_height(context.gc_context, val);
|
if !val.is_nan() {
|
||||||
|
this.set_height(context.gc_context, val);
|
||||||
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -545,14 +559,16 @@ fn set_rotation<'gc>(
|
||||||
degrees: Value<'gc>,
|
degrees: Value<'gc>,
|
||||||
) -> Result<(), Error> {
|
) -> Result<(), Error> {
|
||||||
let mut degrees = degrees.as_number(avm, context)?;
|
let mut degrees = degrees.as_number(avm, context)?;
|
||||||
// Normalize into the range of [-180, 180].
|
if !degrees.is_nan() {
|
||||||
degrees %= 360.0;
|
// Normalize into the range of [-180, 180].
|
||||||
if degrees < -180.0 {
|
degrees %= 360.0;
|
||||||
degrees += 360.0
|
if degrees < -180.0 {
|
||||||
} else if degrees > 180.0 {
|
degrees += 360.0
|
||||||
degrees -= 360.0
|
} else if degrees > 180.0 {
|
||||||
|
degrees -= 360.0
|
||||||
|
}
|
||||||
|
this.set_rotation(context.gc_context, degrees.to_radians());
|
||||||
}
|
}
|
||||||
this.set_rotation(context.gc_context, degrees.to_radians());
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue