Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool add(SpriteObject *object, int main)
- {
- if(object == NULL)
- return false;
- if(entryNum[main]+1 == listSize[main])
- {
- SpriteObject **list = realloc(spriteList[main], listSize[main]*2);
- if(list != NULL)
- {
- spriteList[main] = list;
- listSize[main] *= 2;
- }
- else
- return false;
- }
- entryNum[main]++;
- spriteList[main][entryNum[main]] = object;
- return true;
- }
- delete(SpriteObject *object, int main)
- {
- if(object == NULL)
- return;
- for(int i = 0; i < entryNum[main]; i++)
- {
- if(spriteList[main][i] == object)
- {
- spriteList[main][i] = spriteList[main][entryNum[main]-1]; //swap last entry with this one
- spriteList[main][entryNum[main]--] = NULL; //set last entry to NULL and decrement
- }
- }
- }
- int compareSpriteObject(const void * p1, const void * p2)
- {
- SpriteObject *o1 = (SpriteObject*)p1;
- SpriteObject *o2 = (SpriteObject*)p2;
- //push NULLs to end
- if(o1 == o2)
- return 0; //same pointer
- if(o1 == NULL)
- return 1; //o2 is 'greater than' null
- if(o2 == NULL)
- return -1; //o1 is 'less than' null
- return (((int)(o1->priority)) - ((int)(o2->priority)));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement