diff options
| -rw-r--r-- | core/variant_op.cpp | 2 | ||||
| -rw-r--r-- | platform/iphone/os_iphone.cpp | 4 | ||||
| -rw-r--r-- | scene/2d/collision_polygon_2d.cpp | 6 | ||||
| -rw-r--r-- | scene/2d/collision_shape_2d.cpp | 6 | ||||
| -rw-r--r-- | scene/2d/tile_map.cpp | 23 | 
5 files changed, 32 insertions, 9 deletions
| diff --git a/core/variant_op.cpp b/core/variant_op.cpp index 1bcfa7d2ae..e33b79e63c 100644 --- a/core/variant_op.cpp +++ b/core/variant_op.cpp @@ -2635,7 +2635,7 @@ bool Variant::in(const Variant& p_index, bool *r_valid) const {  			if (l) {  				for(int i=0;i<l;i++) { -					if ((*arr)[i]==p_index) +					if (evaluate(OP_EQUAL,(*arr)[i],p_index))  						return true;  				} diff --git a/platform/iphone/os_iphone.cpp b/platform/iphone/os_iphone.cpp index 93f4d00e05..3db5e1d215 100644 --- a/platform/iphone/os_iphone.cpp +++ b/platform/iphone/os_iphone.cpp @@ -226,6 +226,8 @@ void OSIPhone::mouse_button(int p_idx, int p_x, int p_y, bool p_pressed, bool p_  		queue_event(ev);  	}; +	mouse_list.pressed[p_idx] = p_pressed; +  	if (p_use_as_mouse) {  		InputEvent ev; @@ -245,8 +247,6 @@ void OSIPhone::mouse_button(int p_idx, int p_x, int p_y, bool p_pressed, bool p_  		ev.mouse_button.doubleclick = p_doubleclick;  		ev.mouse_button.pressed = p_pressed; -		mouse_list.pressed[p_idx] = p_pressed; -  		queue_event(ev);  	};  }; diff --git a/scene/2d/collision_polygon_2d.cpp b/scene/2d/collision_polygon_2d.cpp index 1479cb7881..616d3da7c9 100644 --- a/scene/2d/collision_polygon_2d.cpp +++ b/scene/2d/collision_polygon_2d.cpp @@ -113,6 +113,12 @@ void CollisionPolygon2D::_notification(int p_what) {  		case NOTIFICATION_ENTER_TREE: {  			unparenting=false;  			can_update_body=get_tree()->is_editor_hint(); +			if (!get_tree()->is_editor_hint()) { +				//display above all else +				set_z_as_relative(false); +				set_z(VS::CANVAS_ITEM_Z_MAX-1); +			} +  		} break;  		case NOTIFICATION_EXIT_TREE: {  			can_update_body=false; diff --git a/scene/2d/collision_shape_2d.cpp b/scene/2d/collision_shape_2d.cpp index 85751fc735..56f68ae634 100644 --- a/scene/2d/collision_shape_2d.cpp +++ b/scene/2d/collision_shape_2d.cpp @@ -77,6 +77,11 @@ void CollisionShape2D::_notification(int p_what) {  		case NOTIFICATION_ENTER_TREE: {  			unparenting=false;  			can_update_body=get_tree()->is_editor_hint(); +			if (!get_tree()->is_editor_hint()) { +				//display above all else +				set_z_as_relative(false); +				set_z(VS::CANVAS_ITEM_Z_MAX-1); +			}  		} break;  		case NOTIFICATION_LOCAL_TRANSFORM_CHANGED: { @@ -120,6 +125,7 @@ void CollisionShape2D::_notification(int p_what) {  			rect=Rect2(); +  			Color draw_col=get_tree()->get_debug_collisions_color();  			shape->draw(get_canvas_item(),draw_col); diff --git a/scene/2d/tile_map.cpp b/scene/2d/tile_map.cpp index 167b637bdc..e23b00bf09 100644 --- a/scene/2d/tile_map.cpp +++ b/scene/2d/tile_map.cpp @@ -299,6 +299,7 @@ void TileMap::_update_dirty_quadrants() {  		q.occluder_instances.clear();  		Ref<CanvasItemMaterial> prev_material;  		RID prev_canvas_item; +		RID prev_debug_canvas_item;  		for(int i=0;i<q.cells.size();i++) { @@ -319,6 +320,7 @@ void TileMap::_update_dirty_quadrants() {  			Ref<CanvasItemMaterial> mat = tile_set->tile_get_material(c.id);  			RID canvas_item; +			RID debug_canvas_item;  			if (prev_canvas_item==RID() || prev_material!=mat) { @@ -331,11 +333,24 @@ void TileMap::_update_dirty_quadrants() {  				vs->canvas_item_set_transform( canvas_item, xform );  				q.canvas_items.push_back(canvas_item); +				if (debug_shapes) { + +					debug_canvas_item=vs->canvas_item_create(); +					vs->canvas_item_set_parent( debug_canvas_item, canvas_item ); +					vs->canvas_item_set_z_as_relative_to_parent(debug_canvas_item,false); +					vs->canvas_item_set_z(debug_canvas_item,VS::CANVAS_ITEM_Z_MAX-1); +					q.canvas_items.push_back(debug_canvas_item); +					prev_debug_canvas_item=debug_canvas_item; +				} +  				prev_canvas_item=canvas_item;  				prev_material=mat;  			} else {  				canvas_item=prev_canvas_item; +				if (debug_shapes) { +					debug_canvas_item=prev_debug_canvas_item; +				}  			} @@ -407,9 +422,8 @@ void TileMap::_update_dirty_quadrants() {  					_fix_cell_transform(xform,c,shape_ofs+center_ofs,s); -					if (debug_shapes) { -						vs->canvas_item_add_set_transform(canvas_item,xform); -						shape->draw(canvas_item,debug_collision_color); +					if (debug_canvas_item) { +						shape->draw(debug_canvas_item,debug_collision_color);  					}  					ps->body_add_shape(q.body,shape->get_rid(),xform);					 @@ -417,9 +431,6 @@ void TileMap::_update_dirty_quadrants() {  				}  			} -			if (debug_shapes) { -				vs->canvas_item_add_set_transform(canvas_item,Matrix32()); -			}  			if (navigation) {  				Ref<NavigationPolygon> navpoly = tile_set->tile_get_navigation_polygon(c.id); |