X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fbattle%2FPartyLayout.h;h=684413964d096b77b352f5e31840d97acc47c65e;hb=fde7b27297882a7f033641df92e732abd137b532;hp=1456f15ae89f7cc435ac3ed03df950b41988ad8a;hpb=95bfa881f3fa427b67d9ce21e6a10f80f7be5439;p=l2e.git diff --git a/src/battle/PartyLayout.h b/src/battle/PartyLayout.h index 1456f15..6844139 100644 --- a/src/battle/PartyLayout.h +++ b/src/battle/PartyLayout.h @@ -10,6 +10,7 @@ #include "../geometry/Point.h" +#include #include #include @@ -21,18 +22,26 @@ public: PartyLayout() { } public: - int NumPositions() const { return positions.size(); } + std::vector >::size_type NumPositions() const { return positions.size(); } template void CalculatePositions(U width, U height, std::vector > &dest) const { dest.clear(); dest.reserve(positions.size()); for (std::vector >::const_iterator i(positions.begin()), end(positions.end()); i != end; ++i) { dest.push_back(geometry::Point( - i->X() * 256 / width, - i->Y() * 256 / height + i->X() * width / 255, + i->Y() * height / 223 )); } } + template + geometry::Point CalculatePosition(std::vector >::size_type index, U width, U height) const { + assert(index >= 0 && index < positions.size()); + return geometry::Point( + positions[index].X() * width / 255, + positions[index].Y() * height / 223 + ); + } public: void AddPosition(const geometry::Point &p) {