Browse Source

Merge pull request #22447 from akien-mga/fix-warnings-Wswitch

Fix warnings about unhandled enum value in switch [-Wswitch]
Rémi Verschelde 6 years ago
parent
commit
c7e646c30a
49 changed files with 246 additions and 85 deletions
  1. 3 1
      core/io/http_client.cpp
  2. 1 0
      core/io/marshalls.cpp
  3. 1 0
      core/os/dir_access.cpp
  4. 1 0
      core/os/file_access.cpp
  5. 1 3
      doc/classes/PhysicsServer.xml
  6. 4 8
      drivers/gles2/rasterizer_scene_gles2.cpp
  7. 8 2
      drivers/gles2/rasterizer_storage_gles2.cpp
  8. 13 0
      drivers/gles2/shader_gles2.h
  9. 6 1
      drivers/gles3/rasterizer_scene_gles3.cpp
  10. 10 0
      drivers/gles3/rasterizer_storage_gles3.cpp
  11. 12 0
      drivers/gles3/shader_compiler_gles3.cpp
  12. 4 1
      drivers/pulseaudio/audio_driver_pulseaudio.cpp
  13. 9 0
      editor/editor_file_dialog.cpp
  14. 2 34
      editor/editor_log.cpp
  15. 1 0
      editor/plugins/baked_lightmap_editor_plugin.cpp
  16. 1 0
      editor/plugins/polygon_2d_editor_plugin.cpp
  17. 8 0
      editor/plugins/spatial_editor_plugin.cpp
  18. 4 0
      editor/plugins/tile_set_editor_plugin.cpp
  19. 3 0
      main/tests/test_gdscript.cpp
  20. 3 0
      main/tests/test_shader_lang.cpp
  21. 3 0
      modules/bullet/area_bullet.cpp
  22. 3 2
      modules/bullet/hinge_joint_bullet.cpp
  23. 6 8
      modules/bullet/rigid_body_bullet.cpp
  24. 1 0
      modules/bullet/slider_joint_bullet.cpp
  25. 8 6
      modules/etc/image_etc.cpp
  26. 1 0
      modules/gdscript/gdscript.cpp
  27. 2 0
      modules/gdscript/gdscript_editor.cpp
  28. 12 2
      modules/gdscript/gdscript_parser.cpp
  29. 2 0
      modules/gdscript/gdscript_parser.h
  30. 4 0
      scene/3d/physics_body.cpp
  31. 1 0
      scene/animation/animation_player.cpp
  32. 1 0
      scene/animation/animation_tree_player.cpp
  33. 11 9
      scene/animation/tween.cpp
  34. 4 0
      scene/gui/file_dialog.cpp
  35. 3 0
      scene/gui/texture_button.cpp
  36. 22 0
      scene/gui/texture_progress.cpp
  37. 0 1
      scene/gui/tree.h
  38. 4 0
      scene/gui/video_player.cpp
  39. 3 0
      scene/main/scene_tree.cpp
  40. 3 0
      scene/resources/particles_material.cpp
  41. 2 0
      servers/physics/joints/cone_twist_joint_sw.cpp
  42. 22 0
      servers/physics/joints/generic_6dof_joint_sw.cpp
  43. 4 0
      servers/physics/joints/hinge_joint_sw.cpp
  44. 4 0
      servers/physics/joints/slider_joint_sw.cpp
  45. 1 4
      servers/physics_2d_server.h
  46. 0 1
      servers/physics_server.cpp
  47. 0 1
      servers/physics_server.h
  48. 18 0
      servers/visual/shader_language.cpp
  49. 6 1
      servers/visual/visual_server_scene.cpp

+ 3 - 1
core/io/http_client.cpp

@@ -374,6 +374,7 @@ Error HTTPClient::poll() {
 				} break;
 				} break;
 			}
 			}
 		} break;
 		} break;
+		case STATUS_BODY:
 		case STATUS_CONNECTED: {
 		case STATUS_CONNECTED: {
 			// Check if we are still connected
 			// Check if we are still connected
 			if (ssl) {
 			if (ssl) {
@@ -480,7 +481,8 @@ Error HTTPClient::poll() {
 		case STATUS_DISCONNECTED: {
 		case STATUS_DISCONNECTED: {
 			return ERR_UNCONFIGURED;
 			return ERR_UNCONFIGURED;
 		} break;
 		} break;
-		case STATUS_CONNECTION_ERROR: {
+		case STATUS_CONNECTION_ERROR:
+		case STATUS_SSL_HANDSHAKE_ERROR: {
 			return ERR_CONNECTION_ERROR;
 			return ERR_CONNECTION_ERROR;
 		} break;
 		} break;
 		case STATUS_CANT_CONNECT: {
 		case STATUS_CANT_CONNECT: {

+ 1 - 0
core/io/marshalls.cpp

@@ -824,6 +824,7 @@ Error encode_variant(const Variant &p_variant, uint8_t *r_buffer, int &r_len, bo
 				flags |= ENCODE_FLAG_OBJECT_AS_ID;
 				flags |= ENCODE_FLAG_OBJECT_AS_ID;
 			}
 			}
 		} break;
 		} break;
+		default: {} // nothing to do at this stage
 	}
 	}
 
 
 	if (buf) {
 	if (buf) {

+ 1 - 0
core/os/dir_access.cpp

@@ -227,6 +227,7 @@ String DirAccess::fix_path(String p_path) const {
 
 
 			return p_path;
 			return p_path;
 		} break;
 		} break;
+		case ACCESS_MAX: break; // Can't happen, but silences warning
 	}
 	}
 
 
 	return p_path;
 	return p_path;

+ 1 - 0
core/os/file_access.cpp

@@ -165,6 +165,7 @@ String FileAccess::fix_path(const String &p_path) const {
 
 
 			return r_path;
 			return r_path;
 		} break;
 		} break;
+		case ACCESS_MAX: break; // Can't happen, but silences warning
 	}
 	}
 
 
 	return r_path;
 	return r_path;

+ 1 - 3
doc/classes/PhysicsServer.xml

@@ -1518,9 +1518,7 @@
 		<constant name="BODY_MODE_RIGID" value="2" enum="BodyMode">
 		<constant name="BODY_MODE_RIGID" value="2" enum="BodyMode">
 			Constant for rigid bodies.
 			Constant for rigid bodies.
 		</constant>
 		</constant>
-		<constant name="BODY_MODE_SOFT" value="3" enum="BodyMode">
-		</constant>
-		<constant name="BODY_MODE_CHARACTER" value="4" enum="BodyMode">
+		<constant name="BODY_MODE_CHARACTER" value="3" enum="BodyMode">
 			Constant for rigid bodies in character mode. In this mode, a body can not rotate, and only its linear velocity is affected by physics.
 			Constant for rigid bodies in character mode. In this mode, a body can not rotate, and only its linear velocity is affected by physics.
 		</constant>
 		</constant>
 		<constant name="BODY_PARAM_BOUNCE" value="0" enum="BodyParameter">
 		<constant name="BODY_PARAM_BOUNCE" value="0" enum="BodyParameter">

+ 4 - 8
drivers/gles2/rasterizer_scene_gles2.cpp

@@ -921,9 +921,7 @@ void RasterizerSceneGLES2::_fill_render_list(InstanceBase **p_cull_result, int p
 
 
 			} break;
 			} break;
 
 
-			default: {
-
-			} break;
+			default: {}
 		}
 		}
 	}
 	}
 }
 }
@@ -1240,9 +1238,7 @@ void RasterizerSceneGLES2::_setup_geometry(RenderList::Element *p_element, Raste
 		case VS::INSTANCE_IMMEDIATE: {
 		case VS::INSTANCE_IMMEDIATE: {
 		} break;
 		} break;
 
 
-		default: {
-
-		} break;
+		default: {}
 	}
 	}
 }
 }
 
 
@@ -1465,6 +1461,7 @@ void RasterizerSceneGLES2::_render_geometry(RenderList::Element *p_element) {
 			}
 			}
 
 
 		} break;
 		} break;
+		default: {}
 	}
 	}
 }
 }
 
 
@@ -1767,8 +1764,7 @@ void RasterizerSceneGLES2::_setup_light(LightInstance *light, ShadowAtlas *shado
 			}
 			}
 
 
 		} break;
 		} break;
-
-		default: break;
+		default: {}
 	}
 	}
 }
 }
 
 

+ 8 - 2
drivers/gles2/rasterizer_storage_gles2.cpp

@@ -1309,8 +1309,13 @@ void RasterizerStorageGLES2::shader_get_param_list(RID p_shader, List<PropertyIn
 				pi.hint_string = "CubeMap";
 				pi.hint_string = "CubeMap";
 			} break;
 			} break;
 
 
-			default: {
-
+			case ShaderLanguage::TYPE_SAMPLER2DARRAY:
+			case ShaderLanguage::TYPE_ISAMPLER2DARRAY:
+			case ShaderLanguage::TYPE_USAMPLER2DARRAY:
+			case ShaderLanguage::TYPE_SAMPLER3D:
+			case ShaderLanguage::TYPE_ISAMPLER3D:
+			case ShaderLanguage::TYPE_USAMPLER3D: {
+				// Not implemented in GLES2
 			} break;
 			} break;
 		}
 		}
 
 
