From e890ad33e68a0395ba70d2410549fc54f701908c Mon Sep 17 00:00:00 2001 From: Mike Welsh Date: Thu, 15 Aug 2019 18:00:53 -0700 Subject: [PATCH] avm1: Allow String for ActionGotoFrame2 --- core/src/avm1.rs | 11 ++++++----- core/src/movie_clip.rs | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/core/src/avm1.rs b/core/src/avm1.rs index caac863f3..893fc4d85 100644 --- a/core/src/avm1.rs +++ b/core/src/avm1.rs @@ -557,11 +557,12 @@ impl Avm1 { Value::Number(frame) => { clip.goto_frame(scene_offset + (frame as u16) + 1, !set_playing) } - Value::String(_frame_label) => { - unimplemented!() - //if let Some(frame) = clip.frame_label_to_number(&frame_label, context) { - // clip.goto_frame(scene_offset + frame, !set_playing) - //} + Value::String(frame_label) => { + if let Some(frame) = clip.frame_label_to_number(&frame_label) { + clip.goto_frame(scene_offset + frame, !set_playing) + } else { + log::warn!("ActionGotoFrame2 failed: Movie clip {} does not contain frame label '{}'", clip.id(), frame_label); + } } _ => return Err("Expected frame number or label".into()), } diff --git a/core/src/movie_clip.rs b/core/src/movie_clip.rs index 5ca8f4272..a461b9374 100644 --- a/core/src/movie_clip.rs +++ b/core/src/movie_clip.rs @@ -207,7 +207,7 @@ impl<'gc> MovieClip<'gc> { self.variables.insert(var_name.to_owned(), value); } - fn id(&self) -> CharacterId { + pub fn id(&self) -> CharacterId { self.static_data.id }