Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. bool add(SpriteObject *object, int main)
  2. {
  3. if(object == NULL)
  4. return false;
  5.  
  6. if(entryNum[main]+1 == listSize[main])
  7. {
  8. SpriteObject **list = realloc(spriteList[main], listSize[main]*2);
  9. if(list != NULL)
  10. {
  11. spriteList[main] = list;
  12. listSize[main] *= 2;
  13. }
  14. else
  15. return false;
  16. }
  17.  
  18. entryNum[main]++;
  19. spriteList[main][entryNum[main]] = object;
  20.  
  21. return true;
  22. }
  23.  
  24. delete(SpriteObject *object, int main)
  25. {
  26. if(object == NULL)
  27. return;
  28.  
  29. for(int i = 0; i < entryNum[main]; i++)
  30. {
  31. if(spriteList[main][i] == object)
  32. {
  33. spriteList[main][i] = spriteList[main][entryNum[main]-1]; //swap last entry with this one
  34. spriteList[main][entryNum[main]--] = NULL; //set last entry to NULL and decrement
  35. }
  36. }
  37. }
  38.  
  39. int compareSpriteObject(const void * p1, const void * p2)
  40. {
  41. SpriteObject *o1 = (SpriteObject*)p1;
  42. SpriteObject *o2 = (SpriteObject*)p2;
  43.  
  44. //push NULLs to end
  45. if(o1 == o2)
  46. return 0; //same pointer
  47. if(o1 == NULL)
  48. return 1; //o2 is 'greater than' null
  49. if(o2 == NULL)
  50. return -1; //o1 is 'less than' null
  51.  
  52. return (((int)(o1->priority)) - ((int)(o2->priority)));
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement