#define variable
#include "Variablen.h"
#include <Punkt.h>
#include <DateiSystem.h>

void initVariables( Schrift *zSchrift, Bildschirm *zBildschirm )
{
	loginKlient = new LoginKlient();
	registerKlient = new RegisterKlient();
	infoKlient = new InformationKlient();
	chatKlient = new ChatKlient();
	anmeldungKlient = new AnmeldungKlient();
	spielKlient = new SpielKlient();
	shopKlient = new ShopKlient();
	historieKlient = new HistorieKlient();
	newsKlient = new NewsKlient();
	editorKlient = new EditorKlient();
    kartenKlient = new KartenKlient();
	vorLogin = new VorLogin( zSchrift, zBildschirm );
	nachLogin = new NachLogin( zSchrift, zBildschirm );
	Animation2DData *lad = new Animation2DData();
	LTDBDatei *ladd = new LTDBDatei();
	ladd->setDatei( new Text( "data/bilder/ladeanimation.ltdb" ) );
	lad->ladeAnimation( ladd );
	lad->setFPS( 30 );
	lad->setWiederhohlend( 1 );
	ladeAnimation = new Animation2D();
	ladeAnimation->setPosition( BildschirmGröße() / 2 - Punkt( 25, 25 ) );
	ladeAnimation->setGröße( 50, 50 );
	ladeAnimation->setAPS( 450 );
	ladeAnimation->setAnimationDataZ( lad );
	ladeAnimation->setRahmen( 1 );
	ladeAnimation->setRahmenBreite( 1 );
	ladeAnimation->setRahmenFarbe( 0xFFFFFFFF );
	zBildschirm->setOnTopZeichnung( ladeAnimation );
	aktion = 2;
	hauptScreen = zBildschirm->getThis();
	bilder = new Bilder();
	updateH = new UpdateHandler();
	dllDateien = new DLLDateien();
	keepAliveTh = new KeepAliveTh();
	_render = 1;
}

void releaseVariables()
{
	_render = 0;
	keepAliveTh->doExit();
	keepAliveTh->warteAufThread( 1000 );
	if( keepAliveTh->läuft() )
		keepAliveTh->ende();
	delete keepAliveTh;
	keepAliveTh = 0;
	if( vorLogin )
		vorLogin = vorLogin->release();
	if( nachLogin )
		nachLogin = nachLogin->release();
	if( loginKlient )
		loginKlient = loginKlient->release();
	if( registerKlient )
		registerKlient = registerKlient->release();
	if( infoKlient )
		infoKlient = (InformationKlient*)infoKlient->release();
	if( chatKlient )
		chatKlient = chatKlient->release();
	if( anmeldungKlient )
		anmeldungKlient = anmeldungKlient->release();
	if( spielKlient )
		spielKlient = (SpielKlient*)spielKlient->release();
	if( shopKlient )
		shopKlient = shopKlient->release();
	if( historieKlient )
		historieKlient = historieKlient->release();
	if( newsKlient )
		newsKlient = newsKlient->release();
	if( editorKlient )
		editorKlient = (EditorKlient*)editorKlient->release();
    if( kartenKlient )
        kartenKlient = kartenKlient->release();
	if( ladeAnimation )
		ladeAnimation = ladeAnimation->release();
	if( hauptScreen )
		hauptScreen = hauptScreen->release();
	if( bilder )
	{
		bilder->release();
		bilder = 0;
	}
	if( updateH )
		updateH->release();
	if( dllDateien )
		dllDateien = dllDateien->release();
}