Guest User

Untitled

a guest
Jun 20th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.83 KB | None | 0 0
  1. s_atlassed_sprite * c_sprite_atlas::add_sprite(ALLEGRO_BITMAP * sprite)
  2. {
  3.     if(lowest_free >= max_sprites)
  4.         return 0;
  5.     s_atlassed_sprite * tempsprite = new s_atlassed_sprite;
  6.     int sx;
  7.     int sy;
  8.     sx = lowest_free % sprites_x;
  9.     sy = lowest_free / sprites_x;
  10.     tempsprite->sprite = al_create_sub_bitmap(sprite_atlas, sx*SPRITEWIDTH, sy*FULLSPRITEHEIGHT, SPRITEWIDTH, FULLSPRITEHEIGHT);
  11.     tempsprite->index = lowest_free;
  12.  
  13.     usage[lowest_free] = tempsprite;
  14.  
  15.     //find the next empty spot
  16.     for (; lowest_free < max_sprites; lowest_free++)
  17.     {
  18.         if (!usage[lowest_free]) break;
  19.     }
  20.     return tempsprite;
  21. }
  22.  
  23. void c_sprite_atlas::delete_sprite(s_atlassed_sprite * sprite)
  24. {
  25.     int tempdex = sprite->index;
  26.     if(tempdex < lowest_free) lowest_free = tempdex;
  27.     al_destroy_bitmap(sprite->sprite);
  28.     delete usage[tempdex];
  29.     usage[tempdex] = 0;
  30. }
Add Comment
Please, Sign In to add comment