sleepycatcoding
43ce490c0f
chore: fmt
2023-08-02 22:16:16 +02:00
sleepycatcoding
3fd53b8ca1
avm2: Implement connect() special-case
2023-08-02 22:16:16 +02:00
sleepycatcoding
85db727f17
avm2: Implement XMLSocket
2023-08-02 22:16:16 +02:00
Nathan Adams
ab27c8b4ee
render: Calculate correct bounds for shapes containing curves
2023-08-02 18:43:33 +02:00
Nathan Adams
020dc34b59
avm2: Throw errors in theoretically unreachable scenario in XmlDocument
2023-08-02 15:55:08 +02:00
Nathan Adams
3834462abf
avm2: Hook up XMLDocument.ignoreWhite
2023-08-02 15:55:08 +02:00
Nathan Adams
6f2420d983
avm2: Implement ignoreComments/ignoreProcessingInstructions/ignoreWhitespace
2023-08-02 15:55:08 +02:00
Nathan Adams
da7ee01730
avm2: Implement XML.settings/XML.setSettings/XML.defaultSettings, and add appropriate properties to XML class
2023-08-02 15:55:08 +02:00
Nathan Adams
10e59067d0
avm2: Rewrote XMLDocument/XMLNode to be more correct
2023-08-02 15:55:08 +02:00
Lord-McSweeney
84e4215ece
avm2+tests: Various Vector-related fixes; activate now-passing Vector tests
2023-08-02 15:26:53 +02:00
renovate[bot]
477ff400a7
chore(deps): lock file maintenance rust dependencies
2023-08-02 13:36:13 +02:00
TÖRÖK Attila
515df16a38
debug_ui: Indent non-expandable items in object- and display trees
2023-08-02 10:32:22 +02:00
relrelb
006393c581
chore: Appease nightly clippy
2023-08-01 22:44:00 +03:00
Aaron Hill
66eadc8f7c
avm2: Implement Loader.uncaughtErrorEvents
...
This can just delegate to LoaderInfo
2023-07-31 21:29:02 -04:00
Adrian Wielgosik
2621dd78ee
avm2: Vector doesn't support propertyIsEnumerable
2023-08-01 00:13:46 +02:00
Adrian Wielgosik
b61e92ee12
avm2: Fix property_is_enumerable on arrays
2023-08-01 00:13:46 +02:00
Aaron Hill
1107851d15
core: Fix debug_ui mouse search on HiDPI display
...
We need to scale the mouse position that egui gives us
by the scale factor, in order to get in the format
expected by our inverse view matrix
2023-07-31 17:38:20 -04:00
sleepycatcoding
2ba3b90754
core: Redesign socket data passing
...
This allows to make socket tests more reliable
2023-07-31 22:32:03 +02:00
Abiel Deneke
6552b4e132
avm2: Implement `Matrix3D.prependScale`
2023-07-31 17:00:44 +02:00
TÖRÖK Attila
a023ca605d
core: Don't divide by zero in BitmapData::perlinNoise() if baseX or baseY is 0.0
2023-07-31 16:41:01 +02:00
Tom Schuster
8fa6a0d249
avm2: Make XMLList set_property_local (aka [[put]]) less error happy
...
This doesn't really enable any new functionality, but prevents throwing
Errors for things that are allowed in Flash/ECMA-357.
2023-07-30 11:41:11 +02:00
Tom Schuster
f237aa1da2
avm2: Implement XMLNode.nodeValue
2023-07-30 11:14:00 +02:00
Aaron Hill
4406a70fc9
avm2: Enable Vector.<ObjectSubclass> serialization tests
...
This also fixes a minor bug (we should always deserialize
to a `Vector.<Object>`, not a `Vector.<*>`)
2023-07-29 15:30:24 -04:00
Adrian Wielgosik
86ba4fef9b
avm2: Add void type
2023-07-29 19:57:44 +02:00
Nathan Adams
f9be8be99e
avm2: Make 'new Math()' and 'Math(value)' throw errors
2023-07-29 15:24:30 +02:00
Lord-McSweeney
bcd96f5b40
avm2: Stub flash.text.engine:EastAsianJustifier
2023-07-29 10:48:30 +02:00
Lord-McSweeney
6a96a14098
avm2: Improve flash.text.engine stub
2023-07-29 10:48:30 +02:00
Adrian Wielgosik
b68ac23cbb
avm2: Remove redundant check for Vector<undefined>
2023-07-28 23:42:04 +02:00
Adrian Wielgosik
30d4026227
avm2: Expand comments
2023-07-28 23:42:04 +02:00
Adrian Wielgosik
2352c200e0
chore: clippy
2023-07-28 23:42:04 +02:00
Adrian Wielgosik
22d7ffdefc
avm2: fix Vector null display
2023-07-28 23:42:04 +02:00
Adrian Wielgosik
b8a5b9ede1
avm2: Refactor VectorStorage value_type to accurately reflect stored <T>.
2023-07-28 23:42:04 +02:00
Adrian Wielgosik
733e84957d
avm2: Do not panic on Vector.<1>
2023-07-28 23:42:04 +02:00
Adrian Wielgosik
f504e9d0b4
avm2: Refactor Vector.<T> class creation
2023-07-28 23:42:04 +02:00
Nathan Adams
d1703610a9
avm2: Temporarily limit arrays to 1<<28
2023-07-28 22:22:47 +02:00
Marc Bornand
c8e4ec98f0
avm2: Add PressAndTapGestureEvent
2023-07-28 20:50:40 +02:00
Marc Bornand
f61c1f8713
avm2: Add TransfromGestureEvent
2023-07-28 20:50:40 +02:00
Lord-McSweeney
cf5c02ca1b
avm2+tests: Fully implement XML.appendChild, add a test
2023-07-28 15:21:38 +02:00
Lord-McSweeney
e542cedbb2
avm2: Special case Number.toString for Infinity and NaN
...
This avoids getting into an infinite loop.
2023-07-28 13:11:15 +02:00
sleepycatcoding
02d815e86b
avm2: Implement XML addition operations
2023-07-27 23:39:06 +02:00
Nathan Adams
70fb674d8b
avm2: Implement correct errors for write_bytes with offset+length > u32::MAX
2023-07-27 19:47:16 +02:00
Nathan Adams
3b6068bbe7
avm2: Change EofError to ByteArrayError
2023-07-27 19:47:16 +02:00
Nathan Adams
f6d2620605
avm2: Throw correct error when setting bytearray.endian to wrong value
2023-07-27 19:47:16 +02:00
Nathan Adams
1bbefbe472
avm2: Throw correct error when writing a too-large string to ByteArray
2023-07-27 19:47:16 +02:00
Jaroslav Bělák
08ab99f2ed
core: Implement ToXMLString for Attribute and Comment node kind
2023-07-27 15:04:24 +02:00
Nathan Adams
cb23067382
avm2: Implement UninitializedError
2023-07-27 09:49:47 +02:00
Nathan Adams
5fc37c7e13
avm2: Implement call handler for Error
2023-07-27 09:49:47 +02:00
Aaron Hill
583caa3389
avm2: Implement DisplayObject.blendShader ( #12238 )
2023-07-26 23:25:26 +00:00
Aaron Hill
99ed2c6d4a
avm2: Fix handling of default domain memory ( #12308 )
2023-07-26 18:26:26 +00:00
Nathan Adams
55906c22fa
desktop: Change 'socket mode' text to 'TCP Connections'
2023-07-26 19:44:39 +02:00
Nathan Adams
0f4edf9574
avm2: Implement fscommand()
2023-07-26 17:00:15 +02:00
Nathan Adams
1a0a82d898
core: Move fscommand execution outside of ExternalInterfaceProvider, so it can be implemented without causing ExternalInterface.available to become true
2023-07-26 17:00:15 +02:00
sleepycatcoding
c8b6a1cb4c
core: Send data directly to socket task
...
This improves socket latency. Sometimes the ping is better in Ruffle than
in Flash Player!
2023-07-26 14:01:03 +02:00
sleepycatcoding
f3917c8c62
core: Run async tasks until stalled
...
Previously it used run which tries to run until completion, but we can't do
that if we are testing socket behavior.
2023-07-26 14:01:03 +02:00
TÖRÖK Attila
365f6bee6e
avm2: Clamp filter quality to (0, 15) instead of (1, 15)
2023-07-26 13:03:11 +02:00
Aaron Hill
a91b0cf5cb
avm2: Don't error in DisplayObject.removeChildren when `to` is max
...
Our previous special-case wasn't broad enough
2023-07-25 21:44:23 -04:00
Aaron Hill
3c64e8e249
avm2: Implement AMF Vector serialization/deserialization
...
Some of the tests are currently disabled because (separate from this PR)
we can't actually run `toString()` on a Vector.<Object>, due to our
broken vector handling.
2023-07-25 09:35:50 -04:00
Lord-McSweeney
38b4357f59
avm1: Implement Button.filters
2023-07-25 14:20:36 +02:00
CUB3D
7346f9f6cb
avm1: Differentiate between clips with no name set and empty string names
2023-07-25 08:25:37 +02:00
renovate[bot]
3e63a88c34
chore(deps): lock file maintenance rust dependencies
2023-07-25 08:23:28 +03:00
TÖRÖK Attila
cee19c5735
core: Fix dirty region set by bitmap::set_pixel
2023-07-25 00:38:08 -04:00
sleepycatcoding
f2c9237ea1
avm2: Allow setting prototype to undefined ( #12282 )
...
* avm2+tests: Allow setting prototype to undefined
This is used internally by Adobe Flex in many places. Also add test.
* avm2: Set prototype when constructing a Function with null prototype
* tests: Expand prototype_set_null test
* chore: fmt
2023-07-24 20:41:38 +00:00
Aaron Hill
7a5c729d63
core: Use a slightly better DefineFont4 stub
...
This makes a Character available for a SymbolClass to link with
2023-07-24 14:58:01 -04:00
Nathan Adams
92e3e44453
avm1: Reverse iteration when applying filters - fixes #12272
2023-07-24 13:44:02 +02:00
Aaron Hill
8941a0bb79
avm2: Clamp ByteArray.position when ByteArray.length is set
...
Note that ByteArray.position can manually be set out-of-range
afterwards.
2023-07-23 14:51:30 -04:00
Aaron Hill
005fdffd05
avm2: Correctly set fields on ShaderInput and ShaderParameter
...
The special meta key `defaultValue` should be used to set
the default `value` field. Also, `index` is the position
within *just* the image or texture params, not within
all of the params.
2023-07-23 13:52:26 -04:00
sleepycatcoding
6c4f707e36
chore: fmt
2023-07-23 09:13:01 +02:00
sleepycatcoding
48fcc5ffe9
avm2: Check is_connected in flush() and close()
2023-07-23 09:13:01 +02:00
sleepycatcoding
5218bbf32f
chore: fmt
2023-07-23 09:13:01 +02:00
sleepycatcoding
adeb50a3d7
avm2: Check if socket is open before trying to read or write
2023-07-23 09:13:01 +02:00
sleepycatcoding
74b66fdd73
core+desktop: Rename SocketBehavior to SocketMode
...
Also change command line flag from --socket to --socket-mode
2023-07-23 09:13:01 +02:00
sleepycatcoding
2c79d22578
avm2: Do not panic when SocketHandle does not exist
2023-07-23 09:13:01 +02:00
sleepycatcoding
68fd0ce73c
core: Differentiate between TimedOut and Failed connection
2023-07-23 09:13:01 +02:00
sleepycatcoding
ac1badc64f
core: remove Option for connection timeout
2023-07-23 09:13:01 +02:00
sleepycatcoding
5144162e68
avm2: Set timeout in AS3 constructor
2023-07-23 09:13:01 +02:00
sleepycatcoding
568d8dfe11
core: Fix panic when socket is closed before connecting
2023-07-23 09:13:01 +02:00
sleepycatcoding
6e6205d20d
core: Use timeout in Navigator::connect_socket
2023-07-23 09:13:01 +02:00
sleepycatcoding
f54e0e9097
avm2: Make get/setTimeout native
2023-07-23 09:13:01 +02:00
sleepycatcoding
a3a49335eb
chore: Fmt
2023-07-23 09:13:01 +02:00
sleepycatcoding
6c3b6e5109
avm2: Implement read/writeObject()
2023-07-23 09:13:01 +02:00
sleepycatcoding
ea3d6e2a5c
avm2: Implement set/getobjectEncoding()
2023-07-23 09:13:01 +02:00
sleepycatcoding
9de2912765
avm2: Implement read/writeMultiByte()
2023-07-23 09:13:01 +02:00
sleepycatcoding
5ed9dbc16b
avm2: Implement read/writeUTF
2023-07-23 09:13:01 +02:00
sleepycatcoding
6ca6bb1d78
avm2: Implement read/writeUTFBytes
2023-07-23 09:13:01 +02:00
sleepycatcoding
ad51041457
avm2: Implement readBytes()
2023-07-23 09:13:01 +02:00
sleepycatcoding
e1a82570fe
avm2: small cleanup
2023-07-23 09:13:01 +02:00
sleepycatcoding
22eb150756
desktop: add SocketBehavior and host whitelist
...
This adds a way to modify socket behavior to restrict, ask, or allow all
connections. Also adds a whitelist which can be used to allow specific hosts
without enabiling ask or allow all behaviors.
2023-07-23 09:13:01 +02:00
sleepycatcoding
4c540c9f17
avm2: Implement read/writeBoolean()
2023-07-23 09:13:01 +02:00
sleepycatcoding
45d3e141f8
avm2: Improve IOErrorEvent for Socket
...
IOErrorEvent now uses a error message and ID.
2023-07-23 09:13:01 +02:00
sleepycatcoding
0699c34881
chore: Fmt
2023-07-23 09:13:01 +02:00
sleepycatcoding
676516a99c
core: use get instead of get_mut
...
We did not need mutability for this.
2023-07-23 09:13:01 +02:00
sleepycatcoding
ea7264eab5
core: Dispatch IOErrorEvent when connection fails
2023-07-23 09:13:01 +02:00
sleepycatcoding
d1a17ebeb1
chore: Fix clippy lint
2023-07-23 09:13:01 +02:00
sleepycatcoding
5080c19d11
core: Make socket connection async
...
Changes socket system to use asynchronous means to not generate lagspikes
when connecting to servers.
2023-07-23 09:13:01 +02:00
sleepycatcoding
2da61bc57f
avm2: Some nits
...
Use ProgressEvent for socketData event instead of a bare event.
Remove unwraps and use correct errors/exceptions.
Correct name in make_error_2008 call.
Use expect() for getting ByteArray instead of an error.
Correct some get_*() calls
2023-07-23 09:13:01 +02:00
sleepycatcoding
fc06dcbed6
avm2: Add SecurityError to globals
2023-07-23 09:13:01 +02:00
sleepycatcoding
f64ca6aa85
avm2: Use ParametersExt
2023-07-23 09:13:01 +02:00
sleepycatcoding
6da0dbc287
avm2: Implement close()
2023-07-23 09:13:01 +02:00
sleepycatcoding
dea9797891
avm2: Implement many primitive write methods
2023-07-23 09:13:01 +02:00
sleepycatcoding
238bc6784c
avm2: Implement many primitive read methods
2023-07-23 09:13:01 +02:00
sleepycatcoding
bca70dd102
core: Add read bytes to read buffer
2023-07-23 09:13:01 +02:00
sleepycatcoding
2dcc3e7930
avm2: Add read_buffer and implement bytesAvailable
2023-07-23 09:13:01 +02:00
sleepycatcoding
487d881793
avm2: Implement flush()
2023-07-23 09:13:01 +02:00
sleepycatcoding
3dfb6e3bb1
avm2: Implement writeByte and writeBytes
2023-07-23 09:13:01 +02:00
sleepycatcoding
60de72fc3e
avm2: Implement endian() methods
2023-07-23 09:13:01 +02:00
sleepycatcoding
d6f6d432fa
avm2: Implement connect and connected
2023-07-23 09:13:01 +02:00
sleepycatcoding
c22f97445a
avm2: Add SocketObject
2023-07-23 09:13:01 +02:00
sleepycatcoding
ad72c56cb4
core: Implement socket backend
2023-07-23 09:13:01 +02:00
Nathan Adams
4219f39668
avm2: Throw proper error when setting name of timeline objects
2023-07-23 01:18:53 +02:00
Aaron Hill
5ee6218ab4
avm2: Fix `super_vtable` in `describeType`
...
This more closely matches what avmplus does.
2023-07-22 17:50:10 -04:00
Nathan Adams
586c3bebf6
core: Remove unsupported content warning
2023-07-22 23:08:42 +02:00
Abiel Deneke
8f6e9d8f63
avm2: Don't change the length of a fixed output Vector
2023-07-22 16:11:08 -04:00
Nathan Adams
d1cfb1b8d1
avm2: Implement delete_property_local for XMLList
2023-07-22 18:24:08 +02:00
nosamu
02476f70dd
avm2: Stub GameInputDevice, LocaleID, NumberFormatter, and NumberParseResult
2023-07-21 22:51:13 -04:00
Nathan Adams
4410d666ed
avm2: Implement Bitmap.pixelSnapping
2023-07-22 00:34:17 +02:00
Nathan Adams
289f73c85f
core: Add pixel snapping (default auto) to Bitmaps, and force it for cacheAsBitmap
2023-07-22 00:34:17 +02:00
Lord-McSweeney
68c5024f21
tests: Add test for LocalConnection.send
2023-07-22 00:00:24 +02:00
Lord-McSweeney
7b21815660
avm2: Improve LocalConnection.send stub
2023-07-22 00:00:24 +02:00
Nathan Adams
98ce792a5b
avm1: Implement BitmapData.applyFilter()
2023-07-21 21:43:54 +02:00
Aaron Hill
f328797d04
avm2: Fix bugs with describeType interfaces and methods
...
Interfaces should only be listed when calling describeType
with a class instance (not with a `Class` object).
Additionally, AS3 methods can actually be displayed under
some circumstances. This is due to weird legacy behavior
that avmplus implements. A full fix requirs us to implement
namespace versioning, but we can get closer by special-casing
playerglobals (which is special-cased by namespace versioning
anyway).
2023-07-21 15:23:56 -04:00
nosamu
2ee127ccb6
core: Fix cacheAsBitmap size limit & remove print statement
2023-07-21 09:22:12 +02:00
Nathan Adams
67c33ef9c3
core: Disable cacheAsBitmap for swfs that are too large (depending on swf version)
2023-07-20 23:19:20 +02:00
Nathan Adams
b201e19cc7
wgpu: Don't create an extra fresh texture for applying filters to a CAB
2023-07-20 23:19:20 +02:00
Nathan Adams
e66f2397b5
core: Avoid some work in render_base if we're not cacheAsBitmap
2023-07-20 23:19:20 +02:00
Nathan Adams
f030680084
core: Don't invalidate self on changing blend mode
2023-07-20 23:19:20 +02:00
Nathan Adams
b6a8e0a471
core: Don't invalidate self on changing visibility
2023-07-20 23:19:20 +02:00
Nathan Adams
1fd8ca7bad
core: Reduce the amount of false-invalidations
2023-07-20 23:19:20 +02:00
Nathan Adams
400ff32723
wgpu: Implement a naive DisplacementMap filter
2023-07-20 12:41:30 +02:00
Lord-McSweeney
7c33932f53
core: Allow NetStream script data to call any functions
2023-07-19 17:26:24 -06:00
Lord-McSweeney
42c1facf55
avm1+tests: Implement onMetaData event for AVM1, fix netStatus test for AVM2
2023-07-19 17:26:24 -06:00
Lord-McSweeney
14b78aafcc
avm2: Support onCuePoint and onMetadata NetStream.client function handlers
2023-07-19 17:26:24 -06:00
Aaron Hill
715abd8985
avm2: Use invisible mask descendants for mouse picking and rendering
...
The 'DisplayObject.visible' flag seems to be ignored for mask objects
(and their descendants) - mouse picking still takes them into account,
and they get rendered as part of the mask.
This commit changes display object rendering and AVM2 mouse picking
to ignore DisplayObject.visibility when dealing with mask objects/
descendants.
2023-07-19 23:18:28 +02:00
CUB3D
771f568509
core: Trying to access a named shape should resolve to the parent as they have no object representation
2023-07-19 22:32:42 +02:00
sleepycatcoding
4c1c3cc105
avm2+tests: Allow concating XMLLists; add test
2023-07-19 16:03:10 -04:00
Lord-McSweeney
5975714f75
avm2+swf+tests: Store metadata on Traits and VTable, report metadata in describeType; parse ABC metadata key-value pairs correctly; add test
2023-07-19 16:24:23 +02:00
Nathan Adams
b8081ac609
core: Use actual bounding box of curves instead of an approximation
2023-07-19 02:09:12 +02:00
Nathan Adams
00ea6180dc
avm2: Default line caps should be Round, not None
2023-07-19 02:09:12 +02:00
Aaron Hill
0fa16dfe69
avm2: Remove redundant 'depth' variable in XML parsing
2023-07-19 00:20:14 +02:00
MartySVK
6667ea1d94
avm2: Stub flash.globalization.CurrencyFormatter.format ( #12108 )
...
* fixes Rogue Soul 2
* return after stub_method
2023-07-17 21:00:43 +00:00
relrelb
151ad97686
avm1: Migrate `SharedObject` to `NativeObject`
2023-07-17 11:34:06 +03:00
renovate[bot]
268403faad
chore(deps): lock file maintenance rust dependencies
2023-07-17 09:55:56 +03:00
nosamu
de9ea9571b
avm2: Implement SharedObject.size
2023-07-17 00:53:52 +02:00
nosamu
fea0df192f
avm1: Implement SharedObject.getSize()
2023-07-17 00:53:52 +02:00
MrCheeze
08e13b5056
core: Make underlines the same color as their text
2023-07-17 00:32:46 +02:00
Kornelius Rohrschneider
ac5b3d9b2f
core: Move use_new_invalid_bounds to Avm1 & Add documentation
...
The variable use_new_invalid_bounds has been moved from the
UpdateContext and the Player to the Avm1 struct because it is only used
for AVM1 code. A getter method and an activator method setting it to
true have been added as well.
The get_bounds function, which uses the variable, has been adapted to
use the getter and the activator.
Additionally, documentation has been added and improved.
The MovieClip now contains documentation about all MovieClip states and
the use_new_invalid_bounds documentation has been extended to explain
the logic of how the variable is set and used.
2023-07-17 00:08:02 +02:00
Kornelius Rohrschneider
48192efe8a
core: Remove MovieClip::oldest_parent_swf_version
...
The MovieClip variable oldest_parent_swf_version and its getter method
have been removed because they were unnecessary, as the UpdateContext
already provides the root movie.
The call of the getter method has been replaced by
activation.context.swf.version().
2023-07-17 00:08:02 +02:00
Kornelius Rohrschneider
a0493c770e
core: Implement suggested changes to PR
...
The suggested changes in the feedback to the pull request have been
implemented.
Therefore, this commit consists of multiple smaller changes:
- The unload_movie method has been renamed to avm1_unload_movie.
- The movieclip_default_state test now doesn't test
getTextSnapshot().getCount() because the underlying methods haven't
been implemented in AVM1 yet.
This should be reverted when they have been implemented or stubbed in
AVM1.
2023-07-17 00:08:02 +02:00
Kornelius Rohrschneider
c74a43e643
core: Add MovieClip unloaded state
...
An unload_movie method has been added to the MovieClip. It unloads the
MovieClip, which means that one frame after it has been called,
avm1_unload and the new transform_to_unloaded_state method get called
and the MovieClip enters the unloaded state in which some attributes
have certain values.
To do this, it creates and spawns a future which calls avm1_unload and
transform_to_unloaded_state (which actually makes the MovieClip enter
the unloaded state).
It uses the new MovieUnloader (which has been added to the Loader enum)
to pass the MovieClip to the asynchronous code. The MovieUnloader saves
a handle and the target clip, and the asynchronous code retrieves it
from the LoadManager.
unload_movie is now called when a MovieClip should be unloaded.
TODOs have been added, describing to check whether other avm1_unload
calls also need to be delayed by one frame and whether unload_movie also
needs to be called in other places.
Additionally, a spelling mistake has been corrected.
2023-07-17 00:08:02 +02:00
Kornelius Rohrschneider
d2ac9d32b4
core: Correct MovieClip default state
...
Previously, the MovieClip default state contained wrong values for
opaqueBackground, transform.pixelBounds and getRect & getBounds with
another default MovieClip as the parameter.
This has been corrected; the calculation of these values has been fixed.
To do that, a use_new_invalid_bounds_value variable has been added to
the UpdateContext and the Player (from which the UpdateContext is
created).
Additionally, an oldest_parent_swf_version variable has been added to
the MovieClip with a getter method for it. It is calculated and saved on
demand in the getter.
These variables are retrieved in the get_bounds function and used to set
use_new_invalid_bounds_value and to calculate the correct bounds.
Ruffle now uses the correct MovieClip default state.
2023-07-17 00:08:02 +02:00
Kornelius Rohrschneider
96e0f445bb
core: Correct MovieClip image state
...
The set_cur_preload_frame and set_current_frame methods have been added
to the MovieClip.
If the Loader now loads an image, these methods are called to set the
MovieClip image state correctly.
Additionally, load_error_swf now uses set_cur_preload_frame instead of
the removed movie_not_available method.
2023-07-17 00:08:02 +02:00