@@ -3110,6 +3115,7 @@ void RasterizerStorageGLES2::light_set_param(RID p_light, VS::LightParam p_param
 			light->version++;
 			light->version++;
 			light->instance_change_notify();
 			light->instance_change_notify();
 		} break;
 		} break;
+		default: {}
 	}
 	}
 
 
 	light->param[p_param] = p_value;
 	light->param[p_param] = p_value;

+ 13 - 0
drivers/gles2/shader_gles2.h

@@ -335,6 +335,19 @@ public:
 			case ShaderLanguage::TYPE_SAMPLERCUBE: {
 			case ShaderLanguage::TYPE_SAMPLERCUBE: {
 
 
 			} break;
 			} break;
+
+			case ShaderLanguage::TYPE_SAMPLER2DARRAY:
+			case ShaderLanguage::TYPE_ISAMPLER2DARRAY:
+			case ShaderLanguage::TYPE_USAMPLER2DARRAY:
+			case ShaderLanguage::TYPE_SAMPLER3D:
+			case ShaderLanguage::TYPE_ISAMPLER3D:
+			case ShaderLanguage::TYPE_USAMPLER3D: {
+				// Not implemented in GLES2
+			} break;
+
+			case ShaderLanguage::TYPE_VOID: {
+				// Nothing to do?
+			} break;
 		}
 		}
 	}
 	}
 
 

+ 6 - 1
drivers/gles3/rasterizer_scene_gles3.cpp

@@ -1282,6 +1282,8 @@ bool RasterizerSceneGLES3::_setup_material(RasterizerStorageGLES3::Material *p_m
 				case ShaderLanguage::TYPE_SAMPLER2DARRAY: {
 				case ShaderLanguage::TYPE_SAMPLER2DARRAY: {
 					// TODO
 					// TODO
 				} break;
 				} break;
+
+				default: {}
 			}
 			}
 		}
 		}
 
 
@@ -1509,6 +1511,7 @@ void RasterizerSceneGLES3::_setup_geometry(RenderList::Element *e, const Transfo
 			}
 			}
 
 
 		} break;
 		} break;
+		default: {}
 	}
 	}
 }
 }
 
 
@@ -1830,6 +1833,7 @@ void RasterizerSceneGLES3::_render_geometry(RenderList::Element *e) {
 			}
 			}
 
 
 		} break;
 		} break;
+		default: {}
 	}
 	}
 }
 }
 
 
@@ -3210,6 +3214,7 @@ void RasterizerSceneGLES3::_fill_render_list(InstanceBase **p_cull_result, int p
 				}
 				}
 
 
 			} break;
 			} break;
+			default: {}
 		}
 		}
 	}
 	}
 }
 }
@@ -4296,7 +4301,6 @@ void RasterizerSceneGLES3::render_scene(const Transform &p_cam_transform, const
 	if (env) {
 	if (env) {
 		switch (env->bg_mode) {
 		switch (env->bg_mode) {
 			case VS::ENV_BG_COLOR_SKY:
 			case VS::ENV_BG_COLOR_SKY:
-
 			case VS::ENV_BG_SKY:
 			case VS::ENV_BG_SKY:
 
 
 				sky = storage->sky_owner.getornull(env->sky);
 				sky = storage->sky_owner.getornull(env->sky);
@@ -4334,6 +4338,7 @@ void RasterizerSceneGLES3::render_scene(const Transform &p_cam_transform, const
 				glEnable(GL_DEPTH_TEST);
 				glEnable(GL_DEPTH_TEST);
 				glEnable(GL_CULL_FACE);
 				glEnable(GL_CULL_FACE);
 				break;
 				break;
+			default: {}
 		}
 		}
 	}
 	}
 
 

+ 10 - 0
drivers/gles3/rasterizer_storage_gles3.cpp

@@ -1905,6 +1905,7 @@ void RasterizerStorageGLES3::_update_shader(Shader *p_shader) const {
 			actions = &shaders.actions_particles;
 			actions = &shaders.actions_particles;
 			actions->uniforms = &p_shader->uniforms;
 			actions->uniforms = &p_shader->uniforms;
 		} break;
 		} break;
+		case VS::SHADER_MAX: break; // Can't happen, but silences warning
 	}
 	}
 
 
 	Error err = shaders.compiler.compile(p_shader->mode, p_shader->code, actions, p_shader->path, gen_code);
 	Error err = shaders.compiler.compile(p_shader->mode, p_shader->code, actions, p_shader->path, gen_code);
@@ -2028,6 +2029,14 @@ void RasterizerStorageGLES3::shader_get_param_list(RID p_shader, List<PropertyIn
 				pi.hint = PROPERTY_HINT_RESOURCE_TYPE;
 				pi.hint = PROPERTY_HINT_RESOURCE_TYPE;
 				pi.hint_string = "Texture";
 				pi.hint_string = "Texture";
 			} break;
 			} break;
+			case ShaderLanguage::TYPE_SAMPLER2DARRAY:
+			case ShaderLanguage::TYPE_ISAMPLER2DARRAY:
+			case ShaderLanguage::TYPE_USAMPLER2DARRAY: {
+
+				pi.type = Variant::OBJECT;
+				pi.hint = PROPERTY_HINT_RESOURCE_TYPE;
+				pi.hint_string = "TextureArray";
+			} break;
 			case ShaderLanguage::TYPE_SAMPLER3D:
 			case ShaderLanguage::TYPE_SAMPLER3D:
 			case ShaderLanguage::TYPE_ISAMPLER3D:
 			case ShaderLanguage::TYPE_ISAMPLER3D:
 			case ShaderLanguage::TYPE_USAMPLER3D: {
 			case ShaderLanguage::TYPE_USAMPLER3D: {
@@ -4961,6 +4970,7 @@ void RasterizerStorageGLES3::light_set_param(RID p_light, VS::LightParam p_param
 			light->version++;
 			light->version++;
 			light->instance_change_notify();
 			light->instance_change_notify();
 		} break;
 		} break;
+		default: {}
 	}
 	}
 
 
 	light->param[p_param] = p_value;
 	light->param[p_param] = p_value;

+ 12 - 0
drivers/gles3/shader_compiler_gles3.cpp

@@ -79,6 +79,12 @@ static int _get_datatype_size(SL::DataType p_type) {
 		case SL::TYPE_SAMPLER2D: return 16;
 		case SL::TYPE_SAMPLER2D: return 16;
 		case SL::TYPE_ISAMPLER2D: return 16;
 		case SL::TYPE_ISAMPLER2D: return 16;
 		case SL::TYPE_USAMPLER2D: return 16;
 		case SL::TYPE_USAMPLER2D: return 16;
+		case SL::TYPE_SAMPLER2DARRAY: return 16;
+		case SL::TYPE_ISAMPLER2DARRAY: return 16;
+		case SL::TYPE_USAMPLER2DARRAY: return 16;
+		case SL::TYPE_SAMPLER3D: return 16;
+		case SL::TYPE_ISAMPLER3D: return 16;
+		case SL::TYPE_USAMPLER3D: return 16;
 		case SL::TYPE_SAMPLERCUBE: return 16;
 		case SL::TYPE_SAMPLERCUBE: return 16;
 	}
 	}
 
 
@@ -112,6 +118,12 @@ static int _get_datatype_alignment(SL::DataType p_type) {
 		case SL::TYPE_SAMPLER2D: return 16;
 		case SL::TYPE_SAMPLER2D: return 16;
 		case SL::TYPE_ISAMPLER2D: return 16;
 		case SL::TYPE_ISAMPLER2D: return 16;
 		case SL::TYPE_USAMPLER2D: return 16;
 		case SL::TYPE_USAMPLER2D: return 16;
+		case SL::TYPE_SAMPLER2DARRAY: return 16;
+		case SL::TYPE_ISAMPLER2DARRAY: return 16;
+		case SL::TYPE_USAMPLER2DARRAY: return 16;
+		case SL::TYPE_SAMPLER3D: return 16;
+		case SL::TYPE_ISAMPLER3D: return 16;
+		case SL::TYPE_USAMPLER3D: return 16;
 		case SL::TYPE_SAMPLERCUBE: return 16;
 		case SL::TYPE_SAMPLERCUBE: return 16;
 	}
 	}
 
 

+ 4 - 1
drivers/pulseaudio/audio_driver_pulseaudio.cpp

@@ -43,10 +43,13 @@ void AudioDriverPulseAudio::pa_state_cb(pa_context *c, void *userdata) {
 		case PA_CONTEXT_FAILED:
 		case PA_CONTEXT_FAILED:
 			ad->pa_ready = -1;
 			ad->pa_ready = -1;
 			break;
 			break;
-
 		case PA_CONTEXT_READY:
 		case PA_CONTEXT_READY:
 			ad->pa_ready = 1;
 			ad->pa_ready = 1;
 			break;
 			break;
+		default:
+			// TODO: Check if we want to handle some of the other
+			// PA context states like PA_CONTEXT_UNCONNECTED.
+			break;
 	}
 	}
 }
 }
 
 

+ 9 - 0
editor/editor_file_dialog.cpp

@@ -209,6 +209,10 @@ void EditorFileDialog::update_dir() {
 		case MODE_OPEN_DIR:
 		case MODE_OPEN_DIR:
 			get_ok()->set_text(TTR("Select Current Folder"));
 			get_ok()->set_text(TTR("Select Current Folder"));
 			break;
 			break;
+		case MODE_OPEN_ANY:
+		case MODE_SAVE_FILE:
+			// FIXME: Implement, or refactor to avoid duplication with set_mode
+			break;
 	}
 	}
 }
 }
 
 
@@ -504,6 +508,11 @@ void EditorFileDialog::_items_clear_selection() {
 			get_ok()->set_disabled(false);
 			get_ok()->set_disabled(false);
 			get_ok()->set_text(TTR("Select Current Folder"));
 			get_ok()->set_text(TTR("Select Current Folder"));
 			break;
 			break;
+
+		case MODE_OPEN_ANY:
+		case MODE_SAVE_FILE:
+			// FIXME: Implement, or refactor to avoid duplication with set_mode
+			break;
 	}
 	}
 }
 }
 
 

+ 2 - 34
editor/editor_log.cpp

@@ -49,11 +49,6 @@ void EditorLog::_error_handler(void *p_self, const char *p_func, const char *p_f
 		err_str = String(p_file) + ":" + itos(p_line) + " - " + String(p_error);
 		err_str = String(p_file) + ":" + itos(p_line) + " - " + String(p_error);
 	}
 	}
 
 
-	/*
-	if (!self->is_visible_in_tree())
-		self->emit_signal("show_request");
-	*/
-
 	if (p_type == ERR_HANDLER_WARNING) {
 	if (p_type == ERR_HANDLER_WARNING) {
 		self->add_message(err_str, MSG_TYPE_WARNING);
 		self->add_message(err_str, MSG_TYPE_WARNING);
 	} else {
 	} else {
@@ -76,17 +71,6 @@ void EditorLog::_notification(int p_what) {
 			}
 			}
 		}
 		}
 	}
 	}
-
-	/*if (p_what==NOTIFICATION_DRAW) {
-
-		RID ci = get_canvas_item();
-		get_stylebox("panel","PopupMenu")->draw(ci,Rect2(Point2(),get_size()));
-		int top_ofs = 20;
-		int border_ofs=4;
-		Ref<StyleBox> style = get_stylebox("normal","TextEdit");
-
-		style->draw(ci,Rect2( Point2(border_ofs,top_ofs),get_size()-Size2(border_ofs*2,top_ofs+border_ofs)));
-	}*/
 }
 }
 
 
 void EditorLog::_clear_request() {
 void EditorLog::_clear_request() {
@@ -105,6 +89,8 @@ void EditorLog::add_message(const String &p_msg, MessageType p_type) {
 
 
 	bool restore = p_type != MSG_TYPE_STD;
 	bool restore = p_type != MSG_TYPE_STD;
 	switch (p_type) {
 	switch (p_type) {
+		case MSG_TYPE_STD: {
+		} break;
 		case MSG_TYPE_ERROR: {
 		case MSG_TYPE_ERROR: {
 			log->push_color(get_color("error_color", "Editor"));
 			log->push_color(get_color("error_color", "Editor"));
 			Ref<Texture> icon = get_icon("Error", "EditorIcons");
 			Ref<Texture> icon = get_icon("Error", "EditorIcons");
@@ -122,7 +108,6 @@ void EditorLog::add_message(const String &p_msg, MessageType p_type) {
 	}
 	}
 
 
 	log->add_text(p_msg);
 	log->add_text(p_msg);
-	//button->set_text(p_msg);
 
 
 	if (restore)
 	if (restore)
 		log->pop();
 		log->pop();
@@ -132,21 +117,6 @@ void EditorLog::set_tool_button(ToolButton *p_tool_button) {
 	tool_button = p_tool_button;
 	tool_button = p_tool_button;
 }
 }
 
 
-/*
-void EditorLog::_dragged(const Point2& p_ofs) {
-
-	int ofs = ec->get_minsize().height;
-	ofs = ofs-p_ofs.y;
-	if (ofs<50)
-		ofs=50;
-	if (ofs>300)
-		ofs=300;
-	ec->set_minsize(Size2(ec->get_minsize().width,ofs));
-	minimum_size_changed();
-
-}
-*/
-
 void EditorLog::_undo_redo_cbk(void *p_self, const String &p_name) {
 void EditorLog::_undo_redo_cbk(void *p_self, const String &p_name) {
 
 
 	EditorLog *self = (EditorLog *)p_self;
 	EditorLog *self = (EditorLog *)p_self;
@@ -156,7 +126,6 @@ void EditorLog::_undo_redo_cbk(void *p_self, const String &p_name) {
 void EditorLog::_bind_methods() {
 void EditorLog::_bind_methods() {
 
 
 	ClassDB::bind_method(D_METHOD("_clear_request"), &EditorLog::_clear_request);
 	ClassDB::bind_method(D_METHOD("_clear_request"), &EditorLog::_clear_request);
-	//ClassDB::bind_method(D_METHOD("_dragged"),&EditorLog::_dragged );
 	ADD_SIGNAL(MethodInfo("clear_request"));
 	ADD_SIGNAL(MethodInfo("clear_request"));
 }
 }
 
 
@@ -187,7 +156,6 @@ EditorLog::EditorLog() {
 	log->set_h_size_flags(SIZE_EXPAND_FILL);
 	log->set_h_size_flags(SIZE_EXPAND_FILL);
 	vb->add_child(log);
 	vb->add_child(log);
 	add_message(VERSION_FULL_NAME " (c) 2007-2018 Juan Linietsky, Ariel Manzur & Godot Contributors.");
 	add_message(VERSION_FULL_NAME " (c) 2007-2018 Juan Linietsky, Ariel Manzur & Godot Contributors.");
-	//log->add_text("Initialization Complete.\n"); //because it looks cool.
 
 
 	eh.errfunc = _error_handler;
 	eh.errfunc = _error_handler;
 	eh.userdata = this;
 	eh.userdata = this;

+ 1 - 0
editor/plugins/baked_lightmap_editor_plugin.cpp

@@ -50,6 +50,7 @@ void BakedLightmapEditorPlugin::_bake() {
 			case BakedLightmap::BAKE_ERROR_CANT_CREATE_IMAGE:
 			case BakedLightmap::BAKE_ERROR_CANT_CREATE_IMAGE:
 				EditorNode::get_singleton()->show_warning(TTR("Failed creating lightmap images, make sure path is writable."));
 				EditorNode::get_singleton()->show_warning(TTR("Failed creating lightmap images, make sure path is writable."));
 				break;
 				break;
+			default: {}
 		}
 		}
 	}
 	}
 }
 }

+ 1 - 0
editor/plugins/polygon_2d_editor_plugin.cpp

@@ -767,6 +767,7 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) {
 						node->set_polygon(uv_new);
 						node->set_polygon(uv_new);
 					}
 					}
 				} break;
 				} break;
+				default: {}
 			}
 			}
 
 
 			if (bone_painting) {
 			if (bone_painting) {

+ 8 - 0
editor/plugins/spatial_editor_plugin.cpp

@@ -997,6 +997,10 @@ void SpatialEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
 							set_message(TTR("View Plane Transform."), 2);
 							set_message(TTR("View Plane Transform."), 2);
 
 
 						} break;
 						} break;
+						case TRANSFORM_YZ:
+						case TRANSFORM_XZ:
+						case TRANSFORM_XY: {
+						} break;
 					}
 					}
 				}
 				}
 			} break;
 			} break;
@@ -1545,6 +1549,10 @@ void SpatialEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
 								plane = Plane(_edit.center, spatial_editor->get_gizmo_transform().basis.get_axis(2));
 								plane = Plane(_edit.center, spatial_editor->get_gizmo_transform().basis.get_axis(2));
 								axis = Vector3(0, 0, 1);
 								axis = Vector3(0, 0, 1);
 								break;
 								break;
+							case TRANSFORM_YZ:
+							case TRANSFORM_XZ:
+							case TRANSFORM_XY:
+								break;
 						}
 						}
 
 
 						Vector3 intersection;
 						Vector3 intersection;

+ 4 - 0
editor/plugins/tile_set_editor_plugin.cpp

@@ -795,6 +795,7 @@ void TileSetEditor::_on_workspace_draw() {
 				spin_priority->set_suffix(" / " + String::num(total, 0));
 				spin_priority->set_suffix(" / " + String::num(total, 0));
 				draw_highlight_subtile(edited_shape_coord, queue_others);
 				draw_highlight_subtile(edited_shape_coord, queue_others);
 			} break;
 			} break;
+			default: {}
 		}
 		}
 
 
 		draw_tile_subdivision(get_current_tile(), Color(0.347214, 0.722656, 0.617063));
 		draw_tile_subdivision(get_current_tile(), Color(0.347214, 0.722656, 0.617063));
@@ -1365,6 +1366,7 @@ void TileSetEditor::_on_workspace_input(const Ref<InputEvent> &p_ie) {
 						}
 						}
 					}
 					}
 				} break;
 				} break;
