Show mappos.h syntax highlighted
/***************************************************************************
mappos.h - description
-------------------
begin : Tue Nov 26 2002
copyright : (C) 2002 by Brendon Higgins
email : freepop-devel@lists.sourceforge.net
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef MAPPOS_H_INCLUDED
#define MAPPOS_H_INCLUDED
#include <ClanLib/network.h>
#include <boost/operators.hpp>
class Rotation;
/**
* Coords of a tile on the map.
* Describes where on the map a tile is located. Does
* not care about a particular place on the tile.
* \see MapTilePos, WorldPos
*/
class MapPos: public
boost::equality_comparable<MapPos,
boost::additive<MapPos
> > {
private:
/**
* Coordinates.
*/
int x, y;
public:
/**
* Default constructor (0, 0).
*/
MapPos();
/**
* Constructor.
*/
MapPos(int px, int py);
/**
* Copy constructor.
*/
MapPos(const MapPos& p);
/**
* Check equality.
*/
bool operator==(const MapPos& p) const;
/**
* In place addition.
*/
MapPos& operator+=(const MapPos& p);
/**
* In place subtraction.
*/
MapPos& operator-=(const MapPos& p);
/**
* Return the x component of the coordinates.
*/
int getX() const;
/**
* Return the y component of the coordinates.
*/
int getY() const;
/**
* Set the pos.
*/
void set(int px, int py);
/**
* Spins the pos by r.
* \param r Number of 90 degree rotations to perform.
* \param width Width of the map.
* \param height Height of the map.
*/
void rotate(const Rotation& r, int width, int height);
/**
* Inject this pos into \p os.
*/
void inject(CL_OutputSource& os) const;
/**
* Create a pos from data in \p is.
*/
static MapPos extract(CL_InputSource& is);
};
#endif /* ndef MAPPOS_H_INCLUDED */
See more files for this project here