diff --git a/core/src/avm2/events.rs b/core/src/avm2/events.rs index 1a62b5725..35e63ecbf 100644 --- a/core/src/avm2/events.rs +++ b/core/src/avm2/events.rs @@ -86,12 +86,12 @@ impl KeyModifiers { #[derive(Clone, Collect, Debug)] #[collect(no_drop)] pub enum EventData<'gc> { - Event, - FullScreenEvent { + Empty, + FullScreen { full_screen: bool, interactive: bool, }, - MouseEvent { + Mouse { local_x: f64, local_y: f64, movement_x: f64, @@ -112,7 +112,7 @@ impl<'gc> EventData<'gc> { ) -> Self { let local_pos = target.global_to_local(*context.mouse_position); - Self::MouseEvent { + Self::Mouse { local_x: local_pos.0.to_pixels(), local_y: local_pos.1.to_pixels(), movement_x: 0.0, //TODO: Implement mouselocking. diff --git a/core/src/avm2/globals/flash/events/mouseevent.rs b/core/src/avm2/globals/flash/events/mouseevent.rs index b84dc3266..37fe1e4aa 100644 --- a/core/src/avm2/globals/flash/events/mouseevent.rs +++ b/core/src/avm2/globals/flash/events/mouseevent.rs @@ -76,7 +76,7 @@ pub fn instance_init<'gc>( modifiers.insert(KeyModifiers::SHIFT); } - evt.set_event_data(EventData::MouseEvent { + evt.set_event_data(EventData::Mouse { local_x, local_y, movement_x: 0.0, @@ -109,7 +109,7 @@ pub fn alt_key<'gc>( ) -> Result, Error> { if let Some(this) = this { if let Some(evt) = this.as_event() { - if let EventData::MouseEvent { modifiers, .. } = evt.event_data() { + if let EventData::Mouse { modifiers, .. } = evt.event_data() { return Ok(modifiers.contains(KeyModifiers::ALT).into()); } } @@ -126,7 +126,7 @@ pub fn set_alt_key<'gc>( ) -> Result, Error> { if let Some(this) = this { if let Some(mut evt) = this.as_event_mut(activation.context.gc_context) { - if let EventData::MouseEvent { modifiers, .. } = evt.event_data_mut() { + if let EventData::Mouse { modifiers, .. } = evt.event_data_mut() { let value = args .get(0) .cloned() @@ -153,7 +153,7 @@ pub fn command_key<'gc>( ) -> Result, Error> { if let Some(this) = this { if let Some(evt) = this.as_event() { - if let EventData::MouseEvent { modifiers, .. } = evt.event_data() { + if let EventData::Mouse { modifiers, .. } = evt.event_data() { return Ok(modifiers.contains(KeyModifiers::COMMAND).into()); } } @@ -170,7 +170,7 @@ pub fn set_command_key<'gc>( ) -> Result, Error> { if let Some(this) = this { if let Some(mut evt) = this.as_event_mut(activation.context.gc_context) { - if let EventData::MouseEvent { modifiers, .. } = evt.event_data_mut() { + if let EventData::Mouse { modifiers, .. } = evt.event_data_mut() { let value = args .get(0) .cloned() @@ -197,7 +197,7 @@ pub fn control_key<'gc>( ) -> Result, Error> { if let Some(this) = this { if let Some(evt) = this.as_event() { - if let EventData::MouseEvent { modifiers, .. } = evt.event_data() { + if let EventData::Mouse { modifiers, .. } = evt.event_data() { return Ok(modifiers.contains(KeyModifiers::CTRL).into()); } } @@ -214,7 +214,7 @@ pub fn set_control_key<'gc>( ) -> Result, Error> { if let Some(this) = this { if let Some(mut evt) = this.as_event_mut(activation.context.gc_context) { - if let EventData::MouseEvent { modifiers, .. } = evt.event_data_mut() { + if let EventData::Mouse { modifiers, .. } = evt.event_data_mut() { let value = args .get(0) .cloned() @@ -241,7 +241,7 @@ pub fn shift_key<'gc>( ) -> Result, Error> { if let Some(this) = this { if let Some(evt) = this.as_event() { - if let EventData::MouseEvent { modifiers, .. } = evt.event_data() { + if let EventData::Mouse { modifiers, .. } = evt.event_data() { return Ok(modifiers.contains(KeyModifiers::SHIFT).into()); } } @@ -258,7 +258,7 @@ pub fn set_shift_key<'gc>( ) -> Result, Error> { if let Some(this) = this { if let Some(mut evt) = this.as_event_mut(activation.context.gc_context) { - if let EventData::MouseEvent { modifiers, .. } = evt.event_data_mut() { + if let EventData::Mouse { modifiers, .. } = evt.event_data_mut() { let value = args .get(0) .cloned() @@ -285,7 +285,7 @@ pub fn button_down<'gc>( ) -> Result, Error> { if let Some(this) = this { if let Some(evt) = this.as_event() { - if let EventData::MouseEvent { button_down, .. } = evt.event_data() { + if let EventData::Mouse { button_down, .. } = evt.event_data() { return Ok(Value::Bool(*button_down)); } } @@ -302,7 +302,7 @@ pub fn set_button_down<'gc>( ) -> Result, Error> { if let Some(this) = this { if let Some(mut evt) = this.as_event_mut(activation.context.gc_context) { - if let EventData::MouseEvent { button_down, .. } = evt.event_data_mut() { + if let EventData::Mouse { button_down, .. } = evt.event_data_mut() { let value = args .get(0) .cloned() @@ -325,7 +325,7 @@ pub fn delta<'gc>( ) -> Result, Error> { if let Some(this) = this { if let Some(evt) = this.as_event() { - if let EventData::MouseEvent { delta, .. } = evt.event_data() { + if let EventData::Mouse { delta, .. } = evt.event_data() { return Ok(Value::Integer(*delta)); } } @@ -342,7 +342,7 @@ pub fn set_delta<'gc>( ) -> Result, Error> { if let Some(this) = this { if let Some(mut evt) = this.as_event_mut(activation.context.gc_context) { - if let EventData::MouseEvent { delta, .. } = evt.event_data_mut() { + if let EventData::Mouse { delta, .. } = evt.event_data_mut() { let value = args .get(0) .cloned() @@ -374,7 +374,7 @@ pub fn local_x<'gc>( ) -> Result, Error> { if let Some(this) = this { if let Some(evt) = this.as_event() { - if let EventData::MouseEvent { local_x, .. } = evt.event_data() { + if let EventData::Mouse { local_x, .. } = evt.event_data() { return Ok(Value::Number(*local_x)); } } @@ -391,7 +391,7 @@ pub fn set_local_x<'gc>( ) -> Result, Error> { if let Some(this) = this { if let Some(mut evt) = this.as_event_mut(activation.context.gc_context) { - if let EventData::MouseEvent { local_x, .. } = evt.event_data_mut() { + if let EventData::Mouse { local_x, .. } = evt.event_data_mut() { let value = args .get(0) .cloned() @@ -414,7 +414,7 @@ pub fn local_y<'gc>( ) -> Result, Error> { if let Some(this) = this { if let Some(evt) = this.as_event() { - if let EventData::MouseEvent { local_y, .. } = evt.event_data() { + if let EventData::Mouse { local_y, .. } = evt.event_data() { return Ok(Value::Number(*local_y)); } } @@ -431,7 +431,7 @@ pub fn set_local_y<'gc>( ) -> Result, Error> { if let Some(this) = this { if let Some(mut evt) = this.as_event_mut(activation.context.gc_context) { - if let EventData::MouseEvent { local_y, .. } = evt.event_data_mut() { + if let EventData::Mouse { local_y, .. } = evt.event_data_mut() { let value = args .get(0) .cloned() @@ -454,7 +454,7 @@ pub fn movement_x<'gc>( ) -> Result, Error> { if let Some(this) = this { if let Some(evt) = this.as_event() { - if let EventData::MouseEvent { movement_x, .. } = evt.event_data() { + if let EventData::Mouse { movement_x, .. } = evt.event_data() { return Ok(Value::Number(*movement_x)); } } @@ -471,7 +471,7 @@ pub fn set_movement_x<'gc>( ) -> Result, Error> { if let Some(this) = this { if let Some(mut evt) = this.as_event_mut(activation.context.gc_context) { - if let EventData::MouseEvent { movement_x, .. } = evt.event_data_mut() { + if let EventData::Mouse { movement_x, .. } = evt.event_data_mut() { let value = args .get(0) .cloned() @@ -494,7 +494,7 @@ pub fn movement_y<'gc>( ) -> Result, Error> { if let Some(this) = this { if let Some(evt) = this.as_event() { - if let EventData::MouseEvent { movement_y, .. } = evt.event_data() { + if let EventData::Mouse { movement_y, .. } = evt.event_data() { return Ok(Value::Number(*movement_y)); } } @@ -511,7 +511,7 @@ pub fn set_movement_y<'gc>( ) -> Result, Error> { if let Some(this) = this { if let Some(mut evt) = this.as_event_mut(activation.context.gc_context) { - if let EventData::MouseEvent { movement_y, .. } = evt.event_data_mut() { + if let EventData::Mouse { movement_y, .. } = evt.event_data_mut() { let value = args .get(0) .cloned() @@ -534,7 +534,7 @@ pub fn related_object<'gc>( ) -> Result, Error> { if let Some(this) = this { if let Some(evt) = this.as_event() { - if let EventData::MouseEvent { related_object, .. } = evt.event_data() { + if let EventData::Mouse { related_object, .. } = evt.event_data() { return Ok(related_object .map(|o| o.as_displayobject().object2()) .unwrap_or(Value::Null)); @@ -553,7 +553,7 @@ pub fn set_related_object<'gc>( ) -> Result, Error> { if let Some(this) = this { if let Some(mut evt) = this.as_event_mut(activation.context.gc_context) { - if let EventData::MouseEvent { related_object, .. } = evt.event_data_mut() { + if let EventData::Mouse { related_object, .. } = evt.event_data_mut() { let value = args .get(0) .cloned() @@ -577,7 +577,7 @@ pub fn stage_x<'gc>( ) -> Result, Error> { if let Some(this) = this { if let Some(evt) = this.as_event() { - if let EventData::MouseEvent { local_x, .. } = evt.event_data() { + if let EventData::Mouse { local_x, .. } = evt.event_data() { if let Some(target) = evt.target().and_then(|t| t.as_display_object()) { let as_twips = Twips::from_pixels(*local_x); let xformed = target.local_to_global((as_twips, Twips::ZERO)).0; @@ -601,7 +601,7 @@ pub fn stage_y<'gc>( ) -> Result, Error> { if let Some(this) = this { if let Some(evt) = this.as_event() { - if let EventData::MouseEvent { local_y, .. } = evt.event_data() { + if let EventData::Mouse { local_y, .. } = evt.event_data() { if let Some(target) = evt.target().and_then(|t| t.as_display_object()) { let as_twips = Twips::from_pixels(*local_y); let xformed = target.local_to_global((Twips::ZERO, as_twips)).1; diff --git a/core/src/avm2/object/event_object.rs b/core/src/avm2/object/event_object.rs index 1484e1067..6cb4f86bc 100644 --- a/core/src/avm2/object/event_object.rs +++ b/core/src/avm2/object/event_object.rs @@ -22,7 +22,7 @@ pub fn event_allocator<'gc>( activation.context.gc_context, EventObjectData { base, - event: Event::new("", EventData::Event), + event: Event::new("", EventData::Empty), }, )) .into()) @@ -52,9 +52,9 @@ impl<'gc> EventObject<'gc> { event: Event<'gc>, ) -> Result, Error> { let class = match event.event_data() { - EventData::Event => activation.avm2().classes().event, - EventData::FullScreenEvent { .. } => activation.avm2().classes().fullscreenevent, - EventData::MouseEvent { .. } => activation.avm2().classes().mouseevent, + EventData::Empty => activation.avm2().classes().event, + EventData::FullScreen { .. } => activation.avm2().classes().fullscreenevent, + EventData::Mouse { .. } => activation.avm2().classes().mouseevent, }; let proto = class.prototype(); diff --git a/core/src/backend/audio.rs b/core/src/backend/audio.rs index 8f5951994..39630ecb5 100644 --- a/core/src/backend/audio.rs +++ b/core/src/backend/audio.rs @@ -314,7 +314,7 @@ impl<'gc> AudioManager<'gc> { action_queue.queue_actions( root, crate::context::ActionType::Event2 { - event: Avm2Event::new("soundComplete", Avm2EventData::Event), + event: Avm2Event::new("soundComplete", Avm2EventData::Empty), target: object.into(), }, false, diff --git a/core/src/display_object.rs b/core/src/display_object.rs index d41e1d720..6e62a920b 100644 --- a/core/src/display_object.rs +++ b/core/src/display_object.rs @@ -1026,7 +1026,7 @@ pub trait TDisplayObject<'gc>: /// Emit an `enterFrame` event on this DisplayObject and any children it /// may have. fn enter_frame(&self, context: &mut UpdateContext<'_, 'gc, '_>) { - let mut enter_frame_evt = Avm2Event::new("enterFrame", Avm2EventData::Event); + let mut enter_frame_evt = Avm2Event::new("enterFrame", Avm2EventData::Empty); enter_frame_evt.set_bubbles(false); enter_frame_evt.set_cancelable(false); @@ -1072,7 +1072,7 @@ pub trait TDisplayObject<'gc>: /// Emit a `frameConstructed` event on this DisplayObject and any children it /// may have. fn frame_constructed(&self, context: &mut UpdateContext<'_, 'gc, '_>) { - let mut frame_constructed_evt = Avm2Event::new("frameConstructed", Avm2EventData::Event); + let mut frame_constructed_evt = Avm2Event::new("frameConstructed", Avm2EventData::Empty); frame_constructed_evt.set_bubbles(false); frame_constructed_evt.set_cancelable(false); @@ -1097,7 +1097,7 @@ pub trait TDisplayObject<'gc>: /// Emit an `exitFrame` broadcast event. fn exit_frame(&self, context: &mut UpdateContext<'_, 'gc, '_>) { - let mut exit_frame_evt = Avm2Event::new("exitFrame", Avm2EventData::Event); + let mut exit_frame_evt = Avm2Event::new("exitFrame", Avm2EventData::Empty); exit_frame_evt.set_bubbles(false); exit_frame_evt.set_cancelable(false); diff --git a/core/src/display_object/container.rs b/core/src/display_object/container.rs index f270280d4..a6fa5abab 100644 --- a/core/src/display_object/container.rs +++ b/core/src/display_object/container.rs @@ -22,7 +22,7 @@ pub fn dispatch_removed_from_stage_event<'gc>( context: &mut UpdateContext<'_, 'gc, '_>, ) { if let Avm2Value::Object(object) = child.object2() { - let mut removed_evt = Avm2Event::new("removedFromStage", Avm2EventData::Event); + let mut removed_evt = Avm2Event::new("removedFromStage", Avm2EventData::Empty); removed_evt.set_bubbles(false); removed_evt.set_cancelable(false); @@ -45,7 +45,7 @@ pub fn dispatch_removed_event<'gc>( context: &mut UpdateContext<'_, 'gc, '_>, ) { if let Avm2Value::Object(object) = child.object2() { - let mut removed_evt = Avm2Event::new("removed", Avm2EventData::Event); + let mut removed_evt = Avm2Event::new("removed", Avm2EventData::Empty); removed_evt.set_bubbles(true); removed_evt.set_cancelable(false); @@ -65,7 +65,7 @@ pub fn dispatch_added_to_stage_event_only<'gc>( context: &mut UpdateContext<'_, 'gc, '_>, ) { if let Avm2Value::Object(object) = child.object2() { - let mut removed_evt = Avm2Event::new("addedToStage", Avm2EventData::Event); + let mut removed_evt = Avm2Event::new("addedToStage", Avm2EventData::Empty); removed_evt.set_bubbles(false); removed_evt.set_cancelable(false); @@ -97,7 +97,7 @@ pub fn dispatch_added_event_only<'gc>( context: &mut UpdateContext<'_, 'gc, '_>, ) { if let Avm2Value::Object(object) = child.object2() { - let mut removed_evt = Avm2Event::new("added", Avm2EventData::Event); + let mut removed_evt = Avm2Event::new("added", Avm2EventData::Empty); removed_evt.set_bubbles(true); removed_evt.set_cancelable(false); diff --git a/core/src/display_object/stage.rs b/core/src/display_object/stage.rs index 800041f96..5e220e50a 100644 --- a/core/src/display_object/stage.rs +++ b/core/src/display_object/stage.rs @@ -560,7 +560,7 @@ impl<'gc> Stage<'gc> { &[], ); } else if let Avm2Value::Object(stage) = self.object2() { - let mut resized_event = Avm2Event::new("resize", Avm2EventData::Event); + let mut resized_event = Avm2Event::new("resize", Avm2EventData::Empty); resized_event.set_bubbles(false); resized_event.set_cancelable(false); if let Err(e) = crate::avm2::Avm2::dispatch_event(context, resized_event, stage) { @@ -584,7 +584,7 @@ impl<'gc> Stage<'gc> { } else if let Avm2Value::Object(stage) = self.object2() { let mut full_screen_event = Avm2Event::new( "fullScreen", - Avm2EventData::FullScreenEvent { + Avm2EventData::FullScreen { full_screen: self.is_fullscreen(), interactive: true, },