#include "fsIScroller.h"
#include "fsITileMap.h"
using namespace fsNTileMap;
const fsPoint& fsIScroller::tileOffsetGet() const
{
return mTileOffest;
}
const fsPoint& fsIScroller::subTileScrollOffsetGet() const
{
return mSubTileScrollOffest;
}
fsBool fsIScroller::clamp(fsS32& pVal, fsS32 pLow, fsS32 pRange) const<--- The member function 'fsNTileMap::fsIScroller::clamp' can be static.
{
if (pVal >= (pLow + pRange))
{
pVal -= pRange;
return true;
}
else if (pVal < pLow)
{
pVal += pRange;
return true;
}
return false;
}
void fsIScroller::tileOffsetSet(const fsPoint& pOffest)
{
mTileOffest = pOffest;
mTileOffest.x /= mMap->tileWidthGet();
mTileOffest.y /= mMap->tileHeightGet();
}
fsBool fsIScroller::fullTileScrollHandleX(fsS32& pAttemptedX, fsS32 pViewWidth)
{
return tileWrap(mSubTileScrollOffest.x, pAttemptedX, mTileOffest.x, mMap->tileWidthGet(), mMap->widthGet() - pViewWidth);
}
fsBool fsIScroller::fullTileScrollHandleY(fsS32& pAttemptedY, fsS32 pViewHeight)
{
return tileWrap(mSubTileScrollOffest.y, pAttemptedY, mTileOffest.y, mMap->tileHeightGet(), mMap->heightGet() - pViewHeight);
}
void fsIScroller::tileMapSet(fsITileMap* const pMap)
{
mMap = pMap;
}
fsIScroller::fsIScroller() :
mTileOffest(0, 0),
mSubTileScrollOffest(0, 0),
mMap(nullptr)
{
}