gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog server/button_character_instanc...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/button_character_instanc...
Date: Thu, 17 Jan 2008 11:09:58 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  08/01/17 11:09:58

Modified files:
        .              : ChangeLog 
        server         : button_character_instance.cpp 
                         button_character_instance.h 

Log message:
        drop the :advance() method, no more needed;
        reduce ::display() to a few lines.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5422&r2=1.5423
http://cvs.savannah.gnu.org/viewcvs/gnash/server/button_character_instance.cpp?cvsroot=gnash&r1=1.73&r2=1.74
http://cvs.savannah.gnu.org/viewcvs/gnash/server/button_character_instance.h?cvsroot=gnash&r1=1.31&r2=1.32

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5422
retrieving revision 1.5423
diff -u -b -r1.5422 -r1.5423
--- ChangeLog   17 Jan 2008 08:56:56 -0000      1.5422
+++ ChangeLog   17 Jan 2008 11:09:57 -0000      1.5423
@@ -1,5 +1,10 @@
 2008-01-17 Sandro Santilli <address@hidden>
 
+       * server/button_character_instance.{cpp,h}: drop the :advance()
+         method, no more needed; reduce ::display() to a few lines.
+
+2008-01-17 Sandro Santilli <address@hidden>
+
        * server/button_character_instance.{cpp,h}: drop dead enum,
          add HIT state to e_mouse_state enum, rework
          get_topmost_mouse_entity to use pointInVisibleShape and

Index: server/button_character_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/button_character_instance.cpp,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -b -r1.73 -r1.74
--- server/button_character_instance.cpp        17 Jan 2008 09:53:31 -0000      
1.73
+++ server/button_character_instance.cpp        17 Jan 2008 11:09:57 -0000      
1.74
@@ -171,6 +171,11 @@
 typedef button_character_instance Button;
 typedef boost::intrusive_ptr<Button> ButtonPtr;
 
+static bool charDepthLessThen(const character* ch1, const character* ch2) 
+{
+       return ch1->get_depth() < ch2->get_depth();
+}
+
 static void
 attachButtonInterface(as_object& o)
 {
@@ -368,67 +373,15 @@
 }
 
 void
-button_character_instance::advance()
-{
-//                     printf("%s:\n", __PRETTY_FUNCTION__); // FIXME:
-
-       matrix  mat = get_world_matrix();
-
-       // Advance our relevant characters.
-       {for (size_t i = 0; i < m_def->m_button_records.size(); i++)
-       {
-               button_record&  rec = m_def->m_button_records[i];
-               assert(m_record_character.size() > i);
-               if (m_record_character[i] == NULL)
-               {
-                       continue;
-               }
-
-               // Matrix
-               matrix sub_matrix = mat;
-               sub_matrix.concatenate(rec.m_button_matrix);
-
-               // Advance characters that are activated by the new mouse state
-               if (((m_mouse_state == UP) && (rec.m_up)) ||
-                   ((m_mouse_state == DOWN) && (rec.m_down)) ||
-                   ((m_mouse_state == OVER) && (rec.m_over)))
-               {
-                       m_record_character[i]->advance();
-               }
-       }}
-}
-
-
-void
 button_character_instance::display()
 {
 //                     GNASH_REPORT_FUNCTION;
 
-  // repeat for each layer to ensure correct depths
-  for (int layer=m_def->m_min_layer; layer<=m_def->m_max_layer; layer++) 
-  {   
+       std::vector<character*> actChars;
+       get_active_characters(actChars);
+       std::sort(actChars.begin(), actChars.end(), charDepthLessThen);
 
-       for (size_t i = 0; i < m_def->m_button_records.size(); i++)
-       {
-               button_record&  rec = m_def->m_button_records[i];
-               assert(m_record_character.size() > i);
-               if (m_record_character[i] == NULL)
-               {
-                       continue;
-               }
-               if (m_def->m_button_records[i].m_button_layer != layer)
-               {
-                       continue;
-               }
-               if ((m_mouse_state == UP && rec.m_up)
-                   || (m_mouse_state == DOWN && rec.m_down)
-                   || (m_mouse_state == OVER && rec.m_over))
-               {
-                               matrix  mat = get_world_matrix();
-                               m_record_character[i]->display();
-               }
-       } // for button record
-  } // for layer
+       std::for_each(actChars.begin(), actChars.end(), 
std::mem_fun(&character::display)); 
 
        clear_invalidated();
        do_display_callback();
@@ -812,7 +765,7 @@
 
        // Register this button instance as a live character
        // do we need this???
-       _vm.getRoot().addLiveChar(this);
+       //_vm.getRoot().addLiveChar(this);
 
        size_t r, r_num =  m_def->m_button_records.size();
        m_record_character.resize(r_num);

Index: server/button_character_instance.h
===================================================================
RCS file: /sources/gnash/gnash/server/button_character_instance.h,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -b -r1.31 -r1.32
--- server/button_character_instance.h  17 Jan 2008 08:56:57 -0000      1.31
+++ server/button_character_instance.h  17 Jan 2008 11:09:58 -0000      1.32
@@ -21,7 +21,7 @@
 
 // SWF buttons.  Mouse-sensitive update/display, actions, etc.
 
-/* $Id: button_character_instance.h,v 1.31 2008/01/17 08:56:57 strk Exp $ */
+/* $Id: button_character_instance.h,v 1.32 2008/01/17 11:09:58 strk Exp $ */
 
 #ifndef GNASH_BUTTON_CHARACTER_INSTANCE_H
 #define GNASH_BUTTON_CHARACTER_INSTANCE_H
@@ -90,8 +90,6 @@
 
        void    restart();
 
-       virtual void    advance();
-
        void    display();
        
        void set_current_state(e_mouse_state new_state);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]