/*
** Haaf's Game Engine 1.8
** Copyright (C) 2003-2007, Relish Games
** hge.relishgames.com
**
** Core functions implementation: HGE splash screen
*/
#include "hge_impl.h"
#include "../loading.h"
#include "hgesprite.h"
//#ifdef DEMO
hgeSprite *SprLoad,*SprRot;
HTEXTURE TLoad,TRot;
int px,py;
float dtime,rot;
void DInit()
{
px=pHGE->System_GetState(HGE_SCREENWIDTH)/2;
py=pHGE->System_GetState(HGE_SCREENHEIGHT)/2;
TLoad=pHGE->Texture_Load((char *)Loading,sizeof(Loading));
TRot=pHGE->Texture_Load((char *)LoadCircle,sizeof(LoadCircle));
SprLoad=new hgeSprite(TLoad,0,0,96,32);
SprRot=new hgeSprite(TRot,0,0,48,46);
SprLoad->SetHotSpot(48,16);SprRot->SetHotSpot(24,23);
dtime=0.0f;rot=0.0f;
}
void DDone()
{
delete SprLoad;delete SprRot;
pHGE->Texture_Free(TLoad);pHGE->Texture_Free(TRot);
}
bool DFrame()
{
BYTE alpha;
DWORD col=0x00FFFFFF;
dtime+=pHGE->Timer_GetDelta();
if (dtime<=0.5)alpha=(BYTE)(dtime/0.5f*255.0f);else alpha=255;
if (dtime<=1.5)rot+=((pHGE->Timer_GetDelta())/0.1f)*M_PI*0.3f;
else rot+=((pHGE->Timer_GetDelta())/0.1f)*M_PI*0.3f*((2.0f-dtime)/0.5f);
SprRot->SetColor(SETA(col,alpha));
if (dtime>=2)return true;
pHGE->Gfx_BeginScene();
pHGE->Gfx_Clear(0);
SprLoad->Render(px,py);
SprRot->RenderEx(px-75,py,rot);
pHGE->Gfx_EndScene();
return false;
}
//#endif