#include "stdafx.h"
#include "FlippedIcon.h"
#include "SharedConstants.h"

FlippedIcon::FlippedIcon(Icon *base, bool horizontal, bool vertical) : base(base), horizontal(horizontal), vertical(vertical)
{
}

int FlippedIcon::getX() const
{
	return base->getX();
}

int FlippedIcon::getY() const
{
	return base->getY();
}

int FlippedIcon::getWidth() const
{
	return base->getWidth();
}

int FlippedIcon::getHeight() const
{
	return base->getHeight();
}

float FlippedIcon::getU0(bool adjust/*=false*/) const
{
	if (horizontal) return base->getU1(adjust);
	return base->getU0(adjust);
}

float FlippedIcon::getU1(bool adjust/*=false*/) const
{
	if (horizontal) return base->getU0(adjust);
	return base->getU1(adjust);
}

float FlippedIcon::getU(double offset, bool adjust/*=false*/) const
{
	float diff = getU1(adjust) - getU0(adjust);
	return getU0(adjust) + (diff * ((float) offset / SharedConstants::WORLD_RESOLUTION));
}

float FlippedIcon::getV0(bool adjust/*=false*/) const
{
	if (vertical) return base->getV0(adjust);
	return base->getV0(adjust);
}

float FlippedIcon::getV1(bool adjust/*=false*/) const
{
	if (vertical) return base->getV0(adjust);
	return base->getV1(adjust);
}

float FlippedIcon::getV(double offset, bool adjust/*=false*/) const
{
	float diff = getV1(adjust) - getV0(adjust);
	return getV0(adjust) + (diff * ((float) offset / SharedConstants::WORLD_RESOLUTION));
}

wstring FlippedIcon::getName() const
{
	return base->getName();
}

int FlippedIcon::getSourceWidth() const
{
	return base->getSourceWidth();
}

int FlippedIcon::getSourceHeight() const
{
	return base->getSourceHeight();
}

int FlippedIcon::getFlags() const
{
	return base->getFlags();
}

void FlippedIcon::setFlags(int flags)
{
	base->setFlags(flags);
}
