From 3108517406be86077f3f801736aa6a3c7d3fcca5 Mon Sep 17 00:00:00 2001
From: sanikoyes <sanikoyes@163.com>
Date: Thu, 25 Dec 2014 13:05:57 +0800
Subject: [PATCH 1/8] Reduce android build size(-fvisibility=hidden) Fix
 gridmap link error when disable_3d=Yes

---
 modules/gridmap/register_types.cpp | 4 ++++
 platform/android/detect.py         | 6 +++---
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/modules/gridmap/register_types.cpp b/modules/gridmap/register_types.cpp
index 3c3c8aa98fd..887687a37bf 100644
--- a/modules/gridmap/register_types.cpp
+++ b/modules/gridmap/register_types.cpp
@@ -27,16 +27,20 @@
 /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
 /*************************************************************************/
 #include "register_types.h"
+#ifndef _3D_DISABLED
 #include "object_type_db.h"
 #include "grid_map.h"
 #include "grid_map_editor_plugin.h"
+#endif
 
 void register_gridmap_types() {
 
+#ifndef _3D_DISABLED
 	ObjectTypeDB::register_type<GridMap>();
 #ifdef TOOLS_ENABLED
 	EditorPlugins::add_by_type<GridMapEditorPlugin>();
 #endif
+#endif
 }
 
 
diff --git a/platform/android/detect.py b/platform/android/detect.py
index 417f3e68ab1..695caf1e5d4 100644
--- a/platform/android/detect.py
+++ b/platform/android/detect.py
@@ -124,11 +124,11 @@ def configure(env):
 #	env['CCFLAGS'] = string.split('-DNO_THREADS -MMD -MP -MF -fpic -ffunction-sections -funwind-tables -fstack-protector -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__  -Wno-psabi -march=armv5te -mtune=xscale -msoft-float  -fno-exceptions -mthumb -fno-strict-aliasing -DANDROID -Wa,--noexecstack -DGLES2_ENABLED ')
 
 	if env['x86']=='yes':
-		env['CCFLAGS'] = string.split('-DNO_STATVFS -MMD -MP -MF -fpic -ffunction-sections -funwind-tables -fstack-protector -D__GLIBC__  -Wno-psabi -ftree-vectorize -funsafe-math-optimizations -fno-strict-aliasing -DANDROID -Wa,--noexecstack -DGLES2_ENABLED -DGLES1_ENABLED')
+		env['CCFLAGS'] = string.split('-DNO_STATVFS -MMD -MP -MF -fpic -ffunction-sections -funwind-tables -fstack-protector -fvisibility=hidden -D__GLIBC__  -Wno-psabi -ftree-vectorize -funsafe-math-optimizations -fno-strict-aliasing -DANDROID -Wa,--noexecstack -DGLES2_ENABLED -DGLES1_ENABLED')
 	elif env["armv6"]!="no":
-		env['CCFLAGS'] = string.split('-DNO_STATVFS -MMD -MP -MF -fpic -ffunction-sections -funwind-tables -fstack-protector -D__ARM_ARCH_6__ -D__GLIBC__  -Wno-psabi -march=armv6 -mfpu=vfp -mfloat-abi=softfp -funsafe-math-optimizations -fno-strict-aliasing -DANDROID -Wa,--noexecstack -DGLES2_ENABLED -DGLES1_ENABLED')
+		env['CCFLAGS'] = string.split('-DNO_STATVFS -MMD -MP -MF -fpic -ffunction-sections -funwind-tables -fstack-protector -fvisibility=hidden -D__ARM_ARCH_6__ -D__GLIBC__  -Wno-psabi -march=armv6 -mfpu=vfp -mfloat-abi=softfp -funsafe-math-optimizations -fno-strict-aliasing -DANDROID -Wa,--noexecstack -DGLES2_ENABLED -DGLES1_ENABLED')
 	else:
-		env['CCFLAGS'] = string.split('-DNO_STATVFS -MMD -MP -MF -fpic -ffunction-sections -funwind-tables -fstack-protector -D__ARM_ARCH_7__ -D__GLIBC__  -Wno-psabi -march=armv6 -mfpu=neon -mfloat-abi=softfp -ftree-vectorize -funsafe-math-optimizations -fno-strict-aliasing -DANDROID -Wa,--noexecstack -DGLES2_ENABLED -DGLES1_ENABLED')
+		env['CCFLAGS'] = string.split('-DNO_STATVFS -MMD -MP -MF -fpic -ffunction-sections -funwind-tables -fstack-protector -fvisibility=hidden -D__ARM_ARCH_7__ -D__GLIBC__  -Wno-psabi -march=armv6 -mfpu=neon -mfloat-abi=softfp -ftree-vectorize -funsafe-math-optimizations -fno-strict-aliasing -DANDROID -Wa,--noexecstack -DGLES2_ENABLED -DGLES1_ENABLED')
 
 	env.Append(LDPATH=[ld_path])
 	env.Append(LIBS=['OpenSLES'])

