BWAPI
Skynet/Skynet/WalkPosition.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 #include "Interface.h"
00004 
00005 class WalkPosition
00006 {
00007 public:
00008         int x, y;
00009 
00010         WalkPosition()
00011                 : x(0), y(0)
00012         { }
00013 
00014         WalkPosition(int x, int y)
00015                 : x(x), y(y)
00016         { }
00017 
00018         WalkPosition(const Position &p)
00019                 : x(p.x() / 8), y(p.y() / 8)
00020         { }
00021 
00022         WalkPosition(const TilePosition &p)
00023                 : x(p.x() * 4), y(p.y() * 4)
00024         { }
00025 
00026         inline operator Position()
00027         {
00028                 return Position(x * 8, y * 8);
00029         }
00030 
00031         inline operator TilePosition()
00032         {
00033                 return TilePosition(x / 4, y / 4);
00034         }
00035 
00036         inline bool operator==(const WalkPosition &v) const
00037         {
00038                 return (x == v.x && y == v.y);
00039         }
00040 
00041         inline bool operator!=(const WalkPosition &v) const
00042         {
00043                 return !(x == v.x && y == v.y);
00044         }
00045 
00046         inline bool operator<(const WalkPosition& v) const
00047         {
00048                 if(x == v.x)
00049                         return y < v.y;
00050                 
00051                 return x < v.x;
00052         }
00053 
00054         inline bool operator>(const WalkPosition& v) const
00055         {
00056                 if(x == v.x)
00057                         return y > v.y;
00058 
00059                 return x > v.x;
00060         }
00061 
00062         inline Position getCenterPosition() const
00063         {
00064                 return Position(x * 8 + 4, y * 8 + 4);
00065         }
00066 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines