#include "script_manager.hpp"
#include "math/vector.hpp"
#include "video/drawing_context.hpp"
+#include "level.hpp"
namespace lisp {
class Lisp;
class Sector
{
public:
- Sector();
+ Sector(Level* parent);
~Sector();
+ /// get parent level
+ Level* get_level();
+
/// read sector from lisp file
void parse(const lisp::Lisp& lisp);
void parse_old_format(const lisp::Lisp& lisp);
const std::string& get_name() const
{ return name; }
- /// tests if a given rectangle is inside the sector
+ /**
+ * tests if a given rectangle is inside the sector
+ * (a rectangle that is on top of the sector is considered inside)
+ */
bool inside(const Rect& rectangle) const;
void play_music(MusicType musictype);
typedef std::vector<SpawnPoint*> SpawnPoints;
private:
+ Level* level; /**< Parent level containing this sector */
uint32_t collision_tile_attributes(const Rect& dest) const;
void before_object_remove(GameObject* object);
public: // TODO make this private again
/// show collision rectangles of moving objects (for debugging)
static bool show_collrects;
+ static bool draw_solids_only;
GameObjects gameobjects;
MovingObjects moving_objects;