C-Engine/src/Components/Render.cpp

147 lines
3.3 KiB
C++

/* ************************************************************************** */
/* _____ */
/* Render.cpp | ___| _ ____ ___ */
/* Project : C-Engine | |_ | | | __| / _ \ */
/* | _| | | | |= | __/ */
/* By: Fife <wasabifife@gmail.com> |_| |_| |_| \___| */
/* */
/* */
/* ************************************************************************** */
#include "..\Rework\include\Components\Render.hpp"
Render::Render(Object * Pointeur)
{
Conteneur = Pointeur;
TabAnim = NULL;
nb_anim = 0;
iterateur = 0;
reverse = false;
direction = 0;
copie = false;
}
Render::~Render()
{
if(copie)delete TabAnim;
}
void Render::SetRender(Animation * v, int nb)
{
TabAnim = v;
nb_anim = nb;
}
void Render::SetRender(Animation & v)
{
TabAnim = &v;
nb_anim = 1;
}
void Render::CopieRender(Animation * v, int nb)
{
TabAnim = new Animation[nb];
for(int i = 0; i < nb ; i++)
{
TabAnim[i] = v[i];
}
nb_anim = nb;
copie = true;
}
void Render::CopieRender(Animation & v)
{
TabAnim = new Animation;
TabAnim[0] = v;
nb_anim = 1;
copie = true;
}
void Render::SetIt(int v)
{
/*if(iterateur != v && (!TabAnim[iterateur].GetWaittheEnd() || TabAnim[iterateur].GetisEnd()))
{*/
iterateur = v;
TabAnim[ iterateur].SetIt(0);
// }
}
int Render::GetIt()
{
if(TabAnim)return iterateur;
return 0;
}
void Render::ReverseRender(bool v)
{
reverse = v;
}
bool Render::GetReverse()
{
return reverse;
}
void Render::SetDirection(int v)
{
direction = v;
if(direction > 360) direction -= 360;
if(direction < 0) direction += 360;
}
int Render::GetDirection()
{
return direction;
}
int Render::GetSizeY()
{
if(TabAnim)return TabAnim[iterateur].GetSizeY();
return 0;
}
int Render::GetSizeX()
{
if(TabAnim)return TabAnim[iterateur].GetSizeX();
return 0;
}
int Render::GetBlitX()
{
if(TabAnim)return TabAnim[iterateur].GetBlitX();
return 0;
}
int Render::GetBlitY()
{
if(TabAnim)return TabAnim[iterateur].GetBlitY();
return 0;
}
void Render::DrawObject()
{
if(TabAnim)
{
if( iterateur >= nb_anim) iterateur = 0;
if(!reverse)
TabAnim[ iterateur].DrawAnim( Conteneur->GetTransform()->GetRelativeX() , 64 - Conteneur->GetTransform()->GetRelativeY() - GetSizeY() , direction);
else
TabAnim[ iterateur].DrawReverseAnim( Conteneur->GetTransform()->GetRelativeX() , 64 - Conteneur->GetTransform()->GetRelativeY() - GetSizeY() , direction);
}
}