Advertisement
Guest User

Untitled

a guest
Dec 8th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. void Ds::GetAllCreaturesByLevel(int MagiID, int **Creatures, int *numOfCreatures) {
  2. if (MagiID < 0) {
  3. if (creaturesByLevel.size() == 0) {
  4. *numOfCreatures = 0;
  5. *Creatures = NULL;
  6. return;
  7. }
  8. int size = creaturesByLevel.size();
  9. (*Creatures) = (int*) malloc(sizeof(int) * size);
  10. if (*Creatures == NULL) {
  11. throw bad_alloc();
  12. }
  13. Creature** tmpCreatures = creaturesByLevel.treeToArr();
  14. for (int i = 0; i < size; ++i) {
  15. (*Creatures)[size - 1 - i] = tmpCreatures[i]->ID();
  16. }
  17. delete[] tmpCreatures;
  18. *numOfCreatures = size;
  19. return;
  20. }
  21. Magi* magi = NULL;
  22. Magi tmpMagi = Magi(MagiID);
  23. if (Magis.find(&tmpMagi, &magi) == false) {
  24. throw DataDoesntExist();
  25. }
  26. int size = magi->numOfCreatures();
  27. if(!size) {
  28. *numOfCreatures = 0;
  29. *Creatures = NULL;
  30. return;
  31. }
  32.  
  33. int* temp= (int*) malloc(sizeof(int) * size);
  34. (*Creatures) = temp;
  35. if (*Creatures == NULL) {
  36. throw bad_alloc();
  37. }
  38.  
  39. magi->GetAllCreaturesByLevel(Creatures, numOfCreatures);
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement