d_scope.hpp 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // SuperTux
  2. // Copyright (C) 2018 Ingo Ruhnke <grumbel@gmail.com>
  3. //
  4. // This program is free software: you can redistribute it and/or modify
  5. // it under the terms of the GNU General Public License as published by
  6. // the Free Software Foundation, either version 3 of the License, or
  7. // (at your option) any later version.
  8. //
  9. // This program is distributed in the hope that it will be useful,
  10. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. // GNU General Public License for more details.
  13. //
  14. // You should have received a copy of the GNU General Public License
  15. // along with this program. If not, see <http://www.gnu.org/licenses/>.
  16. #ifndef HEADER_SUPERTUX_SUPERTUX_D_SCOPE_HPP
  17. #define HEADER_SUPERTUX_SUPERTUX_D_SCOPE_HPP
  18. #include "util/dynamic_scoped_ref.hpp"
  19. class Sector;
  20. extern DynamicScopedRef<Sector> d_sector;
  21. namespace worldmap {
  22. class WorldMapSector;
  23. } // namespace worldmap
  24. extern DynamicScopedRef<worldmap::WorldMapSector> d_worldmap_sector;
  25. class GameObjectManager;
  26. extern DynamicScopedRef<GameObjectManager> d_gameobject_manager;
  27. #define BIND_SECTOR(x) \
  28. auto sector_guard = d_sector.bind(x); \
  29. auto gameobject_manager_guard = d_gameobject_manager.bind(x)
  30. #define BIND_WORLDMAP_SECTOR(x) \
  31. auto worldmap_guard = d_worldmap_sector.bind(x); \
  32. auto gameobject_manager_guard = d_gameobject_manager.bind(x)
  33. #endif
  34. /* EOF */