+				default: {}
 			}
 			}
 		}
 		}
 	}
 	}
@@ -1434,6 +1436,7 @@ void TileSetEditor::_on_tool_clicked(int p_tool) {
 						workspace->update();
 						workspace->update();
 					}
 					}
 				} break;
 				} break;
+				default: {}
 			}
 			}
 		}
 		}
 	} else if (p_tool == ZOOM_OUT) {
 	} else if (p_tool == ZOOM_OUT) {
@@ -1862,6 +1865,7 @@ void TileSetEditor::draw_polygon_shapes() {
 				}
 				}
 			}
 			}
 		} break;
 		} break;
+		default: {}
 	}
 	}
 	if (creating_shape) {
 	if (creating_shape) {
 		for (int j = 0; j < current_shape.size() - 1; j++) {
 		for (int j = 0; j < current_shape.size() - 1; j++) {

+ 3 - 0
main/tests/test_gdscript.cpp

@@ -357,6 +357,9 @@ static void _parser_show_block(const GDScriptParser::BlockNode *p_block, int p_i
 						_parser_show_block(cf_node->body, p_indent + 1);
 						_parser_show_block(cf_node->body, p_indent + 1);
 
 
 					} break;
 					} break;
+					case GDScriptParser::ControlFlowNode::CF_MATCH: {
+						// FIXME: Implement
+					} break;
 					case GDScriptParser::ControlFlowNode::CF_SWITCH: {
 					case GDScriptParser::ControlFlowNode::CF_SWITCH: {
 
 
 					} break;
 					} break;

+ 3 - 0
main/tests/test_shader_lang.cpp

@@ -194,6 +194,9 @@ static String dump_node_code(SL::Node *p_node, int p_level) {
 			code = vnode->name;
 			code = vnode->name;
 
 
 		} break;
 		} break;
+		case SL::Node::TYPE_VARIABLE_DECLARATION: {
+			// FIXME: Implement
+		} break;
 		case SL::Node::TYPE_CONSTANT: {
 		case SL::Node::TYPE_CONSTANT: {
 			SL::ConstantNode *cnode = (SL::ConstantNode *)p_node;
 			SL::ConstantNode *cnode = (SL::ConstantNode *)p_node;
 			return get_constant_text(cnode->datatype, cnode->values);
 			return get_constant_text(cnode->datatype, cnode->values);

+ 3 - 0
modules/bullet/area_bullet.cpp

@@ -94,6 +94,9 @@ void AreaBullet::dispatch_callbacks() {
 				otherObj.object->on_exit_area(this);
 				otherObj.object->on_exit_area(this);
 				overlappingObjects.remove(i); // Remove after callback
 				overlappingObjects.remove(i); // Remove after callback
 				break;
 				break;
+			case OVERLAP_STATE_DIRTY:
+			case OVERLAP_STATE_INSIDE:
+				break;
 		}
 		}
 	}
 	}
 }
 }

+ 3 - 2
modules/bullet/hinge_joint_bullet.cpp

@@ -117,7 +117,7 @@ void HingeJointBullet::set_param(PhysicsServer::HingeJointParam p_param, real_t
 			hingeConstraint->setMaxMotorImpulse(p_value);
 			hingeConstraint->setMaxMotorImpulse(p_value);
 			break;
 			break;
 		default:
 		default:
-			ERR_EXPLAIN("This parameter " + itos(p_param) + " is deprecated");
+			ERR_EXPLAIN("The HingeJoint parameter " + itos(p_param) + " is deprecated.");
 			WARN_DEPRECATED
 			WARN_DEPRECATED
 			break;
 			break;
 	}
 	}
@@ -143,7 +143,7 @@ real_t HingeJointBullet::get_param(PhysicsServer::HingeJointParam p_param) const
 		case PhysicsServer::HINGE_JOINT_MOTOR_MAX_IMPULSE:
 		case PhysicsServer::HINGE_JOINT_MOTOR_MAX_IMPULSE:
 			return hingeConstraint->getMaxMotorImpulse();
 			return hingeConstraint->getMaxMotorImpulse();
 		default:
 		default:
-			ERR_EXPLAIN("This parameter " + itos(p_param) + " is deprecated");
+			ERR_EXPLAIN("The HingeJoint parameter " + itos(p_param) + " is deprecated.");
 			WARN_DEPRECATED;
 			WARN_DEPRECATED;
 			return 0;
 			return 0;
 	}
 	}
@@ -159,6 +159,7 @@ void HingeJointBullet::set_flag(PhysicsServer::HingeJointFlag p_flag, bool p_val
 		case PhysicsServer::HINGE_JOINT_FLAG_ENABLE_MOTOR:
 		case PhysicsServer::HINGE_JOINT_FLAG_ENABLE_MOTOR:
 			hingeConstraint->enableMotor(p_value);
 			hingeConstraint->enableMotor(p_value);
 			break;
 			break;
+		case PhysicsServer::HINGE_JOINT_FLAG_MAX: break; // Can't happen, but silences warning
 	}
 	}
 }
 }
 
 

+ 6 - 8
modules/bullet/rigid_body_bullet.cpp

@@ -535,20 +535,18 @@ void RigidBodyBullet::set_mode(PhysicsServer::BodyMode p_mode) {
 			reload_axis_lock();
 			reload_axis_lock();
 			_internal_set_mass(0);
 			_internal_set_mass(0);
 			break;
 			break;
-		case PhysicsServer::BODY_MODE_RIGID: {
+		case PhysicsServer::BODY_MODE_RIGID:
 			mode = PhysicsServer::BODY_MODE_RIGID;
 			mode = PhysicsServer::BODY_MODE_RIGID;
 			reload_axis_lock();
 			reload_axis_lock();
 			_internal_set_mass(0 == mass ? 1 : mass);
 			_internal_set_mass(0 == mass ? 1 : mass);
 			scratch_space_override_modificator();
 			scratch_space_override_modificator();
 			break;
 			break;
-		}
-		case PhysicsServer::BODY_MODE_CHARACTER: {
+		case PhysicsServer::BODY_MODE_CHARACTER:
 			mode = PhysicsServer::BODY_MODE_CHARACTER;
 			mode = PhysicsServer::BODY_MODE_CHARACTER;
 			reload_axis_lock();
 			reload_axis_lock();
 			_internal_set_mass(0 == mass ? 1 : mass);
 			_internal_set_mass(0 == mass ? 1 : mass);
 			scratch_space_override_modificator();
 			scratch_space_override_modificator();
 			break;
 			break;
-		}
 	}
 	}
 
 
 	btBody->setAngularVelocity(btVector3(0, 0, 0));
 	btBody->setAngularVelocity(btVector3(0, 0, 0));
@@ -927,10 +925,10 @@ void RigidBodyBullet::reload_space_override_modificator() {
 		}
 		}
 
 
 		switch (currentArea->get_spOv_mode()) {
 		switch (currentArea->get_spOv_mode()) {
-			///case PhysicsServer::AREA_SPACE_OVERRIDE_DISABLED:
-			/// This area does not affect gravity/damp. These are generally areas
-			/// that exist only to detect collisions, and objects entering or exiting them.
-			///    break;
+			case PhysicsServer::AREA_SPACE_OVERRIDE_DISABLED:
+				/// This area does not affect gravity/damp. These are generally areas
+				/// that exist only to detect collisions, and objects entering or exiting them.
+				break;
 			case PhysicsServer::AREA_SPACE_OVERRIDE_COMBINE:
 			case PhysicsServer::AREA_SPACE_OVERRIDE_COMBINE:
 				/// This area adds its gravity/damp values to whatever has been
 				/// This area adds its gravity/damp values to whatever has been
 				/// calculated so far. This way, many overlapping areas can combine
 				/// calculated so far. This way, many overlapping areas can combine

+ 1 - 0
modules/bullet/slider_joint_bullet.cpp

@@ -366,6 +366,7 @@ void SliderJointBullet::set_param(PhysicsServer::SliderJointParam p_param, real_
 		case PhysicsServer::SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS: setSoftnessOrthoAng(p_value); break;
 		case PhysicsServer::SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS: setSoftnessOrthoAng(p_value); break;
 		case PhysicsServer::SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION: setRestitutionOrthoAng(p_value); break;
 		case PhysicsServer::SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION: setRestitutionOrthoAng(p_value); break;
 		case PhysicsServer::SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING: setDampingOrthoAng(p_value); break;
 		case PhysicsServer::SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING: setDampingOrthoAng(p_value); break;
+		case PhysicsServer::SLIDER_JOINT_MAX: break; // Can't happen, but silences warning
 	}
 	}
 }
 }
 
 

+ 8 - 6
modules/etc/image_etc.cpp

