Browse Source

Fix binary resource loading and saving

nikitalita 4 years ago
parent
commit
160601cc78
2 changed files with 9 additions and 9 deletions
  1. 5 5
      core/io/resource_format_binary.cpp
  2. 4 4
      scene/resources/resource_format_text.cpp

+ 5 - 5
core/io/resource_format_binary.cpp

@@ -906,7 +906,7 @@ void ResourceLoaderBinary::open(FileAccess *p_f, bool p_no_resources, bool p_kee
 		uid = ResourceUID::INVALID_ID;
 		uid = ResourceUID::INVALID_ID;
 	}
 	}
 
 
-	for (int i = 0; i < 5; i++) {
+	for (int i = 0; i < 11; i++) {
 		f->get_32(); //skip a few reserved fields
 		f->get_32(); //skip a few reserved fields
 	}
 	}
 
 
@@ -1209,8 +1209,8 @@ Error ResourceFormatLoaderBinary::rename_dependencies(const String &p_path, cons
 	fw->store_32(flags);
 	fw->store_32(flags);
 	fw->store_64(uid_data);
 	fw->store_64(uid_data);
 
 
-	for (int i = 0; i < 5; i++) {
-		f->store_32(0); // reserved
+	for (int i = 0; i < 11; i++) {
+		fw->store_32(0); // reserved
 		f->get_32();
 		f->get_32();
 	}
 	}
 
 
@@ -1264,7 +1264,7 @@ Error ResourceFormatLoaderBinary::rename_dependencies(const String &p_path, cons
 
 
 		if (using_uids) {
 		if (using_uids) {
 			ResourceUID::ID uid = ResourceSaver::get_resource_id_for_path(full_path);
 			ResourceUID::ID uid = ResourceSaver::get_resource_id_for_path(full_path);
-			f->store_64(uid);
+			fw->store_64(uid);
 		}
 		}
 	}
 	}
 
 
@@ -1902,7 +1902,7 @@ Error ResourceFormatSaverBinaryInstance::save(const String &p_path, const RES &p
 	f->store_32(FORMAT_FLAG_NAMED_SCENE_IDS | FORMAT_FLAG_UIDS);
 	f->store_32(FORMAT_FLAG_NAMED_SCENE_IDS | FORMAT_FLAG_UIDS);
 	ResourceUID::ID uid = ResourceSaver::get_resource_id_for_path(p_path, true);
 	ResourceUID::ID uid = ResourceSaver::get_resource_id_for_path(p_path, true);
 	f->store_64(uid);
 	f->store_64(uid);
-	for (int i = 0; i < 5; i++) {
+	for (int i = 0; i < 11; i++) {
 		f->store_32(0); // reserved
 		f->store_32(0); // reserved
 	}
 	}
 
 

+ 4 - 4
scene/resources/resource_format_text.cpp

@@ -1020,11 +1020,11 @@ Error ResourceLoaderText::save_as_binary(FileAccess *p_f, const String &p_path)
 	bs_save_unicode_string(wf.f, is_scene ? "PackedScene" : resource_type);
 	bs_save_unicode_string(wf.f, is_scene ? "PackedScene" : resource_type);
 	wf->store_64(0); //offset to import metadata, this is no longer used
 	wf->store_64(0); //offset to import metadata, this is no longer used
 
 
-	f->store_32(ResourceFormatSaverBinaryInstance::FORMAT_FLAG_NAMED_SCENE_IDS | ResourceFormatSaverBinaryInstance::FORMAT_FLAG_UIDS);
+	wf->store_32(ResourceFormatSaverBinaryInstance::FORMAT_FLAG_NAMED_SCENE_IDS | ResourceFormatSaverBinaryInstance::FORMAT_FLAG_UIDS);
 
 
-	f->store_64(res_uid);
+	wf->store_64(res_uid);
 
 
-	for (int i = 0; i < 5; i++) {
+	for (int i = 0; i < 11; i++) {
 		wf->store_32(0); // reserved
 		wf->store_32(0); // reserved
 	}
 	}
 
 
@@ -1074,7 +1074,7 @@ Error ResourceLoaderText::save_as_binary(FileAccess *p_f, const String &p_path)
 
 
 		bs_save_unicode_string(wf.f, type);
 		bs_save_unicode_string(wf.f, type);
 		bs_save_unicode_string(wf.f, path);
 		bs_save_unicode_string(wf.f, path);
-		wf.f->store_64(uid);
+		wf->store_64(uid);
 
 
 		int lindex = dummy_read.external_resources.size();
 		int lindex = dummy_read.external_resources.size();
 		Ref<DummyResource> dr;
 		Ref<DummyResource> dr;