Advertisement
Guest User

Untitled

a guest
Sep 24th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. bool Entity::SetProperty(const char *_name, property_type_t _type, void *_value)
  2. {
  3. bool overwritten = RemoveProperty(_name);
  4. if (likely(_name != NULL)) {
  5. property_t *prop = new property_t;
  6. prop->type = _type;
  7. switch (_type) {
  8. case TYPE_STRING:
  9. prop->value = (void*)newStr((const char *)_value);
  10. break;
  11. case TYPE_NUMBER: {
  12. float *f = new float;
  13. *f = *((float*)_value);
  14. prop->value = (void*)f;
  15. break;
  16. }
  17. case TYPE_BOOLEAN: {
  18. bool *b = new bool;
  19. *b = *((bool*)_value);
  20. prop->value = (void*)b;
  21. break;
  22. }
  23. case TYPE_RECT: {
  24. Rect *p = (Rect*)_value;
  25. Rect *r = new Rect;
  26. r->w = p->w;
  27. r->h = p->h;
  28. r->d = p->d;
  29. prop->value = (void*)r;
  30. break;
  31. }
  32. case TYPE_VECTOR: {
  33. Vector *p = (Vector*)_value;
  34. Vector *v = new Vector();
  35.  
  36. v->x = p->x;
  37. v->y = p->y;
  38. v->z = p->z;
  39. printf("%s - beforesetp: %p\n", _name, prop->value);
  40. prop->value = (void*)v;
  41. printf("%s - setp: %p\n", _name, prop->value);
  42. break;
  43. }
  44. case TYPE_NONE:
  45. break;
  46. }
  47. return overwritten ^ m_properties.insert(_name, prop);
  48. } else {
  49. return false;
  50. }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement