]> git.localhorst.tv Git - l2e.git/blobdiff - src/battle/PartyLayout.h
added type description of PartyLayout
[l2e.git] / src / battle / PartyLayout.h
index 1d72aa8ad483bc8fadeafc6cf62a16d41fea5971..b2454f2cba18bcbcd8b8f9588fb8f2c931bf0de8 100644 (file)
@@ -19,37 +19,24 @@ namespace battle {
 class PartyLayout {
 
 public:
-       PartyLayout() { }
+       PartyLayout() : positions(0), numPositions(0) { }
 
 public:
-       std::vector<geometry::Vector<Uint8> >::size_type NumPositions() const { return positions.size(); }
-       template<class U>
-       void CalculatePositions(U width, U height, std::vector<geometry::Vector<U> > &dest) const {
-               dest.clear();
-               dest.reserve(positions.size());
-               for (std::vector<geometry::Vector<Uint8> >::const_iterator i(positions.begin()), end(positions.end()); i != end; ++i) {
-                       dest.push_back(geometry::Vector<U>(
-                                       i->X() * width / 255,
-                                       i->Y() * height / 223
-                                       ));
-               }
-       }
-       template<class U>
-       geometry::Vector<U> CalculatePosition(std::vector<geometry::Vector<Uint8> >::size_type index, U width, U height) const {
-               assert(index >= 0 && index < positions.size());
-               return geometry::Vector<U>(
-                               positions[index].X() * width / 255,
-                               positions[index].Y() * height / 223
-                               );
-       }
+       std::vector<geometry::Vector<int> >::size_type NumPositions() const { return numPositions; }
+       void CalculatePositions(int width, int height, std::vector<geometry::Vector<int> > &dest) const;
+       geometry::Vector<int> CalculatePosition(int index, int width, int height) const;
 
 public:
-       void AddPosition(const geometry::Vector<Uint8> &p) {
-               positions.push_back(p);
+       void SetPositions(const geometry::Vector<int> *p, int num) {
+               positions = p;
+               numPositions = num;
        }
 
+       static void CreateTypeDescription();
+
 private:
-       std::vector<geometry::Vector<Uint8> > positions;
+       const geometry::Vector<int> *positions;
+       int numPositions;
 
 };