MCPcopy Create free account
hub / github.com/GDRETools/gdsdecomp / write_variant

Method write_variant

compat/resource_compat_binary.cpp:1842–2301  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1840}
1841
1842void ResourceFormatSaverCompatBinaryInstance::write_variant(Ref<FileAccess> f, const Variant &p_property, HashMap<Ref<Resource>, int> &p_resource_map, HashMap<Ref<Resource>, int> &p_external_resources, HashMap<StringName, int> &p_string_map, const PropertyInfo &p_hint) {
1843 switch (p_property.get_type()) {
1844 case Variant::NIL: {
1845 f->store_32(VARIANT_NIL);
1846 // don't store anything
1847 } break;
1848 case Variant::BOOL: {
1849 f->store_32(VARIANT_BOOL);
1850 bool val = p_property;
1851 f->store_32(val);
1852 } break;
1853 case Variant::INT: {
1854 int64_t val = p_property;
1855 if (val > 0x7FFFFFFF || val < -(int64_t)0x80000000) {
1856 f->store_32(VARIANT_INT64);
1857 f->store_64(uint64_t(val));
1858
1859 } else {
1860 f->store_32(VARIANT_INT);
1861 f->store_32(uint32_t(p_property));
1862 }
1863
1864 } break;
1865 case Variant::FLOAT: {
1866 double d = p_property;
1867 float fl = d;
1868 if (double(fl) != d) {
1869 f->store_32(VARIANT_DOUBLE);
1870 f->store_double(d);
1871 } else {
1872 f->store_32(VARIANT_FLOAT);
1873 _store_real(f, fl);
1874 }
1875
1876 } break;
1877 case Variant::STRING: {
1878 f->store_32(VARIANT_STRING);
1879 String val = p_property;
1880 save_unicode_string(f, val);
1881
1882 } break;
1883 case Variant::VECTOR2: {
1884 f->store_32(VARIANT_VECTOR2);
1885 Vector2 val = p_property;
1886 _store_real(f, val.x);
1887 _store_real(f, val.y);
1888
1889 } break;
1890 case Variant::VECTOR2I: {
1891 f->store_32(VARIANT_VECTOR2I);
1892 Vector2i val = p_property;
1893 f->store_32(uint32_t(val.x));
1894 f->store_32(uint32_t(val.y));
1895
1896 } break;
1897 case Variant::RECT2: {
1898 f->store_32(VARIANT_RECT2);
1899 Rect2 val = p_property;

Callers 1

Calls 6

_store_realFunction · 0.85
_pad_bufferFunction · 0.85
get_typeMethod · 0.45
get_nameMethod · 0.45
sizeMethod · 0.45
store_bufferMethod · 0.45

Tested by 1