/* ************************************************************************** */ /* _____ _ __ ___ __ */ /* Render.cpp | ___(_)/ _| ___ ( _ ) / /_ */ /* Project: C-Engine | |_ | | |_ / _ \/ _ \| '_ \ */ /* | _| | | _| __/ (_) | (_) | */ /* Author: Fife |_| |_|_| \___|\___/ \___/ */ /* */ /* ************************************************************************** */ #include "..\C-Engine\include\Object\Render.hpp" Render::Render(Object * Pointeur) { Conteneur = Pointeur; TabAnim = NULL; nb_anim = 0; iterateur = 0; reverse = false; direction = 0; copie = false; activate = false; } Render::~Render() { if(copie) { delete TabAnim; //Bug lorsqu'il y a plusieurs animations } } void Render::SetRender(Animation * v, int nb) { TabAnim = v; nb_anim = nb; activate = true; } void Render::SetRender(Animation & v) { TabAnim = &v; nb_anim = 1; activate = true; } 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; activate = true; } void Render::CopieRender(Animation & v) { TabAnim = new Animation; TabAnim[0] = v; nb_anim = 1; copie = true; activate = true; } void Render::SetIt(int v) { if(iterateur != v && (!TabAnim[iterateur].GetWaittheEnd() || TabAnim[iterateur].GetisEnd())) { iterateur = v; if( iterateur >= nb_anim) iterateur = 0; TabAnim[ iterateur].SetIt(0); } } void Render::ForceSetIt(int v) { iterateur = v; if( iterateur >= nb_anim) iterateur = 0; 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(); else return 0; } int Render::GetSizeX() { if(TabAnim)return TabAnim[iterateur].GetSizeX(); else return 0; } int Render::GetBlitX() { if(TabAnim)return TabAnim[iterateur].GetBlitX(); else return 0; } int Render::GetBlitY() { if(TabAnim)return TabAnim[iterateur].GetBlitY(); else return 0; } void Render::ActivateRender() { activate = true; } void Render::DeActivateRender() { activate = false; } bool Render::GetActivate() { return activate; } void Render::DrawObject() { if(TabAnim && activate) { 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); } } }