Fix loading of binary resources with 64-bit floats
This commit is contained in:
parent
d02db6306e
commit
722945be61
@ -901,6 +901,7 @@ void ResourceLoaderBinary::open(FileAccess *p_f, bool p_no_resources, bool p_kee
|
|||||||
if (flags & ResourceFormatSaverBinaryInstance::FORMAT_FLAG_UIDS) {
|
if (flags & ResourceFormatSaverBinaryInstance::FORMAT_FLAG_UIDS) {
|
||||||
using_uids = true;
|
using_uids = true;
|
||||||
}
|
}
|
||||||
|
f->real_is_double = (flags & ResourceFormatSaverBinaryInstance::FORMAT_FLAG_REAL_T_IS_DOUBLE) != 0;
|
||||||
|
|
||||||
if (using_uids) {
|
if (using_uids) {
|
||||||
uid = f->get_64();
|
uid = f->get_64();
|
||||||
@ -1902,7 +1903,13 @@ Error ResourceFormatSaverBinaryInstance::save(const String &p_path, const RES &p
|
|||||||
|
|
||||||
save_unicode_string(f, p_resource->get_class());
|
save_unicode_string(f, p_resource->get_class());
|
||||||
f->store_64(0); //offset to import metadata
|
f->store_64(0); //offset to import metadata
|
||||||
f->store_32(FORMAT_FLAG_NAMED_SCENE_IDS | FORMAT_FLAG_UIDS);
|
{
|
||||||
|
uint32_t format_flags = FORMAT_FLAG_NAMED_SCENE_IDS | FORMAT_FLAG_UIDS;
|
||||||
|
#ifdef REAL_T_IS_DOUBLE
|
||||||
|
format_flags |= FORMAT_FLAG_REAL_T_IS_DOUBLE;
|
||||||
|
#endif
|
||||||
|
f->store_32(format_flags);
|
||||||
|
}
|
||||||
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 < ResourceFormatSaverBinaryInstance::RESERVED_FIELDS; i++) {
|
for (int i = 0; i < ResourceFormatSaverBinaryInstance::RESERVED_FIELDS; i++) {
|
||||||
|
@ -164,6 +164,8 @@ public:
|
|||||||
enum {
|
enum {
|
||||||
FORMAT_FLAG_NAMED_SCENE_IDS = 1,
|
FORMAT_FLAG_NAMED_SCENE_IDS = 1,
|
||||||
FORMAT_FLAG_UIDS = 2,
|
FORMAT_FLAG_UIDS = 2,
|
||||||
|
FORMAT_FLAG_REAL_T_IS_DOUBLE = 4,
|
||||||
|
|
||||||
// Amount of reserved 32-bit fields in resource header
|
// Amount of reserved 32-bit fields in resource header
|
||||||
RESERVED_FIELDS = 11
|
RESERVED_FIELDS = 11
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user