Commit Graph

1750 Commits

Author SHA1 Message Date
jmckiern 709561a255 avm1: Use ? on set_text_color so errors are raised 2020-12-14 12:45:45 -08:00
jmckiern ec1ff0be3a avm1: Use ? instead of match Ok()'s so errors are raised 2020-12-14 12:45:45 -08:00
jmckiern a09ac58ebd chore: Remove TODO 2020-12-14 12:45:45 -08:00
jmckiern cfd003de7a avm1: Implement TextField.backgroundColor 2020-12-14 12:45:45 -08:00
jmckiern 61e3214d0a avm1: Implement TextField.borderColor 2020-12-14 12:45:45 -08:00
Sam Morrow c4d7b24629 web: Fix cors issues with http (close ruffle-rs#1486) 2020-12-14 05:51:28 -08:00
Zeh Fernando 8e9de8e16b core: Implement MovieClip._lockroot in avm1
This also enables the (previously ignored) _lockroot tests.
2020-12-13 15:34:42 -08:00
Mike Welsh ee74197a00 avm1: Move TextField properties to prototype
Remove TextField::attach_virtual properties, as properties are
on the prototype, not the textfield itself.

Use the `with_text_field_props` macro for these properties.

Also remove `get_` prefix from most getters to match naming
conventions.
2020-12-09 14:45:20 -08:00
David Wendt ed4d51dfc1 avm1: Don't panic if we encounter an invalid display object hierarchy for AS2. Instead, yield a runtime error. 2020-12-09 14:00:06 -08:00
David Wendt afd033898c avm2: Implement `hitTestObject` 2020-12-09 14:00:06 -08:00
David Wendt d9172780c5 avm2: Implement `hitTestPoint`. 2020-12-09 14:00:06 -08:00
David Wendt b18b87e566 avm2: Implement `mouseX` and `mouseY`.
Note that we cannot write a reproducible test for this.
2020-12-09 14:00:06 -08:00
David Wendt 06ba2f898a avm2: Implement `visible`. 2020-12-09 14:00:06 -08:00
David Wendt d489aca377 avm2: Expose `DisplayObject.root` 2020-12-09 14:00:06 -08:00
David Wendt 4b9deb7106 core: Don't crash on rootless display objects.
Instead, crash if AVM1 ever sees a rootless display object.
2020-12-09 14:00:06 -08:00
David Wendt 0069d51dad swf: `pushshort` should be read as a `u30` and then cast to an `i16` as it's parsed representation. 2020-12-09 14:00:06 -08:00
David Wendt 1b2a4708d6 avm2: Implement `DisplayObject.parent`. 2020-12-09 14:00:06 -08:00
David Wendt c053f2c87c avm2: Expose DisplayObject `name` property 2020-12-09 14:00:06 -08:00
David Wendt ea7efe8740 core: Avoid double-borrow when moving clips between parents 2020-12-09 14:00:06 -08:00
David Wendt a7b4f7fbd0 core: Add instantiated by timeline flag as AVM2 appears to track that 2020-12-09 14:00:06 -08:00
David Wendt 6080585d73 core: Assign `rootN` format names to top-level AVM2 movie clips. 2020-12-09 14:00:06 -08:00
David Wendt 19f9e99954 avm2: Expose and test `rotation`. 2020-12-09 14:00:06 -08:00
David Wendt 200581e1e3 avm2: Expose `x` and `y` properties. 2020-12-09 14:00:06 -08:00
David Wendt abca120628 avm2: Expose `width` to AS3 code. 2020-12-09 14:00:06 -08:00
David Wendt 3225cd40e2 core: Avoid panic when display objects are manipulated in clearly invalid ways. 2020-12-09 14:00:06 -08:00
David Wendt 990401a09c core: Allow percentages (e.g. scalex/y) to be specified, stored, and cached at either [0..1] or [0..100] scale. 2020-12-09 14:00:06 -08:00
David Wendt 6da658a845 avm2: `pushshort` has an undocumented coercion step 2020-12-09 14:00:06 -08:00
David Wendt 90e203b004 avm2: `this.height` ignores negative values 2020-12-09 14:00:06 -08:00
David Wendt bd00bea744 avm2: Expose `alpha`, `height`, `scaleY`, and `scaleX` to script code. 2020-12-09 14:00:06 -08:00
jmckiern 3cab11d18e avm1: Implement TextField.textColor (close #1863) 2020-12-07 15:09:36 -08:00
Mike Welsh 9901738249 chore: Appease rustfmt 2020-12-07 10:35:40 -08:00
relrelb 989bfb8f3e avm1: Improve loops treatment in Sound.start
The second argument of Sound.start, loops, can be greater than
std::u16::MAX, but previously greater values were treated as 1.
Ideally, the solution is to respect those values, but since SoundInfo
holds a u16, a short-term solution is to treat them as std::u16::MAX
instead.
2020-12-06 14:22:38 -08:00
Mike Welsh 16b9c77d02 core: Remove panic in morph shape lerp 2020-12-05 00:19:30 -08:00
bbb651 92bd0874e1 Fixed "Swap" only working for i32 2020-12-03 15:51:37 -08:00
bbb651 8baf35e7af Added AVM2 op "Swap" 2020-12-03 15:51:37 -08:00
Mike Welsh 758a32f5f0 core: Remove unimplemented! in decode_define_bits_lossless 2020-12-02 23:58:03 -08:00
Mike Welsh a0d56aad44 core: Don't panic on DefineFont4 2020-12-01 23:01:35 -08:00
Mike Welsh 25e7ec99a0 core: Handle serializing arrays in SharedObjects 2020-11-30 22:15:34 -08:00
Mike Welsh ad5028817a core: Remove unnecssary parameter from Button::set_state 2020-11-30 01:15:43 -08:00
Mike Welsh 0d79d85d83 avm1: Fix MovieClip properties being attached to Object.prototype 2020-11-30 01:15:43 -08:00
Mike Welsh aedddd29ab avm1: Implement Button.enabled and MovieClip.enabled 2020-11-30 01:15:43 -08:00
Mike Welsh ab200b6dc0 avm1: Don't fire button events when invisible (fix #1521) 2020-11-29 12:47:36 -08:00
Mike Welsh dafe7e5027 avm1: Implement Key.getAscii 2020-11-29 02:31:10 -08:00
Mike Welsh 18addef831 core: Don't run stream sounds when stopped (fix #1719) 2020-11-27 21:11:15 -08:00
David Wendt a978b649b9 core: Also gate the `set_parent` change on `remove_range` just in case 2020-11-27 13:23:34 -08:00
David Wendt 0f1d4d5248 core: Always remove children from their old render list positions regardless of what depth list position they had 2020-11-27 13:23:34 -08:00
David Wendt e69e6fcc5e core: Fix regression on Super Mario 63 2020-11-27 13:23:34 -08:00
David Wendt 6e565d4da2 core: Fix compliation error caused by the `TDisplayObjectContainer` refactor 2020-11-27 13:23:34 -08:00
David Wendt 5a2f17a642 core: Consistently refer to render list positions as an `index` for consistency with Rust naming conventions 2020-11-27 13:23:34 -08:00
David Wendt c011c028de avm2: Correctly coerce render list indicies as `i32`, not `u32`. 2020-11-27 13:23:34 -08:00