Sfoglia il codice sorgente

more fixes

-only refuse to load an older file if version major is different, fixes
#1944
-fix drive letter default value, fixes #1939
Juan Linietsky 10 anni fa
parent
commit
221443c5a2

+ 2 - 2
core/io/resource_format_binary.cpp

@@ -861,7 +861,7 @@ void ResourceInteractiveLoaderBinary::open(FileAccess *p_f) {
 	print_bl("minor: "+itos(ver_minor));
 	print_bl("format: "+itos(ver_format));
 
-	if (ver_format<FORMAT_VERSION ||  ver_major>VERSION_MAJOR || (ver_major==VERSION_MAJOR && ver_minor>VERSION_MINOR)) {
+	if (ver_format<FORMAT_VERSION ||  ver_major>VERSION_MAJOR) {
 
 		f->close();
 		ERR_EXPLAIN("File Format '"+itos(FORMAT_VERSION)+"."+itos(ver_major)+"."+itos(ver_minor)+"' is too new! Please upgrade to a a new engine version: "+local_path);
@@ -968,7 +968,7 @@ String ResourceInteractiveLoaderBinary::recognize(FileAccess *p_f) {
 	uint32_t ver_minor=f->get_32();
 	uint32_t ver_format=f->get_32();
 
-	if (ver_format<FORMAT_VERSION ||  ver_major>VERSION_MAJOR || (ver_major==VERSION_MAJOR && ver_minor>VERSION_MINOR)) {
+	if (ver_format<FORMAT_VERSION ||  ver_major>VERSION_MAJOR) {
 
 		f->close();
 		return "";

+ 1 - 1
core/io/resource_format_xml.cpp

@@ -1671,7 +1671,7 @@ void ResourceInteractiveLoaderXML::open(FileAccess *p_f) {
 	int major = version.get_slice(".",0).to_int();
 	int minor = version.get_slice(".",1).to_int();
 
-	if (major>VERSION_MAJOR || (major==VERSION_MAJOR && minor>VERSION_MINOR)) {
+	if (major>VERSION_MAJOR) {
 
 		error=ERR_FILE_UNRECOGNIZED;
 		ResourceLoader::notify_load_error(local_path+": File Format '"+version+"' is too new. Please upgrade to a newer engine version.");

+ 11 - 0
core/os/dir_access.cpp

@@ -56,6 +56,17 @@ String DirAccess::_get_root_string() const {
 	return "";
 }
 
+int DirAccess::get_current_drive() {
+
+	String path = get_current_dir().to_lower();
+	for(int i=0;i<get_drive_count();i++) {
+		String d = get_drive(i).to_lower();
+		if (path.begins_with(d))
+			return i;
+	}
+
+	return 0;
+}
 
 static Error _erase_recursive(DirAccess *da) {
 

+ 1 - 0
core/os/dir_access.h

@@ -84,6 +84,7 @@ public:
 	
 	virtual int get_drive_count()=0;
 	virtual String get_drive(int p_drive)=0;
+	virtual int get_current_drive();
 	
 	virtual Error change_dir(String p_dir)=0; ///< can be relative or absolute, return false on success
 	virtual String get_current_dir()=0; ///< return current dir location

+ 7 - 0
demos/2d/kinematic_char/engine.cfg

@@ -4,6 +4,13 @@ name="Kinematic Collision"
 main_scene="res://colworld.scn"
 icon="res://icon.png"
 
+[display]
+
+width=800
+height=600
+stretch_mode="2d"
+stretch_aspect="keep"
+
 [input]
 
 move_up=[key(Up)]

+ 3 - 0
demos/2d/lights_shadows/engine.cfg

@@ -6,6 +6,9 @@ main_scene="res://light_shadows.scn"
 [display]
 
 stretch_mode="2d"
+width=800
+height=600
+stretch_aspect="keep"
 
 [rasterizer]
 

+ 7 - 0
demos/2d/navpoly/engine.cfg

@@ -2,3 +2,10 @@
 
 name="Navigation Polygon (2D)"
 main_scene="res://navigation.scn"
+
+[display]
+
+width=800
+height=600
+stretch_mode="2d"
+stretch_aspect="keep"

+ 7 - 0
demos/2d/normalmaps/engine.cfg

@@ -2,3 +2,10 @@
 
 name="2D Normal Mapping"
 main_scene="res://normalmap.scn"
+
+[display]
+
+stretch_mode="2d"
+width=800
+height=600
+stretch_aspect="ignore"

+ 6 - 0
demos/2d/screen_space_shaders/engine.cfg

@@ -3,3 +3,9 @@
 name="Screen-Space Shaders"
 main_scene="res://screen_shaders.scn"
 
+[display]
+
+width=780
+height=600
+stretch_mode="2d"
+stretch_aspect="keep"

BIN
demos/2d/screen_space_shaders/screen_shaders.scn


BIN
demos/2d/texscreen/bubbles.scn


+ 7 - 0
demos/2d/texscreen/engine.cfg

@@ -2,3 +2,10 @@
 
 name="Glass Bubbles (Texscreen)"
 main_scene="res://bubbles.scn"
+
+[display]
+
+width=800
+height=600
+stretch_mode="2d"
+stretch_aspect="keep"

+ 2 - 8
scene/gui/file_dialog.cpp

@@ -608,18 +608,12 @@ void FileDialog::_update_drives() {
 		drives->clear();
 		drives->show();
 
-		int current=-1;
-		String abspath = dir_access->get_current_dir();
-
 		for(int i=0;i<dir_access->get_drive_count();i++) {
-			String d = dir_access->get_drive(i);
-			if (abspath.begins_with(d))
-				current=i;
+			String d = dir_access->get_drive(i);			
 			drives->add_item(dir_access->get_drive(i));
 		}
 
-		if (current!=-1)
-			drives->select(current);
+		drives->select(dir_access->get_current_drive());
 
 	}
 }

+ 1 - 1
scene/resources/shader_graph.cpp

@@ -1301,7 +1301,7 @@ const ShaderGraph::InOutParamInfo ShaderGraph::inout_param_info[]={
 	{MODE_MATERIAL,SHADER_TYPE_FRAGMENT,"Diffuse","DIFFUSE_OUT","",SLOT_TYPE_VEC,SLOT_OUT},
 	{MODE_MATERIAL,SHADER_TYPE_FRAGMENT,"DiffuseAlpha","ALPHA_OUT","",SLOT_TYPE_SCALAR,SLOT_OUT},
 	{MODE_MATERIAL,SHADER_TYPE_FRAGMENT,"Specular","SPECULAR","",SLOT_TYPE_VEC,SLOT_OUT},
-	{MODE_MATERIAL,SHADER_TYPE_FRAGMENT,"SpecularExp","SPECULAR","",SLOT_TYPE_SCALAR,SLOT_OUT},
+	{MODE_MATERIAL,SHADER_TYPE_FRAGMENT,"SpecularExp","SPEC_EXP","",SLOT_TYPE_SCALAR,SLOT_OUT},
 	{MODE_MATERIAL,SHADER_TYPE_FRAGMENT,"Emission","EMISSION","",SLOT_TYPE_VEC,SLOT_OUT},
 	{MODE_MATERIAL,SHADER_TYPE_FRAGMENT,"Glow","GLOW","",SLOT_TYPE_SCALAR,SLOT_OUT},
 	{MODE_MATERIAL,SHADER_TYPE_FRAGMENT,"ShadeParam","SHADE_PARAM","",SLOT_TYPE_SCALAR,SLOT_OUT},