@@ -47,13 +47,14 @@ static Image::Format _get_etc2_mode(Image::DetectChannels format) {
 		case Image::DETECTED_RGB:
 		case Image::DETECTED_RGB:
 			return Image::FORMAT_ETC2_RGB8;
 			return Image::FORMAT_ETC2_RGB8;
 
 
-		default:
+		case Image::DETECTED_RGBA:
 			return Image::FORMAT_ETC2_RGBA8;
 			return Image::FORMAT_ETC2_RGBA8;
 
 
-			// TODO: would be nice if we could use FORMAT_ETC2_RGB8A1 for FORMAT_RGBA5551
+		// TODO: would be nice if we could use FORMAT_ETC2_RGB8A1 for FORMAT_RGBA5551
+		default:
+			// TODO: Kept for compatibility, but should be investigated whether it's correct or if it should error out
+			return Image::FORMAT_ETC2_RGBA8;
 	}
 	}
-
-	ERR_FAIL_COND_V(true, Image::FORMAT_MAX);
 }
 }
 
 
 static Etc::Image::Format _image_format_to_etc2comp_format(Image::Format format) {
 static Etc::Image::Format _image_format_to_etc2comp_format(Image::Format format) {
@@ -81,9 +82,10 @@ static Etc::Image::Format _image_format_to_etc2comp_format(Image::Format format)
 
 
 		case Image::FORMAT_ETC2_RGB8A1:
 		case Image::FORMAT_ETC2_RGB8A1:
 			return Etc::Image::Format::RGB8A1;
 			return Etc::Image::Format::RGB8A1;
-	}
 
 
-	ERR_FAIL_COND_V(true, Etc::Image::Format::UNKNOWN);
+		default:
+			ERR_FAIL_V(Etc::Image::Format::UNKNOWN);
+	}
 }
 }
 
 
 static void _decompress_etc1(Image *p_img) {
 static void _decompress_etc1(Image *p_img) {

+ 1 - 0
modules/gdscript/gdscript.cpp

@@ -1981,6 +1981,7 @@ String GDScriptWarning::get_message() const {
 			CHECK_SYMBOLS(2);
 			CHECK_SYMBOLS(2);
 			return "The '" + symbols[0] + "' keyword is deprecated and will be removed in a future release, please replace its uses by '" + symbols[1] + "'.";
 			return "The '" + symbols[0] + "' keyword is deprecated and will be removed in a future release, please replace its uses by '" + symbols[1] + "'.";
 		} break;
 		} break;
+		case WARNING_MAX: break; // Can't happen, but silences warning
 	}
 	}
 	ERR_EXPLAIN("Invalid GDScript warning code: " + get_name_from_code(code));
 	ERR_EXPLAIN("Invalid GDScript warning code: " + get_name_from_code(code));
 	ERR_FAIL_V(String());
 	ERR_FAIL_V(String());

+ 2 - 0
modules/gdscript/gdscript_editor.cpp

@@ -1110,6 +1110,7 @@ static bool _guess_expression_type(const GDScriptCompletionContext &p_context, c
 				} break;
 				} break;
 			}
 			}
 		} break;
 		} break;
+		default: {}
 	}
 	}
 
 
 	// It may have found a null, but that's never useful
 	// It may have found a null, but that's never useful
@@ -3354,6 +3355,7 @@ Error GDScriptLanguage::lookup_code(const String &p_code, const String &p_symbol
 				return OK;
 				return OK;
 			}
 			}
 		} break;
 		} break;
+		default: {}
 	}
 	}
 
 
 	return ERR_CANT_RESOLVE;
 	return ERR_CANT_RESOLVE;

+ 12 - 2
modules/gdscript/gdscript_parser.cpp

@@ -5219,6 +5219,8 @@ String GDScriptParser::DataType::to_string() const {
 			}
 			}
 			return class_type->name.operator String();
 			return class_type->name.operator String();
 		} break;
 		} break;
+		case UNRESOLVED: {
+		} break;
 	}
 	}
 
 
 	return "Unresolved";
 	return "Unresolved";
@@ -5791,7 +5793,10 @@ bool GDScriptParser::_is_type_compatible(const DataType &p_container, const Data
 				expr_native = base->base_type.native_type;
 				expr_native = base->base_type.native_type;
 				expr_script = base->base_type.script_type;
 				expr_script = base->base_type.script_type;
 			}
 			}
-		}
+		} break;
+		case DataType::BUILTIN: // Already handled above
+		case DataType::UNRESOLVED: // Not allowed, see above
+			break;
 	}
 	}
 
 
 	switch (p_container.kind) {
 	switch (p_container.kind) {
@@ -5834,7 +5839,10 @@ bool GDScriptParser::_is_type_compatible(const DataType &p_container, const Data
 				expr_class = expr_class->base_type.class_type;
 				expr_class = expr_class->base_type.class_type;
 			}
 			}
 			return false;
 			return false;
-		}
+		} break;
+		case DataType::BUILTIN: // Already handled above
+		case DataType::UNRESOLVED: // Not allowed, see above
+			break;
 	}
 	}
 
 
 	return false;
 	return false;
@@ -6228,6 +6236,7 @@ GDScriptParser::DataType GDScriptParser::_reduce_node_type(Node *p_node) {
 									case Variant::COLOR: {
 									case Variant::COLOR: {
 										error = index_type.builtin_type != Variant::INT && index_type.builtin_type != Variant::STRING;
 										error = index_type.builtin_type != Variant::INT && index_type.builtin_type != Variant::STRING;
 									} break;
 									} break;
+									default: {}
 								}
 								}
 							}
 							}
 							if (error) {
 							if (error) {
@@ -6345,6 +6354,7 @@ GDScriptParser::DataType GDScriptParser::_reduce_node_type(Node *p_node) {
 				}
 				}
 			}
 			}
 		} break;
 		} break;
+		default: {}
 	}
 	}
 
 
 	p_node->set_datatype(_resolve_type(node_type, p_node->line));
 	p_node->set_datatype(_resolve_type(node_type, p_node->line));

+ 2 - 0
modules/gdscript/gdscript_parser.h

@@ -88,6 +88,8 @@ public:
 				case CLASS: {
 				case CLASS: {
 					return class_type == other.class_type;
 					return class_type == other.class_type;
 				} break;
 				} break;
+				case UNRESOLVED: {
+				} break;
 			}
 			}
 			return false;
 			return false;
 		}
 		}

+ 4 - 0
scene/3d/physics_body.cpp

@@ -2287,6 +2287,8 @@ void PhysicalBone::_reload_joint() {
 			}
 			}
 
 
 		} break;
 		} break;
+		case JOINT_TYPE_NONE: {
+		} break;
 	}
 	}
 }
 }
 
 
@@ -2342,6 +2344,8 @@ void PhysicalBone::set_joint_type(JointType p_joint_type) {
 		case JOINT_TYPE_6DOF:
 		case JOINT_TYPE_6DOF:
 			joint_data = memnew(SixDOFJointData);
 			joint_data = memnew(SixDOFJointData);
 			break;
 			break;
+		case JOINT_TYPE_NONE:
+			break;
 	}
 	}
 
 
 	_reload_joint();
 	_reload_joint();

+ 1 - 0
scene/animation/animation_player.cpp

@@ -1451,6 +1451,7 @@ void AnimationPlayer::_set_process(bool p_process, bool p_force) {
 
 
 		case ANIMATION_PROCESS_PHYSICS: set_physics_process_internal(p_process && active); break;
 		case ANIMATION_PROCESS_PHYSICS: set_physics_process_internal(p_process && active); break;
 		case ANIMATION_PROCESS_IDLE: set_process_internal(p_process && active); break;
 		case ANIMATION_PROCESS_IDLE: set_process_internal(p_process && active); break;
+		case ANIMATION_PROCESS_MANUAL: break;
 	}
 	}
 
 
 	processing = p_process;
 	processing = p_process;

+ 1 - 0
scene/animation/animation_tree_player.cpp

@@ -877,6 +877,7 @@ void AnimationTreePlayer::_process_animation(float p_delta) {
 							tr.track->object->call(method, args[0], args[1], args[2], args[3], args[4]);
 							tr.track->object->call(method, args[0], args[1], args[2], args[3], args[4]);
 						}
 						}
 					} break;
 					} break;
+					default: {}
 				}
 				}
 			}
 			}
 		}
 		}

+ 11 - 9
scene/animation/tween.cpp

@@ -277,7 +277,10 @@ Variant &Tween::_get_initial_val(InterpolateData &p_data) {
 				ERR_FAIL_COND_V(error.error != Variant::CallError::CALL_OK, p_data.initial_val);
 				ERR_FAIL_COND_V(error.error != Variant::CallError::CALL_OK, p_data.initial_val);
 			}
 			}
 			return initial_val;
 			return initial_val;
-		} break;
+		}
+
+		case INTER_CALLBACK:
+			break;
 	}
 	}
 	return p_data.delta_val;
 	return p_data.delta_val;
 }
 }
@@ -313,7 +316,7 @@ Variant &Tween::_get_delta_val(InterpolateData &p_data) {
 			if (final_val.get_type() == Variant::INT) final_val = final_val.operator real_t();
 			if (final_val.get_type() == Variant::INT) final_val = final_val.operator real_t();
 			_calc_delta_val(p_data.initial_val, final_val, p_data.delta_val);
 			_calc_delta_val(p_data.initial_val, final_val, p_data.delta_val);
 			return p_data.delta_val;
 			return p_data.delta_val;
-		} break;
+		}
 
 
 		case TARGETING_PROPERTY:
 		case TARGETING_PROPERTY:
 		case TARGETING_METHOD: {
 		case TARGETING_METHOD: {
@@ -325,7 +328,10 @@ Variant &Tween::_get_delta_val(InterpolateData &p_data) {
 			//_calc_delta_val(p_data.initial_val, p_data.final_val, p_data.delta_val);
 			//_calc_delta_val(p_data.initial_val, p_data.final_val, p_data.delta_val);
 			_calc_delta_val(initial_val, p_data.final_val, p_data.delta_val);
 			_calc_delta_val(initial_val, p_data.final_val, p_data.delta_val);
 			return p_data.delta_val;
 			return p_data.delta_val;
-		} break;
+		}
+
+		case INTER_CALLBACK:
+			break;
 	}
 	}
 	return p_data.initial_val;
 	return p_data.initial_val;
 }
 }
@@ -857,12 +863,8 @@ bool Tween::seek(real_t p_time) {
 			data.finish = false;
 			data.finish = false;
 		}
 		}
 
 
-		switch (data.type) {
-			case INTER_PROPERTY:
-			case INTER_METHOD:
-				break;
-			case INTER_CALLBACK:
-				continue;
+		if (data.type == INTER_CALLBACK) {
+			continue;
 		}
 		}
 
 
 		Variant result = _run_equation(data);
 		Variant result = _run_equation(data);

+ 4 - 0
scene/gui/file_dialog.cpp

@@ -330,6 +330,10 @@ void FileDialog::deselect_items() {
 			case MODE_OPEN_DIR:
 			case MODE_OPEN_DIR:
 				get_ok()->set_text(RTR("Select Current Folder"));
 				get_ok()->set_text(RTR("Select Current Folder"));
 				break;
 				break;
+			case MODE_OPEN_ANY:
+			case MODE_SAVE_FILE:
+				// FIXME: Implement, or refactor to avoid duplication with set_mode
+				break;
 		}
 		}
 	}
 	}
 }
 }

+ 3 - 0
scene/gui/texture_button.cpp

@@ -88,6 +88,9 @@ bool TextureButton::has_point(const Point2 &p_point) const {
 					scale.y = min;
 					scale.y = min;
 					ofs -= _texture_region.position / min;
 					ofs -= _texture_region.position / min;
 				} break;
 				} break;
+				default: {
+					// FIXME: Why a switch if we only handle one enum value?
+				}
 			}
 			}
 
 
 			// offset and scale the new point position to adjust it to the bitmask size
 			// offset and scale the new point position to adjust it to the bitmask size

+ 22 - 0
scene/gui/texture_progress.cpp

@@ -229,6 +229,17 @@ void TextureProgress::draw_nine_patch_stretched(const Ref<Texture> &p_texture, F
 				first_section_size = topleft.y;
 				first_section_size = topleft.y;
 				last_section_size = bottomright.y;
 				last_section_size = bottomright.y;
 			} break;
 			} break;
+			case FILL_BILINEAR_LEFT_AND_RIGHT: {
+				// TODO: Implement
+			} break;
+			case FILL_BILINEAR_TOP_AND_BOTTOM: {
+				// TODO: Implement
+			} break;
+			case FILL_CLOCKWISE:
+			case FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE:
+			case FILL_COUNTER_CLOCKWISE: {
+				// Those modes are circular, not relevant for nine patch
+			} break;
 		}
 		}
 
 
 		double width_filled = width_total * p_ratio;
 		double width_filled = width_total * p_ratio;
@@ -263,6 +274,17 @@ void TextureProgress::draw_nine_patch_stretched(const Ref<Texture> &p_texture, F
 				dst_rect.size.y = width_filled;
 				dst_rect.size.y = width_filled;
 				topleft.y = last_section_size;
 				topleft.y = last_section_size;
 			} break;
 			} break;
+			case FILL_BILINEAR_LEFT_AND_RIGHT: {
+				// TODO: Implement
+			} break;
+			case FILL_BILINEAR_TOP_AND_BOTTOM: {
+				// TODO: Implement
+			} break;
+			case FILL_CLOCKWISE:
+			case FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE:
+			case FILL_COUNTER_CLOCKWISE: {
+				// Those modes are circular, not relevant for nine patch
+			} break;
 		}
 		}
 	}
 	}
 
 

+ 0 - 1
scene/gui/tree.h

@@ -53,7 +53,6 @@ public:
 		CELL_MODE_STRING, ///< just a string
 		CELL_MODE_STRING, ///< just a string
 		CELL_MODE_CHECK, ///< string + check
 		CELL_MODE_CHECK, ///< string + check
 		CELL_MODE_RANGE, ///< Contains a range
 		CELL_MODE_RANGE, ///< Contains a range
-		CELL_MODE_RANGE_EXPRESSION, ///< Contains a range
 		CELL_MODE_ICON, ///< Contains an icon, not editable
 		CELL_MODE_ICON, ///< Contains an icon, not editable
 		CELL_MODE_CUSTOM, ///< Contains a custom value, show a string, and an edit button
 		CELL_MODE_CUSTOM, ///< Contains a custom value, show a string, and an edit button
 	};
 	};

+ 4 - 0
scene/gui/video_player.cpp

@@ -102,6 +102,10 @@ void VideoPlayer::_mix_audio() {
 			}
 			}
 
 
 		} break;
 		} break;
+		case AudioServer::SPEAKER_SURROUND_31: {
+
+			// FIXME: Implement
+		} break;
 		case AudioServer::SPEAKER_SURROUND_51: {
 		case AudioServer::SPEAKER_SURROUND_51: {
 
 
 			AudioFrame *targets[2] = {
 			AudioFrame *targets[2] = {

+ 3 - 0
scene/main/scene_tree.cpp

@@ -1197,6 +1197,9 @@ void SceneTree::_update_root_rect() {
 	}
 	}
 
 
 	switch (stretch_mode) {
 	switch (stretch_mode) {
+		case STRETCH_MODE_DISABLED: {
+			// Already handled above
+		} break;
 		case STRETCH_MODE_2D: {
 		case STRETCH_MODE_2D: {
 
 
 			root->set_size((screen_size / stretch_shrink).floor());
 			root->set_size((screen_size / stretch_shrink).floor());

+ 3 - 0
scene/resources/particles_material.cpp

@@ -691,6 +691,7 @@ void ParticlesMaterial::set_param(Parameter p_param, float p_value) {
 		case PARAM_ANIM_OFFSET: {
 		case PARAM_ANIM_OFFSET: {
 			VisualServer::get_singleton()->material_set_param(_get_material(), shader_names->anim_offset, p_value);
 			VisualServer::get_singleton()->material_set_param(_get_material(), shader_names->anim_offset, p_value);
 		} break;
 		} break;
+		case PARAM_MAX: break; // Can't happen, but silences warning
 	}
 	}
 }
 }
 float ParticlesMaterial::get_param(Parameter p_param) const {
 float ParticlesMaterial::get_param(Parameter p_param) const {
@@ -743,6 +744,7 @@ void ParticlesMaterial::set_param_randomness(Parameter p_param, float p_value) {
 		case PARAM_ANIM_OFFSET: {
 		case PARAM_ANIM_OFFSET: {
 			VisualServer::get_singleton()->material_set_param(_get_material(), shader_names->anim_offset_random, p_value);
 			VisualServer::get_singleton()->material_set_param(_get_material(), shader_names->anim_offset_random, p_value);
 		} break;
 		} break;
+		case PARAM_MAX: break; // Can't happen, but silences warning
 	}
 	}
 }
 }
 float ParticlesMaterial::get_param_randomness(Parameter p_param) const {
 float ParticlesMaterial::get_param_randomness(Parameter p_param) const {
@@ -819,6 +821,7 @@ void ParticlesMaterial::set_param_texture(Parameter p_param, const Ref<Texture>
 		case PARAM_ANIM_OFFSET: {
 		case PARAM_ANIM_OFFSET: {
 			VisualServer::get_singleton()->material_set_param(_get_material(), shader_names->anim_offset_texture, p_texture);
 			VisualServer::get_singleton()->material_set_param(_get_material(), shader_names->anim_offset_texture, p_texture);
 		} break;
 		} break;
+		case PARAM_MAX: break; // Can't happen, but silences warning
 	}
 	}
 
 
 	_queue_shader_change();
 	_queue_shader_change();

+ 2 - 0
servers/physics/joints/cone_twist_joint_sw.cpp

@@ -332,6 +332,7 @@ void ConeTwistJointSW::set_param(PhysicsServer::ConeTwistJointParam p_param, rea
 
 
 			m_relaxationFactor = p_value;
 			m_relaxationFactor = p_value;
 		} break;
 		} break;
+		case PhysicsServer::CONE_TWIST_MAX: break; // Can't happen, but silences warning
 	}
 	}
 }
 }
 
 
@@ -358,6 +359,7 @@ real_t ConeTwistJointSW::get_param(PhysicsServer::ConeTwistJointParam p_param) c
 
 
 			return m_relaxationFactor;
 			return m_relaxationFactor;
 		} break;
 		} break;
