gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/sprite_instance.cpp


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/sprite_instance.cpp
Date: Tue, 19 Sep 2006 13:46:22 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  06/09/19 13:46:22

Modified files:
        .              : ChangeLog 
        server         : sprite_instance.cpp 

Log message:
        server/sprite_instance.cpp (sprite_hit_test): stub for hitTest()

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.868&r2=1.869
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.48&r2=1.49

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.868
retrieving revision 1.869
diff -u -b -r1.868 -r1.869
--- ChangeLog   19 Sep 2006 12:38:59 -0000      1.868
+++ ChangeLog   19 Sep 2006 13:46:21 -0000      1.869
@@ -1,5 +1,6 @@
 2006-09-19 Sandro Santilli  <address@hidden>
 
+       * server/sprite_instance.cpp (sprite_hit_test): stub for hitTest() 
        * server/sprite_instance.cpp (call_frame_actions): fixed
          premature deletion of action buffers (also optimized somehow).
        * testsuite/actionscript.all/Makefile.am,

Index: server/sprite_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -b -r1.48 -r1.49
--- server/sprite_instance.cpp  19 Sep 2006 12:38:59 -0000      1.48
+++ server/sprite_instance.cpp  19 Sep 2006 13:46:22 -0000      1.49
@@ -233,6 +233,64 @@
        //moviecliploader_loadclip(fn);
 }
 
+static void sprite_hit_test(const fn_call& fn)
+{
+       assert(dynamic_cast<sprite_instance*>(fn.this_ptr));
+       sprite_instance* sprite = static_cast<sprite_instance*>(fn.this_ptr);
+
+       switch (fn.nargs)
+       {
+               case 1: // target
+               {
+                       as_value& tgt_val = fn.arg(0);
+                       character* target = fn.env->find_target(tgt_val);
+                       if ( ! target )
+                       {
+                               log_error("Can't find hitTest target %s",
+                                       tgt_val.to_string());
+                               fn.result->set_undefined();
+                               return;
+                       }
+                       log_error("hitTest(target) unimplemented");
+                       fn.result->set_undefined();
+                       break;
+               }
+
+               case 2: // x, y
+               {
+                       double x = fn.arg(0).to_number();
+                       double y = fn.arg(1).to_number();
+                       log_error("hitTest(%g,%g) unimplemented",
+                               x,y);
+                       fn.result->set_undefined();
+                       break;
+               }
+
+               case 3: // x, y, shapeFlag
+               {
+                       double x = fn.arg(0).to_number();
+                       double y = fn.arg(1).to_number();
+                       bool shapeFlag = fn.arg(2).to_bool();
+                       log_error("hitTest(%g,%g,%d) unimplemented",
+                               x,y,shapeFlag);
+                       fn.result->set_undefined();
+                       break;
+               }
+
+               default:
+               {
+                       log_error("hitTest() called with %u args."
+                               " Malformed SWF ?",
+                               fn.nargs);
+                       fn.result->set_undefined();
+                       break;
+               }
+       }
+
+       return;
+
+}
+
 static void sprite_create_text_field(const fn_call& fn)
 {
        as_object *target=fn.this_ptr;
@@ -441,6 +499,7 @@
        as_builtins.set_member("getBytesLoaded", &sprite_get_bytes_loaded);
        as_builtins.set_member("getBytesTotal", &sprite_get_bytes_total);
        as_builtins.set_member("loadMovie", &sprite_load_movie);
+       as_builtins.set_member("hitTest", &sprite_hit_test);
        as_builtins.set_member("createTextField", &sprite_create_text_field);
 
        // @TODO




reply via email to

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