Advertisement
Vash982

recursion

Jun 26th, 2025 (edited)
127
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.79 KB | Source Code | 0 0
  1. #include "arena.hpp"
  2. #include "actor.hpp"
  3. using lulu::Arena, lulu::Actor;
  4.  
  5. Actor::Actor(pair position, pair size, Arena *arena, const std::string &sprite = "")
  6.     : _pos(position), _size(size), _arena(arena), _sprite(sprite)
  7. {
  8.     if (_arena != nullptr)
  9.         _arena->spawn(this);
  10. };
  11.  
  12. void Actor::setArena(Arena *arena)
  13. {
  14.     if (_arena == arena)
  15.         return;
  16.  
  17.     if (_arena != nullptr)
  18.     {
  19.         Arena *oldArena = _arena;
  20.         _arena = nullptr;
  21.         oldArena->kill(this);
  22.     }
  23.  
  24.     _arena = arena;
  25.  
  26.     if (arena != nullptr)
  27.         _arena->spawn(this);
  28. }
  29.  
  30. void Arena::spawn(Actor *actor)
  31. {
  32.     actor->setArena(this);
  33.     _actors.push_back(actor);
  34. }
  35.  
  36. void Arena::kill(Actor *actor)
  37. {
  38.     std::erase(_actors, actor);
  39.     actor->setArena(nullptr);
  40. }
Advertisement
Comments
Add Comment
Please, Sign In to add comment
Advertisement