+		case PhysicsServer::CONE_TWIST_MAX: break; // Can't happen, but silences warning
 	}
 	}
 
 
 	return 0;
 	return 0;

+ 22 - 0
servers/physics/joints/generic_6dof_joint_sw.cpp

@@ -497,6 +497,13 @@ void Generic6DOFJointSW::set_param(Vector3::Axis p_axis, PhysicsServer::G6DOFJoi
 			m_angularLimits[p_axis].m_maxLimitForce = p_value;
 			m_angularLimits[p_axis].m_maxLimitForce = p_value;
 
 
 		} break;
 		} break;
+		case PhysicsServer::G6DOF_JOINT_LINEAR_MOTOR_TARGET_VELOCITY: {
+			// Not implemented in GodotPhysics backend
+		} break;
+		case PhysicsServer::G6DOF_JOINT_LINEAR_MOTOR_FORCE_LIMIT: {
+			// Not implemented in GodotPhysics backend
+		} break;
+		case PhysicsServer::G6DOF_JOINT_MAX: break; // Can't happen, but silences warning
 	}
 	}
 }
 }
 
 
@@ -572,6 +579,13 @@ real_t Generic6DOFJointSW::get_param(Vector3::Axis p_axis, PhysicsServer::G6DOFJ
 			return m_angularLimits[p_axis].m_maxMotorForce;
 			return m_angularLimits[p_axis].m_maxMotorForce;
 
 
 		} break;
 		} break;
+		case PhysicsServer::G6DOF_JOINT_LINEAR_MOTOR_TARGET_VELOCITY: {
+			// Not implemented in GodotPhysics backend
+		} break;
+		case PhysicsServer::G6DOF_JOINT_LINEAR_MOTOR_FORCE_LIMIT: {
+			// Not implemented in GodotPhysics backend
+		} break;
+		case PhysicsServer::G6DOF_JOINT_MAX: break; // Can't happen, but silences warning
 	}
 	}
 	return 0;
 	return 0;
 }
 }
@@ -593,6 +607,10 @@ void Generic6DOFJointSW::set_flag(Vector3::Axis p_axis, PhysicsServer::G6DOFJoin
 
 
 			m_angularLimits[p_axis].m_enableMotor = p_value;
 			m_angularLimits[p_axis].m_enableMotor = p_value;
 		} break;
 		} break;
+		case PhysicsServer::G6DOF_JOINT_FLAG_ENABLE_LINEAR_MOTOR: {
+			// Not implemented in GodotPhysics backend
+		} break;
+		case PhysicsServer::G6DOF_JOINT_FLAG_MAX: break; // Can't happen, but silences warning
 	}
 	}
 }
 }
 bool Generic6DOFJointSW::get_flag(Vector3::Axis p_axis, PhysicsServer::G6DOFJointAxisFlag p_flag) const {
 bool Generic6DOFJointSW::get_flag(Vector3::Axis p_axis, PhysicsServer::G6DOFJointAxisFlag p_flag) const {
@@ -611,6 +629,10 @@ bool Generic6DOFJointSW::get_flag(Vector3::Axis p_axis, PhysicsServer::G6DOFJoin
 
 
 			return m_angularLimits[p_axis].m_enableMotor;
 			return m_angularLimits[p_axis].m_enableMotor;
 		} break;
 		} break;
+		case PhysicsServer::G6DOF_JOINT_FLAG_ENABLE_LINEAR_MOTOR: {
+			// Not implemented in GodotPhysics backend
+		} break;
+		case PhysicsServer::G6DOF_JOINT_FLAG_MAX: break; // Can't happen, but silences warning
 	}
 	}
 
 
 	return 0;
 	return 0;

+ 4 - 0
servers/physics/joints/hinge_joint_sw.cpp

@@ -409,6 +409,7 @@ void HingeJointSW::set_param(PhysicsServer::HingeJointParam p_param, real_t p_va
 		case PhysicsServer::HINGE_JOINT_LIMIT_RELAXATION: m_relaxationFactor = p_value; break;
 		case PhysicsServer::HINGE_JOINT_LIMIT_RELAXATION: m_relaxationFactor = p_value; break;
 		case PhysicsServer::HINGE_JOINT_MOTOR_TARGET_VELOCITY: m_motorTargetVelocity = p_value; break;
 		case PhysicsServer::HINGE_JOINT_MOTOR_TARGET_VELOCITY: m_motorTargetVelocity = p_value; break;
 		case PhysicsServer::HINGE_JOINT_MOTOR_MAX_IMPULSE: m_maxMotorImpulse = p_value; break;
 		case PhysicsServer::HINGE_JOINT_MOTOR_MAX_IMPULSE: m_maxMotorImpulse = p_value; break;
+		case PhysicsServer::HINGE_JOINT_MAX: break; // Can't happen, but silences warning
 	}
 	}
 }
 }
 
 
@@ -424,6 +425,7 @@ real_t HingeJointSW::get_param(PhysicsServer::HingeJointParam p_param) const {
 		case PhysicsServer::HINGE_JOINT_LIMIT_RELAXATION: return m_relaxationFactor;
 		case PhysicsServer::HINGE_JOINT_LIMIT_RELAXATION: return m_relaxationFactor;
 		case PhysicsServer::HINGE_JOINT_MOTOR_TARGET_VELOCITY: return m_motorTargetVelocity;
 		case PhysicsServer::HINGE_JOINT_MOTOR_TARGET_VELOCITY: return m_motorTargetVelocity;
 		case PhysicsServer::HINGE_JOINT_MOTOR_MAX_IMPULSE: return m_maxMotorImpulse;
 		case PhysicsServer::HINGE_JOINT_MOTOR_MAX_IMPULSE: return m_maxMotorImpulse;
+		case PhysicsServer::HINGE_JOINT_MAX: break; // Can't happen, but silences warning
 	}
 	}
 
 
 	return 0;
 	return 0;
@@ -434,6 +436,7 @@ void HingeJointSW::set_flag(PhysicsServer::HingeJointFlag p_flag, bool p_value)
 	switch (p_flag) {
 	switch (p_flag) {
 		case PhysicsServer::HINGE_JOINT_FLAG_USE_LIMIT: m_useLimit = p_value; break;
 		case PhysicsServer::HINGE_JOINT_FLAG_USE_LIMIT: m_useLimit = p_value; break;
 		case PhysicsServer::HINGE_JOINT_FLAG_ENABLE_MOTOR: m_enableAngularMotor = p_value; break;
 		case PhysicsServer::HINGE_JOINT_FLAG_ENABLE_MOTOR: m_enableAngularMotor = p_value; break;
+		case PhysicsServer::HINGE_JOINT_FLAG_MAX: break; // Can't happen, but silences warning
 	}
 	}
 }
 }
 bool HingeJointSW::get_flag(PhysicsServer::HingeJointFlag p_flag) const {
 bool HingeJointSW::get_flag(PhysicsServer::HingeJointFlag p_flag) const {
@@ -441,6 +444,7 @@ bool HingeJointSW::get_flag(PhysicsServer::HingeJointFlag p_flag) const {
 	switch (p_flag) {
 	switch (p_flag) {
 		case PhysicsServer::HINGE_JOINT_FLAG_USE_LIMIT: return m_useLimit;
 		case PhysicsServer::HINGE_JOINT_FLAG_USE_LIMIT: return m_useLimit;
 		case PhysicsServer::HINGE_JOINT_FLAG_ENABLE_MOTOR: return m_enableAngularMotor;
 		case PhysicsServer::HINGE_JOINT_FLAG_ENABLE_MOTOR: return m_enableAngularMotor;
+		case PhysicsServer::HINGE_JOINT_FLAG_MAX: break; // Can't happen, but silences warning
 	}
 	}
 
 
 	return false;
 	return false;

+ 4 - 0
servers/physics/joints/slider_joint_sw.cpp

@@ -404,6 +404,8 @@ void SliderJointSW::set_param(PhysicsServer::SliderJointParam p_param, real_t p_
 		case PhysicsServer::SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS: m_softnessOrthoAng = p_value; break;
 		case PhysicsServer::SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS: m_softnessOrthoAng = p_value; break;
 		case PhysicsServer::SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION: m_restitutionOrthoAng = p_value; break;
 		case PhysicsServer::SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION: m_restitutionOrthoAng = p_value; break;
 		case PhysicsServer::SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING: m_dampingOrthoAng = p_value; break;
 		case PhysicsServer::SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING: m_dampingOrthoAng = p_value; break;
+
+		case PhysicsServer::SLIDER_JOINT_MAX: break; // Can't happen, but silences warning
 	}
 	}
 }
 }
 
 
@@ -433,6 +435,8 @@ real_t SliderJointSW::get_param(PhysicsServer::SliderJointParam p_param) const {
 		case PhysicsServer::SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS: return m_softnessOrthoAng;
 		case PhysicsServer::SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS: return m_softnessOrthoAng;
 		case PhysicsServer::SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION: return m_restitutionOrthoAng;
 		case PhysicsServer::SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION: return m_restitutionOrthoAng;
 		case PhysicsServer::SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING: return m_dampingOrthoAng;
 		case PhysicsServer::SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING: return m_dampingOrthoAng;
+
+		case PhysicsServer::SLIDER_JOINT_MAX: break; // Can't happen, but silences warning
 	}
 	}
 
 
 	return 0;
 	return 0;

