#include "AktionsThread.h"
#include "..\Global\Variablen.h"
#include <Zeit.h>

// Inhalt der AktionsThread Klasse aus AktionsThread.h
// Konstruktor
AktionsThread::AktionsThread( int aktion, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5 )
    : Thread()
{
    this->aktion = aktion;
    this->arg1 = arg1;
    this->arg2 = arg2;
    this->arg3 = arg3;
    this->arg4 = arg4;
    this->arg5 = arg5;
    start();
}

// nicht constant
void AktionsThread::thread()
{
    switch( aktion )
    {
    case 1: // Login
        // arg1 = char* -- Account Name
        // arg2 = char* -- Account Passwort
        if( 1 )
        {
            hauptScreen->setdeckFarbe( 0x00000000 );
            hauptScreen->setOnTop( 1 );
            ladeAnimation->setSichtbar( 1 );
            int ret = 0;
            if( !loginClient )
                loginClient = mainClient->createLoginServerClient();
            do
            {
                if( !loginClient )
                {
                    lastError = mainClient->getLetzterFehler();
                    continue;
                }
                if( !loginClient->verbinde() )
                {
                    lastError = loginClient->getLetzterFehler();
                    continue;
                }
                ret = loginClient->login( (const char *)arg1, (const char *)arg2 );
                if( ret != 1 )
                {
                    lastError = loginClient->getLetzterFehler();
                    continue;
                }
                if( !infoClient )
                    infoClient = mainClient->createInformationServerClient();
                if( !infoClient )
                {
                    ret = 0;
                    lastError = mainClient->getLetzterFehler();
                    loginClient->logout();
                    continue;
                }
                if( !infoClient->verbinde() )
                {
                    ret = 0;
                    lastError = mainClient->getLetzterFehler();
                    lastError = infoClient->getLetzterFehler();
                    loginClient->logout();
                    continue;
                }
                if( !chatClient )
                    chatClient = mainClient->createChatServerClient();
                if( !chatClient )
                {
                    ret = 0;
                    lastError = mainClient->getLetzterFehler();
                    loginClient->logout();
                    continue;
                }
                if( !chatClient->verbinde() )
                {
                    ret = 0;
                    loginClient->logout();
                    infoClient->trenne( 0 );
                    lastError = chatClient->getLetzterFehler();
                    continue;
                }
                if( cmProcessor )
                    cmProcessor = (ChatMessageProcessor *)cmProcessor->release();
                cmProcessor = new ChatMessageProcessor();
                loginClient->trenne( 0 );
            } while( 0 );
            ladeAnimation->setSichtbar( 0 );
            hauptScreen->setOnTop( 0 );
            vorLogin->zLogin()->setLoginReturn( ret );
        }
        break;
    case 2: // Login Erfolgreich
        hauptScreen->setdeckFarbe( 0x00000000 );
        hauptScreen->setOnTop( 1 );
        ladeAnimation->setSichtbar( 1 );
        for( unsigned char deckAlpha = 0; deckAlpha < 255; )
        {
            hauptScreen->setdeckFarbe( deckAlpha << 24 );
            Sleep( 40 );
            deckAlpha += 15;
        }
        hauptScreen->setdeckFarbe( 255 << 24 );
        hauptScreen->setRenderZeichnungen( 0 );
        vorLogin->setSichtbar( 0 );
        nachLogin->setAnzeige( NLANormal );
        hauptScreen->setRenderZeichnungen( 1 );
        ladeAnimation->setSichtbar( 0 );
        for( unsigned char deckAlpha = 255; deckAlpha > 0; )
        {
            hauptScreen->setdeckFarbe( deckAlpha << 24 );
            Sleep( 40 );
            deckAlpha -= 15;
        }
        hauptScreen->setdeckFarbe( 0 << 24 );
        hauptScreen->setOnTop( 0 );
        break;
    case 3: // Kick
        // arg1 = char* -- Account Name
        // arg2 = char* -- Account Passwort
        // arg3 = char* -- Account Geheimnis
        if( 1 )
        {
            hauptScreen->setdeckFarbe( 0x00000000 );
            hauptScreen->setOnTop( 1 );
            ladeAnimation->setSichtbar( 1 );
            int ret = 0;
            if( !loginClient )
                loginClient = mainClient->createLoginServerClient();
            do
            {
                if( !loginClient )
                {
                    lastError = mainClient->getLetzterFehler();
                    continue;
                }
                if( !loginClient->verbinde() )
                {
                    lastError = loginClient->getLetzterFehler();
                    continue;
                }
                ret = (int)loginClient->kick( (const char *)arg1, (const char *)arg2, (const char *)arg3 );
                if( !ret )
                {
                    lastError = loginClient->getLetzterFehler();
                    continue;
                }
                if( !infoClient )
                    infoClient = mainClient->createInformationServerClient();
                if( !infoClient )
                {
                    ret = 2;
                    lastError = mainClient->getLetzterFehler();
                    loginClient->logout();
                    continue;
                }
                if( !infoClient->verbinde() )
                {
                    ret = 2;
                    lastError = infoClient->getLetzterFehler();
                    loginClient->logout();
                    continue;
                }
                if( !chatClient )
                    chatClient = mainClient->createChatServerClient();
                if( !chatClient )
                {
                    ret = 2;
                    lastError = mainClient->getLetzterFehler();
                    loginClient->logout();
                    continue;
                }
                if( !chatClient->verbinde() )
                {
                    ret = 2;
                    loginClient->logout();
                    infoClient->trenne( 0 );
                    lastError = chatClient->getLetzterFehler();
                    continue;
                }
                if( cmProcessor )
                    cmProcessor = (ChatMessageProcessor *)cmProcessor->release();
                cmProcessor = new ChatMessageProcessor();
                loginClient->trenne( 0 );
            } while( 0 );
            ladeAnimation->setSichtbar( 0 );
            hauptScreen->setOnTop( 0 );
            vorLogin->zLogin()->setKickReturn( ret );
        }
        break;
    case 4: // Logout
        if( 1 )
        {
            hauptScreen->setdeckFarbe( 0x00000000 );
            hauptScreen->setOnTop( 1 );
            ladeAnimation->setSichtbar( 1 );
            if( loginClient )
            {
                if( !loginClient->verbinde() )
                {
                    nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( "Das Ausloggen konnte nicht erfolgreich abgeschlossen werden." ),
                                                                  new Text( "Ok" ), 0 );
                    ladeAnimation->setSichtbar( 0 );
                    hauptScreen->setOnTop( 0 );
                    break;
                }
                bool ret = loginClient->logout();
                if( ret )
                {
                    hauptScreen->lock();
                    nachLogin->zChatLeiste()->removeAll();
                    nachLogin->zFreundesListe()->removeAll();
                    nachLogin->zNachrichtenListe()->removeAll();
                    hauptScreen->unlock();
                    if( infoClient )
                        infoClient->trenne( 0 );
                    if( spielClient )
                        spielClient->trenne();
                    if( smProcessor )
                        smProcessor = (SpielMessageProcessor *)smProcessor->release();
                    if( chatClient )
                        chatClient->trenne( 0 );
                    if( loginClient )
                        loginClient->trenne( 0 );
                    if( cmProcessor )
                        cmProcessor = (ChatMessageProcessor *)cmProcessor->release();
                }
                else
                {
                    nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( "Das Ausloggen konnte nicht erfolgreich abgeschlossen werden." ),
                                                                  new Text( "Ok" ), 0 );
                    ladeAnimation->setSichtbar( 0 );
                    hauptScreen->setOnTop( 0 );
                    break;
                }
            }
            ladeAnimation->setSichtbar( 0 );
            hauptScreen->setOnTop( 0 );
        }
    case 5: // Logout Erfolgreich
        hauptScreen->setdeckFarbe( 0x00000000 );
        hauptScreen->setOnTop( 1 );
        ladeAnimation->setSichtbar( 1 );
        for( unsigned char deckAlpha = 0; deckAlpha < 255; )
        {
            hauptScreen->setdeckFarbe( deckAlpha << 24 );
            Sleep( 40 );
            deckAlpha += 15;
        }
        hauptScreen->setdeckFarbe( 255 << 24 );
        _render = 0;
        hauptScreen->lock();
        nachLogin->setAnzeige( NLALogin );
        vorLogin->setSichtbar( 1 );
        hauptScreen->unlock();
        _render = 1;
        ladeAnimation->setSichtbar( 0 );
        for( unsigned char deckAlpha = 255; deckAlpha > 0; )
        {
            hauptScreen->setdeckFarbe( deckAlpha << 24 );
            Sleep( 40 );
            deckAlpha -= 15;
        }
        hauptScreen->setdeckFarbe( 0 << 24 );
        hauptScreen->setOnTop( 0 );
        break;
    case 8: // Account E-Mail �ndern
        // arg1 = char* -- Account Name
        // arg2 = char* -- Account Passwort
        // arg3 = char* -- Account Geheimnis
        // arg4 = char* -- Neue E-Mail
        if( 1 )
        {
            hauptScreen->setdeckFarbe( 0x00000000 );
            hauptScreen->setOnTop( 1 );
            ladeAnimation->setSichtbar( 1 );
            int ret = 0;
            if( !registerClient )
                registerClient = mainClient->createRegisterServerClient();
            do
            {
                if( !registerClient )
                {
                    lastError = mainClient->getLetzterFehler();
                    continue;
                }
                if( !registerClient->verbinde() )
                {
                    lastError = registerClient->getLetzterFehler();
                    continue;
                }
                ret = registerClient->eMail�ndern( (const char *)arg1, (const char *)arg2, (const char *)arg3, (const char *)arg4 );
                if( !ret )
                {
                    lastError = registerClient->getLetzterFehler();
                    continue;
                }
            } while( 0 );
            registerClient->trenne( 0 );
            ladeAnimation->setSichtbar( 0 );
            hauptScreen->setOnTop( 0 );
            vorLogin->zEMail�ndern()->setReturn( ret );
        }
        break;
    case 9: // Account E-Mail Vergessen
        // arg1 = char* -- Account Name
        // arg2 = char* -- Account Passwort
        // arg3 = char* -- Account Geheimnis
        if( 1 )
        {
            hauptScreen->setdeckFarbe( 0x00000000 );
            hauptScreen->setOnTop( 1 );
            ladeAnimation->setSichtbar( 1 );
            char *eMail = 0;
            char **pEMail = &eMail;
            int ret = 0;
            if( !registerClient )
                registerClient = mainClient->createRegisterServerClient();
            do
            {
                if( !registerClient )
                {
                    lastError = mainClient->getLetzterFehler();
                    continue;
                }
                if( !registerClient->verbinde() )
                {
                    lastError = registerClient->getLetzterFehler();
                    continue;
                }
                ret = registerClient->eMailVergessen( (const char *)arg1, (const char *)arg2, (const char *)arg3, pEMail );
                if( !ret )
                {
                    lastError = registerClient->getLetzterFehler();
                    continue;
                }
            } while( 0 );
            registerClient->trenne( 0 );
            ladeAnimation->setSichtbar( 0 );
            hauptScreen->setOnTop( 0 );
            vorLogin->zEMailVergessen()->setReturn( ret, *pEMail );
        }
        break;
    case 10: // Account Geheimnis �ndern
        // arg1 = char* -- Account Name
        // arg2 = char* -- Account Passwort
        // arg3 = char* -- Account Geheimnis
        // arg4 = char* -- Neues Geheimnis
        if( 1 )
        {
            hauptScreen->setdeckFarbe( 0x00000000 );
            hauptScreen->setOnTop( 1 );
            ladeAnimation->setSichtbar( 1 );
            int ret = 0;
            if( !registerClient )
                registerClient = mainClient->createRegisterServerClient();
            do
            {
                if( !registerClient )
                {
                    lastError = mainClient->getLetzterFehler();
                    continue;
                }
                if( !registerClient->verbinde() )
                {
                    lastError = registerClient->getLetzterFehler();
                    continue;
                }
                ret = registerClient->geheimnis�ndern( (const char *)arg1, (const char *)arg2, (const char *)arg3, (const char *)arg4 );
                if( !ret )
                {
                    lastError = registerClient->getLetzterFehler();
                    continue;
                }
            } while( 0 );
            registerClient->trenne( 0 );
            ladeAnimation->setSichtbar( 0 );
            hauptScreen->setOnTop( 0 );
            vorLogin->zGeheimnis�ndern()->setResult( ret );
        }
        break;
    case 11: // Account Geheimnis Vergessen
        // arg1 = char* -- Account Name
        // arg2 = char* -- Account Passwort
        if( 1 )
        {
            hauptScreen->setdeckFarbe( 0x00000000 );
            hauptScreen->setOnTop( 1 );
            ladeAnimation->setSichtbar( 1 );
            int ret = 0;
            if( !registerClient )
                registerClient = mainClient->createRegisterServerClient();
            do
            {
                if( !registerClient )
                {
                    lastError = mainClient->getLetzterFehler();
                    continue;
                }
                if( !registerClient->verbinde() )
                {
                    lastError = registerClient->getLetzterFehler();
                    continue;
                }
                ret = registerClient->geheimnisVergessen( (const char *)arg1, (const char *)arg2 );
                if( !ret )
                {
                    lastError = registerClient->getLetzterFehler();
                    continue;
                }
            } while( 0 );
            registerClient->trenne( 0 );
            ladeAnimation->setSichtbar( 0 );
            hauptScreen->setOnTop( 0 );
            vorLogin->zGeheimnisVergessen()->setResult( ret );
        }
        break;
    case 12: // Account Name Vergessen
        // arg1 = char* -- Account Passwort
        // arg2 = char* -- Account Geheimnis
        if( 1 )
        {
            hauptScreen->setdeckFarbe( 0x00000000 );
            hauptScreen->setOnTop( 1 );
            ladeAnimation->setSichtbar( 1 );
            int ret = 0;
            if( !registerClient )
                registerClient = mainClient->createRegisterServerClient();
            do
            {
                if( !registerClient )
                {
                    lastError = mainClient->getLetzterFehler();
                    continue;
                }
                if( !registerClient->verbinde() )
                {
                    lastError = registerClient->getLetzterFehler();
                    continue;
                }
                ret = registerClient->nameVergessen( (const char *)arg1, (const char *)arg2 );
                if( !ret )
                {
                    lastError = registerClient->getLetzterFehler();
                    continue;
                }
            } while( 0 );
            registerClient->trenne( 0 );
            ladeAnimation->setSichtbar( 0 );
            hauptScreen->setOnTop( 0 );
            vorLogin->zNameVergessen()->setResult( ret );
        }
        break;
    case 13: // Account Passwort �ndern
        // arg1 = char* -- Account Name
        // arg2 = char* -- Account Passwort
        // arg3 = char* -- Account Geheimnis
        // arg4 = char* -- Neues Passwort
        if( 1 )
        {
            hauptScreen->setdeckFarbe( 0x00000000 );
            hauptScreen->setOnTop( 1 );
            ladeAnimation->setSichtbar( 1 );
            int ret = 0;
            if( !registerClient )
                registerClient = mainClient->createRegisterServerClient();
            do
            {
                if( !registerClient )
                {
                    lastError = mainClient->getLetzterFehler();
                    continue;
                }
                if( !registerClient->verbinde() )
                {
                    lastError = registerClient->getLetzterFehler();
                    continue;
                }
                ret = registerClient->passwort�ndern( (const char *)arg1, (const char *)arg2, (const char *)arg3, (const char *)arg4 );
                if( !ret )
                {
                    lastError = registerClient->getLetzterFehler();
                    continue;
                }
            } while( 0 );
            registerClient->trenne( 0 );
            ladeAnimation->setSichtbar( 0 );
            hauptScreen->setOnTop( 0 );
            vorLogin->zPasswort�ndern()->setResult( ret );
        }
        break;
    case 14: // Account Passwort Vergessen
        // arg1 = char* -- Account Name
        // arg2 = char* -- Account Geheimnis
        if( 1 )
        {
            hauptScreen->setdeckFarbe( 0x00000000 );
            hauptScreen->setOnTop( 1 );
            ladeAnimation->setSichtbar( 1 );
            int ret = 0;
            if( !registerClient )
                registerClient = mainClient->createRegisterServerClient();
            do
            {
                if( !registerClient )
                {
                    lastError = mainClient->getLetzterFehler();
                    continue;
                }
                if( !registerClient->verbinde() )
                {
                    lastError = registerClient->getLetzterFehler();
                    continue;
                }
                ret = registerClient->passwortVergessen( (const char *)arg1, (const char *)arg2 );
                if( !ret )
                {
                    lastError = registerClient->getLetzterFehler();
                    continue;
                }
            } while( 0 );
            registerClient->trenne( 0 );
            ladeAnimation->setSichtbar( 0 );
            hauptScreen->setOnTop( 0 );
            vorLogin->zPasswortVergessen()->setResult( ret );
        }
        break;
    case 15: // Account Erstellen
        // arg1 = char* -- Account Name
        // arg2 = char* -- Account Passwort
        // arg3 = char* -- Account Geheimnis
        // arg4 = char* -- Account E-Mail
        // arg5 = Datum* -- Geburtsdatum
        if( 1 )
        {
            hauptScreen->setdeckFarbe( 0x00000000 );
            hauptScreen->setOnTop( 1 );
            ladeAnimation->setSichtbar( 1 );
            int ret = 0;
            if( !registerClient )
                registerClient = mainClient->createRegisterServerClient();
            do
            {
                if( !registerClient )
                {
                    lastError = mainClient->getLetzterFehler();
                    continue;
                }
                if( !registerClient->verbinde() )
                {
                    lastError = registerClient->getLetzterFehler();
                    continue;
                }
                ret = registerClient->accountErstellen( (const char *)arg1,
                    (const char *)arg2,
                                                        (const char *)arg3,
                                                        (const char *)arg4,
                                                        (unsigned short)( (Datum *)arg5 )->getJahr(),
                                                        (char)( (Datum *)arg5 )->getMonat(),
                                                        (char)( (Datum *)arg5 )->getTag() );
                if( !ret )
                {
                    lastError = registerClient->getLetzterFehler();
                    continue;
                }
            } while( 0 );
            registerClient->trenne( 0 );
            ladeAnimation->setSichtbar( 0 );
            hauptScreen->setOnTop( 0 );
            vorLogin->zRegistrierung()->setWeiterReturn( ret );
            ( (Datum *)arg5 )->release();
        }
        break;
    case 17: // account L�schen Fertig
        // arg1 = char* -- Account Name
        // arg2 = char* -- Account Passwort
        // arg3 = char* -- Account Geheimnis
        if( 1 )
        {
            hauptScreen->setdeckFarbe( 0x00000000 );
            hauptScreen->setOnTop( 1 );
            ladeAnimation->setSichtbar( 1 );
            int ret = 0;
            if( !registerClient )
                registerClient = mainClient->createRegisterServerClient();
            do
            {
                if( !registerClient )
                {
                    lastError = mainClient->getLetzterFehler();
                    continue;
                }
                if( !registerClient->verbinde() )
                {
                    lastError = registerClient->getLetzterFehler();
                    continue;
                }
                ret = registerClient->accountL�schen( (const char *)arg1, (const char *)arg2, (const char *)arg3 );
                if( !ret )
                {
                    lastError = registerClient->getLetzterFehler();
                    continue;
                }
            } while( 0 );
            registerClient->trenne( 0 );
            ladeAnimation->setSichtbar( 0 );
            hauptScreen->setOnTop( 0 );
            vorLogin->zUnregistrierung()->setWeiterReturn( ret );
        }
        break;
    case 19: // Spiel Laden
        if( 1 )
        {
            hauptScreen->setdeckFarbe( 0x00000000 );
            hauptScreen->setOnTop( 1 );
            ladeAnimation->setSichtbar( 1 );
            for( unsigned char deckAlpha = 0; deckAlpha < 255; )
            {
                hauptScreen->setdeckFarbe( deckAlpha << 24 );
                Sleep( 40 );
                deckAlpha += 15;
            }
            hauptScreen->setdeckFarbe( 255 << 24 );
            _render = 0;
            hauptScreen->lock();
            int karteId = nachLogin->zSpielenFenster()->getKarteId();
            SpielerTeamStruktur * sts = nachLogin->zSpielenFenster()->getSTS();
            nachLogin->setAnzeige( NLAImSpiel );
            hauptScreen->unlock();
            _render = 1;
            nachLogin->zImSpiel()->beginnLaden( karteId, sts );
            ladeAnimation->setSichtbar( 0 );
            for( unsigned char deckAlpha = 255; deckAlpha > 0; )
            {
                hauptScreen->setdeckFarbe( deckAlpha << 24 );
                Sleep( 40 );
                deckAlpha -= 15;
            }
            hauptScreen->setdeckFarbe( 0 << 24 );
            hauptScreen->setOnTop( 0 );
        }
        break;
    case 20: // Spiel Statistik laden
        if( 1 )
        {
            hauptScreen->setdeckFarbe( 0x00000000 );
            hauptScreen->setOnTop( 1 );
            ladeAnimation->setSichtbar( 1 );
            for( unsigned char deckAlpha = 0; deckAlpha < 255; )
            {
                hauptScreen->setdeckFarbe( deckAlpha << 24 );
                Sleep( 40 );
                deckAlpha += 15;
            }
            hauptScreen->setdeckFarbe( 255 << 24 );
            _render = 0;
            hauptScreen->lock();
            int karteId = nachLogin->zImSpiel()->getKarteId();
            nachLogin->setAnzeige( NLANormal );
            hauptScreen->unlock();
            _render = 1;
            if( spielClient &&spielClient->istVerbunden() )
                nachLogin->zSpielenFenster()->ladeSpielStatistik( karteId );
            ladeAnimation->setSichtbar( 0 );
            for( unsigned char deckAlpha = 255; deckAlpha > 0; )
            {
                hauptScreen->setdeckFarbe( deckAlpha << 24 );
                Sleep( 40 );
                deckAlpha -= 15;
            }
            hauptScreen->setdeckFarbe( 0 << 24 );
            hauptScreen->setOnTop( 0 );
        }
        break;
    case 21: // Spiel Aufzeichnung betreten
        if( 1 )
        {
            hauptScreen->setdeckFarbe( 0x00000000 );
            hauptScreen->setOnTop( 1 );
            ladeAnimation->setSichtbar( 1 );
            for( unsigned char deckAlpha = 0; deckAlpha < 255; )
            {
                hauptScreen->setdeckFarbe( deckAlpha << 24 );
                Sleep( 40 );
                deckAlpha += 15;
            }
            hauptScreen->setdeckFarbe( 255 << 24 );
            _render = 0;
            hauptScreen->lock();
            nachLogin->setAnzeige( NLASpielVideo );
            hauptScreen->unlock();
            _render = 1;
            ladeAnimation->setSichtbar( 0 );
            for( unsigned char deckAlpha = 255; deckAlpha > 0; )
            {
                hauptScreen->setdeckFarbe( deckAlpha << 24 );
                Sleep( 40 );
                deckAlpha -= 15;
            }
            hauptScreen->setdeckFarbe( 0 << 24 );
            hauptScreen->setOnTop( 0 );
        }
        break;
    case 22: // Spiel Aufzeichnung / Editor verlassen
        if( 1 )
        {
            hauptScreen->setdeckFarbe( 0x00000000 );
            hauptScreen->setOnTop( 1 );
            ladeAnimation->setSichtbar( 1 );
            for( unsigned char deckAlpha = 0; deckAlpha < 255; )
            {
                hauptScreen->setdeckFarbe( deckAlpha << 24 );
                Sleep( 40 );
                deckAlpha += 15;
            }
            hauptScreen->setdeckFarbe( 255 << 24 );
            _render = 0;
            hauptScreen->lock();
            nachLogin->setAnzeige( NLANormal );
            hauptScreen->unlock();
            _render = 1;
            ladeAnimation->setSichtbar( 0 );
            for( unsigned char deckAlpha = 255; deckAlpha > 0; )
            {
                hauptScreen->setdeckFarbe( deckAlpha << 24 );
                Sleep( 40 );
                deckAlpha -= 15;
            }
            hauptScreen->setdeckFarbe( 0 << 24 );
            hauptScreen->setOnTop( 0 );
        }
        break;
    case 23: // Editor betreten
        if( 1 )
        {
            hauptScreen->setdeckFarbe( 0x00000000 );
            hauptScreen->setOnTop( 1 );
            ladeAnimation->setSichtbar( 1 );
            for( unsigned char deckAlpha = 0; deckAlpha < 255; )
            {
                hauptScreen->setdeckFarbe( deckAlpha << 24 );
                Sleep( 40 );
                deckAlpha += 15;
            }
            hauptScreen->setdeckFarbe( 255 << 24 );
            _render = 0;
            hauptScreen->lock();
            nachLogin->setAnzeige( NLAEditor );
            hauptScreen->unlock();
            _render = 1;
            ladeAnimation->setSichtbar( 0 );
            for( unsigned char deckAlpha = 255; deckAlpha > 0; )
            {
                hauptScreen->setdeckFarbe( deckAlpha << 24 );
                Sleep( 40 );
                deckAlpha -= 15;
            }
            hauptScreen->setdeckFarbe( 0 << 24 );
            hauptScreen->setOnTop( 0 );
        }
        break;
    }
    release();
}