From 61fcca71111a35fa1e3e812f99939beba94244e8 Mon Sep 17 00:00:00 2001
From: marynate <mary.w.nate@gmail.com>
Date: Sun, 28 Dec 2014 00:28:02 +0800
Subject: [PATCH 2/8] Add Stop pause mode implementation

---
 scene/main/node.cpp | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/scene/main/node.cpp b/scene/main/node.cpp
index d9b208d6d3a..fbdc87a7cc0 100644
--- a/scene/main/node.cpp
+++ b/scene/main/node.cpp
@@ -382,6 +382,8 @@ bool Node::can_process() const {
 
 	if (get_tree()->is_paused()) {
 
+		if (data.pause_mode==PAUSE_MODE_STOP)
+			return false;
 		if (data.pause_mode==PAUSE_MODE_PROCESS)
 			return true;
 		if (data.pause_mode==PAUSE_MODE_INHERIT) {
@@ -391,6 +393,9 @@ bool Node::can_process() const {
 
 			if (data.pause_owner->data.pause_mode==PAUSE_MODE_PROCESS)
 				return true;
+
+			if (data.pause_owner->data.pause_mode==PAUSE_MODE_STOP)
+				return false;
 		}
 
 	}

From 645a0385687fc2deefdb47f73eb4415932987c42 Mon Sep 17 00:00:00 2001
From: Lee Zher Huei <lee.zh.92@gmail.com>
Date: Sat, 27 Dec 2014 16:42:37 +0000
Subject: [PATCH 3/8] Fix for MinGW compilation

---
 SConstruct | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

diff --git a/SConstruct b/SConstruct
index 42e90851714..f5aa0cd1bd6 100644
--- a/SConstruct
+++ b/SConstruct
@@ -133,8 +133,8 @@ Help(opts.GenerateHelpText(env_base)) # generate help
 # add default include paths
 
 env_base.Append(CPPPATH=['#core','#core/math','#tools','#drivers','#'])
-	
-# configure ENV for platform	
+
+# configure ENV for platform
 env_base.platform_exporters=platform_exporters
 
 """
@@ -170,6 +170,26 @@ if selected_platform in platform_list:
 	else:
 		env = env_base.Clone()
 
+	# Workaround for MinGW. See:
+	# http://www.scons.org/wiki/LongCmdLinesOnWin32
+	if (os.name=="nt"):
+		import subprocess
+		def mySpawn(sh, escape, cmd, args, env):
+				newargs = ' '.join(args[1:])
+				cmdline = cmd + " " + newargs
+				startupinfo = subprocess.STARTUPINFO()
+				startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
+				proc = subprocess.Popen(cmdline, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
+					stderr=subprocess.PIPE, startupinfo=startupinfo, shell = False, env = env)
+				data, err = proc.communicate()
+				rv = proc.wait()
+				if rv:
+					print "====="
+					print err
+					print "====="
+				return rv
+		env['SPAWN'] = mySpawn
+
 	env.extra_suffix=""
 
 	CCFLAGS = env.get('CCFLAGS', '')

From d128ec926369afca89155361c68249df17bdc278 Mon Sep 17 00:00:00 2001
From: jaromirhribal <jaromirhribal@gmail.com>
Date: Sun, 28 Dec 2014 14:01:08 +0100
Subject: [PATCH 4/8] added blender/maya like zoom style

---
 tools/editor/editor_settings.cpp              |  2 ++
 .../editor/plugins/spatial_editor_plugin.cpp  | 25 ++++++++++++++++---
 tools/editor/plugins/spatial_editor_plugin.h  |  6 +++++
 3 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/tools/editor/editor_settings.cpp b/tools/editor/editor_settings.cpp
index 8b0fd204e32..3f44701b98f 100644
--- a/tools/editor/editor_settings.cpp
+++ b/tools/editor/editor_settings.cpp
@@ -419,6 +419,8 @@ void EditorSettings::_load_defaults() {
 
 	set("3d_editor/navigation_scheme",0);
 	hints["3d_editor/navigation_scheme"]=PropertyInfo(Variant::INT,"3d_editor/navigation_scheme",PROPERTY_HINT_ENUM,"Godot,Maya,Modo");
+	set("3d_editor/zoom_style",0);
+	hints["3d_editor/zoom_style"]=PropertyInfo(Variant::INT,"3d_editor/zoom_style",PROPERTY_HINT_ENUM,"Vertical, Horizontal");
 	set("3d_editor/orbit_modifier",0);
 	hints["3d_editor/orbit_modifier"]=PropertyInfo(Variant::INT,"3d_editor/orbit_modifier",PROPERTY_HINT_ENUM,"None,Shift,Alt,Meta,Ctrl");
 	set("3d_editor/pan_modifier",1);
diff --git a/tools/editor/plugins/spatial_editor_plugin.cpp b/tools/editor/plugins/spatial_editor_plugin.cpp
index a1f1ccf5e37..0960a961ecd 100644
--- a/tools/editor/plugins/spatial_editor_plugin.cpp
+++ b/tools/editor/plugins/spatial_editor_plugin.cpp
@@ -535,6 +535,14 @@ SpatialEditorViewport::NavigationScheme SpatialEditorViewport::_get_navigation_s
 	return NAVIGATION_GODOT;
 }
 
+SpatialEditorViewport::NavigationZoomStyle SpatialEditorViewport::_get_navigation_zoom_style(const String& p_property) {
+	switch(EditorSettings::get_singleton()->get(p_property).operator int()) {
+		case 0: return NAVIGATION_ZOOM_VERTICAL;
+		case 1: return NAVIGATION_ZOOM_HORIZONTAL;
+	}
+	return NAVIGATION_ZOOM_VERTICAL;
+}
+
 bool SpatialEditorViewport::_gizmo_select(const Vector2& p_screenpos,bool p_hilite_only) {
 
 	if (!spatial_editor->is_gizmo_visible())
@@ -1429,10 +1437,19 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
 					if (nav_scheme==NAVIGATION_MAYA && m.mod.shift)
 						zoom_speed *= zoom_speed_modifier;
 
-					if ( m.relative_y > 0)
-						cursor.distance*=1+m.relative_y*zoom_speed;
-					else if (m.relative_y < 0)
-						cursor.distance/=1-m.relative_y*zoom_speed;
+					NavigationZoomStyle zoom_style = _get_navigation_zoom_style("3d_editor/zoom_style");
+					if (zoom_style == NAVIGATION_ZOOM_HORIZONTAL) {
+						if ( m.relative_x > 0)
+							cursor.distance*=1-m.relative_x*zoom_speed;
+						else if (m.relative_x < 0)
+							cursor.distance/=1+m.relative_x*zoom_speed;
+					}
+					else {
+						if ( m.relative_y > 0)
+							cursor.distance*=1+m.relative_y*zoom_speed;
+						else if (m.relative_y < 0)
+							cursor.distance/=1-m.relative_y*zoom_speed;
+					}
 
 				} break;
 
diff --git a/tools/editor/plugins/spatial_editor_plugin.h b/tools/editor/plugins/spatial_editor_plugin.h
index 1fdc97c49d2..646a4d2d868 100644
--- a/tools/editor/plugins/spatial_editor_plugin.h
+++ b/tools/editor/plugins/spatial_editor_plugin.h
@@ -144,6 +144,12 @@ private:
 	};
 	NavigationScheme _get_navigation_schema(const String& p_property);
 
+	enum NavigationZoomStyle {
+		NAVIGATION_ZOOM_VERTICAL,
+		NAVIGATION_ZOOM_HORIZONTAL
+	};
+	NavigationZoomStyle _get_navigation_zoom_style(const String& p_property);
+
 	enum NavigationMode {
 		NAVIGATION_NONE,
 		NAVIGATION_PAN,

From 079f1b1642aa35fe20a927c777aa42f629e1fbaf Mon Sep 17 00:00:00 2001
From: tommy3 <tommy@skytel.at>
Date: Sun, 28 Dec 2014 14:34:37 +0100
Subject: [PATCH 5/8] fixed a typo

---
 tools/editor/animation_editor.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/editor/animation_editor.cpp b/tools/editor/animation_editor.cpp
index 95f9ee65095..2eef8214387 100644
--- a/tools/editor/animation_editor.cpp
+++ b/tools/editor/animation_editor.cpp
@@ -3238,7 +3238,7 @@ AnimationKeyEditor::AnimationKeyEditor(UndoRedo *p_undo_redo, EditorHistory *p_h
 	move_down_button->connect("pressed",this,"_menu_track",make_binds(TRACK_MENU_MOVE_DOWN));
 	move_down_button->set_focus_mode(FOCUS_NONE);
 	move_down_button->set_disabled(true);
-	move_down_button->set_tooltip("Move current track dosn.");
+	move_down_button->set_tooltip("Move current track down.");
 
 	remove_button = memnew( ToolButton );
 	hb->add_child(remove_button);

From 4faf47eb503931f3fd44d617aadca8f34cc0ae47 Mon Sep 17 00:00:00 2001
From: Carl Olsson <carl.olsson@gmail.com>
Date: Mon, 29 Dec 2014 08:37:25 +1000
Subject: [PATCH 6/8] Replace TileMapEditor floating tile palette with
 HSplitContainer.

---
 .../plugins/canvas_item_editor_plugin.cpp     | 12 ++++-
 .../plugins/canvas_item_editor_plugin.h       |  6 +++
 .../editor/plugins/tile_map_editor_plugin.cpp | 51 ++++++-------------
 tools/editor/plugins/tile_map_editor_plugin.h |  9 +---
 4 files changed, 34 insertions(+), 44 deletions(-)

diff --git a/tools/editor/plugins/canvas_item_editor_plugin.cpp b/tools/editor/plugins/canvas_item_editor_plugin.cpp
index 599160eb468..a18c2a58a71 100644
--- a/tools/editor/plugins/canvas_item_editor_plugin.cpp
+++ b/tools/editor/plugins/canvas_item_editor_plugin.cpp
@@ -2683,6 +2683,11 @@ void CanvasItemEditor::add_control_to_menu_panel(Control *p_control) {
 	hb->add_child(p_control);
 }
 
+HSplitContainer *CanvasItemEditor::get_palette_split() {
+
+	return palette_split;
+}
+
 CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
 
 	tool = TOOL_SELECT;
@@ -2697,15 +2702,20 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
 	add_child( hb );
 	hb->set_area_as_parent_rect();
 
+	palette_split = memnew( HSplitContainer);
+	palette_split->set_v_size_flags(SIZE_EXPAND_FILL);
+	add_child(palette_split);
+
 	Control *vp_base = memnew (Control);
-	add_child(vp_base);
 	vp_base->set_v_size_flags(SIZE_EXPAND_FILL);
+	palette_split->add_child(vp_base);
 
 	Control *vp = memnew (Control);
 	vp_base->add_child(vp);
 	vp->set_area_as_parent_rect();
 	vp->add_child(p_editor->get_scene_root());
 
+
 	viewport = memnew( Control );
 	vp_base->add_child(viewport);
 	viewport->set_area_as_parent_rect();
diff --git a/tools/editor/plugins/canvas_item_editor_plugin.h b/tools/editor/plugins/canvas_item_editor_plugin.h
index 15ac7b1bb3c..c56570d43f2 100644
--- a/tools/editor/plugins/canvas_item_editor_plugin.h
+++ b/tools/editor/plugins/canvas_item_editor_plugin.h
@@ -289,6 +289,10 @@ class CanvasItemEditor : public VBoxContainer {
 
 	void _viewport_input_event(const InputEvent& p_event);
 	void _viewport_draw();
+
+private:
+	HSplitContainer *palette_split;
+
 friend class CanvasItemEditorPlugin;
 protected:
 
@@ -341,6 +345,8 @@ public:
 
 	void add_control_to_menu_panel(Control *p_control);
 
+	HSplitContainer *get_palette_split();
+
 	Control *get_viewport_control() { return viewport; }
 
 
diff --git a/tools/editor/plugins/tile_map_editor_plugin.cpp b/tools/editor/plugins/tile_map_editor_plugin.cpp
index a25997108b1..21474205d7a 100644
--- a/tools/editor/plugins/tile_map_editor_plugin.cpp
+++ b/tools/editor/plugins/tile_map_editor_plugin.cpp
@@ -42,7 +42,6 @@ void TileMapEditor::_notification(int p_what) {
 
 		case NOTIFICATION_READY: {
 
-			pane_drag->connect("dragged", this,"_pane_drag");
 			mirror_x->set_icon( get_icon("MirrorX","EditorIcons"));
 			mirror_y->set_icon( get_icon("MirrorY","EditorIcons"));
 
@@ -701,23 +700,10 @@ void TileMapEditor::_tileset_settings_changed() {
 		canvas_item_editor->update();
 }
 
-void TileMapEditor::_pane_drag(const Point2& p_to) {
-
-	int x = theme_panel->get_margin(MARGIN_RIGHT);
-
-	x+=p_to.x;
-	if (x<10)
-		x=10;
-	if (x>300)
-		x=300;
-	theme_panel->set_margin(MARGIN_RIGHT,x);
-}
-
 void TileMapEditor::_bind_methods() {
 
 	ObjectTypeDB::bind_method(_MD("_menu_option"),&TileMapEditor::_menu_option);
 	ObjectTypeDB::bind_method(_MD("_canvas_draw"),&TileMapEditor::_canvas_draw);
-	ObjectTypeDB::bind_method(_MD("_pane_drag"),&TileMapEditor::_pane_drag);
 	ObjectTypeDB::bind_method(_MD("_canvas_mouse_enter"),&TileMapEditor::_canvas_mouse_enter);
 	ObjectTypeDB::bind_method(_MD("_canvas_mouse_exit"),&TileMapEditor::_canvas_mouse_exit);
 	ObjectTypeDB::bind_method(_MD("_tileset_settings_changed"),&TileMapEditor::_tileset_settings_changed);
@@ -731,36 +717,30 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) {
 	editor=p_editor;
 	undo_redo = editor->get_undo_redo();
 
-	theme_panel = memnew( Panel );
-	theme_panel->set_anchor(MARGIN_BOTTOM,ANCHOR_END);
-	theme_panel->set_begin( Point2(0,26));
-	theme_panel->set_end( Point2(100,0) );
-	p_editor->get_viewport()->add_child(theme_panel);
-	theme_panel->hide();
+	int mw = EDITOR_DEF("tile_map/palette_min_width",80);
+	EmptyControl *ec = memnew( EmptyControl);
+	ec->set_minsize(Size2(mw,0));
+	add_child(ec);
 
+	// Add tile palette
 	palette = memnew( Tree );
-	palette->set_area_as_parent_rect(4);
-	palette->set_margin(MARGIN_TOP,25);;
-	theme_panel->add_child(palette);
-
-	pane_drag = memnew( PaneDrag )	;
-	pane_drag->set_anchor(MARGIN_LEFT,ANCHOR_END);
-	pane_drag->set_begin(Point2(16,4));
-	theme_panel->add_child(pane_drag);
-
-	add_child( memnew( VSeparator ));
+	palette->set_v_size_flags(SIZE_EXPAND_FILL);
+	add_child(palette);
 
+	// Add menu items
+	HBoxContainer *canvas_item_editor_hb = memnew( HBoxContainer );
+	CanvasItemEditor::get_singleton()->add_control_to_menu_panel(canvas_item_editor_hb);
+	canvas_item_editor_hb->add_child( memnew( VSeparator ));
 	mirror_x = memnew( ToolButton );
 	mirror_x->set_toggle_mode(true);
 	mirror_x->set_tooltip("Mirror X (A)");
 	mirror_x->set_focus_mode(FOCUS_NONE);
-	add_child(mirror_x);
+	canvas_item_editor_hb->add_child(mirror_x);
 	mirror_y = memnew( ToolButton );
 	mirror_y->set_toggle_mode(true);
 	mirror_y->set_tooltip("Mirror Y (S)");
 	mirror_y->set_focus_mode(FOCUS_NONE);
-	add_child(mirror_y);
-
+	canvas_item_editor_hb->add_child(mirror_y);
 
 	tool=TOOL_NONE;
 	selection_active=false;
@@ -782,12 +762,10 @@ void TileMapEditorPlugin::make_visible(bool p_visible) {
 
 	if (p_visible) {
 		tile_map_editor->show();
-		tile_map_editor->theme_panel->show();
 
 	} else {
 
 		tile_map_editor->hide();
-		tile_map_editor->theme_panel->hide();
 		tile_map_editor->edit(NULL);
 	}
 
@@ -797,7 +775,8 @@ TileMapEditorPlugin::TileMapEditorPlugin(EditorNode *p_node) {
 
 	editor=p_node;
 	tile_map_editor = memnew( TileMapEditor(p_node) );
-	CanvasItemEditor::get_singleton()->add_control_to_menu_panel(tile_map_editor);
+	CanvasItemEditor::get_singleton()->get_palette_split()->add_child(tile_map_editor);
+	CanvasItemEditor::get_singleton()->get_palette_split()->move_child(tile_map_editor,0);
 
 	tile_map_editor->hide();
 
diff --git a/tools/editor/plugins/tile_map_editor_plugin.h b/tools/editor/plugins/tile_map_editor_plugin.h
index 2336507f1bb..0a09a29f9d1 100644
--- a/tools/editor/plugins/tile_map_editor_plugin.h
+++ b/tools/editor/plugins/tile_map_editor_plugin.h
@@ -34,15 +34,14 @@
 #include "scene/2d/tile_map.h"
 #include "scene/gui/tool_button.h"
 #include "scene/gui/button_group.h"
-#include "tools/editor/pane_drag.h"
 /**
 	@author Juan Linietsky <reduzio@gmail.com>
 */
 class CanvasItemEditor;
 
-class TileMapEditor : public HBoxContainer {
+class TileMapEditor : public VBoxContainer {
 
-	OBJ_TYPE(TileMapEditor, BoxContainer );
+	OBJ_TYPE(TileMapEditor, VBoxContainer );
 
 	UndoRedo *undo_redo;
 
@@ -63,7 +62,6 @@ class TileMapEditor : public HBoxContainer {
 	Panel *panel;
 	TileMap *node;
 	MenuButton *options;
-	PaneDrag *pane_drag;
 
 	bool selection_active;
 	Point2i selection_begin;
@@ -88,7 +86,6 @@ class TileMapEditor : public HBoxContainer {
 	int get_selected_tile() const;
 
 	void _update_palette();
-	void _pane_drag(const Point2& p_to);
 	void _canvas_draw();
 	void _menu_option(int p_option);
 
@@ -99,8 +96,6 @@ class TileMapEditor : public HBoxContainer {
 	void _tileset_settings_changed();
 
 
-friend class TileMapEditorPlugin;
-	Panel *theme_panel;
 protected:
 	void _notification(int p_what);
 	void _node_removed(Node *p_node);

From b0509bf8f0c437e4693d7f7e5dce99cec78ce15f Mon Sep 17 00:00:00 2001
From: Dana Olson <dana@shineuponthee.com>
Date: Thu, 1 Jan 2015 22:22:24 -0500
Subject: [PATCH 7/8] change parameter name from ip to port

---
 core/io/stream_peer_tcp.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/core/io/stream_peer_tcp.cpp b/core/io/stream_peer_tcp.cpp
index 0e75e22767a..f83c1740844 100644
--- a/core/io/stream_peer_tcp.cpp
+++ b/core/io/stream_peer_tcp.cpp
@@ -32,7 +32,7 @@ StreamPeerTCP* (*StreamPeerTCP::_create)()=NULL;
 
 void StreamPeerTCP::_bind_methods() {
 
-	ObjectTypeDB::bind_method(_MD("connect","host","ip"),&StreamPeerTCP::connect);
+	ObjectTypeDB::bind_method(_MD("connect","host","port"),&StreamPeerTCP::connect);
 	ObjectTypeDB::bind_method(_MD("is_connected"),&StreamPeerTCP::is_connected);
 	ObjectTypeDB::bind_method(_MD("get_status"),&StreamPeerTCP::get_status);
 	ObjectTypeDB::bind_method(_MD("get_connected_host"),&StreamPeerTCP::get_connected_host);

From 9ee218ac9ba464687a41eea59707187aea28c962 Mon Sep 17 00:00:00 2001
From: Muresan Vlad aka Mury <muresanvladmihail@gmail.com>
Date: Fri, 2 Jan 2015 13:31:25 +0200
Subject: [PATCH 8/8] Fix for bug 1088

---
 core/dictionary.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/core/dictionary.cpp b/core/dictionary.cpp
index 16ee3973824..2d503bae50c 100644
--- a/core/dictionary.cpp
+++ b/core/dictionary.cpp
@@ -186,10 +186,12 @@ Error Dictionary::parse_json(const String& p_json) {
 
 	String errstr;
 	int errline=0;
+	if (p_json != ""){
 	Error err = JSON::parse(p_json,*this,errstr,errline);
 	if (err!=OK) {
 		ERR_EXPLAIN("Error parsing JSON: "+errstr+" at line: "+itos(errline));
 		ERR_FAIL_COND_V(err!=OK,err);
+		}
 	}
 
 	return OK;