+ 1 - 4
servers/physics_2d_server.h

@@ -372,7 +372,6 @@ public:
 		BODY_MODE_KINEMATIC,
 		BODY_MODE_KINEMATIC,
 		BODY_MODE_RIGID,
 		BODY_MODE_RIGID,
 		BODY_MODE_CHARACTER
 		BODY_MODE_CHARACTER
-		//BODY_MODE_SOFT ??
 	};
 	};
 
 
 	virtual RID body_create() = 0;
 	virtual RID body_create() = 0;
@@ -581,9 +580,7 @@ public:
 
 
 		INFO_ACTIVE_OBJECTS,
 		INFO_ACTIVE_OBJECTS,
 		INFO_COLLISION_PAIRS,
 		INFO_COLLISION_PAIRS,
-		INFO_ISLAND_COUNT,
-		INFO_STEP_TIME,
-		INFO_BROAD_PHASE_TIME
+		INFO_ISLAND_COUNT
 	};
 	};
 
 
 	virtual int get_process_info(ProcessInfo p_info) = 0;
 	virtual int get_process_info(ProcessInfo p_info) = 0;

+ 0 - 1
servers/physics_server.cpp

@@ -678,7 +678,6 @@ void PhysicsServer::_bind_methods() {
 	BIND_ENUM_CONSTANT(BODY_MODE_STATIC);
 	BIND_ENUM_CONSTANT(BODY_MODE_STATIC);
 	BIND_ENUM_CONSTANT(BODY_MODE_KINEMATIC);
 	BIND_ENUM_CONSTANT(BODY_MODE_KINEMATIC);
 	BIND_ENUM_CONSTANT(BODY_MODE_RIGID);
 	BIND_ENUM_CONSTANT(BODY_MODE_RIGID);
-	BIND_ENUM_CONSTANT(BODY_MODE_SOFT);
 	BIND_ENUM_CONSTANT(BODY_MODE_CHARACTER);
 	BIND_ENUM_CONSTANT(BODY_MODE_CHARACTER);
 
 
 	BIND_ENUM_CONSTANT(BODY_PARAM_BOUNCE);
 	BIND_ENUM_CONSTANT(BODY_PARAM_BOUNCE);

+ 0 - 1
servers/physics_server.h

@@ -360,7 +360,6 @@ public:
 		BODY_MODE_STATIC,
 		BODY_MODE_STATIC,
 		BODY_MODE_KINEMATIC,
 		BODY_MODE_KINEMATIC,
 		BODY_MODE_RIGID,
 		BODY_MODE_RIGID,
-		BODY_MODE_SOFT,
 		BODY_MODE_CHARACTER
 		BODY_MODE_CHARACTER
 	};
 	};
 
 

+ 18 - 0
servers/visual/shader_language.cpp

@@ -2366,6 +2366,21 @@ Variant ShaderLanguage::constant_value_to_variant(const Vector<ShaderLanguage::C
 				value = Variant(t);
 				value = Variant(t);
 				break;
 				break;
 			}
 			}
+			case ShaderLanguage::TYPE_ISAMPLER2DARRAY:
+			case ShaderLanguage::TYPE_ISAMPLER2D:
+			case ShaderLanguage::TYPE_ISAMPLER3D:
+			case ShaderLanguage::TYPE_SAMPLER2DARRAY:
+			case ShaderLanguage::TYPE_SAMPLER2D:
+			case ShaderLanguage::TYPE_SAMPLER3D:
+			case ShaderLanguage::TYPE_USAMPLER2DARRAY:
+			case ShaderLanguage::TYPE_USAMPLER2D:
+			case ShaderLanguage::TYPE_USAMPLER3D:
+			case ShaderLanguage::TYPE_SAMPLERCUBE: {
+				// Texture types, likely not relevant here.
+				break;
+			}
+			case ShaderLanguage::TYPE_VOID:
+				break;
 		}
 		}
 		return value;
 		return value;
 	}
 	}
@@ -3005,6 +3020,7 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons
 							case TYPE_IVEC2: member_type = TYPE_INT; break;
 							case TYPE_IVEC2: member_type = TYPE_INT; break;
 							case TYPE_UVEC2: member_type = TYPE_UINT; break;
 							case TYPE_UVEC2: member_type = TYPE_UINT; break;
 							case TYPE_MAT2: member_type = TYPE_VEC2; break;
 							case TYPE_MAT2: member_type = TYPE_VEC2; break;
+							default: break;
 						}
 						}
 
 
 						break;
 						break;
@@ -3030,6 +3046,7 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons
 							case TYPE_IVEC3: member_type = TYPE_INT; break;
 							case TYPE_IVEC3: member_type = TYPE_INT; break;
 							case TYPE_UVEC3: member_type = TYPE_UINT; break;
 							case TYPE_UVEC3: member_type = TYPE_UINT; break;
 							case TYPE_MAT3: member_type = TYPE_VEC3; break;
 							case TYPE_MAT3: member_type = TYPE_VEC3; break;
+							default: break;
 						}
 						}
 						break;
 						break;
 					case TYPE_BVEC4:
 					case TYPE_BVEC4:
@@ -3054,6 +3071,7 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons
 							case TYPE_IVEC4: member_type = TYPE_INT; break;
 							case TYPE_IVEC4: member_type = TYPE_INT; break;
 							case TYPE_UVEC4: member_type = TYPE_UINT; break;
 							case TYPE_UVEC4: member_type = TYPE_UINT; break;
 							case TYPE_MAT4: member_type = TYPE_VEC4; break;
 							case TYPE_MAT4: member_type = TYPE_VEC4; break;
+							default: break;
 						}
 						}
 						break;
 						break;
 					default: {
 					default: {

+ 6 - 1
servers/visual/visual_server_scene.cpp

@@ -398,6 +398,7 @@ void VisualServerScene::instance_set_base(RID p_instance, RID p_base) {
 				VSG::scene_render->free(gi_probe->probe_instance);
 				VSG::scene_render->free(gi_probe->probe_instance);
 
 
 			} break;
 			} break;
+			default: {}
 		}
 		}
 
 
 		if (instance->base_data) {
 		if (instance->base_data) {
@@ -471,6 +472,7 @@ void VisualServerScene::instance_set_base(RID p_instance, RID p_base) {
 				gi_probe->probe_instance = VSG::scene_render->gi_probe_instance_create();
 				gi_probe->probe_instance = VSG::scene_render->gi_probe_instance_create();
 
 
 			} break;
 			} break;
+			default: {}
 		}
 		}
 
 
 		VSG::storage->instance_add_dependency(p_base, instance);
 		VSG::storage->instance_add_dependency(p_base, instance);
@@ -518,6 +520,7 @@ void VisualServerScene::instance_set_scenario(RID p_instance, RID p_scenario) {
 					gi_probe_update_list.remove(&gi_probe->update_element);
 					gi_probe_update_list.remove(&gi_probe->update_element);
 				}
 				}
 			} break;
 			} break;
+			default: {}
 		}
 		}
 
 
 		instance->scenario = NULL;
 		instance->scenario = NULL;
@@ -549,6 +552,7 @@ void VisualServerScene::instance_set_scenario(RID p_instance, RID p_scenario) {
 					gi_probe_update_list.add(&gi_probe->update_element);
 					gi_probe_update_list.add(&gi_probe->update_element);
 				}
 				}
 			} break;
 			} break;
+			default: {}
 		}
 		}
 
 
 		_instance_queue_update(instance, true, true);
 		_instance_queue_update(instance, true, true);
@@ -649,6 +653,7 @@ void VisualServerScene::instance_set_visible(RID p_instance, bool p_visible) {
 			}
 			}
 
 
 		} break;
 		} break;
+		default: {}
 	}
 	}
 }
 }
 inline bool is_geometry_instance(VisualServer::InstanceType p_type) {
 inline bool is_geometry_instance(VisualServer::InstanceType p_type) {
@@ -825,6 +830,7 @@ void VisualServerScene::instance_geometry_set_flag(RID p_instance, VS::InstanceF
 			instance->redraw_if_visible = p_enabled;
 			instance->redraw_if_visible = p_enabled;
 
 
 		} break;
 		} break;
+		default: {}
 	}
 	}
 }
 }
 void VisualServerScene::instance_geometry_set_cast_shadows_setting(RID p_instance, VS::ShadowCastingSetting p_shadow_casting_setting) {
 void VisualServerScene::instance_geometry_set_cast_shadows_setting(RID p_instance, VS::ShadowCastingSetting p_shadow_casting_setting) {
@@ -1016,7 +1022,6 @@ void VisualServerScene::_update_instance_aabb(Instance *p_instance) {
 			new_aabb = VSG::storage->lightmap_capture_get_bounds(p_instance->base);
 			new_aabb = VSG::storage->lightmap_capture_get_bounds(p_instance->base);
 
 
 		} break;
 		} break;
-
 		default: {}
 		default: {}
 	}
 	}