| 183 | } |
| 184 | |
| 185 | Error ResourceLoaderCompatBinary::parse_variant(Variant &r_v) { |
| 186 | uint32_t prop_type = f->get_32(); |
| 187 | print_bl("find property of type: " + itos(prop_type)); |
| 188 | |
| 189 | switch (prop_type) { |
| 190 | case VARIANT_NIL: { |
| 191 | r_v = Variant(); |
| 192 | } break; |
| 193 | case VARIANT_BOOL: { |
| 194 | r_v = bool(f->get_32()); |
| 195 | } break; |
| 196 | case VARIANT_INT: { |
| 197 | r_v = int(f->get_32()); |
| 198 | } break; |
| 199 | case VARIANT_INT64: { |
| 200 | r_v = int64_t(f->get_64()); |
| 201 | } break; |
| 202 | case VARIANT_FLOAT: { |
| 203 | r_v = f->get_real(); |
| 204 | } break; |
| 205 | case VARIANT_DOUBLE: { |
| 206 | r_v = f->get_double(); |
| 207 | } break; |
| 208 | case VARIANT_STRING: { |
| 209 | r_v = get_unicode_string(); |
| 210 | } break; |
| 211 | case VARIANT_VECTOR2: { |
| 212 | Vector2 v; |
| 213 | v.x = f->get_real(); |
| 214 | v.y = f->get_real(); |
| 215 | r_v = v; |
| 216 | |
| 217 | } break; |
| 218 | case VARIANT_VECTOR2I: { |
| 219 | Vector2i v; |
| 220 | v.x = f->get_32(); |
| 221 | v.y = f->get_32(); |
| 222 | r_v = v; |
| 223 | |
| 224 | } break; |
| 225 | case VARIANT_RECT2: { |
| 226 | Rect2 v; |
| 227 | v.position.x = f->get_real(); |
| 228 | v.position.y = f->get_real(); |
| 229 | v.size.x = f->get_real(); |
| 230 | v.size.y = f->get_real(); |
| 231 | r_v = v; |
| 232 | |
| 233 | } break; |
| 234 | case VARIANT_RECT2I: { |
| 235 | Rect2i v; |
| 236 | v.position.x = f->get_32(); |
| 237 | v.position.y = f->get_32(); |
| 238 | v.size.x = f->get_32(); |
| 239 | v.size.y = f->get_32(); |
| 240 | r_v = v; |
| 241 | |
| 242 | } break; |