X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmap%2FMap.cpp;h=ed6cc06ffd398923cfa4c5ff1aa8e55712a3cea1;hb=04e4e8797a63c0a89aae9882982cd864213d05ab;hp=682f4f2a8a7f6a43a68cb300db0e7abf36cb2edd;hpb=092a2dd175a4001a495c84ee85211734fb928c83;p=l2e.git diff --git a/src/map/Map.cpp b/src/map/Map.cpp index 682f4f2..ed6cc06 100644 --- a/src/map/Map.cpp +++ b/src/map/Map.cpp @@ -104,13 +104,20 @@ Vector Map::TileCoordinates(const Vector &position) const { return position / tileset->Size(); } +Vector Map::PixelCoordinates(const Vector &position) const { + return position * tileset->Size(); +} + -void Map::Render(SDL_Surface *dest, const Vector &inOffset) const { +void Map::Render( + SDL_Surface *dest, + const Vector &inOffset, + unsigned int frame) const { // TODO: skip invisible areas for (int i(0); i < numAreas; ++i) { const Area &area(areas[i]); Vector offset(inOffset + Vector::FromIndex(i, width) * area.Size() * tileset->Size()); - area.Render(dest, tileset, offset); + area.Render(dest, tileset, offset, frame); } } @@ -159,9 +166,9 @@ void Map::CreateTypeDescription() { td.AddField("tileset", FieldDescription(((char *)&m.tileset) - ((char *)&m), Sprite::TYPE_ID).SetReferenced()); td.AddField("battlebg", FieldDescription(((char *)&m.battlebg) - ((char *)&m), Interpreter::IMAGE_ID).SetReferenced()); - td.AddField("areas", FieldDescription(((char *)&m.areas) - ((char *)&m), Area::TYPE_ID).SetReferenced().SetAggregate()); - td.AddField("triggers", FieldDescription(((char *)&m.triggers) - ((char *)&m), Trigger::TYPE_ID).SetReferenced().SetAggregate()); - td.AddField("entities", FieldDescription(((char *)&m.entities) - ((char *)&m), Entity::TYPE_ID).SetReferenced().SetAggregate()); + td.AddField("areas", FieldDescription(((char *)&m.areas) - ((char *)&m), Area::TYPE_ID).SetAggregate()); + td.AddField("triggers", FieldDescription(((char *)&m.triggers) - ((char *)&m), Trigger::TYPE_ID).SetAggregate()); + td.AddField("entities", FieldDescription(((char *)&m.entities) - ((char *)&m), Entity::TYPE_ID).SetAggregate()); td.AddField("width", FieldDescription(((char *)&m.width) - ((char *)&m), Interpreter::NUMBER_ID)); }