[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash/server sprite_instance.cpp sprite_instance.h
From: |
Vitaly Alexeev |
Subject: |
[Gnash-commit] gnash/server sprite_instance.cpp sprite_instance.h |
Date: |
Wed, 23 Aug 2006 12:04:24 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Vitaly Alexeev <alexeev> 06/08/23 12:04:24
Modified files:
server : sprite_instance.cpp sprite_instance.h
Log message:
The second attempt to fix goto_frame() bug
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.38&r2=1.39
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.h?cvsroot=gnash&r1=1.17&r2=1.18
Patches:
Index: sprite_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -b -r1.38 -r1.39
--- sprite_instance.cpp 22 Aug 2006 19:15:45 -0000 1.38
+++ sprite_instance.cpp 23 Aug 2006 12:04:24 -0000 1.39
@@ -1236,6 +1236,10 @@
// Advance everything in the display list.
m_display_list.advance(delta_time);
+
+ execute_actions(&m_as_environment, m_goto_frame_action_list);
+ m_goto_frame_action_list.resize(0);
+
}
// _root movieclip advance
@@ -1470,7 +1474,6 @@
// IF_VERBOSE_DEBUG(log_msg("sprite::goto_frame(%d)\n",
target_frame_number));//xxxxx
// target_frame_number = iclamp(target_frame_number, 0,
m_def->get_frame_count() - 1);
-
// Macromedia Flash ignores goto_frame(bad_frame)
if (target_frame_number > m_def->get_frame_count() - 1 ||
target_frame_number == m_current_frame) // to prevent
infinitive recursion
@@ -1527,7 +1530,10 @@
// that already is executed.
// Macromedia Flash do goto_frame then run actions from this frame.
// We do too.
- do_actions();
+
+ m_goto_frame_action_list = m_action_list; //.assign(m_action_list.begin(),
m_action_list.end());
+ m_action_list.resize(0);
+
}
bool sprite_instance::goto_labeled_frame(const char* label)
Index: sprite_instance.h
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- sprite_instance.h 19 Aug 2006 15:01:54 -0000 1.17
+++ sprite_instance.h 23 Aug 2006 12:04:24 -0000 1.18
@@ -487,6 +487,7 @@
//std::vector<action_buffer*> m_action_list;
std::vector<action_buffer*> m_action_list;
+ std::vector<action_buffer*> m_goto_frame_action_list;
play_state m_play_state;
size_t m_current_frame;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash/server sprite_instance.cpp sprite_instance.h,
Vitaly Alexeev <=