David Wendt
29f96e76ab
tests: Activate alpha test (since it seems to work fine)
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
4784dc3c03
tests: Add more stringent height/width test that we're only accurate to within 1 twip.
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
David Wendt
69db45131b
tests: Add inactive tests for `alpha`, `height`, `rotation`, `width`, `x`, and `y`.
2020-12-09 14:00:06 -08:00
dependabot-preview[bot]
d1c79a5dd5
build(deps): bump png from 0.16.7 to 0.16.8
...
Bumps [png](https://github.com/image-rs/image-png ) from 0.16.7 to 0.16.8.
- [Release notes](https://github.com/image-rs/image-png/releases )
- [Changelog](https://github.com/image-rs/image-png/blob/master/CHANGES.md )
- [Commits](https://github.com/image-rs/image-png/commits )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-08 21:13:22 -08:00
jmckiern
3cab11d18e
avm1: Implement TextField.textColor ( close #1863 )
2020-12-07 15:09:36 -08:00
dependabot-preview[bot]
17eb651682
build(deps): bump syn from 1.0.53 to 1.0.54
...
Bumps [syn](https://github.com/dtolnay/syn ) from 1.0.53 to 1.0.54.
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/1.0.53...1.0.54 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-07 13:08:20 -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
dependabot-preview[bot]
f45fa80e29
build(deps): bump smallvec from 1.5.0 to 1.5.1
...
Bumps [smallvec](https://github.com/servo/rust-smallvec ) from 1.5.0 to 1.5.1.
- [Release notes](https://github.com/servo/rust-smallvec/releases )
- [Commits](https://github.com/servo/rust-smallvec/compare/v1.5.0...v1.5.1 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-04 17:54:47 -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
Zeh Fernando
c018ac065c
tests: Add test for MovieClip._lockroot in avm1
2020-12-02 11:59:01 -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
dependabot-preview[bot]
827a8ee18d
build(deps): bump syn from 1.0.52 to 1.0.53
...
Bumps [syn](https://github.com/dtolnay/syn ) from 1.0.52 to 1.0.53.
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/1.0.52...1.0.53 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-29 22:46:08 -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
dependabot-preview[bot]
3d9ebbde9c
build(deps): bump syn from 1.0.51 to 1.0.52
...
Bumps [syn](https://github.com/dtolnay/syn ) from 1.0.51 to 1.0.52.
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/1.0.51...1.0.52 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-27 15:46:54 -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
David Wendt
01539baf5d
core: Move `render_children` into `TDisplayObjectContainer`.
2020-11-27 13:23:34 -08:00
David Wendt
ba311dd5b4
core: Remove previous changes to make certain `DisplayObject` methods take `&mut self`, which noises up the PR
2020-11-27 13:23:34 -08:00
David Wendt
6d992e239a
core: Re-fix #1580 as it's fix didn't make it into the `DisplayObjectContainer` refactor the first time
2020-11-27 13:23:34 -08:00
David Wendt
8764831533
chore: cargo 1.47 changed the formatting algorithm
2020-11-27 13:23:34 -08:00
David Wendt
365601f2d9
core: New-depth children should always be placed before higher children, not after lower ones.
...
We will call this the "before-above" rule, to contrast with the previous "after-below" behavior. The main difference is how off-depth-list children are handled, which more closely matches AVM2.
The previous implementation of after-below wouldn't work unless we made the fallback case of not having a below child put it to the *end* of the list. This gave us test pass but broke animations. The first one I tried, Cirno's Perfect Math Class, prepends the entire depth list, which with the half-broken after-below behavior wound up appending to the render list.
There isn't an inverse problem with before-below and the end of the list, since we cover that case and we don't have to put weird exceptions.
2020-11-27 13:23:34 -08:00
David Wendt
74b50f2586
core: AVM2-locked children should still be removable from the depth list.
2020-11-27 13:23:34 -08:00
David Wendt
3769d24715
core: Fix incorrect placement of clips where depth placements intended to place objects at the bottom of the list instead placed them at the top.
2020-11-27 13:23:34 -08:00
David Wendt
35bc43cce2
avm2: Swapping children should lock them from depth manipulation.
2020-11-27 13:23:34 -08:00
David Wendt
c8cd4a9192
avm2: Remove outdated documentation on some internal functions.
2020-11-27 13:23:34 -08:00
David Wendt
6cb3ff9632
avm2: Stub `getObjectsUnderPoint` and `areInaccessibleObjectsUnderPoint` as we do not yet support the `Point` class
2020-11-27 13:23:34 -08:00
David Wendt
fec4e3c0a9
core: Replace direct container manipulation with `TDisplayObjectContainer` methods wherever possible.
...
The purpose of this refactor is twofold:
1. Ensure `TDisplayObjectContainer` holds all the container methods we need
2. Ensure that future adjustments to trait methods automatically apply to the display object's own use of the container, in case we want to do things in those methods that can't be done in a borrowed container
There are two places where we cannot use the new trait methods:
1. `Button.set_state` as it holds a borrow at the point we want to clear the container
2. `MovieClipData.goto_remove_object`, since it's a method on the data and thus cannot access trait methods
This particular commit generates a lot of noise as several `DisplayObject` methods were incorrectly marked as non-mutating.
2020-11-27 13:23:34 -08:00
David Wendt
9dde91e0fd
core: Store named children on AVM2 movieclips as object properties
2020-11-27 13:23:34 -08:00
David Wendt
86e1037940
avm2: Implement `stopAllMovieClips`
2020-11-27 13:23:34 -08:00