[Top][All Lists]
[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