X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmap%2FMap.cpp;h=7712a024838ca5a7e1719300db70af327bc8164e;hb=c055b357c50dd871b49c38191a9d867ff42ea420;hp=2e05e8bf9025832bd810e20d8a0d1861574e8e95;hpb=3565d69c463c39b05b4612ca3d3557139d91e310;p=l2e.git diff --git a/src/map/Map.cpp b/src/map/Map.cpp index 2e05e8b..7712a02 100644 --- a/src/map/Map.cpp +++ b/src/map/Map.cpp @@ -8,6 +8,7 @@ #include "Map.h" #include "Area.h" +#include "Trigger.h" #include "../graphics/Sprite.h" #include @@ -20,6 +21,8 @@ Map::Map() : tileset(0) , areas(0) , numAreas(0) +, triggers(0) +, numTriggers(0) , width(0) { } @@ -43,6 +46,17 @@ const Tile &Map::TileAt(const Vector &offset) const { return area.TileAt(tileOffset); } +Trigger *Map::TriggerAt(const geometry::Vector &offset) { + // TODO: add support for multiple triggers on a tile? + Vector tilePosition(offset.X() / tileset->Width(), offset.Y() / tileset->Height()); + for (Trigger *i(triggers); i != triggers + numTriggers; ++i) { + if (i->TilePosition() == tilePosition) { + return i; + } + } + return 0; +} + void Map::Render(SDL_Surface *dest, const Vector &inOffset) const { // TODO: skip invisible areas