Commit Graph

2576 Commits

Author SHA1 Message Date
Moulins f9bbe96812 core: Remove extra Option/Results from XmlNode getters
This removes some special cases and simplifies the code.
2021-04-11 14:16:48 -07:00
Moulins ae1a01d181 avm1: Allow XMLNode reparenting (closes #3962)
`XMLNode.{appendChild, insertNode}` can now be used to move
child nodes from a parent to another.

There are two special cases:
  - if the node is already a child of the destination, nothing happens
  - if moving the node would create a cycle, nothing happens
2021-04-11 14:16:48 -07:00
relrelb 20d6fcc128 chore: Remove unnecessary type annotations 2021-04-10 18:39:16 -07:00
Mike Welsh 11f40384da tests: Add test for loading into _root 2021-04-10 13:48:05 -07:00
Mike Welsh aa0707411c avm1: Update movie parameters when loading into _root/_level0
The movie framerate and dimensions should be changed when a movie
is loaded into _root or level 0.
2021-04-10 13:48:05 -07:00
David Wendt 7a781179aa core: Move all of the remaining AVM2 object allocation and/or construction into the `construct_frame` step. 2021-04-09 22:24:22 -07:00
David Wendt dc5b30e460 core: Remove "constructor ran" flag now that we can handle that with a local bool 2021-04-09 22:24:22 -07:00
David Wendt 27d09084fb core: Use the library's AVM type to determine how to name the root.
We cannot check it's constructed AVM value anymore because it is now named before construction.
2021-04-09 22:24:22 -07:00
David Wendt ebc5c3dd64 avm2: Ensure that objects are only *ever* constructed at frame construction time.
This ensures that root movie classes see their children in their constructor.
2021-04-09 22:24:22 -07:00
desuwa e8de3a5a20 tests: Add tests for `MovieClip.hitTest()` with shapeflag and masks. 2021-04-09 22:11:07 -07:00
desuwa 4f90b9d161 avm1: Support masks when mouse-picking. 2021-04-09 22:11:07 -07:00
relrelb f8b589fc24 core: Fix panic in remove_invalid_jpeg_data
`data` could be shorter than 4 bytes.
2021-04-09 14:47:19 -07:00
desuwa 755409673b avm2: Add tests for set_width / set_height setting the scale to non-finite values. 2021-04-07 17:42:28 -06:00
desuwa 3c2d467a5f avm1: Add tests for set_width / set_height setting the scale to non-finite values. 2021-04-07 17:42:28 -06:00
desuwa fa1fde7083 core: Ensure the new scale is finite when setting the width / height of display objects. 2021-04-07 17:42:28 -06:00
desuwa b7bf8334b2 core: Run `update_drag` earlier in the update cycle. Fix #1511 2021-04-06 15:48:06 -06:00
relrelb 732efb27c4 render: Fix RGB15 bitmaps decoding
Each row should be padded to 2.
2021-04-05 20:10:35 -06:00
David Wendt 5d198952e8 chore: Fix merge conflict mis-resolution 2021-04-05 16:18:37 -06:00
David Wendt 5cba07111e avm2: Impl `LoaderInfo.parameters` 2021-04-05 16:18:37 -06:00
David Wendt de1b0d4d0c core: Add support for an explicit loader URL (though nothing sets it yet) and expose it in `LoaderInfo`. 2021-04-05 16:18:37 -06:00
David Wendt 4eee8be911 avm2: Impl `SWFVersion` enumeration 2021-04-05 16:18:37 -06:00
David Wendt 4c314a47cc avm2: Impl `LoaderInfo.bytes` 2021-04-05 16:18:37 -06:00
David Wendt a9328b228f avm2: Allow writing to `ByteArrayStorage` 2021-04-05 16:18:37 -06:00
David Wendt f61ea0b290 chore: Clippy beta/nightly compliance 2021-04-05 16:18:37 -06:00
David Wendt 46bf1b33c4 avm2: Impl `LoaderInfo.width` 2021-04-05 16:18:37 -06:00
David Wendt 28a1cb4308 avm2: Impl `LoaderInfo.url` 2021-04-05 16:18:37 -06:00
David Wendt 5941d6cf66 avm2: Impl `LoaderInfo.swfVersion` 2021-04-05 16:18:37 -06:00
David Wendt 6814fb9c22 avm2: Stub `LoaderInfo.isURLInaccessible` 2021-04-05 16:18:37 -06:00
David Wendt b6e31d8be5 avm2: Impl `LoaderInfo.height` 2021-04-05 16:18:37 -06:00
David Wendt e795da0358 avm2: Impl `LoaderInfo.frameRate` 2021-04-05 16:18:37 -06:00
David Wendt cbd167fd6c avm2: Stub `LoaderInfo.contentType` 2021-04-05 16:18:37 -06:00
David Wendt 76c563146d tests: Grab `contentType` on frame two 2021-04-05 16:18:37 -06:00
David Wendt 7b7d250ce9 avm2: This is a getter, not a method 2021-04-05 16:18:37 -06:00
David Wendt 2a01260f52 avm2: `bytesLoaded` etc reports the compressed file length, not the uncompressed length 2021-04-05 16:18:37 -06:00
David Wendt d0ad894f70 avm2: Impl `LoaderInfo.content` 2021-04-05 16:18:37 -06:00
David Wendt b4cb01d2c9 avm2: Impl `LoaderInfo.bytesTotal`, and `.bytesLoaded`
`bytesLoaded` is currently aliased to `bytesTotal` as we do not yet support streaming loads
2021-04-05 16:18:37 -06:00
David Wendt 55e448ebaa avm2: Impl `LoaderInfo.applicationDomain` 2021-04-05 16:18:37 -06:00
David Wendt c156cd2a16 tests: Add tests for properties that are only accessible on frame 2 2021-04-05 16:18:37 -06:00
David Wendt 12dcfe7c62 avm2: Impl `LoaderInfo.actionScriptVersion` 2021-04-05 16:18:37 -06:00
David Wendt 1a7b33a1af avm2: Impl `ActionScriptVersion` 2021-04-05 16:18:37 -06:00
David Wendt a492c4db4d tests: Add a test for `LoaderInfo`'s properties 2021-04-05 16:18:37 -06:00
David Wendt fc26c26d1d avm2: Allow access to `loaderInfo` on root movies 2021-04-05 16:18:37 -06:00
David Wendt 60c92dde49 avm2: Add Loader Info class & object type 2021-04-05 16:18:37 -06:00
CUB3D e2f124ee34 avm2: Rename current_position -> instruction_start 2021-04-03 16:37:47 -06:00
CUB3D c22ebc1de3 chore: Format on stable 2021-04-03 16:37:47 -06:00
CUB3D d5c2e5559b avm2: Don't mutably borrow for pos() 2021-04-03 16:37:47 -06:00
CUB3D 96f89a1643 avm2: Implement Op::LookupSwitch 2021-04-03 16:37:47 -06:00
relrelb 2d37f4d23e avm1: Migrate `search_prototype` to primitive prototype 2021-04-03 12:40:05 -06:00
relrelb bbded90697 avm1: Rename proto_value to proto 2021-04-01 17:06:07 -06:00
relrelb 89679bba65 avm1: Delete proto and set_proto
In favor of the new proto_value and set_proto_value pair.
In the next commit proto_value and set_proto_value will be renamed
to proto and set_proto.
2021-04-01 17:06:07 -06:00