Browse Source

framework changes

Kolja Strohm 2 years ago
parent
commit
f4b5c250d7
47 changed files with 16160 additions and 16160 deletions
  1. 755 755
      KSGClient/Aktionen/AktionsThread.cpp
  2. 6 6
      KSGClient/Aktionen/AktionsThread.h
  3. 110 110
      KSGClient/Global/Initialisierung.cpp
  4. 16 16
      KSGClient/Global/Initialisierung.h
  5. 122 122
      KSGClient/Global/Render.cpp
  6. 201 201
      KSGClient/Leser/KartenLeser.cpp
  7. 28 28
      KSGClient/Leser/KartenLeser.h
  8. 1181 1181
      KSGClient/NachLogin/Account/Historie/AccountHistorie.cpp
  9. 177 177
      KSGClient/NachLogin/Account/Historie/AccountHistorie.h
  10. 934 934
      KSGClient/NachLogin/Account/SpielPartner/AccountSpielPartner.cpp
  11. 87 87
      KSGClient/NachLogin/Account/SpielPartner/AccountSpielPartner.h
  12. 718 718
      KSGClient/NachLogin/Account/Spiele_Karten/AccountSpieleUndKarten.cpp
  13. 111 111
      KSGClient/NachLogin/Account/Spiele_Karten/AccountSpieleUndKarten.h
  14. 241 241
      KSGClient/NachLogin/Account/Suchen/AccountSuchen.cpp
  15. 1095 1095
      KSGClient/NachLogin/Chat/ChatLeiste.cpp
  16. 123 123
      KSGClient/NachLogin/Chat/ChatLeiste.h
  17. 979 979
      KSGClient/NachLogin/Chat/FreundesListe.cpp
  18. 127 127
      KSGClient/NachLogin/Chat/FreundesListe.h
  19. 753 753
      KSGClient/NachLogin/Chat/NachrichtenListe.cpp
  20. 335 335
      KSGClient/NachLogin/Editor/Auswahl/Auswahl.cpp
  21. 1015 1015
      KSGClient/NachLogin/Editor/Karte/Dateien/KEDEditor.cpp
  22. 48 48
      KSGClient/NachLogin/Editor/Karte/Dateien/WAVDatei.cpp
  23. 41 41
      KSGClient/NachLogin/Editor/Karte/Dateien/WAVDatei.h
  24. 557 557
      KSGClient/NachLogin/Editor/Karte/ShopSeite/KESSVorschau.cpp
  25. 76 76
      KSGClient/NachLogin/Editor/Karte/ShopSeite/KESSVorschau.h
  26. 399 399
      KSGClient/NachLogin/Editor/Karte/Teams/KETeams.cpp
  27. 154 154
      KSGClient/NachLogin/Einstellungen/Einstellungen.cpp
  28. 234 234
      KSGClient/NachLogin/MiniGames/MiniGame.cpp
  29. 30 30
      KSGClient/NachLogin/MiniGames/MiniGame.h
  30. 488 488
      KSGClient/NachLogin/MiniGames/Minigames.cpp
  31. 66 66
      KSGClient/NachLogin/MiniGames/Minigames.h
  32. 252 252
      KSGClient/NachLogin/Neuigkeiten/Neuigkeiten.cpp
  33. 43 43
      KSGClient/NachLogin/Neuigkeiten/Neuigkeiten.h
  34. 704 704
      KSGClient/NachLogin/Spiele/Spiele.cpp
  35. 84 84
      KSGClient/NachLogin/Spiele/Spiele.h
  36. 178 178
      KSGClient/NachLogin/Spiele/Statistik/SpielStatistik.cpp
  37. 35 35
      KSGClient/NachLogin/Spiele/Statistik/SpielStatistik.h
  38. 865 865
      KSGClient/NachLogin/Spiele/Team Auswahl/TeamAuswahl.cpp
  39. 149 149
      KSGClient/NachLogin/Spiele/Team Auswahl/TeamAuswahl.h
  40. 104 104
      KSGClient/Start/Start.cpp
  41. 483 483
      KSGClient/VorLogin/Account verwalten/EMail.cpp
  42. 428 428
      KSGClient/VorLogin/Account verwalten/Geheimnis.cpp
  43. 184 184
      KSGClient/VorLogin/Account verwalten/Name.cpp
  44. 475 475
      KSGClient/VorLogin/Account verwalten/Passwort.cpp
  45. 388 388
      KSGClient/VorLogin/Account verwalten/Registrierung.cpp
  46. 262 262
      KSGClient/VorLogin/Account verwalten/Unregistrierung.cpp
  47. 319 319
      KSGClient/VorLogin/Login/Login.cpp

+ 755 - 755
KSGClient/Aktionen/AktionsThread.cpp

@@ -4,765 +4,765 @@
 
 // Inhalt der AktionsThread Klasse aus AktionsThread.h
 // Konstruktor
-AktionsThread::AktionsThread( int aktion, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5 )
-    : Thread()
+AktionsThread::AktionsThread(int aktion, const void* arg1, const void* arg2, const void* arg3, const void* arg4, const void* arg5)
+	: Thread()
 {
-    this->aktion = aktion;
-    this->arg1 = arg1;
-    this->arg2 = arg2;
-    this->arg3 = arg3;
-    this->arg4 = arg4;
-    this->arg5 = arg5;
-    start();
+	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 )
-        {
-            uiFactory.initParam.bildschirm->setdeckFarbe( 0x00000000 );
-            uiFactory.initParam.bildschirm->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 );
-            uiFactory.initParam.bildschirm->setOnTop( 0 );
-            vorLogin->zLogin()->setLoginReturn( ret );
-        }
-        break;
-    case 2: // Login Erfolgreich
-        uiFactory.initParam.bildschirm->setdeckFarbe( 0x00000000 );
-        uiFactory.initParam.bildschirm->setOnTop( 1 );
-        ladeAnimation->setSichtbar( 1 );
-        for( unsigned char deckAlpha = 0; deckAlpha < 255; )
-        {
-            uiFactory.initParam.bildschirm->setdeckFarbe( deckAlpha << 24 );
-            Sleep( 40 );
-            deckAlpha += 15;
-        }
-        uiFactory.initParam.bildschirm->setdeckFarbe( 255 << 24 );
-        uiFactory.initParam.bildschirm->setRenderZeichnungen( 0 );
-        vorLogin->setSichtbar( 0 );
-        nachLogin->setAnzeige( NLANormal );
-        uiFactory.initParam.bildschirm->setRenderZeichnungen( 1 );
-        ladeAnimation->setSichtbar( 0 );
-        for( unsigned char deckAlpha = 255; deckAlpha > 0; )
-        {
-            uiFactory.initParam.bildschirm->setdeckFarbe( deckAlpha << 24 );
-            Sleep( 40 );
-            deckAlpha -= 15;
-        }
-        uiFactory.initParam.bildschirm->setdeckFarbe( 0 << 24 );
-        uiFactory.initParam.bildschirm->setOnTop( 0 );
-        break;
-    case 3: // Kick
-        // arg1 = char* -- Account Name
-        // arg2 = char* -- Account Passwort
-        // arg3 = char* -- Account Geheimnis
-        if( 1 )
-        {
-            uiFactory.initParam.bildschirm->setdeckFarbe( 0x00000000 );
-            uiFactory.initParam.bildschirm->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 );
-            uiFactory.initParam.bildschirm->setOnTop( 0 );
-            vorLogin->zLogin()->setKickReturn( ret );
-        }
-        break;
-    case 4: // Logout
-        if( 1 )
-        {
-            uiFactory.initParam.bildschirm->setdeckFarbe( 0x00000000 );
-            uiFactory.initParam.bildschirm->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 );
-                    uiFactory.initParam.bildschirm->setOnTop( 0 );
-                    break;
-                }
-                bool ret = loginClient->logout();
-                if( ret )
-                {
-                    uiFactory.initParam.bildschirm->lock();
-                    nachLogin->zChatLeiste()->removeAll();
-                    nachLogin->zFreundesListe()->removeAll();
-                    nachLogin->zNachrichtenListe()->removeAll();
-                    uiFactory.initParam.bildschirm->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 );
-                    uiFactory.initParam.bildschirm->setOnTop( 0 );
-                    break;
-                }
-            }
-            ladeAnimation->setSichtbar( 0 );
-            uiFactory.initParam.bildschirm->setOnTop( 0 );
-        }
-    case 5: // Logout Erfolgreich
-        uiFactory.initParam.bildschirm->setdeckFarbe( 0x00000000 );
-        uiFactory.initParam.bildschirm->setOnTop( 1 );
-        ladeAnimation->setSichtbar( 1 );
-        for( unsigned char deckAlpha = 0; deckAlpha < 255; )
-        {
-            uiFactory.initParam.bildschirm->setdeckFarbe( deckAlpha << 24 );
-            Sleep( 40 );
-            deckAlpha += 15;
-        }
-        uiFactory.initParam.bildschirm->setdeckFarbe( 255 << 24 );
-        _render = 0;
-        uiFactory.initParam.bildschirm->lock();
-        nachLogin->setAnzeige( NLALogin );
-        vorLogin->setSichtbar( 1 );
-        uiFactory.initParam.bildschirm->unlock();
-        _render = 1;
-        ladeAnimation->setSichtbar( 0 );
-        for( unsigned char deckAlpha = 255; deckAlpha > 0; )
-        {
-            uiFactory.initParam.bildschirm->setdeckFarbe( deckAlpha << 24 );
-            Sleep( 40 );
-            deckAlpha -= 15;
-        }
-        uiFactory.initParam.bildschirm->setdeckFarbe( 0 << 24 );
-        uiFactory.initParam.bildschirm->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 )
-        {
-            uiFactory.initParam.bildschirm->setdeckFarbe( 0x00000000 );
-            uiFactory.initParam.bildschirm->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 );
-            uiFactory.initParam.bildschirm->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 )
-        {
-            uiFactory.initParam.bildschirm->setdeckFarbe( 0x00000000 );
-            uiFactory.initParam.bildschirm->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 );
-            uiFactory.initParam.bildschirm->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 )
-        {
-            uiFactory.initParam.bildschirm->setdeckFarbe( 0x00000000 );
-            uiFactory.initParam.bildschirm->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 );
-            uiFactory.initParam.bildschirm->setOnTop( 0 );
-            vorLogin->zGeheimnisÄndern()->setResult( ret );
-        }
-        break;
-    case 11: // Account Geheimnis Vergessen
-        // arg1 = char* -- Account Name
-        // arg2 = char* -- Account Passwort
-        if( 1 )
-        {
-            uiFactory.initParam.bildschirm->setdeckFarbe( 0x00000000 );
-            uiFactory.initParam.bildschirm->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 );
-            uiFactory.initParam.bildschirm->setOnTop( 0 );
-            vorLogin->zGeheimnisVergessen()->setResult( ret );
-        }
-        break;
-    case 12: // Account Name Vergessen
-        // arg1 = char* -- Account Passwort
-        // arg2 = char* -- Account Geheimnis
-        if( 1 )
-        {
-            uiFactory.initParam.bildschirm->setdeckFarbe( 0x00000000 );
-            uiFactory.initParam.bildschirm->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 );
-            uiFactory.initParam.bildschirm->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 )
-        {
-            uiFactory.initParam.bildschirm->setdeckFarbe( 0x00000000 );
-            uiFactory.initParam.bildschirm->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 );
-            uiFactory.initParam.bildschirm->setOnTop( 0 );
-            vorLogin->zPasswortÄndern()->setResult( ret );
-        }
-        break;
-    case 14: // Account Passwort Vergessen
-        // arg1 = char* -- Account Name
-        // arg2 = char* -- Account Geheimnis
-        if( 1 )
-        {
-            uiFactory.initParam.bildschirm->setdeckFarbe( 0x00000000 );
-            uiFactory.initParam.bildschirm->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 );
-            uiFactory.initParam.bildschirm->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 )
-        {
-            uiFactory.initParam.bildschirm->setdeckFarbe( 0x00000000 );
-            uiFactory.initParam.bildschirm->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 );
-            uiFactory.initParam.bildschirm->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 )
-        {
-            uiFactory.initParam.bildschirm->setdeckFarbe( 0x00000000 );
-            uiFactory.initParam.bildschirm->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 );
-            uiFactory.initParam.bildschirm->setOnTop( 0 );
-            vorLogin->zUnregistrierung()->setWeiterReturn( ret );
-        }
-        break;
-    case 19: // Spiel Laden
-        if( 1 )
-        {
-            uiFactory.initParam.bildschirm->setdeckFarbe( 0x00000000 );
-            uiFactory.initParam.bildschirm->setOnTop( 1 );
-            ladeAnimation->setSichtbar( 1 );
-            for( unsigned char deckAlpha = 0; deckAlpha < 255; )
-            {
-                uiFactory.initParam.bildschirm->setdeckFarbe( deckAlpha << 24 );
-                Sleep( 40 );
-                deckAlpha += 15;
-            }
-            uiFactory.initParam.bildschirm->setdeckFarbe( 255 << 24 );
-            _render = 0;
-            uiFactory.initParam.bildschirm->lock();
-            int karteId = nachLogin->zSpielenFenster()->getKarteId();
-            SpielerTeamStruktur *sts = nachLogin->zSpielenFenster()->getSTS();
-            nachLogin->setAnzeige( NLAImSpiel );
-            uiFactory.initParam.bildschirm->unlock();
-            _render = 1;
-            nachLogin->zImSpiel()->beginnLaden( karteId, sts );
-            ladeAnimation->setSichtbar( 0 );
-            for( unsigned char deckAlpha = 255; deckAlpha > 0; )
-            {
-                uiFactory.initParam.bildschirm->setdeckFarbe( deckAlpha << 24 );
-                Sleep( 40 );
-                deckAlpha -= 15;
-            }
-            uiFactory.initParam.bildschirm->setdeckFarbe( 0 << 24 );
-            uiFactory.initParam.bildschirm->setOnTop( 0 );
-        }
-        break;
-    case 20: // Spiel Statistik laden
-        if( 1 )
-        {
-            uiFactory.initParam.bildschirm->setdeckFarbe( 0x00000000 );
-            uiFactory.initParam.bildschirm->setOnTop( 1 );
-            ladeAnimation->setSichtbar( 1 );
-            for( unsigned char deckAlpha = 0; deckAlpha < 255; )
-            {
-                uiFactory.initParam.bildschirm->setdeckFarbe( deckAlpha << 24 );
-                Sleep( 40 );
-                deckAlpha += 15;
-            }
-            uiFactory.initParam.bildschirm->setdeckFarbe( 255 << 24 );
-            _render = 0;
-            uiFactory.initParam.bildschirm->lock();
-            int karteId = nachLogin->zImSpiel()->getKarteId();
-            nachLogin->setAnzeige( NLANormal );
-            uiFactory.initParam.bildschirm->unlock();
-            _render = 1;
-            if( spielClient && spielClient->istVerbunden() )
-                nachLogin->zSpielenFenster()->ladeSpielStatistik( karteId );
-            ladeAnimation->setSichtbar( 0 );
-            for( unsigned char deckAlpha = 255; deckAlpha > 0; )
-            {
-                uiFactory.initParam.bildschirm->setdeckFarbe( deckAlpha << 24 );
-                Sleep( 40 );
-                deckAlpha -= 15;
-            }
-            uiFactory.initParam.bildschirm->setdeckFarbe( 0 << 24 );
-            uiFactory.initParam.bildschirm->setOnTop( 0 );
-        }
-        break;
-    case 21: // Spiel Aufzeichnung betreten
-        if( 1 )
-        {
-            uiFactory.initParam.bildschirm->setdeckFarbe( 0x00000000 );
-            uiFactory.initParam.bildschirm->setOnTop( 1 );
-            ladeAnimation->setSichtbar( 1 );
-            for( unsigned char deckAlpha = 0; deckAlpha < 255; )
-            {
-                uiFactory.initParam.bildschirm->setdeckFarbe( deckAlpha << 24 );
-                Sleep( 40 );
-                deckAlpha += 15;
-            }
-            uiFactory.initParam.bildschirm->setdeckFarbe( 255 << 24 );
-            _render = 0;
-            uiFactory.initParam.bildschirm->lock();
-            nachLogin->setAnzeige( NLASpielVideo );
-            uiFactory.initParam.bildschirm->unlock();
-            _render = 1;
-            ladeAnimation->setSichtbar( 0 );
-            for( unsigned char deckAlpha = 255; deckAlpha > 0; )
-            {
-                uiFactory.initParam.bildschirm->setdeckFarbe( deckAlpha << 24 );
-                Sleep( 40 );
-                deckAlpha -= 15;
-            }
-            uiFactory.initParam.bildschirm->setdeckFarbe( 0 << 24 );
-            uiFactory.initParam.bildschirm->setOnTop( 0 );
-        }
-        break;
-    case 22: // Spiel Aufzeichnung / Editor verlassen
-        if( 1 )
-        {
-            uiFactory.initParam.bildschirm->setdeckFarbe( 0x00000000 );
-            uiFactory.initParam.bildschirm->setOnTop( 1 );
-            ladeAnimation->setSichtbar( 1 );
-            for( unsigned char deckAlpha = 0; deckAlpha < 255; )
-            {
-                uiFactory.initParam.bildschirm->setdeckFarbe( deckAlpha << 24 );
-                Sleep( 40 );
-                deckAlpha += 15;
-            }
-            uiFactory.initParam.bildschirm->setdeckFarbe( 255 << 24 );
-            _render = 0;
-            uiFactory.initParam.bildschirm->lock();
-            nachLogin->setAnzeige( NLANormal );
-            uiFactory.initParam.bildschirm->unlock();
-            _render = 1;
-            ladeAnimation->setSichtbar( 0 );
-            for( unsigned char deckAlpha = 255; deckAlpha > 0; )
-            {
-                uiFactory.initParam.bildschirm->setdeckFarbe( deckAlpha << 24 );
-                Sleep( 40 );
-                deckAlpha -= 15;
-            }
-            uiFactory.initParam.bildschirm->setdeckFarbe( 0 << 24 );
-            uiFactory.initParam.bildschirm->setOnTop( 0 );
-        }
-        break;
-    case 23: // Editor betreten
-        if( 1 )
-        {
-            uiFactory.initParam.bildschirm->setdeckFarbe( 0x00000000 );
-            uiFactory.initParam.bildschirm->setOnTop( 1 );
-            ladeAnimation->setSichtbar( 1 );
-            for( unsigned char deckAlpha = 0; deckAlpha < 255; )
-            {
-                uiFactory.initParam.bildschirm->setdeckFarbe( deckAlpha << 24 );
-                Sleep( 40 );
-                deckAlpha += 15;
-            }
-            uiFactory.initParam.bildschirm->setdeckFarbe( 255 << 24 );
-            _render = 0;
-            uiFactory.initParam.bildschirm->lock();
-            nachLogin->setAnzeige( NLAEditor );
-            uiFactory.initParam.bildschirm->unlock();
-            _render = 1;
-            ladeAnimation->setSichtbar( 0 );
-            for( unsigned char deckAlpha = 255; deckAlpha > 0; )
-            {
-                uiFactory.initParam.bildschirm->setdeckFarbe( deckAlpha << 24 );
-                Sleep( 40 );
-                deckAlpha -= 15;
-            }
-            uiFactory.initParam.bildschirm->setdeckFarbe( 0 << 24 );
-            uiFactory.initParam.bildschirm->setOnTop( 0 );
-        }
-        break;
-    }
-    release();
+	switch (aktion)
+	{
+	case 1: // Login
+		// arg1 = char* -- Account Name
+		// arg2 = char* -- Account Passwort
+		if (1)
+		{
+			uiFactory.initParam.bildschirm->setdeckFarbe(0x00000000);
+			uiFactory.initParam.bildschirm->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);
+			uiFactory.initParam.bildschirm->setOnTop(0);
+			vorLogin->zLogin()->setLoginReturn(ret);
+		}
+		break;
+	case 2: // Login Erfolgreich
+		uiFactory.initParam.bildschirm->setdeckFarbe(0x00000000);
+		uiFactory.initParam.bildschirm->setOnTop(1);
+		ladeAnimation->setSichtbar(1);
+		for (unsigned char deckAlpha = 0; deckAlpha < 255; )
+		{
+			uiFactory.initParam.bildschirm->setdeckFarbe(deckAlpha << 24);
+			Sleep(40);
+			deckAlpha += 15;
+		}
+		uiFactory.initParam.bildschirm->setdeckFarbe(255 << 24);
+		uiFactory.initParam.bildschirm->setRenderZeichnungen(0);
+		vorLogin->setSichtbar(0);
+		nachLogin->setAnzeige(NLANormal);
+		uiFactory.initParam.bildschirm->setRenderZeichnungen(1);
+		ladeAnimation->setSichtbar(0);
+		for (unsigned char deckAlpha = 255; deckAlpha > 0; )
+		{
+			uiFactory.initParam.bildschirm->setdeckFarbe(deckAlpha << 24);
+			Sleep(40);
+			deckAlpha -= 15;
+		}
+		uiFactory.initParam.bildschirm->setdeckFarbe(0 << 24);
+		uiFactory.initParam.bildschirm->setOnTop(0);
+		break;
+	case 3: // Kick
+		// arg1 = char* -- Account Name
+		// arg2 = char* -- Account Passwort
+		// arg3 = char* -- Account Geheimnis
+		if (1)
+		{
+			uiFactory.initParam.bildschirm->setdeckFarbe(0x00000000);
+			uiFactory.initParam.bildschirm->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);
+			uiFactory.initParam.bildschirm->setOnTop(0);
+			vorLogin->zLogin()->setKickReturn(ret);
+		}
+		break;
+	case 4: // Logout
+		if (1)
+		{
+			uiFactory.initParam.bildschirm->setdeckFarbe(0x00000000);
+			uiFactory.initParam.bildschirm->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);
+					uiFactory.initParam.bildschirm->setOnTop(0);
+					break;
+				}
+				bool ret = loginClient->logout();
+				if (ret)
+				{
+					uiFactory.initParam.bildschirm->lock();
+					nachLogin->zChatLeiste()->removeAll();
+					nachLogin->zFreundesListe()->removeAll();
+					nachLogin->zNachrichtenListe()->removeAll();
+					uiFactory.initParam.bildschirm->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);
+					uiFactory.initParam.bildschirm->setOnTop(0);
+					break;
+				}
+			}
+			ladeAnimation->setSichtbar(0);
+			uiFactory.initParam.bildschirm->setOnTop(0);
+		}
+	case 5: // Logout Erfolgreich
+		uiFactory.initParam.bildschirm->setdeckFarbe(0x00000000);
+		uiFactory.initParam.bildschirm->setOnTop(1);
+		ladeAnimation->setSichtbar(1);
+		for (unsigned char deckAlpha = 0; deckAlpha < 255; )
+		{
+			uiFactory.initParam.bildschirm->setdeckFarbe(deckAlpha << 24);
+			Sleep(40);
+			deckAlpha += 15;
+		}
+		uiFactory.initParam.bildschirm->setdeckFarbe(255 << 24);
+		_render = 0;
+		uiFactory.initParam.bildschirm->lock();
+		nachLogin->setAnzeige(NLALogin);
+		vorLogin->setSichtbar(1);
+		uiFactory.initParam.bildschirm->unlock();
+		_render = 1;
+		ladeAnimation->setSichtbar(0);
+		for (unsigned char deckAlpha = 255; deckAlpha > 0; )
+		{
+			uiFactory.initParam.bildschirm->setdeckFarbe(deckAlpha << 24);
+			Sleep(40);
+			deckAlpha -= 15;
+		}
+		uiFactory.initParam.bildschirm->setdeckFarbe(0 << 24);
+		uiFactory.initParam.bildschirm->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)
+		{
+			uiFactory.initParam.bildschirm->setdeckFarbe(0x00000000);
+			uiFactory.initParam.bildschirm->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);
+			uiFactory.initParam.bildschirm->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)
+		{
+			uiFactory.initParam.bildschirm->setdeckFarbe(0x00000000);
+			uiFactory.initParam.bildschirm->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);
+			uiFactory.initParam.bildschirm->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)
+		{
+			uiFactory.initParam.bildschirm->setdeckFarbe(0x00000000);
+			uiFactory.initParam.bildschirm->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);
+			uiFactory.initParam.bildschirm->setOnTop(0);
+			vorLogin->zGeheimnisÄndern()->setResult(ret);
+		}
+		break;
+	case 11: // Account Geheimnis Vergessen
+		// arg1 = char* -- Account Name
+		// arg2 = char* -- Account Passwort
+		if (1)
+		{
+			uiFactory.initParam.bildschirm->setdeckFarbe(0x00000000);
+			uiFactory.initParam.bildschirm->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);
+			uiFactory.initParam.bildschirm->setOnTop(0);
+			vorLogin->zGeheimnisVergessen()->setResult(ret);
+		}
+		break;
+	case 12: // Account Name Vergessen
+		// arg1 = char* -- Account Passwort
+		// arg2 = char* -- Account Geheimnis
+		if (1)
+		{
+			uiFactory.initParam.bildschirm->setdeckFarbe(0x00000000);
+			uiFactory.initParam.bildschirm->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);
+			uiFactory.initParam.bildschirm->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)
+		{
+			uiFactory.initParam.bildschirm->setdeckFarbe(0x00000000);
+			uiFactory.initParam.bildschirm->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);
+			uiFactory.initParam.bildschirm->setOnTop(0);
+			vorLogin->zPasswortÄndern()->setResult(ret);
+		}
+		break;
+	case 14: // Account Passwort Vergessen
+		// arg1 = char* -- Account Name
+		// arg2 = char* -- Account Geheimnis
+		if (1)
+		{
+			uiFactory.initParam.bildschirm->setdeckFarbe(0x00000000);
+			uiFactory.initParam.bildschirm->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);
+			uiFactory.initParam.bildschirm->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)
+		{
+			uiFactory.initParam.bildschirm->setdeckFarbe(0x00000000);
+			uiFactory.initParam.bildschirm->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);
+			uiFactory.initParam.bildschirm->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)
+		{
+			uiFactory.initParam.bildschirm->setdeckFarbe(0x00000000);
+			uiFactory.initParam.bildschirm->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);
+			uiFactory.initParam.bildschirm->setOnTop(0);
+			vorLogin->zUnregistrierung()->setWeiterReturn(ret);
+		}
+		break;
+	case 19: // Spiel Laden
+		if (1)
+		{
+			uiFactory.initParam.bildschirm->setdeckFarbe(0x00000000);
+			uiFactory.initParam.bildschirm->setOnTop(1);
+			ladeAnimation->setSichtbar(1);
+			for (unsigned char deckAlpha = 0; deckAlpha < 255; )
+			{
+				uiFactory.initParam.bildschirm->setdeckFarbe(deckAlpha << 24);
+				Sleep(40);
+				deckAlpha += 15;
+			}
+			uiFactory.initParam.bildschirm->setdeckFarbe(255 << 24);
+			_render = 0;
+			uiFactory.initParam.bildschirm->lock();
+			int karteId = nachLogin->zSpielenFenster()->getKarteId();
+			SpielerTeamStruktur* sts = nachLogin->zSpielenFenster()->getSTS();
+			nachLogin->setAnzeige(NLAImSpiel);
+			uiFactory.initParam.bildschirm->unlock();
+			_render = 1;
+			nachLogin->zImSpiel()->beginnLaden(karteId, sts);
+			ladeAnimation->setSichtbar(0);
+			for (unsigned char deckAlpha = 255; deckAlpha > 0; )
+			{
+				uiFactory.initParam.bildschirm->setdeckFarbe(deckAlpha << 24);
+				Sleep(40);
+				deckAlpha -= 15;
+			}
+			uiFactory.initParam.bildschirm->setdeckFarbe(0 << 24);
+			uiFactory.initParam.bildschirm->setOnTop(0);
+		}
+		break;
+	case 20: // Spiel Statistik laden
+		if (1)
+		{
+			uiFactory.initParam.bildschirm->setdeckFarbe(0x00000000);
+			uiFactory.initParam.bildschirm->setOnTop(1);
+			ladeAnimation->setSichtbar(1);
+			for (unsigned char deckAlpha = 0; deckAlpha < 255; )
+			{
+				uiFactory.initParam.bildschirm->setdeckFarbe(deckAlpha << 24);
+				Sleep(40);
+				deckAlpha += 15;
+			}
+			uiFactory.initParam.bildschirm->setdeckFarbe(255 << 24);
+			_render = 0;
+			uiFactory.initParam.bildschirm->lock();
+			int karteId = nachLogin->zImSpiel()->getKarteId();
+			nachLogin->setAnzeige(NLANormal);
+			uiFactory.initParam.bildschirm->unlock();
+			_render = 1;
+			if (spielClient && spielClient->istVerbunden())
+				nachLogin->zSpielenFenster()->ladeSpielStatistik(karteId);
+			ladeAnimation->setSichtbar(0);
+			for (unsigned char deckAlpha = 255; deckAlpha > 0; )
+			{
+				uiFactory.initParam.bildschirm->setdeckFarbe(deckAlpha << 24);
+				Sleep(40);
+				deckAlpha -= 15;
+			}
+			uiFactory.initParam.bildschirm->setdeckFarbe(0 << 24);
+			uiFactory.initParam.bildschirm->setOnTop(0);
+		}
+		break;
+	case 21: // Spiel Aufzeichnung betreten
+		if (1)
+		{
+			uiFactory.initParam.bildschirm->setdeckFarbe(0x00000000);
+			uiFactory.initParam.bildschirm->setOnTop(1);
+			ladeAnimation->setSichtbar(1);
+			for (unsigned char deckAlpha = 0; deckAlpha < 255; )
+			{
+				uiFactory.initParam.bildschirm->setdeckFarbe(deckAlpha << 24);
+				Sleep(40);
+				deckAlpha += 15;
+			}
+			uiFactory.initParam.bildschirm->setdeckFarbe(255 << 24);
+			_render = 0;
+			uiFactory.initParam.bildschirm->lock();
+			nachLogin->setAnzeige(NLASpielVideo);
+			uiFactory.initParam.bildschirm->unlock();
+			_render = 1;
+			ladeAnimation->setSichtbar(0);
+			for (unsigned char deckAlpha = 255; deckAlpha > 0; )
+			{
+				uiFactory.initParam.bildschirm->setdeckFarbe(deckAlpha << 24);
+				Sleep(40);
+				deckAlpha -= 15;
+			}
+			uiFactory.initParam.bildschirm->setdeckFarbe(0 << 24);
+			uiFactory.initParam.bildschirm->setOnTop(0);
+		}
+		break;
+	case 22: // Spiel Aufzeichnung / Editor verlassen
+		if (1)
+		{
+			uiFactory.initParam.bildschirm->setdeckFarbe(0x00000000);
+			uiFactory.initParam.bildschirm->setOnTop(1);
+			ladeAnimation->setSichtbar(1);
+			for (unsigned char deckAlpha = 0; deckAlpha < 255; )
+			{
+				uiFactory.initParam.bildschirm->setdeckFarbe(deckAlpha << 24);
+				Sleep(40);
+				deckAlpha += 15;
+			}
+			uiFactory.initParam.bildschirm->setdeckFarbe(255 << 24);
+			_render = 0;
+			uiFactory.initParam.bildschirm->lock();
+			nachLogin->setAnzeige(NLANormal);
+			uiFactory.initParam.bildschirm->unlock();
+			_render = 1;
+			ladeAnimation->setSichtbar(0);
+			for (unsigned char deckAlpha = 255; deckAlpha > 0; )
+			{
+				uiFactory.initParam.bildschirm->setdeckFarbe(deckAlpha << 24);
+				Sleep(40);
+				deckAlpha -= 15;
+			}
+			uiFactory.initParam.bildschirm->setdeckFarbe(0 << 24);
+			uiFactory.initParam.bildschirm->setOnTop(0);
+		}
+		break;
+	case 23: // Editor betreten
+		if (1)
+		{
+			uiFactory.initParam.bildschirm->setdeckFarbe(0x00000000);
+			uiFactory.initParam.bildschirm->setOnTop(1);
+			ladeAnimation->setSichtbar(1);
+			for (unsigned char deckAlpha = 0; deckAlpha < 255; )
+			{
+				uiFactory.initParam.bildschirm->setdeckFarbe(deckAlpha << 24);
+				Sleep(40);
+				deckAlpha += 15;
+			}
+			uiFactory.initParam.bildschirm->setdeckFarbe(255 << 24);
+			_render = 0;
+			uiFactory.initParam.bildschirm->lock();
+			nachLogin->setAnzeige(NLAEditor);
+			uiFactory.initParam.bildschirm->unlock();
+			_render = 1;
+			ladeAnimation->setSichtbar(0);
+			for (unsigned char deckAlpha = 255; deckAlpha > 0; )
+			{
+				uiFactory.initParam.bildschirm->setdeckFarbe(deckAlpha << 24);
+				Sleep(40);
+				deckAlpha -= 15;
+			}
+			uiFactory.initParam.bildschirm->setdeckFarbe(0 << 24);
+			uiFactory.initParam.bildschirm->setOnTop(0);
+		}
+		break;
+	}
+	release();
 }

+ 6 - 6
KSGClient/Aktionen/AktionsThread.h

@@ -10,15 +10,15 @@ class AktionsThread : public Thread
 {
 private:
 	int aktion;
-	void *arg1;
-	void *arg2;
-	void *arg3;
-	void *arg4;
-	void *arg5;
+	const void* arg1;
+	const void* arg2;
+	const void* arg3;
+	const void* arg4;
+	const void* arg5;
 
 public:
 	// Konstruktor
-	AktionsThread( int aktion, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5 );
+	AktionsThread(int aktion, const void* arg1, const void* arg2, const void* arg3, const void* arg4, const void* arg5);
 	// nicht constant
 	virtual void thread();
 };

+ 110 - 110
KSGClient/Global/Initialisierung.cpp

@@ -5,148 +5,148 @@
 #include <DateiSystem.h>
 #include "Variablen.h"
 
-Knopf *initKnopf( int x, int y, int br, int hö, __int64 style, char *titel )
+Knopf* initKnopf(int x, int y, int br, int hö, __int64 style, const char* titel)
 {
-    Knopf *ret = uiFactory.createKnopf( uiFactory.initParam );
-    ret->addStyle( style );
-    ret->setPosition( x, y );
-    ret->setSize( br, hö );
-    ret->setText( titel );
-    return ret;
+	Knopf* ret = uiFactory.createKnopf(uiFactory.initParam);
+	ret->addStyle(style);
+	ret->setPosition(x, y);
+	ret->setSize(br, hö);
+	ret->setText(titel);
+	return ret;
 }
 
-KontrollKnopf *initKontrollKnopf( int x, int y, int br, int hö, __int64 style, char *txt )
+KontrollKnopf* initKontrollKnopf(int x, int y, int br, int hö, __int64 style, const char* txt)
 {
-    KontrollKnopf *ret = uiFactory.createKontrollKnopf( uiFactory.initParam );
-    ret->addStyle( style );
-    ret->setText( txt );
-    ret->setSText( txt );
-    ret->setPosition( x, y );
-    ret->setSize( br, hö );
-    return ret;
+	KontrollKnopf* ret = uiFactory.createKontrollKnopf(uiFactory.initParam);
+	ret->addStyle(style);
+	ret->setText(txt);
+	ret->setSText(txt);
+	ret->setPosition(x, y);
+	ret->setSize(br, hö);
+	return ret;
 }
 
-Fenster *initFenster( int x, int y, int br, int hö, __int64 style, char *titel )
+Fenster* initFenster(int x, int y, int br, int hö, __int64 style, const char* titel)
 {
-    Fenster *ret = uiFactory.createFenster( uiFactory.initParam );
-    ret->addStyle( style );
-    ret->setPosition( x, y );
-    ret->setSize( br, hö );
-    if( ret->hatStyle( Fenster::Style::Titel ) )
-    {
-        ret->setTitel( titel );
-    }
-    return ret;
+	Fenster* ret = uiFactory.createFenster(uiFactory.initParam);
+	ret->addStyle(style);
+	ret->setPosition(x, y);
+	ret->setSize(br, hö);
+	if (ret->hatStyle(Fenster::Style::Titel))
+	{
+		ret->setTitel(titel);
+	}
+	return ret;
 }
 
-TextFeld *initTextFeld( int x, int y, int br, int hö, __int64 style, char *txt )
+TextFeld* initTextFeld(int x, int y, int br, int hö, __int64 style, const char* txt)
 {
-    TextFeld *ret = uiFactory.createTextFeld( uiFactory.initParam );
-    ret->addStyle( style );
-    ret->setText( txt );
-    ret->setPosition( x, y );
-    ret->setSize( br, hö );
-    return ret;
+	TextFeld* ret = uiFactory.createTextFeld(uiFactory.initParam);
+	ret->addStyle(style);
+	ret->setText(txt);
+	ret->setPosition(x, y);
+	ret->setSize(br, hö);
+	return ret;
 }
 
-BildZ *initBildZ( int x, int y, int br, int hö, __int64 style, Bild *b )
+BildZ* initBildZ(int x, int y, int br, int hö, __int64 style, Bild* b)
 {
-    BildZ *ret = uiFactory.createBildZ( uiFactory.initParam );
-    ret->addStyle( style );
-    ret->setPosition( x, y );
-    ret->setSize( br, hö );
-    if( b )
-        ret->setBildZ( b );
-    return ret;
+	BildZ* ret = uiFactory.createBildZ(uiFactory.initParam);
+	ret->addStyle(style);
+	ret->setPosition(x, y);
+	ret->setSize(br, hö);
+	if (b)
+		ret->setBildZ(b);
+	return ret;
 }
 
-AuswahlBox *initAuswahlBox( int x, int y, int br, int hö, __int64 style, std::initializer_list< char * > values )
+AuswahlBox* initAuswahlBox(int x, int y, int br, int hö, __int64 style, std::initializer_list< const char* > values)
 {
-    AuswahlBox *ret = uiFactory.createAuswahlBox( uiFactory.initParam );
-    ret->addStyle( style );
-    ret->setPosition( x, y );
-    ret->setSize( br, hö );
-    for( auto i = values.begin(); i != values.end(); i++ )
-        ret->addEintrag( *i );
-    return ret;
+	AuswahlBox* ret = uiFactory.createAuswahlBox(uiFactory.initParam);
+	ret->addStyle(style);
+	ret->setPosition(x, y);
+	ret->setSize(br, hö);
+	for (auto i = values.begin(); i != values.end(); i++)
+		ret->addEintrag(*i);
+	return ret;
 }
 
-ObjTabelle *initObjTabelle( int x, int y, int br, int hö, __int64 style, std::initializer_list< OBJTabelleSpalteIni > spalten, int überschriftHöhe )
+ObjTabelle* initObjTabelle(int x, int y, int br, int hö, __int64 style, std::initializer_list< OBJTabelleSpalteIni > spalten, int überschriftHöhe)
 {
-    ObjTabelle *ret = uiFactory.createObjTabelle( uiFactory.initParam );
-    ret->addStyle( style );
-    ret->setPosition( x, y );
-    ret->setSize( br, hö );
-    for( auto i = spalten.begin(); i != spalten.end(); i++ )
-    {
-        ret->addSpalte( i->name );
-        ret->setSpaltenBreite( i->name, i->breite );
-        if( ( style | ObjTabelle::Style::SpaltenBreiteMin ) == style )
-            ret->setMinSpaltenBreite( i->name, i->minBreite );
-        if( ( style | ObjTabelle::Style::SpaltenBreiteMax ) == style )
-            ret->setMaxSpaltenBreite( i->name, i->maxBreite );
-        if( überschriftHöhe )
-        {
-            if( ret->getZeilenNummer( "Überschrift" ) < 0 )
-            {
-                ret->addZeile( 0, "Überschrift" );
-                ret->setZeilenHeight( 0, 20 );
-            }
-            ret->setZeichnungZ( i->name, "Überschrift", initTextFeld( 0, 0, i->breite, 20, TextFeld::Style::Text | TextFeld::Style::Center, i->name ) );
-        }
-    }
-    return ret;
+	ObjTabelle* ret = uiFactory.createObjTabelle(uiFactory.initParam);
+	ret->addStyle(style);
+	ret->setPosition(x, y);
+	ret->setSize(br, hö);
+	for (auto i = spalten.begin(); i != spalten.end(); i++)
+	{
+		ret->addSpalte(i->name);
+		ret->setSpaltenBreite(i->name, i->breite);
+		if ((style | ObjTabelle::Style::SpaltenBreiteMin) == style)
+			ret->setMinSpaltenBreite(i->name, i->minBreite);
+		if ((style | ObjTabelle::Style::SpaltenBreiteMax) == style)
+			ret->setMaxSpaltenBreite(i->name, i->maxBreite);
+		if (überschriftHöhe)
+		{
+			if (ret->getZeilenNummer("Überschrift") < 0)
+			{
+				ret->addZeile(0, "Überschrift");
+				ret->setZeilenHeight(0, 20);
+			}
+			ret->setZeichnungZ(i->name, "Überschrift", initTextFeld(0, 0, i->breite, 20, TextFeld::Style::Text | TextFeld::Style::Center, i->name));
+		}
+	}
+	return ret;
 }
 
-LDiag *initLinienDiagramm( int x, int y, int br, int hö, __int64 style, DiagDaten *data )
+LDiag* initLinienDiagramm(int x, int y, int br, int hö, __int64 style, DiagDaten* data)
 {
-    LDiag *ret = uiFactory.createLDiag( uiFactory.initParam );
-    ret->addStyle( style );
-    ret->setPosition( x, y );
-    ret->setSize( br, hö );
-    if( data )
-        ret->setDiagDatenZ( data );
-    return ret;
+	LDiag* ret = uiFactory.createLDiag(uiFactory.initParam);
+	ret->addStyle(style);
+	ret->setPosition(x, y);
+	ret->setSize(br, hö);
+	if (data)
+		ret->setDiagDatenZ(data);
+	return ret;
 }
 
-FBalken *initFBalken( int x, int y, int br, int hö, __int64 style )
+FBalken* initFBalken(int x, int y, int br, int hö, __int64 style)
 {
-    FBalken *ret = uiFactory.createFBalken( uiFactory.initParam );
-    ret->addStyle( style );
-    ret->setPosition( x, y );
-    ret->setSize( br, hö );
-    return ret;
+	FBalken* ret = uiFactory.createFBalken(uiFactory.initParam);
+	ret->addStyle(style);
+	ret->setPosition(x, y);
+	ret->setSize(br, hö);
+	return ret;
 }
 
-AuswahlListe *initAuswahlListe( int x, int y, int br, int hö, __int64 style, std::initializer_list< char * > values )
+AuswahlListe* initAuswahlListe(int x, int y, int br, int hö, __int64 style, std::initializer_list< const char* > values)
 {
-    AuswahlListe *ret = uiFactory.createAuswahlListe( uiFactory.initParam );
-    ret->setPosition( x, y );
-    ret->setSize( br, hö );
-    ret->addStyle( style );
-    for( auto i = values.begin(); i != values.end(); i++ )
-        ret->addEintrag( *i );
-    ret->update();
-    return ret;
+	AuswahlListe* ret = uiFactory.createAuswahlListe(uiFactory.initParam);
+	ret->setPosition(x, y);
+	ret->setSize(br, hö);
+	ret->addStyle(style);
+	for (auto i = values.begin(); i != values.end(); i++)
+		ret->addEintrag(*i);
+	ret->update();
+	return ret;
 }
 
-ZeichnungHintergrund *initZeichnungHintergrund( int x, int y, int br, int hö, __int64 style, int farbe )
+ZeichnungHintergrund* initZeichnungHintergrund(int x, int y, int br, int hö, __int64 style, int farbe)
 {
-    ZeichnungHintergrund *ret = new ZeichnungHintergrund();
-    ret->setStyle( style );
-    ret->setHintergrundFarbe( farbe );
-    if( ret->hatStyle( ZeichnungHintergrund::Style::Rahmen ) )
-    {
-        ret->setRahmenBreite( 1 );
-        ret->setRahmenFarbe( 0xFF00FF00 );
-    }
-    ret->setPosition( x, y );
-    ret->setSize( br, hö );
-    return ret;
+	ZeichnungHintergrund* ret = new ZeichnungHintergrund();
+	ret->setStyle(style);
+	ret->setHintergrundFarbe(farbe);
+	if (ret->hatStyle(ZeichnungHintergrund::Style::Rahmen))
+	{
+		ret->setRahmenBreite(1);
+		ret->setRahmenFarbe(0xFF00FF00);
+	}
+	ret->setPosition(x, y);
+	ret->setSize(br, hö);
+	return ret;
 }
 
-void initToolTip( Zeichnung *obj, const char *txt )
+void initToolTip(Zeichnung* obj, const char* txt)
 {
-    obj->setToolTipText( txt, uiFactory.initParam.bildschirm, uiFactory.initParam.schrift );
-    obj->zToolTip()->addStyle( TextFeld::Style::Mehrzeilig );
+	obj->setToolTipText(txt, uiFactory.initParam.bildschirm, uiFactory.initParam.schrift);
+	obj->zToolTip()->addStyle(TextFeld::Style::Mehrzeilig);
 }

+ 16 - 16
KSGClient/Global/Initialisierung.h

@@ -17,26 +17,26 @@ using namespace Framework;
 
 struct OBJTabelleSpalteIni
 {
-    char *name;
-    int breite;
-    int minBreite;
-    int maxBreite;
+	const char* name;
+	int breite;
+	int minBreite;
+	int maxBreite;
 };
 
 #define ABSTYLE AuswahlBox::Style::Sichtbar | AuswahlBox::Style::Erlaubt | AuswahlBox::Style::Rahmen | AuswahlBox::Style::AuswahlBuffer | AuswahlBox::Style::MausBuffer | AuswahlBox::Style::MaxHeight | AuswahlBox::Style::Hintergrund | AuswahlBox::Style::VScroll
 #define OTSTYLE ObjTabelle::Style::Sichtbar | ObjTabelle::Style::Erlaubt | ObjTabelle::Style::Rahmen | ObjTabelle::Style::Raster
 
-Knopf *initKnopf( int x, int y, int br, int hö, __int64 style, char *titel );
-KontrollKnopf *initKontrollKnopf( int x, int y, int br, int hö, __int64 style, char *txt );
-Fenster *initFenster( int x, int y, int br, int hö, __int64 style, char *titel );
-TextFeld *initTextFeld( int x, int y, int br, int hö, __int64 style, char *txt );
-BildZ *initBildZ( int x, int y, int br, int hö, __int64 style, Bild *b );
-AuswahlBox *initAuswahlBox( int x, int y, int br, int hö, __int64 style, std::initializer_list< char * > values );
-ObjTabelle *initObjTabelle( int x, int y, int br, int hö, __int64 style, std::initializer_list< OBJTabelleSpalteIni > spalten, int überschriftHöhe );
-LDiag *initLinienDiagramm( int x, int y, int br, int hö, __int64 style, DiagDaten *data );
-FBalken *initFBalken( int x, int y, int br, int hö, __int64 style );
-AuswahlListe *initAuswahlListe( int x, int y, int br, int hö, __int64 style, std::initializer_list< char * > values );
-ZeichnungHintergrund *initZeichnungHintergrund( int x, int y, int br, int hö, __int64 style, int farbe );
-void initToolTip( Zeichnung *obj, const char *txt );
+Knopf* initKnopf(int x, int y, int br, int hö, __int64 style, const char* titel);
+KontrollKnopf* initKontrollKnopf(int x, int y, int br, int hö, __int64 style, const char* txt);
+Fenster* initFenster(int x, int y, int br, int hö, __int64 style, const char* titel);
+TextFeld* initTextFeld(int x, int y, int br, int hö, __int64 style, const char* txt);
+BildZ* initBildZ(int x, int y, int br, int hö, __int64 style, Bild* b);
+AuswahlBox* initAuswahlBox(int x, int y, int br, int hö, __int64 style, std::initializer_list< const char* > values);
+ObjTabelle* initObjTabelle(int x, int y, int br, int hö, __int64 style, std::initializer_list< OBJTabelleSpalteIni > spalten, int überschriftHöhe);
+LDiag* initLinienDiagramm(int x, int y, int br, int hö, __int64 style, DiagDaten* data);
+FBalken* initFBalken(int x, int y, int br, int hö, __int64 style);
+AuswahlListe* initAuswahlListe(int x, int y, int br, int hö, __int64 style, std::initializer_list< const char* > values);
+ZeichnungHintergrund* initZeichnungHintergrund(int x, int y, int br, int hö, __int64 style, int farbe);
+void initToolTip(Zeichnung* obj, const char* txt);
 
 #endif

+ 122 - 122
KSGClient/Global/Render.cpp

@@ -8,145 +8,145 @@
 // Inhalt der Render Klasse aus Render.h
 // Konstruktor 
 Render::Render()
-    : Thread()
+	: Thread()
 {
-    exit = 0;
-    time = new ZeitMesser();
-    tickval = 1.0 / 60;
-    fps = new Fps();
-    fps->setSFarbe( 0xFFFFFFFF );
-    deckAlpha = 0;
-    inAnimation = 0;
-    exit = 0;
+	exit = 0;
+	time = new ZeitMesser();
+	tickval = 1.0 / 60;
+	fps = new Fps();
+	fps->setSFarbe(0xFFFFFFFF);
+	deckAlpha = 0;
+	inAnimation = 0;
+	exit = 0;
 }
 
 // Destruktor 
 Render::~Render()
 {
-    time->release();
-    fps = (Fps *)fps->release();
+	time->release();
+	fps = (Fps*)fps->release();
 }
 
 void Render::thread() // Render Schleife
 {
-    bool fpsAdd = 0;
-    time->messungStart();
-    double ausgleich = 0;
-    int maxFPS = 0;
-    while( !exit )
-    {
-        if( Framework::getTastenStand( T_F1 ) )
-        {
-            if( !fpsAdd )
-            {
-                uiFactory.initParam.bildschirm->addMember( dynamic_cast<Zeichnung *>( fps->getThis() ) );
-                fpsAdd = 1;
-            }
-        }
-        else
-        {
-            if( fpsAdd )
-            {
-                uiFactory.initParam.bildschirm->removeMember( fps );
-                fpsAdd = 0;
+	bool fpsAdd = 0;
+	time->messungStart();
+	double ausgleich = 0;
+	int maxFPS = 0;
+	while (!exit)
+	{
+		if (Framework::getTastenStand(T_F1))
+		{
+			if (!fpsAdd)
+			{
+				uiFactory.initParam.bildschirm->addMember(dynamic_cast<Zeichnung*>(fps->getThis()));
+				fpsAdd = 1;
+			}
+		}
+		else
+		{
+			if (fpsAdd)
+			{
+				uiFactory.initParam.bildschirm->removeMember(fps);
+				fpsAdd = 0;
 
-            }
-        }
-        if( _render == 1 )
-        {
-            uiFactory.initParam.bildschirm->render();
-            uiFactory.initParam.bildschirm->tick( tickval );
-        }
-        else
-            Sleep( 100 );
-        uiFactory.initParam.bildschirm->lock();
-        maxFPS = userOptions->wertExistiert( "MaxFPS" ) ? *userOptions->zWert( "MaxFPS" ) : 30;
-        uiFactory.initParam.bildschirm->unlock();
-        ausgleich += 1.0 / maxFPS - tickval;
-        if( ausgleich > 0 )
-            Sleep( (int)( ausgleich * 1000 ) );
-        time->messungEnde();
-        time->messungStart();
-        tickval = time->getSekunden();
-        switch( aktion )
-        {
-        case 1: // Chat Client neu verbinden
-            if( 1 )
-            {
-                bool verbunden = chatClient && chatClient->istVerbunden();
-                if( verbunden )
-                {
-                    chatClient->trenne( 0 );
-                    if( cmProcessor )
-                        cmProcessor = (ChatMessageProcessor *)cmProcessor->release();
-                    chatClient->verbinde();
-                    cmProcessor = new ChatMessageProcessor();
-                }
-                aktion = 0;
-            }
-            break;
-        case 2: // Login Oberfläche erschenen lassen (Programmstart)
-            if( !inAnimation )
-            {
-                deckAlpha = 250;
-                uiFactory.initParam.bildschirm->setdeckFarbe( deckAlpha << 24 );
-                uiFactory.initParam.bildschirm->setOnTop( 1 );
-                vorLogin->setSichtbar( 1 );
-                inAnimation = 1;
-                aktion = 0;
-            }
-            break;
-        case 3: // Ausloggen
-            new AktionsThread( 4, 0, 0, 0, 0, 0 );
-            aktion = 0;
-            break;
-        case 4: // Client wurde gekickt, zur login Oberfläche wechseln
-            new AktionsThread( 5, 0, 0, 0, 0, 0 );
-            aktion = 0;
-            break;
-        case 5: // Spiel Laden
-            new AktionsThread( 19, 0, 0, 0, 0, 0 );
-            aktion = 0;
-            break;
-        case 6: // Nach dem Spiel die Statistik laden
-            new AktionsThread( 20, 0, 0, 0, 0, 0 );
-            aktion = 0;
-            break;
-        case 7: // Spiel Aufzeichnung betreten
-            new AktionsThread( 21, 0, 0, 0, 0, 0 );
-            aktion = 0;
-            break;
-        case 8: // Spiel Aufzeichnung / Editor verlassen
-            new AktionsThread( 22, 0, 0, 0, 0, 0 );
-            aktion = 0;
-            break;
-        case 9: // Editor betreten
-            new AktionsThread( 23, 0, 0, 0, 0, 0 );
-            aktion = 0;
-            break;
-        }
-        if( inAnimation )
-        {
-            deckAlpha -= 25;
-            uiFactory.initParam.bildschirm->setdeckFarbe( deckAlpha << 24 );
-            if( deckAlpha == 0 )
-            {
-                uiFactory.initParam.bildschirm->setOnTop( 0 );
-                inAnimation = 0;
-            }
-        }
-    }
-    time->messungEnde();
+			}
+		}
+		if (_render == 1)
+		{
+			uiFactory.initParam.bildschirm->render();
+			uiFactory.initParam.bildschirm->tick(tickval);
+		}
+		else
+			Sleep(100);
+		uiFactory.initParam.bildschirm->lock();
+		maxFPS = userOptions->wertExistiert("MaxFPS") ? (int)*userOptions->zWert("MaxFPS") : 30;
+		uiFactory.initParam.bildschirm->unlock();
+		ausgleich += 1.0 / maxFPS - tickval;
+		if (ausgleich > 0)
+			Sleep((int)(ausgleich * 1000));
+		time->messungEnde();
+		time->messungStart();
+		tickval = time->getSekunden();
+		switch (aktion)
+		{
+		case 1: // Chat Client neu verbinden
+			if (1)
+			{
+				bool verbunden = chatClient && chatClient->istVerbunden();
+				if (verbunden)
+				{
+					chatClient->trenne(0);
+					if (cmProcessor)
+						cmProcessor = (ChatMessageProcessor*)cmProcessor->release();
+					chatClient->verbinde();
+					cmProcessor = new ChatMessageProcessor();
+				}
+				aktion = 0;
+			}
+			break;
+		case 2: // Login Oberfläche erschenen lassen (Programmstart)
+			if (!inAnimation)
+			{
+				deckAlpha = 250;
+				uiFactory.initParam.bildschirm->setdeckFarbe(deckAlpha << 24);
+				uiFactory.initParam.bildschirm->setOnTop(1);
+				vorLogin->setSichtbar(1);
+				inAnimation = 1;
+				aktion = 0;
+			}
+			break;
+		case 3: // Ausloggen
+			new AktionsThread(4, 0, 0, 0, 0, 0);
+			aktion = 0;
+			break;
+		case 4: // Client wurde gekickt, zur login Oberfläche wechseln
+			new AktionsThread(5, 0, 0, 0, 0, 0);
+			aktion = 0;
+			break;
+		case 5: // Spiel Laden
+			new AktionsThread(19, 0, 0, 0, 0, 0);
+			aktion = 0;
+			break;
+		case 6: // Nach dem Spiel die Statistik laden
+			new AktionsThread(20, 0, 0, 0, 0, 0);
+			aktion = 0;
+			break;
+		case 7: // Spiel Aufzeichnung betreten
+			new AktionsThread(21, 0, 0, 0, 0, 0);
+			aktion = 0;
+			break;
+		case 8: // Spiel Aufzeichnung / Editor verlassen
+			new AktionsThread(22, 0, 0, 0, 0, 0);
+			aktion = 0;
+			break;
+		case 9: // Editor betreten
+			new AktionsThread(23, 0, 0, 0, 0, 0);
+			aktion = 0;
+			break;
+		}
+		if (inAnimation)
+		{
+			deckAlpha -= 25;
+			uiFactory.initParam.bildschirm->setdeckFarbe(deckAlpha << 24);
+			if (deckAlpha == 0)
+			{
+				uiFactory.initParam.bildschirm->setOnTop(0);
+				inAnimation = 0;
+			}
+		}
+	}
+	time->messungEnde();
 }
 
 void Render::beginn() // beginnt rendering
 {
-    exit = 0;
-    start();
+	exit = 0;
+	start();
 }
 
 void Render::beenden() // exit = 1;
 {
-    exit = 1;
-    WaitForSingleObject( threadHandle, 5000 );
+	exit = 1;
+	WaitForSingleObject(threadHandle, 5000);
 }

+ 201 - 201
KSGClient/Leser/KartenLeser.cpp

@@ -6,274 +6,274 @@
 #include <Bild.h>
 #include <Punkt.h>
 
-KartenLeser *KartenLeser::instance = new KartenLeser();
+KartenLeser* KartenLeser::instance = new KartenLeser();
 
-KartenLeser *KartenLeser::getInstance()
+KartenLeser* KartenLeser::getInstance()
 {
-    return dynamic_cast<KartenLeser *>( instance->getThis() );
+	return dynamic_cast<KartenLeser*>(instance->getThis());
 }
 
 void KartenLeser::cleanUp()
 {
-    instance->release();
+	instance->release();
 }
 
-KartenLeser &KartenLeser::operator=( const KartenLeser &l )
+KartenLeser& KartenLeser::operator=(const KartenLeser& l)
 {
-    if( kartenClient )
-        kartenClient->release();
-    letzterFehler->release();
-    letzterFehler = new Text( l.letzterFehler->getText() );
-    kartenClient = 0;
-    karteId = 0;
-    return *this;
+	if (kartenClient)
+		kartenClient->release();
+	letzterFehler->release();
+	letzterFehler = new Text(l.letzterFehler->getText());
+	kartenClient = 0;
+	karteId = 0;
+	return *this;
 }
 
 // Inhalt der KartenLeser Klasse aus KartenLeser.h
 // Konstruktor
 KartenLeser::KartenLeser()
-    : ReferenceCounter()
+	: ReferenceCounter()
 {
-    letzterFehler = new Text( "" );
-    kartenClient = 0;
-    karteId = 0;
+	letzterFehler = new Text("");
+	kartenClient = 0;
+	karteId = 0;
 }
 
 // Destruktor
 KartenLeser::~KartenLeser()
 {
-    if( kartenClient )
-        kartenClient->release();
-    letzterFehler->release();
+	if (kartenClient)
+		kartenClient->release();
+	letzterFehler->release();
 }
 
 // nicht constant
-void KartenLeser::setKarteId( int karteId )
+void KartenLeser::setKarteId(int karteId)
 {
-    cs.lock();
-    this->karteId = karteId;
-    if( kartenClient )
-        kartenClient->release();
-    kartenClient = infoClient->createKartenServerClient( karteId );
-    cs.unlock();
+	cs.lock();
+	this->karteId = karteId;
+	if (kartenClient)
+		kartenClient->release();
+	kartenClient = infoClient->createKartenServerClient(karteId);
+	cs.unlock();
 }
 
 void KartenLeser::lock()
 {
-    cs.lock();
+	cs.lock();
 }
 
 void KartenLeser::unlock()
 {
-    cs.unlock();
+	cs.unlock();
 }
 
 // constant
-Bild *KartenLeser::getKartenTitelBild()
+Bild* KartenLeser::getKartenTitelBild()
 {
-    bool ok = 1;
-    int port = 0;
-    Text ip;
-    cs.lock();
-    if( !kartenClient->verbinde() )
-    {
-        letzterFehler->setText( kartenClient->getLetzterFehler() );
-        ok = 0;
-    }
-    if( !kartenClient->downloadKarteTitel( karteId ) )
-    {
-        letzterFehler->setText( kartenClient->getLetzterFehler() );
-        ok = 0;
-    }
-    kartenClient->trenne( 0 );
-    cs.unlock();
-    Bild *ret = 0;
-    if( ok )
-    {
-        Text *pfad = getKartePfad();
-        pfad->append( "titel.ltdb" );
-        LTDBDatei *datei = new LTDBDatei();
-        datei->setDatei( pfad );
-        datei->leseDaten( 0 );
-        ret = datei->laden( 0, datei->zBildListe()->get( 0 ) );
-        datei->release();
-    }
-    if( !ret )
-    {
-        ret = new Bild();
-        ret->neuBild( 200, 100, 0xFF000000 );
-        TextRenderer tr( dynamic_cast<Schrift *>( uiFactory.initParam.schrift->getThis() ) );
-        tr.setSchriftSize( 12 );
-        Text *kn = getKarteName();
-        tr.renderText( 10, 10, kn->getText(), *ret, 0xFFFFFFFF );
-        kn->release();
-    }
-    return ret;
+	bool ok = 1;
+	int port = 0;
+	Text ip;
+	cs.lock();
+	if (!kartenClient->verbinde())
+	{
+		letzterFehler->setText(kartenClient->getLetzterFehler());
+		ok = 0;
+	}
+	if (!kartenClient->downloadKarteTitel(karteId))
+	{
+		letzterFehler->setText(kartenClient->getLetzterFehler());
+		ok = 0;
+	}
+	kartenClient->trenne(0);
+	cs.unlock();
+	Bild* ret = 0;
+	if (ok)
+	{
+		Text* pfad = getKartePfad();
+		pfad->append("titel.ltdb");
+		LTDBDatei* datei = new LTDBDatei();
+		datei->setDatei(pfad);
+		datei->leseDaten(0);
+		ret = datei->laden(0, datei->zBildListe()->get(0));
+		datei->release();
+	}
+	if (!ret)
+	{
+		ret = new Bild();
+		ret->neuBild(200, 100, 0xFF000000);
+		TextRenderer tr(dynamic_cast<Schrift*>(uiFactory.initParam.schrift->getThis()));
+		tr.setSchriftSize(12);
+		Text* kn = getKarteName();
+		tr.renderText(10, 10, kn->getText(), *ret, 0xFFFFFFFF);
+		kn->release();
+	}
+	return ret;
 }
 
-Bild *KartenLeser::getKartenVorschauBild()
+Bild* KartenLeser::getKartenVorschauBild()
 {
-    int port = 0;
-    Text ip;
-    cs.lock();
-    if( !kartenClient->verbinde() )
-    {
-        letzterFehler->setText( kartenClient->getLetzterFehler() );
-        return 0;
-    }
-    if( !kartenClient->downloadKarteMinimap( karteId ) )
-    {
-        letzterFehler->setText( kartenClient->getLetzterFehler() );
-        return 0;
-    }
-    kartenClient->trenne( 0 );
-    cs.unlock();
-    Text *pfad = getKartePfad();
-    pfad->append( "minimap.ltdb" );
-    Bild *ret = 0;
-    LTDBDatei *datei = new LTDBDatei();
-    datei->setDatei( pfad );
-    datei->leseDaten( 0 );
-    ret = datei->laden( 0, datei->zBildListe()->get( 0 ) );
-    datei->release();
-    if( !ret )
-        letzterFehler->append( "Bild nicht gefunden." );
-    return ret;
+	int port = 0;
+	Text ip;
+	cs.lock();
+	if (!kartenClient->verbinde())
+	{
+		letzterFehler->setText(kartenClient->getLetzterFehler());
+		return 0;
+	}
+	if (!kartenClient->downloadKarteMinimap(karteId))
+	{
+		letzterFehler->setText(kartenClient->getLetzterFehler());
+		return 0;
+	}
+	kartenClient->trenne(0);
+	cs.unlock();
+	Text* pfad = getKartePfad();
+	pfad->append("minimap.ltdb");
+	Bild* ret = 0;
+	LTDBDatei* datei = new LTDBDatei();
+	datei->setDatei(pfad);
+	datei->leseDaten(0);
+	ret = datei->laden(0, datei->zBildListe()->get(0));
+	datei->release();
+	if (!ret)
+		letzterFehler->append("Bild nicht gefunden.");
+	return ret;
 }
 
-Bild *KartenLeser::getLadeBild()
+Bild* KartenLeser::getLadeBild()
 {
-    int port = 0;
-    Text ip;
-    cs.lock();
-    if( !kartenClient->verbinde() )
-    {
-        letzterFehler->setText( kartenClient->getLetzterFehler() );
-        return 0;
-    }
-    if( !kartenClient->downloadKarteLadebild( karteId ) )
-    {
-        letzterFehler->setText( kartenClient->getLetzterFehler() );
-        return 0;
-    }
-    kartenClient->trenne( 0 );
-    cs.unlock();
-    Text *pfad = getKartePfad();
-    pfad->append( "ladebild.ltdb" );
-    Bild *ret = 0;
-    LTDBDatei *datei = new LTDBDatei();
-    datei->setDatei( pfad );
-    datei->leseDaten( 0 );
-    ret = datei->laden( 0, datei->zBildListe()->get( 0 ) );
-    datei->release();
-    if( !ret )
-        letzterFehler->append( "Bild nicht gefunden." );
-    return ret;
+	int port = 0;
+	Text ip;
+	cs.lock();
+	if (!kartenClient->verbinde())
+	{
+		letzterFehler->setText(kartenClient->getLetzterFehler());
+		return 0;
+	}
+	if (!kartenClient->downloadKarteLadebild(karteId))
+	{
+		letzterFehler->setText(kartenClient->getLetzterFehler());
+		return 0;
+	}
+	kartenClient->trenne(0);
+	cs.unlock();
+	Text* pfad = getKartePfad();
+	pfad->append("ladebild.ltdb");
+	Bild* ret = 0;
+	LTDBDatei* datei = new LTDBDatei();
+	datei->setDatei(pfad);
+	datei->leseDaten(0);
+	ret = datei->laden(0, datei->zBildListe()->get(0));
+	datei->release();
+	if (!ret)
+		letzterFehler->append("Bild nicht gefunden.");
+	return ret;
 }
 
 bool KartenLeser::getKartenBeschreibung()
 {
-    int port = 0;
-    Text ip;
-    cs.lock();
-    if( !kartenClient->verbinde() )
-    {
-        letzterFehler->setText( kartenClient->getLetzterFehler() );
-        return 0;
-    }
-    if( !kartenClient->downloadKarteBeschreibung( karteId ) )
-    {
-        letzterFehler->setText( kartenClient->getLetzterFehler() );
-        return 0;
-    }
-    kartenClient->trenne( 0 );
-    cs.unlock();
-    return 1;
+	int port = 0;
+	Text ip;
+	cs.lock();
+	if (!kartenClient->verbinde())
+	{
+		letzterFehler->setText(kartenClient->getLetzterFehler());
+		return 0;
+	}
+	if (!kartenClient->downloadKarteBeschreibung(karteId))
+	{
+		letzterFehler->setText(kartenClient->getLetzterFehler());
+		return 0;
+	}
+	kartenClient->trenne(0);
+	cs.unlock();
+	return 1;
 }
 
 int KartenLeser::getSpielId() const
 {
-    if( !karteId )
-    {
-        letzterFehler->setText( "Karte Id ist nicht gesetzt." );
-        return 0;
-    }
-    if( infoClient )
-    {
-        int id = infoClient->getSpielId( karteId );
-        if( !id )
-            letzterFehler->setText( infoClient->getLetzterFehler() );
-        return id;
-    }
-    else
-        letzterFehler->setText( "Informations Klient ist nicht Initialisiert." );
-    return 0;
+	if (!karteId)
+	{
+		letzterFehler->setText("Karte Id ist nicht gesetzt.");
+		return 0;
+	}
+	if (infoClient)
+	{
+		int id = infoClient->getSpielId(karteId);
+		if (!id)
+			letzterFehler->setText(infoClient->getLetzterFehler());
+		return id;
+	}
+	else
+		letzterFehler->setText("Informations Klient ist nicht Initialisiert.");
+	return 0;
 }
 
 int KartenLeser::getKarteId() const
 {
-    return karteId;
+	return karteId;
 }
 
-Text *KartenLeser::getSpielName() const
+Text* KartenLeser::getSpielName() const
 {
-    if( infoClient )
-    {
-        int id = getSpielId();
-        if( !id )
-            return 0;
-        Text *name = infoClient->getSpielName( id );
-        if( !name )
-            letzterFehler->setText( infoClient->getLetzterFehler() );
-        return name;
-    }
-    else
-        letzterFehler->setText( "Informations Klient ist nicht Initialisiert." );
-    return 0;
+	if (infoClient)
+	{
+		int id = getSpielId();
+		if (!id)
+			return 0;
+		Text* name = infoClient->getSpielName(id);
+		if (!name)
+			letzterFehler->setText(infoClient->getLetzterFehler());
+		return name;
+	}
+	else
+		letzterFehler->setText("Informations Klient ist nicht Initialisiert.");
+	return 0;
 }
 
-Text *KartenLeser::getSpielPfad() const
+Text* KartenLeser::getSpielPfad() const
 {
-    int sId = getSpielId();
-    int dg = infoClient->getDateiGruppeIdVonSpiel( sId );
-    Text *pfad = infoClient->getDateiGruppePfad( dg );
-    if( !pfad )
-    {
-        letzterFehler->setText( "Der Pfad des Spieles konnte nicht ermittelt werden." );
-        return 0;
-    }
-    pfad->append( "/" );
-    return pfad;
+	int sId = getSpielId();
+	int dg = infoClient->getDateiGruppeIdVonSpiel(sId);
+	Text* pfad = infoClient->getDateiGruppePfad(dg);
+	if (!pfad)
+	{
+		letzterFehler->setText("Der Pfad des Spieles konnte nicht ermittelt werden.");
+		return 0;
+	}
+	pfad->append("/");
+	return pfad;
 }
 
-Text *KartenLeser::getKarteName() const
+Text* KartenLeser::getKarteName() const
 {
-    if( !karteId )
-    {
-        letzterFehler->setText( "Karte Id ist nicht gesetzt." );
-        return 0;
-    }
-    if( infoClient )
-    {
-        Text *name = infoClient->getKarteName( karteId );
-        if( !name )
-            letzterFehler->setText( infoClient->getLetzterFehler() );
-        return name;
-    }
-    else
-        letzterFehler->setText( "Informations Klient ist nicht Initialisiert." );
-    return 0;
+	if (!karteId)
+	{
+		letzterFehler->setText("Karte Id ist nicht gesetzt.");
+		return 0;
+	}
+	if (infoClient)
+	{
+		Text* name = infoClient->getKarteName(karteId);
+		if (!name)
+			letzterFehler->setText(infoClient->getLetzterFehler());
+		return name;
+	}
+	else
+		letzterFehler->setText("Informations Klient ist nicht Initialisiert.");
+	return 0;
 }
 
-Text *KartenLeser::getKartePfad() const
+Text* KartenLeser::getKartePfad() const
 {
-    Text *pf = new Text( "data/tmp/Karten/" );
-    pf->append( karteId );
-    pf->append( "/" );
-    return pf;
+	Text* pf = new Text("data/tmp/Karten/");
+	pf->append(karteId);
+	pf->append("/");
+	return pf;
 }
 
-char *KartenLeser::getLetzterFehler() const
+const char* KartenLeser::getLetzterFehler() const
 {
-    return letzterFehler->getText();
+	return letzterFehler->getText();
 }

+ 28 - 28
KSGClient/Leser/KartenLeser.h

@@ -11,38 +11,38 @@ using namespace Framework;
 class KartenLeser : public virtual ReferenceCounter
 {
 private:
-    Text *letzterFehler;
-    KSGClient::KartenServerClient *kartenClient;
-    int karteId;
-    Critical cs;
+	Text* letzterFehler;
+	KSGClient::KartenServerClient* kartenClient;
+	int karteId;
+	Critical cs;
 
-    static KartenLeser *instance;
-    // Konstruktor
-    KartenLeser();
+	static KartenLeser* instance;
+	// Konstruktor
+	KartenLeser();
 
-    KartenLeser &operator=( const KartenLeser &l );
+	KartenLeser& operator=(const KartenLeser& l);
 public:
-    static KartenLeser *getInstance();
-    static void cleanUp();
+	static KartenLeser* getInstance();
+	static void cleanUp();
 
-    // Destruktor
-    ~KartenLeser();
-    // nicht constant
-    void setKarteId( int karteId );
-    void lock();
-    void unlock();
-    // constant
-    Bild *getKartenTitelBild();
-    Bild *getKartenVorschauBild();
-    Bild *getLadeBild();
-    bool getKartenBeschreibung();
-    int getSpielId() const;
-    int getKarteId() const;
-    Text *getSpielName() const;
-    Text *getSpielPfad() const;
-    Text *getKarteName() const;
-    Text *getKartePfad() const;
-    char *getLetzterFehler() const;
+	// Destruktor
+	~KartenLeser();
+	// nicht constant
+	void setKarteId(int karteId);
+	void lock();
+	void unlock();
+	// constant
+	Bild* getKartenTitelBild();
+	Bild* getKartenVorschauBild();
+	Bild* getLadeBild();
+	bool getKartenBeschreibung();
+	int getSpielId() const;
+	int getKarteId() const;
+	Text* getSpielName() const;
+	Text* getSpielPfad() const;
+	Text* getKarteName() const;
+	Text* getKartePfad() const;
+	const char* getLetzterFehler() const;
 };
 
 #endif

+ 1181 - 1181
KSGClient/NachLogin/Account/Historie/AccountHistorie.cpp

@@ -9,1394 +9,1394 @@
 #include <Punkt.h>
 #include <Globals.h>
 
-typedef AccountHistorieStatistikV *( *AHSSDLLStart )( void );
-typedef AufzeichnungV *( *AHSADLLStart )( void );
+typedef AccountHistorieStatistikV* (*AHSSDLLStart)(void);
+typedef AufzeichnungV* (*AHSADLLStart)(void);
 
 // Inahlt der AHSpielStatistik Klasse aus AccountHistorie.h
 // Konstruktor
 AHSpielStatistik::AHSpielStatistik()
-    : Thread()
+	: Thread()
 {
-    statistikF = initFenster( 10, 40, 780, 450, Fenster::Style::Sichtbar | Fenster::Style::Titel | Fenster::Style::TitelBuffered | Fenster::Style::Rahmen, "Spiel Ergebnis" );
-    laden = (Animation2D *)ladeAnimation->dublizieren();
-    laden->setSichtbar( 0 );
-    laden->setPosition( 380, 245 );
-    dllName = new Text( "" );
-    dllHandle = 0;
-    alpha = 0;
-    sichtbar = 0;
-    statistik = 0;
-    tickVal = 0;
+	statistikF = initFenster(10, 40, 780, 450, Fenster::Style::Sichtbar | Fenster::Style::Titel | Fenster::Style::TitelBuffered | Fenster::Style::Rahmen, "Spiel Ergebnis");
+	laden = (Animation2D*)ladeAnimation->dublizieren();
+	laden->setSichtbar(0);
+	laden->setPosition(380, 245);
+	dllName = new Text("");
+	dllHandle = 0;
+	alpha = 0;
+	sichtbar = 0;
+	statistik = 0;
+	tickVal = 0;
 }
 
 // Destruktor
 AHSpielStatistik::~AHSpielStatistik()
 {
-    statistikF->release();
-    if( dllHandle )
-        reset();
-    dllName->release();
-    laden->release();
+	statistikF->release();
+	if (dllHandle)
+		reset();
+	dllName->release();
+	laden->release();
 }
 
 // nicht constant
 void AHSpielStatistik::reset()
 {
-    if( run )
-        warteAufThread( INFINITE );
-    if( dllHandle )
-    {
-        if( statistik )
-            statistik = (AccountHistorieStatistikV *)statistik->release();
-        Framework::getDLLRegister()->releaseDLL( *dllName );
-        dllHandle = 0;
-    }
-}
-
-bool AHSpielStatistik::ladeDaten( int spielId, int karteId )
-{
-    if( dllHandle )
-        reset();
-    KartenLeser *reader = KartenLeser::getInstance();
-    reader->lock();
-    reader->setKarteId( karteId );
-    Text *pfad = reader->getSpielPfad();
-    if( !pfad )
-    {
-        nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( reader->getLetzterFehler() ), new Text( "Ok" ) );
-        reader->unlock();
-        reader->release();
-        return 0;
-    }
-    pfad->append( "bin/" );
-    Text *spielArtName = reader->getSpielName();
-    if( !spielArtName )
-    {
-        nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( reader->getLetzterFehler() ), new Text( "Ok" ) );
-        reader->unlock();
-        reader->release();
-        pfad->release();
-        return 0;
-    }
-    pfad->append( spielArtName->getText() );
-    pfad->append( ".dll" );
-    reader->unlock();
-    reader->release();
-    dllName->setText( "Spiele/" );
-    dllName->append( spielArtName->getText() );
-    dllName->append( ".dll" );
-    spielArtName->release();
-    dllHandle = Framework::getDLLRegister()->ladeDLL( *dllName, *pfad );
-    if( !dllHandle )
-    {
-        Text *msg = new Text( "Die DLL Datei '" );
-        msg->append( pfad->getText() );
-        msg->append( "' konnte nicht geladen werden." );
-        nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), msg, new Text( "Ok" ) );
-        pfad->release();
-        return 0;
-    }
-    AHSSDLLStart startFunk = (AHSSDLLStart)GetProcAddress( dllHandle, "GetAccountHistorieStatistik" );
-    if( !startFunk )
-    {
-        if( dllHandle )
-        {
-            Framework::getDLLRegister()->releaseDLL( *dllName );
-            dllHandle = 0;
-        }
-        Text *msg = new Text( "Die Funktion 'GetAccountHistorieStatistik' konnte in der DLL Datei '" );
-        msg->append( pfad->getText() );
-        msg->append( "' nicht gefunden werden." );
-        nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), msg, new Text( "Ok" ) );
-        pfad->release();
-        return 0;
-    }
-    pfad->release();
-    statistik = startFunk();
-    if( !statistik )
-    {
-        if( dllHandle )
-        {
-            Framework::getDLLRegister()->releaseDLL( *dllName );
-            dllHandle = 0;
-        }
-        nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( "Für diese Spielart ist keine genauere Ansicht der Spiel Ergebnisse verfügbar." ), new Text( "Ok" ) );
-        return 0;
-    }
-    this->spielId = spielId;
-    statistik->setUIFactory( uiFactory );
-    start();
-    return 1;
+	if (run)
+		warteAufThread(INFINITE);
+	if (dllHandle)
+	{
+		if (statistik)
+			statistik = (AccountHistorieStatistikV*)statistik->release();
+		Framework::getDLLRegister()->releaseDLL(*dllName);
+		dllHandle = 0;
+	}
+}
+
+bool AHSpielStatistik::ladeDaten(int spielId, int karteId)
+{
+	if (dllHandle)
+		reset();
+	KartenLeser* reader = KartenLeser::getInstance();
+	reader->lock();
+	reader->setKarteId(karteId);
+	Text* pfad = reader->getSpielPfad();
+	if (!pfad)
+	{
+		nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text(reader->getLetzterFehler()), new Text("Ok"));
+		reader->unlock();
+		reader->release();
+		return 0;
+	}
+	pfad->append("bin/");
+	Text* spielArtName = reader->getSpielName();
+	if (!spielArtName)
+	{
+		nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text(reader->getLetzterFehler()), new Text("Ok"));
+		reader->unlock();
+		reader->release();
+		pfad->release();
+		return 0;
+	}
+	pfad->append(spielArtName->getText());
+	pfad->append(".dll");
+	reader->unlock();
+	reader->release();
+	dllName->setText("Spiele/");
+	dllName->append(spielArtName->getText());
+	dllName->append(".dll");
+	spielArtName->release();
+	dllHandle = Framework::getDLLRegister()->ladeDLL(*dllName, *pfad);
+	if (!dllHandle)
+	{
+		Text* msg = new Text("Die DLL Datei '");
+		msg->append(pfad->getText());
+		msg->append("' konnte nicht geladen werden.");
+		nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), msg, new Text("Ok"));
+		pfad->release();
+		return 0;
+	}
+	AHSSDLLStart startFunk = (AHSSDLLStart)GetProcAddress(dllHandle, "GetAccountHistorieStatistik");
+	if (!startFunk)
+	{
+		if (dllHandle)
+		{
+			Framework::getDLLRegister()->releaseDLL(*dllName);
+			dllHandle = 0;
+		}
+		Text* msg = new Text("Die Funktion 'GetAccountHistorieStatistik' konnte in der DLL Datei '");
+		msg->append(pfad->getText());
+		msg->append("' nicht gefunden werden.");
+		nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), msg, new Text("Ok"));
+		pfad->release();
+		return 0;
+	}
+	pfad->release();
+	statistik = startFunk();
+	if (!statistik)
+	{
+		if (dllHandle)
+		{
+			Framework::getDLLRegister()->releaseDLL(*dllName);
+			dllHandle = 0;
+		}
+		nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text("Für diese Spielart ist keine genauere Ansicht der Spiel Ergebnisse verfügbar."), new Text("Ok"));
+		return 0;
+	}
+	this->spielId = spielId;
+	statistik->setUIFactory(uiFactory);
+	start();
+	return 1;
 }
 
 void AHSpielStatistik::thread()
 {
-    laden->setSichtbar( 1 );
-    KSGClient::HistorieServerClient *historieClient = infoClient->createHistorieServerClient( spielId );
-    if( !historieClient )
-        nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( infoClient->getLetzterFehler() ), new Text( "Ok" ) );
-    else
-    {
-        if( !historieClient->downloadSpielHistorie() )
-            nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( historieClient->getLetzterFehler() ), new Text( "Ok" ) );
-        else
-        {
-            statistik->ladeDaten( spielId );
-            if( sichtbar )
-                statistik->setSichtbar( 1 );
-            laden->setSichtbar( 0 );
-            historieClient->release();
-            return;
-        }
-        historieClient->release();
-    }
-    laden->setSichtbar( 0 );
-    setSichtbar( 0 );
-}
-
-void AHSpielStatistik::setPosition( int x, int y )
-{
-    statistikF->setPosition( x, y );
-}
-
-void AHSpielStatistik::setSichtbar( bool sichtbar )
-{
-    if( !statistik )
-        return;
-    if( !run )
-        statistik->setSichtbar( sichtbar );
-    this->sichtbar = sichtbar;
-    if( sichtbar && !alpha )
-        alpha = 1;
-}
-
-void AHSpielStatistik::doPublicMausEreignis( MausEreignis &me )
-{
-    if( !statistik || alpha != 255 )
-        return;
-    me.mx -= 1 + statistikF->getX();
-    me.my -= 20 + statistikF->getY();
-    statistik->doPublicMausEreignis( me );
-    if( statistik->wurdeGeschlossen() )
-        setSichtbar( 0 );
-    me.mx += 1 + statistikF->getX();
-    me.my += 20 + statistikF->getY();
-}
-
-void AHSpielStatistik::doTastaturEreignis( TastaturEreignis &te )
-{
-    if( !statistik || alpha != 255 )
-        return;
-    statistik->doTastaturEreignis( te );
-}
-
-bool AHSpielStatistik::tick( double tickVal )
-{
-    if( !statistik || !alpha )
-        return 0;
-    bool ret = statistik->tick( tickVal );
-    ret |= laden->tick( tickVal );
-    this->tickVal += tickVal * 150;
-    int val = (int)this->tickVal;
-    this->tickVal -= val;
-    if( val )
-    {
-        if( sichtbar && alpha != 255 )
-        {
-            if( alpha + val > 255 )
-                alpha = 255;
-            else
-                alpha += (unsigned char)val;
-            ret = 1;
-        }
-        if( !sichtbar && alpha )
-        {
-            if( alpha - val < 0 )
-                alpha = 0;
-            else
-                alpha -= (unsigned char)val;
-            if( !alpha && statistik->istNochSichtbar() )
-                alpha = 1;
-            ret = 1;
-        }
-    }
-    return ret;
-}
-
-void AHSpielStatistik::render( Bild &zRObj )
-{
-    if( !statistik || !alpha )
-        return;
-    zRObj.setAlpha( alpha );
-    statistikF->render( zRObj );
-    if( !zRObj.setDrawOptions( statistikF->getX() + 1, statistikF->getY() + 21, statistikF->getBreite() - 2, statistikF->getHeight() - 22 ) )
-    {
-        zRObj.releaseAlpha();
-        return;
-    }
-    statistik->render( zRObj );
-    zRObj.releaseDrawOptions();
-    laden->render( zRObj );
-    zRObj.releaseAlpha();
+	laden->setSichtbar(1);
+	KSGClient::HistorieServerClient* historieClient = infoClient->createHistorieServerClient(spielId);
+	if (!historieClient)
+		nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text(infoClient->getLetzterFehler()), new Text("Ok"));
+	else
+	{
+		if (!historieClient->downloadSpielHistorie())
+			nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text(historieClient->getLetzterFehler()), new Text("Ok"));
+		else
+		{
+			statistik->ladeDaten(spielId);
+			if (sichtbar)
+				statistik->setSichtbar(1);
+			laden->setSichtbar(0);
+			historieClient->release();
+			return;
+		}
+		historieClient->release();
+	}
+	laden->setSichtbar(0);
+	setSichtbar(0);
+}
+
+void AHSpielStatistik::setPosition(int x, int y)
+{
+	statistikF->setPosition(x, y);
+}
+
+void AHSpielStatistik::setSichtbar(bool sichtbar)
+{
+	if (!statistik)
+		return;
+	if (!run)
+		statistik->setSichtbar(sichtbar);
+	this->sichtbar = sichtbar;
+	if (sichtbar && !alpha)
+		alpha = 1;
+}
+
+void AHSpielStatistik::doPublicMausEreignis(MausEreignis& me)
+{
+	if (!statistik || alpha != 255)
+		return;
+	me.mx -= 1 + statistikF->getX();
+	me.my -= 20 + statistikF->getY();
+	statistik->doPublicMausEreignis(me);
+	if (statistik->wurdeGeschlossen())
+		setSichtbar(0);
+	me.mx += 1 + statistikF->getX();
+	me.my += 20 + statistikF->getY();
+}
+
+void AHSpielStatistik::doTastaturEreignis(TastaturEreignis& te)
+{
+	if (!statistik || alpha != 255)
+		return;
+	statistik->doTastaturEreignis(te);
+}
+
+bool AHSpielStatistik::tick(double tickVal)
+{
+	if (!statistik || !alpha)
+		return 0;
+	bool ret = statistik->tick(tickVal);
+	ret |= laden->tick(tickVal);
+	this->tickVal += tickVal * 150;
+	int val = (int)this->tickVal;
+	this->tickVal -= val;
+	if (val)
+	{
+		if (sichtbar && alpha != 255)
+		{
+			if (alpha + val > 255)
+				alpha = 255;
+			else
+				alpha += (unsigned char)val;
+			ret = 1;
+		}
+		if (!sichtbar && alpha)
+		{
+			if (alpha - val < 0)
+				alpha = 0;
+			else
+				alpha -= (unsigned char)val;
+			if (!alpha && statistik->istNochSichtbar())
+				alpha = 1;
+			ret = 1;
+		}
+	}
+	return ret;
+}
+
+void AHSpielStatistik::render(Bild& zRObj)
+{
+	if (!statistik || !alpha)
+		return;
+	zRObj.setAlpha(alpha);
+	statistikF->render(zRObj);
+	if (!zRObj.setDrawOptions(statistikF->getX() + 1, statistikF->getY() + 21, statistikF->getBreite() - 2, statistikF->getHeight() - 22))
+	{
+		zRObj.releaseAlpha();
+		return;
+	}
+	statistik->render(zRObj);
+	zRObj.releaseDrawOptions();
+	laden->render(zRObj);
+	zRObj.releaseAlpha();
 }
 
 // constant
 bool AHSpielStatistik::istNochSichtbar() const
 {
-    if( alpha )
-        return 1;
-    return statistik ? statistik->istNochSichtbar() : 0;
+	if (alpha)
+		return 1;
+	return statistik ? statistik->istNochSichtbar() : 0;
 }
 
 
 // Inahlt der AHSpielVideo Klasse aus AccountHistorie.h
 // Konstruktor
 AHSpielVideo::AHSpielVideo()
-    : Thread()
+	: Thread()
 {
-    videoF = initFenster( 10, 40, 780, 450, Fenster::Style::Sichtbar | Fenster::Style::Titel | Fenster::Style::TitelBuffered | Fenster::Style::Rahmen, "Spiel Aufzeichnung" );
-    laden = (Animation2D *)ladeAnimation->dublizieren();
-    laden->setSichtbar( 0 );
-    laden->setPosition( 380, 245 );
-    dllName = new Text( "" );
-    dllHandle = 0;
-    alpha = 0;
-    sichtbar = 0;
-    video = 0;
-    tickVal = 0;
+	videoF = initFenster(10, 40, 780, 450, Fenster::Style::Sichtbar | Fenster::Style::Titel | Fenster::Style::TitelBuffered | Fenster::Style::Rahmen, "Spiel Aufzeichnung");
+	laden = (Animation2D*)ladeAnimation->dublizieren();
+	laden->setSichtbar(0);
+	laden->setPosition(380, 245);
+	dllName = new Text("");
+	dllHandle = 0;
+	alpha = 0;
+	sichtbar = 0;
+	video = 0;
+	tickVal = 0;
 }
 
 // Destruktor
 AHSpielVideo::~AHSpielVideo()
 {
-    videoF->release();
-    if( dllHandle )
-        reset();
-    dllName->release();
-    laden->release();
+	videoF->release();
+	if (dllHandle)
+		reset();
+	dllName->release();
+	laden->release();
 }
 
 // nicht constant
 void AHSpielVideo::reset()
 {
-    if( run )
-        warteAufThread( INFINITE );
-    if( dllHandle )
-    {
-        if( video )
-            video = (AufzeichnungV *)video->release();
-        Framework::getDLLRegister()->releaseDLL( *dllName );
-        dllHandle = 0;
-    }
-}
-
-bool AHSpielVideo::ladeDaten( int spielId, int karteId )
-{
-    if( dllHandle )
-        reset();
-    KartenLeser *reader = KartenLeser::getInstance();
-    reader->lock();
-    reader->setKarteId( karteId );
-    Text *pfad = reader->getSpielPfad();
-    if( !pfad )
-    {
-        nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( reader->getLetzterFehler() ), new Text( "Ok" ) );
-        reader->unlock();
-        reader->release();
-        return 0;
-    }
-    pfad->append( "bin/" );
-    Text *spielArtName = reader->getSpielName();
-    if( !spielArtName )
-    {
-        nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( reader->getLetzterFehler() ), new Text( "Ok" ) );
-        reader->unlock();
-        reader->release();
-        pfad->release();
-        return 0;
-    }
-    pfad->append( spielArtName->getText() );
-    pfad->append( ".dll" );
-    reader->unlock();
-    reader->release();
-    dllName->setText( "Spiele/" );
-    dllName->append( spielArtName->getText() );
-    dllName->append( ".dll" );
-    spielArtName->release();
-    dllHandle = Framework::getDLLRegister()->ladeDLL( *dllName, *pfad );
-    if( !dllHandle )
-    {
-        Text *msg = new Text( "Die DLL Datei '" );
-        msg->append( pfad->getText() );
-        msg->append( "' konnte nicht geladen werden." );
-        nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), msg, new Text( "Ok" ) );
-        pfad->release();
-        return 0;
-    }
-    AHSADLLStart startFunk = (AHSADLLStart)GetProcAddress( dllHandle, "GetAufzeichnung" );
-    if( !startFunk )
-    {
-        if( dllHandle )
-        {
-            Framework::getDLLRegister()->releaseDLL( *dllName );
-            dllHandle = 0;
-        }
-        Text *msg = new Text( "Die Funktion 'GetAufzeichnung' konnte in der DLL Datei '" );
-        msg->append( pfad->getText() );
-        msg->append( "' nicht gefunden werden." );
-        nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), msg, new Text( "Ok" ) );
-        pfad->release();
-        return 0;
-    }
-    pfad->release();
-    video = startFunk();
-    if( !video )
-    {
-        if( dllHandle )
-        {
-            Framework::getDLLRegister()->releaseDLL( *dllName );
-            dllHandle = 0;
-        }
-        nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( "Für diese Spielart ist keine Aufzeichnung verfügbar." ), new Text( "Ok" ) );
-        return 0;
-    }
-    this->spielId = spielId;
-    video->setUIFactory( uiFactory );
-    start();
-    return 1;
+	if (run)
+		warteAufThread(INFINITE);
+	if (dllHandle)
+	{
+		if (video)
+			video = (AufzeichnungV*)video->release();
+		Framework::getDLLRegister()->releaseDLL(*dllName);
+		dllHandle = 0;
+	}
+}
+
+bool AHSpielVideo::ladeDaten(int spielId, int karteId)
+{
+	if (dllHandle)
+		reset();
+	KartenLeser* reader = KartenLeser::getInstance();
+	reader->lock();
+	reader->setKarteId(karteId);
+	Text* pfad = reader->getSpielPfad();
+	if (!pfad)
+	{
+		nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text(reader->getLetzterFehler()), new Text("Ok"));
+		reader->unlock();
+		reader->release();
+		return 0;
+	}
+	pfad->append("bin/");
+	Text* spielArtName = reader->getSpielName();
+	if (!spielArtName)
+	{
+		nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text(reader->getLetzterFehler()), new Text("Ok"));
+		reader->unlock();
+		reader->release();
+		pfad->release();
+		return 0;
+	}
+	pfad->append(spielArtName->getText());
+	pfad->append(".dll");
+	reader->unlock();
+	reader->release();
+	dllName->setText("Spiele/");
+	dllName->append(spielArtName->getText());
+	dllName->append(".dll");
+	spielArtName->release();
+	dllHandle = Framework::getDLLRegister()->ladeDLL(*dllName, *pfad);
+	if (!dllHandle)
+	{
+		Text* msg = new Text("Die DLL Datei '");
+		msg->append(pfad->getText());
+		msg->append("' konnte nicht geladen werden.");
+		nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), msg, new Text("Ok"));
+		pfad->release();
+		return 0;
+	}
+	AHSADLLStart startFunk = (AHSADLLStart)GetProcAddress(dllHandle, "GetAufzeichnung");
+	if (!startFunk)
+	{
+		if (dllHandle)
+		{
+			Framework::getDLLRegister()->releaseDLL(*dllName);
+			dllHandle = 0;
+		}
+		Text* msg = new Text("Die Funktion 'GetAufzeichnung' konnte in der DLL Datei '");
+		msg->append(pfad->getText());
+		msg->append("' nicht gefunden werden.");
+		nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), msg, new Text("Ok"));
+		pfad->release();
+		return 0;
+	}
+	pfad->release();
+	video = startFunk();
+	if (!video)
+	{
+		if (dllHandle)
+		{
+			Framework::getDLLRegister()->releaseDLL(*dllName);
+			dllHandle = 0;
+		}
+		nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text("Für diese Spielart ist keine Aufzeichnung verfügbar."), new Text("Ok"));
+		return 0;
+	}
+	this->spielId = spielId;
+	video->setUIFactory(uiFactory);
+	start();
+	return 1;
 }
 
 void AHSpielVideo::thread()
 {
-    laden->setSichtbar( 1 );
-    KSGClient::HistorieServerClient *historieClient = infoClient->createHistorieServerClient( spielId );
-    if( !historieClient )
-        nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( "Die Daten für dieses Spiel können zur Zeit nicht abgerufen werden." ), new Text( "Ok" ) );
-    else
-    {
-        if( !historieClient->downloadSpielHistorie() )
-            nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( historieClient->getLetzterFehler() ), new Text( "Ok" ) );
-        historieClient->release();
-    }
-    video->ladeSpiel( spielId );
-    laden->setSichtbar( 0 );
-    if( sichtbar )
-    {
-        nachLogin->setSpielAufzeichnung( dynamic_cast<AufzeichnungV *>( video->getThis() ) );
-        aktion = 7; // Aufzeichnung betreten
-    }
-    run = 0;
-}
-
-void AHSpielVideo::setSichtbar( bool sichtbar )
-{
-    if( !video )
-        return;
-    if( sichtbar && !run )
-    {
-        nachLogin->setSpielAufzeichnung( dynamic_cast<AufzeichnungV *>( video->getThis() ) );
-        aktion = 7; // Aufzeichnung betreten
-    }
-    this->sichtbar = sichtbar;
-    if( sichtbar && !alpha )
-        alpha = 1;
-}
-
-bool AHSpielVideo::tick( double tickVal )
-{
-    if( !video || !alpha )
-        return 0;
-    if( video->hatVerlassen( 0 ) && sichtbar )
-        setSichtbar( 0 );
-    bool ret = laden->tick( tickVal );
-    this->tickVal += tickVal * 150;
-    int val = (int)this->tickVal;
-    this->tickVal -= val;
-    if( val )
-    {
-        if( sichtbar && alpha != 255 )
-        {
-            if( alpha + val > 255 )
-                alpha = 255;
-            else
-                alpha += (unsigned char)val;
-            ret = 1;
-        }
-        if( !sichtbar && alpha )
-        {
-            if( alpha - val < 0 )
-                alpha = 0;
-            else
-                alpha -= (unsigned char)val;
-            ret = 1;
-        }
-    }
-    return ret;
-}
-
-void AHSpielVideo::render( Bild &zRObj )
-{
-    if( !video || !alpha )
-        return;
-    if( !zRObj.setDrawOptions( 0, 0, videoF->getBreite() + 10, videoF->getHeight() + 40 ) )
-        return;
-    zRObj.setAlpha( alpha );
-    videoF->render( zRObj );
-    laden->render( zRObj );
-    zRObj.releaseAlpha();
-    zRObj.releaseDrawOptions();
+	laden->setSichtbar(1);
+	KSGClient::HistorieServerClient* historieClient = infoClient->createHistorieServerClient(spielId);
+	if (!historieClient)
+		nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text("Die Daten für dieses Spiel können zur Zeit nicht abgerufen werden."), new Text("Ok"));
+	else
+	{
+		if (!historieClient->downloadSpielHistorie())
+			nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text(historieClient->getLetzterFehler()), new Text("Ok"));
+		historieClient->release();
+	}
+	video->ladeSpiel(spielId);
+	laden->setSichtbar(0);
+	if (sichtbar)
+	{
+		nachLogin->setSpielAufzeichnung(dynamic_cast<AufzeichnungV*>(video->getThis()));
+		aktion = 7; // Aufzeichnung betreten
+	}
+	run = 0;
+}
+
+void AHSpielVideo::setSichtbar(bool sichtbar)
+{
+	if (!video)
+		return;
+	if (sichtbar && !run)
+	{
+		nachLogin->setSpielAufzeichnung(dynamic_cast<AufzeichnungV*>(video->getThis()));
+		aktion = 7; // Aufzeichnung betreten
+	}
+	this->sichtbar = sichtbar;
+	if (sichtbar && !alpha)
+		alpha = 1;
+}
+
+bool AHSpielVideo::tick(double tickVal)
+{
+	if (!video || !alpha)
+		return 0;
+	if (video->hatVerlassen(0) && sichtbar)
+		setSichtbar(0);
+	bool ret = laden->tick(tickVal);
+	this->tickVal += tickVal * 150;
+	int val = (int)this->tickVal;
+	this->tickVal -= val;
+	if (val)
+	{
+		if (sichtbar && alpha != 255)
+		{
+			if (alpha + val > 255)
+				alpha = 255;
+			else
+				alpha += (unsigned char)val;
+			ret = 1;
+		}
+		if (!sichtbar && alpha)
+		{
+			if (alpha - val < 0)
+				alpha = 0;
+			else
+				alpha -= (unsigned char)val;
+			ret = 1;
+		}
+	}
+	return ret;
+}
+
+void AHSpielVideo::render(Bild& zRObj)
+{
+	if (!video || !alpha)
+		return;
+	if (!zRObj.setDrawOptions(0, 0, videoF->getBreite() + 10, videoF->getHeight() + 40))
+		return;
+	zRObj.setAlpha(alpha);
+	videoF->render(zRObj);
+	laden->render(zRObj);
+	zRObj.releaseAlpha();
+	zRObj.releaseDrawOptions();
 }
 
 // constant
 bool AHSpielVideo::istNochSichtbar() const
 {
-    return alpha != 0;
+	return alpha != 0;
 }
 
 
 // Inhalt der AHSLETeamListeSpieler Klasse aus AccountHistorie.h
 // Konstruktor
-AHSLETeamListeSpieler::AHSLETeamListeSpieler( char *name, int punkte, char *status, int farbe, int br )
-    : ReferenceCounter(),
-    nameTF( initTextFeld( 5, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, name ) ),
-    punkteTF( initTextFeld( 110, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, Text( "Punkte: " ) += punkte ) ),
-    statusTF( initTextFeld( 215, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, status ) ),
-    ram( new LRahmen() )
-{
-    TextRenderer tr( dynamic_cast<Schrift *>( uiFactory.initParam.schrift->getThis() ) );
-    tr.setSchriftSize( 12 );
-    nameTF->setSize( tr.getTextBreite( nameTF->zText()->getText() ) + 5, 20 );
-    punkteTF->setSize( tr.getTextBreite( punkteTF->zText()->getText() ) + 5, 20 );
-    statusTF->setSize( tr.getTextBreite( statusTF->zText()->getText() ) + 5, 20 );
-    if( nameTF->getBreite() > 100 )
-        punkteTF->setPosition( 10 + nameTF->getBreite(), 0 );
-    if( punkteTF->getX() + punkteTF->getBreite() > 210 )
-        statusTF->setPosition( punkteTF->getX() + punkteTF->getBreite() + 5, 0 );
-    ram->setFarbe( farbe );
-    ram->setSize( br, 20 );
-    ram->setRamenBreite( 1 );
+AHSLETeamListeSpieler::AHSLETeamListeSpieler(const char* name, int punkte, const char* status, int farbe, int br)
+	: ReferenceCounter(),
+	nameTF(initTextFeld(5, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, name)),
+	punkteTF(initTextFeld(110, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, Text("Punkte: ") + punkte)),
+	statusTF(initTextFeld(215, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, status)),
+	ram(new LRahmen())
+{
+	TextRenderer tr(dynamic_cast<Schrift*>(uiFactory.initParam.schrift->getThis()));
+	tr.setSchriftSize(12);
+	nameTF->setSize(tr.getTextBreite(nameTF->zText()->getText()) + 5, 20);
+	punkteTF->setSize(tr.getTextBreite(punkteTF->zText()->getText()) + 5, 20);
+	statusTF->setSize(tr.getTextBreite(statusTF->zText()->getText()) + 5, 20);
+	if (nameTF->getBreite() > 100)
+		punkteTF->setPosition(10 + nameTF->getBreite(), 0);
+	if (punkteTF->getX() + punkteTF->getBreite() > 210)
+		statusTF->setPosition(punkteTF->getX() + punkteTF->getBreite() + 5, 0);
+	ram->setFarbe(farbe);
+	ram->setSize(br, 20);
+	ram->setRamenBreite(1);
 }
 
 // Destruktor
 AHSLETeamListeSpieler::~AHSLETeamListeSpieler()
 {
-    nameTF->release();
-    punkteTF->release();
-    statusTF->release();
-    ram->release();
+	nameTF->release();
+	punkteTF->release();
+	statusTF->release();
+	ram->release();
 }
 
 // nicht constant
-void AHSLETeamListeSpieler::render( int yOff, Bild &zRObj )
+void AHSLETeamListeSpieler::render(int yOff, Bild& zRObj)
 {
-    if( !zRObj.setDrawOptions( 2, yOff, ram->getBreite(), ram->getHeight() ) )
-        return;
-    nameTF->render( zRObj );
-    punkteTF->render( zRObj );
-    statusTF->render( zRObj );
-    ram->render( zRObj );
-    zRObj.releaseDrawOptions();
+	if (!zRObj.setDrawOptions(2, yOff, ram->getBreite(), ram->getHeight()))
+		return;
+	nameTF->render(zRObj);
+	punkteTF->render(zRObj);
+	statusTF->render(zRObj);
+	ram->render(zRObj);
+	zRObj.releaseDrawOptions();
 }
 
 
 // Inhalt der AHSLETeamListeTeam Klasse aus AccountHistorie.h
 // Konstruktor
-AHSLETeamListeTeam::AHSLETeamListeTeam( char *name, int sAnz, char *status, int farbe, int br )
-    : ReferenceCounter(),
-    nameTF( initTextFeld( 5, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, name ) ),
-    sAnzahlTF( initTextFeld( 110, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, Text( "Spieleranzahl: " ) += sAnz ) ),
-    statusTF( initTextFeld( 215, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, status ) ),
-    ram( new LRahmen() ),
-    members( new RCArray< AHSLETeamListeSpieler >() )
-{
-    TextRenderer tr( dynamic_cast<Schrift *>( uiFactory.initParam.schrift->getThis() ) );
-    tr.setSchriftSize( 12 );
-    nameTF->setSize( tr.getTextBreite( nameTF->zText()->getText() ) + 5, 20 );
-    sAnzahlTF->setSize( tr.getTextBreite( sAnzahlTF->zText()->getText() ) + 5, 20 );
-    statusTF->setSize( tr.getTextBreite( statusTF->zText()->getText() ) + 5, 20 );
-    if( nameTF->getBreite() > 100 )
-        sAnzahlTF->setPosition( 10 + nameTF->getBreite(), 0 );
-    if( sAnzahlTF->getX() + sAnzahlTF->getBreite() > 210 )
-        statusTF->setPosition( sAnzahlTF->getX() + sAnzahlTF->getBreite() + 5, 0 );
-    ram->setFarbe( farbe );
-    ram->setSize( br, 20 );
-    ram->setRamenBreite( 1 );
+AHSLETeamListeTeam::AHSLETeamListeTeam(const char* name, int sAnz, const char* status, int farbe, int br)
+	: ReferenceCounter(),
+	nameTF(initTextFeld(5, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, name)),
+	sAnzahlTF(initTextFeld(110, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, Text("Spieleranzahl: ") += sAnz)),
+	statusTF(initTextFeld(215, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, status)),
+	ram(new LRahmen()),
+	members(new RCArray< AHSLETeamListeSpieler >())
+{
+	TextRenderer tr(dynamic_cast<Schrift*>(uiFactory.initParam.schrift->getThis()));
+	tr.setSchriftSize(12);
+	nameTF->setSize(tr.getTextBreite(nameTF->zText()->getText()) + 5, 20);
+	sAnzahlTF->setSize(tr.getTextBreite(sAnzahlTF->zText()->getText()) + 5, 20);
+	statusTF->setSize(tr.getTextBreite(statusTF->zText()->getText()) + 5, 20);
+	if (nameTF->getBreite() > 100)
+		sAnzahlTF->setPosition(10 + nameTF->getBreite(), 0);
+	if (sAnzahlTF->getX() + sAnzahlTF->getBreite() > 210)
+		statusTF->setPosition(sAnzahlTF->getX() + sAnzahlTF->getBreite() + 5, 0);
+	ram->setFarbe(farbe);
+	ram->setSize(br, 20);
+	ram->setRamenBreite(1);
 }
 
 // Destruktor
 AHSLETeamListeTeam::~AHSLETeamListeTeam()
 {
-    nameTF->release();
-    sAnzahlTF->release();
-    statusTF->release();
-    ram->release();
-    members->release();
+	nameTF->release();
+	sAnzahlTF->release();
+	statusTF->release();
+	ram->release();
+	members->release();
 }
 
 // nicht constant
-void AHSLETeamListeTeam::addSpieler( AHSLETeamListeSpieler *s )
-{
-    members->add( s );
-    int maxHö = 20;
-    int anz = members->getEintragAnzahl();
-    if( anz )
-        maxHö += 4 + 20 * anz;
-    ram->setSize( ram->getBreite(), maxHö );
-}
-
-void AHSLETeamListeTeam::render( int xOff, int yOff, Bild &zRObj )
-{
-    if( !zRObj.setDrawOptions( xOff, yOff, ram->getBreite(), ram->getHeight() ) )
-        return;
-    nameTF->render( zRObj );
-    sAnzahlTF->render( zRObj );
-    statusTF->render( zRObj );
-    ram->render( zRObj );
-    yOff = 22;
-    int anz = members->getEintragAnzahl();
-    for( int i = 0; i < anz; i++ )
-    {
-        members->z( i )->render( yOff, zRObj );
-        yOff += 20;
-    }
-    zRObj.releaseDrawOptions();
+void AHSLETeamListeTeam::addSpieler(AHSLETeamListeSpieler* s)
+{
+	members->add(s);
+	int maxHö = 20;
+	int anz = members->getEintragAnzahl();
+	if (anz)
+		maxHö += 4 + 20 * anz;
+	ram->setSize(ram->getBreite(), maxHö);
+}
+
+void AHSLETeamListeTeam::render(int xOff, int yOff, Bild& zRObj)
+{
+	if (!zRObj.setDrawOptions(xOff, yOff, ram->getBreite(), ram->getHeight()))
+		return;
+	nameTF->render(zRObj);
+	sAnzahlTF->render(zRObj);
+	statusTF->render(zRObj);
+	ram->render(zRObj);
+	yOff = 22;
+	int anz = members->getEintragAnzahl();
+	for (int i = 0; i < anz; i++)
+	{
+		members->z(i)->render(yOff, zRObj);
+		yOff += 20;
+	}
+	zRObj.releaseDrawOptions();
 }
 
 // constant
 int AHSLETeamListeTeam::getHeight() const
 {
-    return ram->getHeight();
+	return ram->getHeight();
 }
 
 
 // Inhalt der AHSLETeamListe Klasse aus AccountHistorie.h
 // Konstruktor
-AHSLETeamListe::AHSLETeamListe( int xPos )
-    : ReferenceCounter(),
-    members( new RCArray< AHSLETeamListeTeam >() ),
-    xPos( xPos )
+AHSLETeamListe::AHSLETeamListe(int xPos)
+	: ReferenceCounter(),
+	members(new RCArray< AHSLETeamListeTeam >()),
+	xPos(xPos)
 {}
 
 // Destruktor
 AHSLETeamListe::~AHSLETeamListe()
 {
-    members->release();
+	members->release();
 }
 
 // nicht constant
-void AHSLETeamListe::addTeam( AHSLETeamListeTeam *t )
+void AHSLETeamListe::addTeam(AHSLETeamListeTeam* t)
 {
-    members->add( t );
+	members->add(t);
 }
 
-void AHSLETeamListe::render( Bild &zRObj )
+void AHSLETeamListe::render(Bild& zRObj)
 {
-    int y = 25;
-    int anz = members->getEintragAnzahl();
-    for( int i = 0; i < anz; i++ )
-    {
-        members->z( i )->render( xPos, y, zRObj );
-        y += members->z( i )->getHeight();
-    }
+	int y = 25;
+	int anz = members->getEintragAnzahl();
+	for (int i = 0; i < anz; i++)
+	{
+		members->z(i)->render(xPos, y, zRObj);
+		y += members->z(i)->getHeight();
+	}
 }
 
 // constant
 int AHSLETeamListe::getHeight() const
 {
-    int anz = members->getEintragAnzahl();
-    int hö = 0;
-    for( int i = 0; i < anz; i++ )
-        hö += members->z( i )->getHeight();
-    return hö;
+	int anz = members->getEintragAnzahl();
+	int hö = 0;
+	for (int i = 0; i < anz; i++)
+		hö += members->z(i)->getHeight();
+	return hö;
 }
 
 int AHSLETeamListe::getBreite() const
 {
-    return 730 - xPos;
+	return 730 - xPos;
 }
 
 
 // Inhalt der AHSpielListeEintrag Klasse aus AccountHistorie.h
 // Konstruktor
-AHSpielListeEintrag::AHSpielListeEintrag( int id, int karteId, char *spiel, char *karte, char *datum, char *status,
-                                          char *dauer, char *spielStatus, char *gewinner, int sAnzahl )
-    : ReferenceCounter(),
-    spielTF( initTextFeld( 5, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, Text( "Spiel: " ) += spiel ) ),
-    karteTF( initTextFeld( 110, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, Text( "Karte: " ) += karte ) ),
-    datumTF( initTextFeld( 215, 0, 180, 20, TextFeld::Style::Text | TextFeld::Style::Center, Text( "Datum: " ) += datum ) ),
-    statusTF( initTextFeld( 400, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, Text( "Status: " ) += status ) ),
-    spiel( new Text( spiel ) ),
-    karte( new Text( karte ) ),
-    datum( new Text( datum ) ),
-    status( new Text( status ) ),
-    detailsK( initKnopf( 715, 0, 20, 20, 0, "" ) ),
-    dauerTF( initTextFeld( 5, 25, 100, 20, TextFeld::Style::Text, Text( "Dauer: " ) += dauer ) ),
-    spielStatusTF( initTextFeld( 5, 45, 100, 20, TextFeld::Style::Text, Text( "Status: " ) += spielStatus ) ),
-    gewinnerTF( initTextFeld( 5, 65, 100, 20, TextFeld::Style::Text, Text( "Gewinner: " ) += gewinner ) ),
-    sAnzahlTF( initTextFeld( 5, 85, 100, 20, TextFeld::Style::Text, Text( "Spieleranzahl: " ) += sAnzahl ) ),
-    statistikK( initKnopf( 5, 105, 100, 20, Knopf::Style::Sichtbar, "Statistik" ) ),
-    videoK( initKnopf( 5, 130, 100, 20, Knopf::Style::Sichtbar, "Aufzeichnung" ) ),
-    liste( 0 ),
-    ram( new LRahmen() ),
-    ausklappen( bilder->get( "data/client/bilder/account.ltdb/ausklappen.png" ) ),
-    einklappen( bilder->get( "data/client/bilder/account.ltdb/einklappen.png" ) ),
-    id( id ),
-    karteId( karteId ),
-    tickVal( 0 ),
-    aktion( 0 ),
-    maxHö( 155 )
-{
-    detailsK->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer );
-    detailsK->setHintergrundBildZ( dynamic_cast<Bild *>( ausklappen->getThis() ) );
-    initToolTip( detailsK, "Details anzeigen." );
-    TextRenderer tr( dynamic_cast<Schrift *>( uiFactory.initParam.schrift->getThis() ) );
-    tr.setSchriftSize( 12 );
-    spielTF->setSize( tr.getTextBreite( spielTF->zText()->getText() ) + 5, 20 );
-    karteTF->setSize( tr.getTextBreite( karteTF->zText()->getText() ) + 5, 20 );
-    datumTF->setSize( tr.getTextBreite( datumTF->zText()->getText() ) + 5, 20 );
-    statusTF->setSize( tr.getTextBreite( statusTF->zText()->getText() ) + 5, 20 );
-    dauerTF->setSize( tr.getTextBreite( dauerTF->zText()->getText() ), 20 );
-    spielStatusTF->setSize( tr.getTextBreite( spielStatusTF->zText()->getText() ), 20 );
-    gewinnerTF->setSize( tr.getTextBreite( gewinnerTF->zText()->getText() ), 20 );
-    sAnzahlTF->setSize( tr.getTextBreite( sAnzahlTF->zText()->getText() ), 20 );
-    if( spielTF->getBreite() > 100 )
-        karteTF->setPosition( 10 + spielTF->getBreite(), 0 );
-    if( karteTF->getX() + karteTF->getBreite() > 210 )
-        datumTF->setPosition( karteTF->getX() + karteTF->getBreite() + 5, 0 );
-    if( datumTF->getX() + datumTF->getBreite() > 395 )
-        statusTF->setPosition( datumTF->getX() + datumTF->getBreite() + 5, 0 );
-    ram->setFarbe( 0xFFFFFFFF );
-    ram->setSize( 735, 20 );
-    ram->setRamenBreite( 1 );
-    int br = dauerTF->getBreite();
-    br = br > spielStatusTF->getBreite() ? br : spielStatusTF->getBreite();
-    br = br > gewinnerTF->getBreite() ? br : gewinnerTF->getBreite();
-    br = br > sAnzahlTF->getBreite() ? br : sAnzahlTF->getBreite();
-    statistikK->setSize( br, statistikK->getHeight() );
-    videoK->setSize( br, videoK->getHeight() );
-    liste = new AHSLETeamListe( br + 10 );
+AHSpielListeEintrag::AHSpielListeEintrag(int id, int karteId, const char* spiel, const char* karte, const char* datum, const char* status,
+	const char* dauer, const char* spielStatus, const char* gewinner, int sAnzahl)
+	: ReferenceCounter(),
+	spielTF(initTextFeld(5, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, Text("Spiel: ") += spiel)),
+	karteTF(initTextFeld(110, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, Text("Karte: ") += karte)),
+	datumTF(initTextFeld(215, 0, 180, 20, TextFeld::Style::Text | TextFeld::Style::Center, Text("Datum: ") += datum)),
+	statusTF(initTextFeld(400, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, Text("Status: ") += status)),
+	spiel(new Text(spiel)),
+	karte(new Text(karte)),
+	datum(new Text(datum)),
+	status(new Text(status)),
+	detailsK(initKnopf(715, 0, 20, 20, 0, "")),
+	dauerTF(initTextFeld(5, 25, 100, 20, TextFeld::Style::Text, Text("Dauer: ") += dauer)),
+	spielStatusTF(initTextFeld(5, 45, 100, 20, TextFeld::Style::Text, Text("Status: ") += spielStatus)),
+	gewinnerTF(initTextFeld(5, 65, 100, 20, TextFeld::Style::Text, Text("Gewinner: ") += gewinner)),
+	sAnzahlTF(initTextFeld(5, 85, 100, 20, TextFeld::Style::Text, Text("Spieleranzahl: ") += sAnzahl)),
+	statistikK(initKnopf(5, 105, 100, 20, Knopf::Style::Sichtbar, "Statistik")),
+	videoK(initKnopf(5, 130, 100, 20, Knopf::Style::Sichtbar, "Aufzeichnung")),
+	liste(0),
+	ram(new LRahmen()),
+	ausklappen(bilder->get("data/client/bilder/account.ltdb/ausklappen.png")),
+	einklappen(bilder->get("data/client/bilder/account.ltdb/einklappen.png")),
+	id(id),
+	karteId(karteId),
+	tickVal(0),
+	aktion(0),
+	maxHö(155)
+{
+	detailsK->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer);
+	detailsK->setHintergrundBildZ(dynamic_cast<Bild*>(ausklappen->getThis()));
+	initToolTip(detailsK, "Details anzeigen.");
+	TextRenderer tr(dynamic_cast<Schrift*>(uiFactory.initParam.schrift->getThis()));
+	tr.setSchriftSize(12);
+	spielTF->setSize(tr.getTextBreite(spielTF->zText()->getText()) + 5, 20);
+	karteTF->setSize(tr.getTextBreite(karteTF->zText()->getText()) + 5, 20);
+	datumTF->setSize(tr.getTextBreite(datumTF->zText()->getText()) + 5, 20);
+	statusTF->setSize(tr.getTextBreite(statusTF->zText()->getText()) + 5, 20);
+	dauerTF->setSize(tr.getTextBreite(dauerTF->zText()->getText()), 20);
+	spielStatusTF->setSize(tr.getTextBreite(spielStatusTF->zText()->getText()), 20);
+	gewinnerTF->setSize(tr.getTextBreite(gewinnerTF->zText()->getText()), 20);
+	sAnzahlTF->setSize(tr.getTextBreite(sAnzahlTF->zText()->getText()), 20);
+	if (spielTF->getBreite() > 100)
+		karteTF->setPosition(10 + spielTF->getBreite(), 0);
+	if (karteTF->getX() + karteTF->getBreite() > 210)
+		datumTF->setPosition(karteTF->getX() + karteTF->getBreite() + 5, 0);
+	if (datumTF->getX() + datumTF->getBreite() > 395)
+		statusTF->setPosition(datumTF->getX() + datumTF->getBreite() + 5, 0);
+	ram->setFarbe(0xFFFFFFFF);
+	ram->setSize(735, 20);
+	ram->setRamenBreite(1);
+	int br = dauerTF->getBreite();
+	br = br > spielStatusTF->getBreite() ? br : spielStatusTF->getBreite();
+	br = br > gewinnerTF->getBreite() ? br : gewinnerTF->getBreite();
+	br = br > sAnzahlTF->getBreite() ? br : sAnzahlTF->getBreite();
+	statistikK->setSize(br, statistikK->getHeight());
+	videoK->setSize(br, videoK->getHeight());
+	liste = new AHSLETeamListe(br + 10);
 }
 
 // Destruktor
 AHSpielListeEintrag::~AHSpielListeEintrag()
 {
-    spielTF->release();
-    karteTF->release();
-    datumTF->release();
-    statusTF->release();
-    spiel->release();
-    karte->release();
-    datum->release();
-    status->release();
-    detailsK->release();
-    dauerTF->release();
-    spielStatusTF->release();
-    gewinnerTF->release();
-    sAnzahlTF->release();
-    statistikK->release();
-    videoK->release();
-    liste->release();
-    ram->release();
-    einklappen->release();
-    ausklappen->release();
+	spielTF->release();
+	karteTF->release();
+	datumTF->release();
+	statusTF->release();
+	spiel->release();
+	karte->release();
+	datum->release();
+	status->release();
+	detailsK->release();
+	dauerTF->release();
+	spielStatusTF->release();
+	gewinnerTF->release();
+	sAnzahlTF->release();
+	statistikK->release();
+	videoK->release();
+	liste->release();
+	ram->release();
+	einklappen->release();
+	ausklappen->release();
 }
 
 // nicht constant
-void AHSpielListeEintrag::addTeam( AHSLETeamListeTeam *t )
-{
-    liste->addTeam( t );
-    maxHö = liste->getHeight();
-    maxHö = 155 > maxHö + 30 ? 155 : maxHö + 30;
-}
-
-bool AHSpielListeEintrag::tick( double tickVal )
-{
-    bool ret = detailsK->tick( tickVal );
-    ret |= statistikK->tick( tickVal );
-    ret |= videoK->tick( tickVal );
-    this->tickVal += tickVal * 150;
-    int val = (int)this->tickVal;
-    this->tickVal -= val;
-    if( val )
-    {
-        if( detailsK->zHintergrundBild() == ausklappen && ram->getHeight() != 20 )
-        {
-            if( ram->getHeight() - val < 20 )
-                ram->setSize( ram->getBreite(), 20 );
-            else
-                ram->setSize( ram->getBreite(), ram->getHeight() - val );
-            ret = 1;
-        }
-        if( detailsK->zHintergrundBild() == einklappen )
-        {
-            if( ram->getHeight() > maxHö )
-            {
-                if( ram->getHeight() - val < maxHö )
-                    ram->setSize( ram->getBreite(), maxHö );
-                else
-                    ram->setSize( ram->getBreite(), ram->getHeight() - val );
-                ret = 1;
-            }
-            if( ram->getHeight() < maxHö )
-            {
-                if( ram->getHeight() + val > maxHö )
-                    ram->setSize( ram->getBreite(), maxHö );
-                else
-                    ram->setSize( ram->getBreite(), ram->getHeight() + val );
-                ret = 1;
-            }
-        }
-    }
-    return ret;
-}
-
-void AHSpielListeEintrag::doPublicMausEreignis( MausEreignis &me )
-{
-    bool meVera = 0;
-    bool meVeraTmp = 0;
-    if( me.mx < 0 || me.my < 0 || me.mx >= ram->getBreite() || me.my >= ram->getHeight() )
-    {
-        meVeraTmp = me.verarbeitet;
-        me.verarbeitet = 1;
-        meVera = 1;
-    }
-    int vera = me.verarbeitet;
-    detailsK->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet && me.id == ME_RLinks )
-    {
-        if( detailsK->zHintergrundBild() == einklappen )
-            detailsK->setHintergrundBildZ( dynamic_cast<Bild *>( ausklappen->getThis() ) );
-        else
-            detailsK->setHintergrundBildZ( dynamic_cast<Bild *>( einklappen->getThis() ) );
-    }
-    vera = me.verarbeitet;
-    statistikK->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet && me.id == ME_RLinks )
-        aktion = 1;
-    vera = me.verarbeitet;
-    videoK->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet && me.id == ME_RLinks )
-        aktion = 2;
-    if( meVera )
-        me.verarbeitet = meVeraTmp;
-}
-
-void AHSpielListeEintrag::render( int yOff, Bild &zRObj )
-{
-    if( !zRObj.setDrawOptions( 5, yOff, ram->getBreite(), ram->getHeight() ) )
-        return;
-    ram->render( zRObj );
-    if( ram->getHeight() > 20 )
-        zRObj.drawLinieH( 1, 20, ram->getBreite() - 2, ram->getFarbe() );
-    if( !zRObj.setDrawOptions( 1, 1, ram->getBreite() - 2, ram->getHeight() - 2 ) )
-    {
-        zRObj.releaseDrawOptions();
-        return;
-    }
-    spielTF->render( zRObj );
-    karteTF->render( zRObj );
-    datumTF->render( zRObj );
-    statusTF->render( zRObj );
-    detailsK->render( zRObj );
-    dauerTF->render( zRObj );
-    spielStatusTF->render( zRObj );
-    gewinnerTF->render( zRObj );
-    sAnzahlTF->render( zRObj );
-    statistikK->render( zRObj );
-    videoK->render( zRObj );
-    liste->render( zRObj );
-    zRObj.releaseDrawOptions();
-    zRObj.releaseDrawOptions();
+void AHSpielListeEintrag::addTeam(AHSLETeamListeTeam* t)
+{
+	liste->addTeam(t);
+	maxHö = liste->getHeight();
+	maxHö = 155 > maxHö + 30 ? 155 : maxHö + 30;
+}
+
+bool AHSpielListeEintrag::tick(double tickVal)
+{
+	bool ret = detailsK->tick(tickVal);
+	ret |= statistikK->tick(tickVal);
+	ret |= videoK->tick(tickVal);
+	this->tickVal += tickVal * 150;
+	int val = (int)this->tickVal;
+	this->tickVal -= val;
+	if (val)
+	{
+		if (detailsK->zHintergrundBild() == ausklappen && ram->getHeight() != 20)
+		{
+			if (ram->getHeight() - val < 20)
+				ram->setSize(ram->getBreite(), 20);
+			else
+				ram->setSize(ram->getBreite(), ram->getHeight() - val);
+			ret = 1;
+		}
+		if (detailsK->zHintergrundBild() == einklappen)
+		{
+			if (ram->getHeight() > maxHö)
+			{
+				if (ram->getHeight() - val < maxHö)
+					ram->setSize(ram->getBreite(), maxHö);
+				else
+					ram->setSize(ram->getBreite(), ram->getHeight() - val);
+				ret = 1;
+			}
+			if (ram->getHeight() < maxHö)
+			{
+				if (ram->getHeight() + val > maxHö)
+					ram->setSize(ram->getBreite(), maxHö);
+				else
+					ram->setSize(ram->getBreite(), ram->getHeight() + val);
+				ret = 1;
+			}
+		}
+	}
+	return ret;
+}
+
+void AHSpielListeEintrag::doPublicMausEreignis(MausEreignis& me)
+{
+	bool meVera = 0;
+	bool meVeraTmp = 0;
+	if (me.mx < 0 || me.my < 0 || me.mx >= ram->getBreite() || me.my >= ram->getHeight())
+	{
+		meVeraTmp = me.verarbeitet;
+		me.verarbeitet = 1;
+		meVera = 1;
+	}
+	int vera = me.verarbeitet;
+	detailsK->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet && me.id == ME_RLinks)
+	{
+		if (detailsK->zHintergrundBild() == einklappen)
+			detailsK->setHintergrundBildZ(dynamic_cast<Bild*>(ausklappen->getThis()));
+		else
+			detailsK->setHintergrundBildZ(dynamic_cast<Bild*>(einklappen->getThis()));
+	}
+	vera = me.verarbeitet;
+	statistikK->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet && me.id == ME_RLinks)
+		aktion = 1;
+	vera = me.verarbeitet;
+	videoK->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet && me.id == ME_RLinks)
+		aktion = 2;
+	if (meVera)
+		me.verarbeitet = meVeraTmp;
+}
+
+void AHSpielListeEintrag::render(int yOff, Bild& zRObj)
+{
+	if (!zRObj.setDrawOptions(5, yOff, ram->getBreite(), ram->getHeight()))
+		return;
+	ram->render(zRObj);
+	if (ram->getHeight() > 20)
+		zRObj.drawLinieH(1, 20, ram->getBreite() - 2, ram->getFarbe());
+	if (!zRObj.setDrawOptions(1, 1, ram->getBreite() - 2, ram->getHeight() - 2))
+	{
+		zRObj.releaseDrawOptions();
+		return;
+	}
+	spielTF->render(zRObj);
+	karteTF->render(zRObj);
+	datumTF->render(zRObj);
+	statusTF->render(zRObj);
+	detailsK->render(zRObj);
+	dauerTF->render(zRObj);
+	spielStatusTF->render(zRObj);
+	gewinnerTF->render(zRObj);
+	sAnzahlTF->render(zRObj);
+	statistikK->render(zRObj);
+	videoK->render(zRObj);
+	liste->render(zRObj);
+	zRObj.releaseDrawOptions();
+	zRObj.releaseDrawOptions();
 }
 
 int AHSpielListeEintrag::getAktion()
 {
-    int ret = aktion;
-    aktion = 0;
-    return ret;
+	int ret = aktion;
+	aktion = 0;
+	return ret;
 }
 
 // constant
 int AHSpielListeEintrag::getKarteId() const
 {
-    return karteId;
+	return karteId;
 }
 
 int AHSpielListeEintrag::getHeight() const
 {
-    return ram->getHeight();
+	return ram->getHeight();
 }
 
 int AHSpielListeEintrag::getId() const
 {
-    return id;
+	return id;
 }
 
 int AHSpielListeEintrag::getListeBreite() const
 {
-    return liste->getBreite();
+	return liste->getBreite();
 }
 
-Text *AHSpielListeEintrag::zSpiel() const
+Text* AHSpielListeEintrag::zSpiel() const
 {
-    return spiel;
+	return spiel;
 }
 
-Text *AHSpielListeEintrag::zKarte() const
+Text* AHSpielListeEintrag::zKarte() const
 {
-    return karte;
+	return karte;
 }
 
-Text *AHSpielListeEintrag::zDatum() const
+Text* AHSpielListeEintrag::zDatum() const
 {
-    return datum;
+	return datum;
 }
 
-Text *AHSpielListeEintrag::zStatus() const
+Text* AHSpielListeEintrag::zStatus() const
 {
-    return status;
+	return status;
 }
 
 
 // Inhalt der AHSpielListe Klasse aus AccountHistorie.h
 // Konstruktor
 AHSpielListe::AHSpielListe()
-    : Zeichnung(),
-    ram( new LRahmen() ),
-    scroll( new VScrollBar() ),
-    members( new RCArray< AHSpielListeEintrag >() ),
-    sortSpalte( new Text( "Spiel" ) ),
-    sortAbsteigend( 0 )
+	: Zeichnung(),
+	ram(new LRahmen()),
+	scroll(new VScrollBar()),
+	members(new RCArray< AHSpielListeEintrag >()),
+	sortSpalte(new Text("Spiel")),
+	sortAbsteigend(0)
 {
-    pos = Punkt( 10, 40 );
-    ram->setFarbe( 0xFFFFFFFF );
-    ram->setRamenBreite( 1 );
-    ram->setSize( 760, 380 );
-    scroll->update( 0, 380 );
+	pos = Punkt(10, 40);
+	ram->setFarbe(0xFFFFFFFF);
+	ram->setRamenBreite(1);
+	ram->setSize(760, 380);
+	scroll->update(0, 380);
 }
 
 // Destruktor
 AHSpielListe::~AHSpielListe()
 {
-    ram->release();
-    scroll->release();
-    members->release();
-    sortSpalte->release();
+	ram->release();
+	scroll->release();
+	members->release();
+	sortSpalte->release();
 }
 
 // privat
-int AHSpielListe::getReihenfolge( int *arr )
-{
-    lockZeichnung();
-    int anz = members->getEintragAnzahl();
-    if( !anz )
-    {
-        unlockZeichnung();
-        return 0;
-    }
-    int ret = 0;
-    bool *fertig = new bool[ anz ];
-    ZeroMemory( fertig, anz );
-    for( int i = 0; i < anz; i++ )
-    {
-        int index = -1;
-        Text minMaxT;
-        Zeit minMaxZ;
-        for( int j = 0; j < anz; j++ )
-        {
-            AHSpielListeEintrag *tmp = members->z( j );
-            if( sortSpalte->istGleich( "Spiel" ) && !fertig[ j ] && ( index < 0 ||
-                                                                      ( sortAbsteigend && *tmp->zSpiel() > minMaxT ) || ( !sortAbsteigend && *tmp->zSpiel() < minMaxT ) ) )
-            {
-                minMaxT = tmp->zSpiel()->getText();
-                index = j;
-            }
-            else if( sortSpalte->istGleich( "Karte" ) && !fertig[ j ] && ( index < 0 ||
-                                                                           ( sortAbsteigend && *tmp->zKarte() > minMaxT ) || ( !sortAbsteigend && *tmp->zKarte() < minMaxT ) ) )
-            {
-                minMaxT = tmp->zKarte()->getText();
-                index = j;
-            }
-            else if( sortSpalte->istGleich( "Datum" ) && !fertig[ j ] && ( index < 0 ||
-                                                                           ( sortAbsteigend && minMaxZ.istKleiner( "y-m-d h:i", tmp->zDatum()->getText() ) ) ||
-                                                                           ( !sortAbsteigend && minMaxZ.istLater( "y-m-d h:i", tmp->zDatum()->getText() ) ) ) )
-            {
-                minMaxZ.setZeit( "y-m-d h:i", tmp->zDatum()->getText() );
-                index = j;
-            }
-            else if( sortSpalte->istGleich( "Status" ) && !fertig[ j ] && ( index < 0 ||
-                                                                            ( sortAbsteigend && *tmp->zStatus() > minMaxT ) || ( !sortAbsteigend && *tmp->zStatus() < minMaxT ) ) )
-            {
-                minMaxT = tmp->zStatus()->getText();
-                index = j;
-            }
-        }
-        if( index < 0 )
-            break;
-        fertig[ index ] = 1;
-        arr[ ret ] = index;
-        ret++;
-    }
-    delete[] fertig;
-    unlockZeichnung();
-    return ret;
+int AHSpielListe::getReihenfolge(int* arr)
+{
+	lockZeichnung();
+	int anz = members->getEintragAnzahl();
+	if (!anz)
+	{
+		unlockZeichnung();
+		return 0;
+	}
+	int ret = 0;
+	bool* fertig = new bool[anz];
+	ZeroMemory(fertig, anz);
+	for (int i = 0; i < anz; i++)
+	{
+		int index = -1;
+		Text minMaxT;
+		Zeit minMaxZ;
+		for (int j = 0; j < anz; j++)
+		{
+			AHSpielListeEintrag* tmp = members->z(j);
+			if (sortSpalte->istGleich("Spiel") && !fertig[j] && (index < 0 ||
+				(sortAbsteigend && *tmp->zSpiel() > minMaxT) || (!sortAbsteigend && *tmp->zSpiel() < minMaxT)))
+			{
+				minMaxT = tmp->zSpiel()->getText();
+				index = j;
+			}
+			else if (sortSpalte->istGleich("Karte") && !fertig[j] && (index < 0 ||
+				(sortAbsteigend && *tmp->zKarte() > minMaxT) || (!sortAbsteigend && *tmp->zKarte() < minMaxT)))
+			{
+				minMaxT = tmp->zKarte()->getText();
+				index = j;
+			}
+			else if (sortSpalte->istGleich("Datum") && !fertig[j] && (index < 0 ||
+				(sortAbsteigend && minMaxZ.istKleiner("y-m-d h:i", tmp->zDatum()->getText())) ||
+				(!sortAbsteigend && minMaxZ.istLater("y-m-d h:i", tmp->zDatum()->getText()))))
+			{
+				minMaxZ.setZeit("y-m-d h:i", tmp->zDatum()->getText());
+				index = j;
+			}
+			else if (sortSpalte->istGleich("Status") && !fertig[j] && (index < 0 ||
+				(sortAbsteigend && *tmp->zStatus() > minMaxT) || (!sortAbsteigend && *tmp->zStatus() < minMaxT)))
+			{
+				minMaxT = tmp->zStatus()->getText();
+				index = j;
+			}
+		}
+		if (index < 0)
+			break;
+		fertig[index] = 1;
+		arr[ret] = index;
+		ret++;
+	}
+	delete[] fertig;
+	unlockZeichnung();
+	return ret;
 }
 
 // nicht constant
-void AHSpielListe::setSortSpalte( char *sp )
+void AHSpielListe::setSortSpalte(const char* sp)
 {
-    lockZeichnung();
-    sortSpalte->setText( sp );
-    unlockZeichnung();
+	lockZeichnung();
+	sortSpalte->setText(sp);
+	unlockZeichnung();
 }
 
-void AHSpielListe::setSortRichtung( bool absteigend )
+void AHSpielListe::setSortRichtung(bool absteigend)
 {
-    sortAbsteigend = absteigend;
+	sortAbsteigend = absteigend;
 }
 
 void AHSpielListe::reset()
 {
-    lockZeichnung();
-    members->leeren();
-    unlockZeichnung();
-}
-
-void AHSpielListe::addSpiel( AHSpielListeEintrag *s )
-{
-    lockZeichnung();
-    members->add( s );
-    unlockZeichnung();
-}
-
-bool AHSpielListe::tick( double tickVal )
-{
-    bool ret = scroll->getRend();
-    lockZeichnung();
-    int anz = members->getEintragAnzahl();
-    for( int i = 0; i < anz; i++ )
-        ret |= members->z( i )->tick( tickVal );
-    unlockZeichnung();
-    return ret;
-}
-
-void AHSpielListe::doPublicMausEreignis( MausEreignis &me )
-{
-    bool vera = 0;
-    if( me.mx - pos.x <= 0 || me.mx - pos.x >= ram->getBreite() || me.my - pos.y <= 0 || me.my - pos.y >= ram->getHeight() )
-    {
-        vera = 1;
-        me.verarbeitet = 1;
-    }
-    int mx = me.mx, my = me.my;
-    me.mx -= pos.x;
-    me.my -= pos.y;
-    scroll->doMausMessage( ram->getBreite() - 16, 1, 15, ram->getHeight() - 2, me );
-    me.mx -= 5;
-    me.my -= 5 - scroll->getScroll();
-    lockZeichnung();
-    int anz = members->getEintragAnzahl();
-    int *rf = new int[ anz ];
-    int rfAnz = getReihenfolge( rf );
-    for( int i = 0; i < rfAnz; i++ )
-    {
-        members->z( rf[ i ] )->doPublicMausEreignis( me );
-        me.my -= members->z( rf[ i ] )->getHeight() + 5;
-    }
-    delete[] rf;
-    unlockZeichnung();
-    me.mx = mx, me.my = my;
-    if( vera )
-        me.verarbeitet = 0;
-}
-
-void AHSpielListe::render( Bild &zRObj )
-{
-    if( !zRObj.setDrawOptions( pos, ram->getSize() ) )
-        return;
-    ram->render( zRObj );
-    scroll->render( ram->getBreite() - 16, 1, 15, ram->getHeight() - 2, zRObj );
-    if( !zRObj.setDrawOptions( 1, 1, ram->getBreite() - 15, ram->getHeight() - 2 ) )
-    {
-        zRObj.releaseDrawOptions();
-        return;
-    }
-    int anzHö = 5;
-    lockZeichnung();
-    int anz = members->getEintragAnzahl();
-    int *rf = new int[ anz ];
-    int rfAnz = getReihenfolge( rf );
-    for( int i = 0; i < rfAnz; i++ )
-    {
-        members->z( rf[ i ] )->render( anzHö - scroll->getScroll(), zRObj );
-        anzHö += members->z( rf[ i ] )->getHeight() + 5;
-    }
-    delete[] rf;
-    unlockZeichnung();
-    scroll->update( anzHö, ram->getHeight() - 2 );
-    zRObj.releaseDrawOptions();
-    zRObj.releaseDrawOptions();
+	lockZeichnung();
+	members->leeren();
+	unlockZeichnung();
+}
+
+void AHSpielListe::addSpiel(AHSpielListeEintrag* s)
+{
+	lockZeichnung();
+	members->add(s);
+	unlockZeichnung();
+}
+
+bool AHSpielListe::tick(double tickVal)
+{
+	bool ret = scroll->getRend();
+	lockZeichnung();
+	int anz = members->getEintragAnzahl();
+	for (int i = 0; i < anz; i++)
+		ret |= members->z(i)->tick(tickVal);
+	unlockZeichnung();
+	return ret;
+}
+
+void AHSpielListe::doPublicMausEreignis(MausEreignis& me)
+{
+	bool vera = 0;
+	if (me.mx - pos.x <= 0 || me.mx - pos.x >= ram->getBreite() || me.my - pos.y <= 0 || me.my - pos.y >= ram->getHeight())
+	{
+		vera = 1;
+		me.verarbeitet = 1;
+	}
+	int mx = me.mx, my = me.my;
+	me.mx -= pos.x;
+	me.my -= pos.y;
+	scroll->doMausMessage(ram->getBreite() - 16, 1, 15, ram->getHeight() - 2, me);
+	me.mx -= 5;
+	me.my -= 5 - scroll->getScroll();
+	lockZeichnung();
+	int anz = members->getEintragAnzahl();
+	int* rf = new int[anz];
+	int rfAnz = getReihenfolge(rf);
+	for (int i = 0; i < rfAnz; i++)
+	{
+		members->z(rf[i])->doPublicMausEreignis(me);
+		me.my -= members->z(rf[i])->getHeight() + 5;
+	}
+	delete[] rf;
+	unlockZeichnung();
+	me.mx = mx, me.my = my;
+	if (vera)
+		me.verarbeitet = 0;
+}
+
+void AHSpielListe::render(Bild& zRObj)
+{
+	if (!zRObj.setDrawOptions(pos, ram->getSize()))
+		return;
+	ram->render(zRObj);
+	scroll->render(ram->getBreite() - 16, 1, 15, ram->getHeight() - 2, zRObj);
+	if (!zRObj.setDrawOptions(1, 1, ram->getBreite() - 15, ram->getHeight() - 2))
+	{
+		zRObj.releaseDrawOptions();
+		return;
+	}
+	int anzHö = 5;
+	lockZeichnung();
+	int anz = members->getEintragAnzahl();
+	int* rf = new int[anz];
+	int rfAnz = getReihenfolge(rf);
+	for (int i = 0; i < rfAnz; i++)
+	{
+		members->z(rf[i])->render(anzHö - scroll->getScroll(), zRObj);
+		anzHö += members->z(rf[i])->getHeight() + 5;
+	}
+	delete[] rf;
+	unlockZeichnung();
+	scroll->update(anzHö, ram->getHeight() - 2);
+	zRObj.releaseDrawOptions();
+	zRObj.releaseDrawOptions();
 }
 
 // constant
-int AHSpielListe::getAktion( int *spielId, int *karteId ) const
+int AHSpielListe::getAktion(int* spielId, int* karteId) const
 {
-    int anz = members->getEintragAnzahl();
-    for( int i = 0; i < anz; i++ )
-    {
-        int ak = members->z( i )->getAktion();
-        if( ak )
-        {
-            *spielId = members->z( i )->getId();
-            *karteId = members->z( i )->getKarteId();
-            return ak;
-        }
-    }
-    return 0;
+	int anz = members->getEintragAnzahl();
+	for (int i = 0; i < anz; i++)
+	{
+		int ak = members->z(i)->getAktion();
+		if (ak)
+		{
+			*spielId = members->z(i)->getId();
+			*karteId = members->z(i)->getKarteId();
+			return ak;
+		}
+	}
+	return 0;
 }
 
 
 // Inhalt der AccountHistorie Klasse aus AccountHistorie.h
 // Konstruktor
 AccountHistorie::AccountHistorie()
-    : Thread(),
-    historieF( initFenster( 810, 40, 780, 450, Fenster::Style::Sichtbar | Fenster::Style::Titel | Fenster::Style::TitelBuffered | Fenster::Style::Rahmen | Fenster::Style::Erlaubt, "Historie von " ) ),
-    sortSpalte( initAuswahlBox( 10, 10, 150, 20, ABSTYLE, { "Spiel", "Karte", "Datum", "Status" } ) ),
-    sortRichtung( initAuswahlBox( 170, 10, 150, 20, ABSTYLE, { "Aufwärts", "Abwärts" } ) ),
-    liste( new AHSpielListe() ),
-    statistik( new AHSpielStatistik() ),
-    video( new AHSpielVideo() ),
-    status( 0 ),
-    accId( 0 ),
-    animation( 0 ),
-    alpha( 255 ),
-    alpha2( 255 ),
-    alpha3( 255 ),
-    tickVal( 0 ),
-    rend( 0 )
-{
-    initToolTip( sortSpalte, "Wähle aus, nach welcher Spalte die\nTabelle sortiert werden soll." );
-    initToolTip( sortRichtung, "Wähle aus, ob Aufwärts oder Abwärts\nsortiert werden soll." );
-    historieF->addMember( dynamic_cast<Zeichnung *>( liste->getThis() ) );
-    historieF->addMember( dynamic_cast<Zeichnung *>( sortSpalte->getThis() ) );
-    historieF->addMember( dynamic_cast<Zeichnung *>( sortRichtung->getThis() ) );
-    historieF->setMausEreignis( _ret1ME );
+	: Thread(),
+	historieF(initFenster(810, 40, 780, 450, Fenster::Style::Sichtbar | Fenster::Style::Titel | Fenster::Style::TitelBuffered | Fenster::Style::Rahmen | Fenster::Style::Erlaubt, "Historie von ")),
+	sortSpalte(initAuswahlBox(10, 10, 150, 20, ABSTYLE, { "Spiel", "Karte", "Datum", "Status" })),
+	sortRichtung(initAuswahlBox(170, 10, 150, 20, ABSTYLE, { "Aufwärts", "Abwärts" })),
+	liste(new AHSpielListe()),
+	statistik(new AHSpielStatistik()),
+	video(new AHSpielVideo()),
+	status(0),
+	accId(0),
+	animation(0),
+	alpha(255),
+	alpha2(255),
+	alpha3(255),
+	tickVal(0),
+	rend(0)
+{
+	initToolTip(sortSpalte, "Wähle aus, nach welcher Spalte die\nTabelle sortiert werden soll.");
+	initToolTip(sortRichtung, "Wähle aus, ob Aufwärts oder Abwärts\nsortiert werden soll.");
+	historieF->addMember(dynamic_cast<Zeichnung*>(liste->getThis()));
+	historieF->addMember(dynamic_cast<Zeichnung*>(sortSpalte->getThis()));
+	historieF->addMember(dynamic_cast<Zeichnung*>(sortRichtung->getThis()));
+	historieF->setMausEreignis(_ret1ME);
 }
 
 // Destruktor
 AccountHistorie::~AccountHistorie()
 {
-    statistik->warteAufThread( 10000 );
-    statistik->ende();
-    video->warteAufThread( 10000 );
-    video->ende();
-    historieF->release();
-    sortSpalte->release();
-    sortRichtung->release();
-    statistik->release();
-    liste->release();
-    video->release();
+	statistik->warteAufThread(10000);
+	statistik->ende();
+	video->warteAufThread(10000);
+	video->ende();
+	historieF->release();
+	sortSpalte->release();
+	sortRichtung->release();
+	statistik->release();
+	liste->release();
+	video->release();
 }
 
 // nicht constant
 void AccountHistorie::reset()
 {
-    liste->reset();
-    statistik->reset();
-    video->reset();
-}
-
-void AccountHistorie::ladeStatistik( int accId )
-{
-    if( this->accId == accId )
-        return;
-    this->status = 0;
-    if( run )
-    {
-        warteAufThread( 1000 );
-        ende();
-    }
-    if( ( animation | 0x1 ) == animation )
-    {
-        animation |= 0x4;
-        this->accId = accId;
-        this->status = 1;
-        return;
-    }
-    if( this->accId )
-        reset();
-    this->accId = accId;
-    start();
-    this->status = 1;
+	liste->reset();
+	statistik->reset();
+	video->reset();
+}
+
+void AccountHistorie::ladeStatistik(int accId)
+{
+	if (this->accId == accId)
+		return;
+	this->status = 0;
+	if (run)
+	{
+		warteAufThread(1000);
+		ende();
+	}
+	if ((animation | 0x1) == animation)
+	{
+		animation |= 0x4;
+		this->accId = accId;
+		this->status = 1;
+		return;
+	}
+	if (this->accId)
+		reset();
+	this->accId = accId;
+	start();
+	this->status = 1;
 }
 
 void AccountHistorie::thread()
 {
-    Text *name = infoClient->getSpielerName( accId );
-    if( name )
-    {
-        name->insert( 0, "Historie von " );
-        historieF->setTitel( *name );
-        name->release();
-    }
-    Array< KSGClient::SpielHistorieDaten > *daten = infoClient->getSpielHistorieDaten( accId );
-    int anz = daten->getEintragAnzahl();
-    for( int i = 0; i < anz; i++ )
-    {
-        KSGClient::SpielHistorieDaten spiel = daten->get( i );
-        AHSpielListeEintrag *spielE = new AHSpielListeEintrag( spiel.id, spiel.karteId, spiel.spiel, spiel.karte,
-                                                               spiel.datum, spiel.status, spiel.dauer,
-                                                               spiel.spielStatus, spiel.gewinner, spiel.sAnzahl );
-        int tAnz = spiel.teams.getEintragAnzahl();
-        for( int j = 0; j < tAnz; j++ )
-        {
-            KSGClient::SpielHistorieTeamDaten team = spiel.teams.get( j );
-            AHSLETeamListeTeam *teamE = new AHSLETeamListeTeam( team.name, team.sAnzahl, team.status,
-                                                                team.farbe, spielE->getListeBreite() );
-            int sAnz = team.spieler.getEintragAnzahl();
-            for( int k = 0; k < sAnz; k++ )
-            {
-                KSGClient::SpielHistorieSpielerDaten spieler = team.spieler.get( k );
-                AHSLETeamListeSpieler *spielerE = new AHSLETeamListeSpieler( spieler.name, spieler.punkte, spieler.status,
-                                                                             spieler.farbe, spielE->getListeBreite() - 4 );
-                teamE->addSpieler( spielerE );
-            }
-            spielE->addTeam( teamE );
-        }
-        liste->addSpiel( spielE );
-    }
-    daten->release();
-    animation &= ~0x4;
-    status = 2;
-    run = 0;
-}
-
-void AccountHistorie::setSichtbar( bool sichtbar, bool nachRechts )
-{
-    if( sichtbar )
-    {
-        if( ( animation | 0x1 ) != animation || ( ( nachRechts && ( animation | 0x2 ) != animation ) || !nachRechts && ( animation | 0x2 ) == animation ) )
-        {
-            if( nachRechts )
-                historieF->setPosition( -810, 40 );
-            else
-                historieF->setPosition( 810, 40 );
-        }
-        animation |= 0x1;
-    }
-    else
-        animation &= ~0x1;
-    if( nachRechts )
-        animation |= 0x2;
-    else
-        animation &= ~0x2;
-}
-
-bool AccountHistorie::tick( double zeit )
-{
-    if( !statistik->istNochSichtbar() && !video->istNochSichtbar() )
-        rend |= historieF->tick( zeit );
-    rend |= statistik->tick( zeit );
-    rend |= video->tick( zeit );
-    tickVal += zeit;
-    int valA = (int)( tickVal * 150 );
-    int valB = (int)( tickVal * 500 );
-    tickVal -= valA / 150.0;
-    if( valA )
-    {
-        if( ( animation | 0x8 ) == animation && alpha2 )
-        {
-            if( alpha2 - valA <= 0 )
-            {
-                alpha2 = 0;
-                statistik->setSichtbar( 1 );
-            }
-            else
-                alpha2 -= valA;
-            rend = 1;
-        }
-        if( ( animation | 0x8 ) != animation && alpha2 != 255 )
-        {
-            if( alpha2 + valA >= 255 )
-                alpha2 = 255;
-            else
-                alpha2 += valA;
-            rend = 1;
-        }
-        if( ( animation | 0x10 ) == animation && alpha3 )
-        {
-            if( alpha3 - valA <= 0 )
-            {
-                alpha3 = 0;
-                video->setSichtbar( 1 );
-            }
-            else
-                alpha3 -= valA;
-            rend = 1;
-        }
-        if( ( animation | 0x10 ) != animation && alpha3 != 255 )
-        {
-            if( alpha3 + valA >= 255 )
-                alpha3 = 255;
-            else
-                alpha3 += valA;
-            rend = 1;
-        }
-        if( ( animation | 0x4 ) == animation && alpha )
-        {
-            if( alpha - valA <= 0 )
-                alpha = 0;
-            else
-                alpha -= valA;
-            rend = 1;
-            if( !alpha )
-            {
-                reset();
-                start();
-            }
-        }
-        if( ( animation | 0x4 ) != animation && alpha != 255 )
-        {
-            if( alpha + valA >= 255 )
-                alpha = 255;
-            else
-                alpha += valA;
-            rend = 1;
-        }
-    }
-    if( valB )
-    {
-        if( ( animation | 0x1 ) == animation )
-        { // Sichtbar
-            if( ( animation | 0x2 ) == animation )
-            { // Nach Rechts
-                if( historieF->getX() != 10 )
-                {
-                    if( historieF->getX() + valB > 10 )
-                        historieF->setPosition( 10, historieF->getY() );
-                    else
-                        historieF->setPosition( historieF->getX() + valB, historieF->getY() );
-                    statistik->setPosition( historieF->getX(), historieF->getY() );
-                    rend = 1;
-                }
-            }
-            else
-            { // Nach Links
-                if( historieF->getX() != 10 )
-                {
-                    if( historieF->getX() - valB < 10 )
-                        historieF->setPosition( 10, historieF->getY() );
-                    else
-                        historieF->setPosition( historieF->getX() - valB, historieF->getY() );
-                    statistik->setPosition( historieF->getX(), historieF->getY() );
-                    rend = 1;
-                }
-            }
-        }
-        else
-        { // Unsichtbar
-            if( ( animation | 0x2 ) == animation )
-            { // Nach Rechts
-                if( historieF->getX() != 810 )
-                {
-                    if( historieF->getX() + valB > 810 )
-                        historieF->setPosition( 810, historieF->getY() );
-                    else
-                        historieF->setPosition( historieF->getX() + valB, historieF->getY() );
-                    statistik->setPosition( historieF->getX(), historieF->getY() );
-                    rend = 1;
-                }
-            }
-            else
-            { // Nach Links
-                if( historieF->getX() != -810 )
-                {
-                    if( historieF->getX() - valB < -810 )
-                        historieF->setPosition( -810, historieF->getY() );
-                    else
-                        historieF->setPosition( historieF->getX() - valB, historieF->getY() );
-                    statistik->setPosition( historieF->getX(), historieF->getY() );
-                    rend = 1;
-                }
-            }
-        }
-    }
-    if( !alpha2 && !statistik->istNochSichtbar() )
-    {
-        animation &= ~0x8;
-        statistik->reset();
-    }
-    if( !alpha3 && !video->istNochSichtbar() )
-    {
-        animation &= ~0x10;
-        video->reset();
-    }
-    bool ret = rend;
-    rend = 0;
-    return ret;
-}
-
-void AccountHistorie::doPublicMausEreignis( MausEreignis &me )
-{
-    if( !statistik->istNochSichtbar() && !video->istNochSichtbar() && alpha == 255 && alpha2 == 255 && alpha3 == 255 )
-    {
-        int sortSpalteS = sortSpalte->getAuswahl();
-        int sortRichtungS = sortRichtung->getAuswahl();
-        historieF->doPublicMausEreignis( me );
-        if( sortSpalte->getAuswahl() != sortSpalteS )
-        {
-            liste->setSortSpalte( sortSpalte->zEintrag( sortSpalte->getAuswahl() )->zText()->getText() );
-            sortSpalte->einklappen();
-        }
-        if( sortRichtung->getAuswahl() != sortRichtungS )
-        {
-            liste->setSortRichtung( sortRichtung->getAuswahl() != 0 );
-            sortRichtung->einklappen();
-        }
-        int spielId = 0;
-        int karteId = 0;
-        int ak = liste->getAktion( &spielId, &karteId );
-        if( ak == 1 )
-        { // Statistik anzeigen
-            if( statistik->ladeDaten( spielId, karteId ) )
-                animation |= 0x8;
-        }
-        if( ak == 2 )
-        { // Aufzeichnung abspielen
-            if( video->ladeDaten( spielId, karteId ) )
-                animation |= 0x10;
-        }
-    }
-    if( statistik->istNochSichtbar() )
-        statistik->doPublicMausEreignis( me );
-}
-
-void AccountHistorie::doTastaturEreignis( TastaturEreignis &te )
-{
-    if( statistik->istNochSichtbar() )
-        statistik->doTastaturEreignis( te );
-}
-
-void AccountHistorie::render( Bild &zRObj )
-{
-    zRObj.setAlpha( alpha );
-    if( alpha2 && alpha3 )
-    {
-        zRObj.setAlpha( alpha2 );
-        zRObj.setAlpha( alpha3 );
-        historieF->render( zRObj );
-        zRObj.releaseAlpha();
-        zRObj.releaseAlpha();
-    }
-    if( statistik->istNochSichtbar() )
-        statistik->render( zRObj );
-    if( video->istNochSichtbar() )
-        video->render( zRObj );
-    zRObj.releaseAlpha();
+	Text* name = infoClient->getSpielerName(accId);
+	if (name)
+	{
+		name->insert(0, "Historie von ");
+		historieF->setTitel(*name);
+		name->release();
+	}
+	Array< KSGClient::SpielHistorieDaten >* daten = infoClient->getSpielHistorieDaten(accId);
+	int anz = daten->getEintragAnzahl();
+	for (int i = 0; i < anz; i++)
+	{
+		KSGClient::SpielHistorieDaten spiel = daten->get(i);
+		AHSpielListeEintrag* spielE = new AHSpielListeEintrag(spiel.id, spiel.karteId, spiel.spiel, spiel.karte,
+			spiel.datum, spiel.status, spiel.dauer,
+			spiel.spielStatus, spiel.gewinner, spiel.sAnzahl);
+		int tAnz = spiel.teams.getEintragAnzahl();
+		for (int j = 0; j < tAnz; j++)
+		{
+			KSGClient::SpielHistorieTeamDaten team = spiel.teams.get(j);
+			AHSLETeamListeTeam* teamE = new AHSLETeamListeTeam(team.name, team.sAnzahl, team.status,
+				team.farbe, spielE->getListeBreite());
+			int sAnz = team.spieler.getEintragAnzahl();
+			for (int k = 0; k < sAnz; k++)
+			{
+				KSGClient::SpielHistorieSpielerDaten spieler = team.spieler.get(k);
+				AHSLETeamListeSpieler* spielerE = new AHSLETeamListeSpieler(spieler.name, spieler.punkte, spieler.status,
+					spieler.farbe, spielE->getListeBreite() - 4);
+				teamE->addSpieler(spielerE);
+			}
+			spielE->addTeam(teamE);
+		}
+		liste->addSpiel(spielE);
+	}
+	daten->release();
+	animation &= ~0x4;
+	status = 2;
+	run = 0;
+}
+
+void AccountHistorie::setSichtbar(bool sichtbar, bool nachRechts)
+{
+	if (sichtbar)
+	{
+		if ((animation | 0x1) != animation || ((nachRechts && (animation | 0x2) != animation) || !nachRechts && (animation | 0x2) == animation))
+		{
+			if (nachRechts)
+				historieF->setPosition(-810, 40);
+			else
+				historieF->setPosition(810, 40);
+		}
+		animation |= 0x1;
+	}
+	else
+		animation &= ~0x1;
+	if (nachRechts)
+		animation |= 0x2;
+	else
+		animation &= ~0x2;
+}
+
+bool AccountHistorie::tick(double zeit)
+{
+	if (!statistik->istNochSichtbar() && !video->istNochSichtbar())
+		rend |= historieF->tick(zeit);
+	rend |= statistik->tick(zeit);
+	rend |= video->tick(zeit);
+	tickVal += zeit;
+	int valA = (int)(tickVal * 150);
+	int valB = (int)(tickVal * 500);
+	tickVal -= valA / 150.0;
+	if (valA)
+	{
+		if ((animation | 0x8) == animation && alpha2)
+		{
+			if (alpha2 - valA <= 0)
+			{
+				alpha2 = 0;
+				statistik->setSichtbar(1);
+			}
+			else
+				alpha2 -= valA;
+			rend = 1;
+		}
+		if ((animation | 0x8) != animation && alpha2 != 255)
+		{
+			if (alpha2 + valA >= 255)
+				alpha2 = 255;
+			else
+				alpha2 += valA;
+			rend = 1;
+		}
+		if ((animation | 0x10) == animation && alpha3)
+		{
+			if (alpha3 - valA <= 0)
+			{
+				alpha3 = 0;
+				video->setSichtbar(1);
+			}
+			else
+				alpha3 -= valA;
+			rend = 1;
+		}
+		if ((animation | 0x10) != animation && alpha3 != 255)
+		{
+			if (alpha3 + valA >= 255)
+				alpha3 = 255;
+			else
+				alpha3 += valA;
+			rend = 1;
+		}
+		if ((animation | 0x4) == animation && alpha)
+		{
+			if (alpha - valA <= 0)
+				alpha = 0;
+			else
+				alpha -= valA;
+			rend = 1;
+			if (!alpha)
+			{
+				reset();
+				start();
+			}
+		}
+		if ((animation | 0x4) != animation && alpha != 255)
+		{
+			if (alpha + valA >= 255)
+				alpha = 255;
+			else
+				alpha += valA;
+			rend = 1;
+		}
+	}
+	if (valB)
+	{
+		if ((animation | 0x1) == animation)
+		{ // Sichtbar
+			if ((animation | 0x2) == animation)
+			{ // Nach Rechts
+				if (historieF->getX() != 10)
+				{
+					if (historieF->getX() + valB > 10)
+						historieF->setPosition(10, historieF->getY());
+					else
+						historieF->setPosition(historieF->getX() + valB, historieF->getY());
+					statistik->setPosition(historieF->getX(), historieF->getY());
+					rend = 1;
+				}
+			}
+			else
+			{ // Nach Links
+				if (historieF->getX() != 10)
+				{
+					if (historieF->getX() - valB < 10)
+						historieF->setPosition(10, historieF->getY());
+					else
+						historieF->setPosition(historieF->getX() - valB, historieF->getY());
+					statistik->setPosition(historieF->getX(), historieF->getY());
+					rend = 1;
+				}
+			}
+		}
+		else
+		{ // Unsichtbar
+			if ((animation | 0x2) == animation)
+			{ // Nach Rechts
+				if (historieF->getX() != 810)
+				{
+					if (historieF->getX() + valB > 810)
+						historieF->setPosition(810, historieF->getY());
+					else
+						historieF->setPosition(historieF->getX() + valB, historieF->getY());
+					statistik->setPosition(historieF->getX(), historieF->getY());
+					rend = 1;
+				}
+			}
+			else
+			{ // Nach Links
+				if (historieF->getX() != -810)
+				{
+					if (historieF->getX() - valB < -810)
+						historieF->setPosition(-810, historieF->getY());
+					else
+						historieF->setPosition(historieF->getX() - valB, historieF->getY());
+					statistik->setPosition(historieF->getX(), historieF->getY());
+					rend = 1;
+				}
+			}
+		}
+	}
+	if (!alpha2 && !statistik->istNochSichtbar())
+	{
+		animation &= ~0x8;
+		statistik->reset();
+	}
+	if (!alpha3 && !video->istNochSichtbar())
+	{
+		animation &= ~0x10;
+		video->reset();
+	}
+	bool ret = rend;
+	rend = 0;
+	return ret;
+}
+
+void AccountHistorie::doPublicMausEreignis(MausEreignis& me)
+{
+	if (!statistik->istNochSichtbar() && !video->istNochSichtbar() && alpha == 255 && alpha2 == 255 && alpha3 == 255)
+	{
+		int sortSpalteS = sortSpalte->getAuswahl();
+		int sortRichtungS = sortRichtung->getAuswahl();
+		historieF->doPublicMausEreignis(me);
+		if (sortSpalte->getAuswahl() != sortSpalteS)
+		{
+			liste->setSortSpalte(sortSpalte->zEintrag(sortSpalte->getAuswahl())->zText()->getText());
+			sortSpalte->einklappen();
+		}
+		if (sortRichtung->getAuswahl() != sortRichtungS)
+		{
+			liste->setSortRichtung(sortRichtung->getAuswahl() != 0);
+			sortRichtung->einklappen();
+		}
+		int spielId = 0;
+		int karteId = 0;
+		int ak = liste->getAktion(&spielId, &karteId);
+		if (ak == 1)
+		{ // Statistik anzeigen
+			if (statistik->ladeDaten(spielId, karteId))
+				animation |= 0x8;
+		}
+		if (ak == 2)
+		{ // Aufzeichnung abspielen
+			if (video->ladeDaten(spielId, karteId))
+				animation |= 0x10;
+		}
+	}
+	if (statistik->istNochSichtbar())
+		statistik->doPublicMausEreignis(me);
+}
+
+void AccountHistorie::doTastaturEreignis(TastaturEreignis& te)
+{
+	if (statistik->istNochSichtbar())
+		statistik->doTastaturEreignis(te);
+}
+
+void AccountHistorie::render(Bild& zRObj)
+{
+	zRObj.setAlpha(alpha);
+	if (alpha2 && alpha3)
+	{
+		zRObj.setAlpha(alpha2);
+		zRObj.setAlpha(alpha3);
+		historieF->render(zRObj);
+		zRObj.releaseAlpha();
+		zRObj.releaseAlpha();
+	}
+	if (statistik->istNochSichtbar())
+		statistik->render(zRObj);
+	if (video->istNochSichtbar())
+		video->render(zRObj);
+	zRObj.releaseAlpha();
 }
 
 // constant
 int AccountHistorie::getStatus() const
 {
-    return status;
+	return status;
 }

+ 177 - 177
KSGClient/NachLogin/Account/Historie/AccountHistorie.h

@@ -17,235 +17,235 @@ using namespace Framework;
 class AHSpielStatistik : public Thread
 {
 private:
-    Fenster *statistikF;
-    Animation2D *laden;
-    Text *dllName;
-    HINSTANCE dllHandle;
-    AccountHistorieStatistikV *statistik;
-    double tickVal;
-    unsigned char alpha;
-    bool sichtbar;
-    int spielId;
+	Fenster* statistikF;
+	Animation2D* laden;
+	Text* dllName;
+	HINSTANCE dllHandle;
+	AccountHistorieStatistikV* statistik;
+	double tickVal;
+	unsigned char alpha;
+	bool sichtbar;
+	int spielId;
 
 public:
-    // Konstruktor
-    AHSpielStatistik();
-    // Destruktor
-    ~AHSpielStatistik();
-    // nicht constant
-    void reset();
-    bool ladeDaten( int spielId, int spielArtId );
-    void thread();
-    void setPosition( int x, int y );
-    void setSichtbar( bool sichtbar );
-    void doPublicMausEreignis( MausEreignis &me );
-    void doTastaturEreignis( TastaturEreignis &te );
-    bool tick( double tickVal );
-    void render( Bild &zRObj );
-    // constant
-    bool istNochSichtbar() const;
+	// Konstruktor
+	AHSpielStatistik();
+	// Destruktor
+	~AHSpielStatistik();
+	// nicht constant
+	void reset();
+	bool ladeDaten(int spielId, int spielArtId);
+	void thread();
+	void setPosition(int x, int y);
+	void setSichtbar(bool sichtbar);
+	void doPublicMausEreignis(MausEreignis& me);
+	void doTastaturEreignis(TastaturEreignis& te);
+	bool tick(double tickVal);
+	void render(Bild& zRObj);
+	// constant
+	bool istNochSichtbar() const;
 };
 
 class AHSpielVideo : public Thread
 {
 private:
-    Fenster *videoF;
-    Animation2D *laden;
-    Text *dllName;
-    HINSTANCE dllHandle;
-    AufzeichnungV *video;
-    double tickVal;
-    unsigned char alpha;
-    bool sichtbar;
-    int spielId;
+	Fenster* videoF;
+	Animation2D* laden;
+	Text* dllName;
+	HINSTANCE dllHandle;
+	AufzeichnungV* video;
+	double tickVal;
+	unsigned char alpha;
+	bool sichtbar;
+	int spielId;
 
 public:
-    // Konstruktor
-    AHSpielVideo();
-    // Destruktor
-    ~AHSpielVideo();
-    // nicht constant
-    void reset();
-    bool ladeDaten( int spielId, int spielArtId );
-    void thread();
-    void setSichtbar( bool sichtbar );
-    bool tick( double tickVal );
-    void render( Bild &zRObj );
-    // constant
-    bool istNochSichtbar() const;
+	// Konstruktor
+	AHSpielVideo();
+	// Destruktor
+	~AHSpielVideo();
+	// nicht constant
+	void reset();
+	bool ladeDaten(int spielId, int spielArtId);
+	void thread();
+	void setSichtbar(bool sichtbar);
+	bool tick(double tickVal);
+	void render(Bild& zRObj);
+	// constant
+	bool istNochSichtbar() const;
 };
 
 class AHSLETeamListeSpieler : public virtual ReferenceCounter
 {
 private:
-    TextFeld *nameTF;
-    TextFeld *punkteTF;
-    TextFeld *statusTF;
-    LRahmen *ram;
+	TextFeld* nameTF;
+	TextFeld* punkteTF;
+	TextFeld* statusTF;
+	LRahmen* ram;
 
 public:
-    // Konstruktor
-    AHSLETeamListeSpieler( char *name, int punkte, char *status, int farbe, int br );
-    // Destruktor
-    ~AHSLETeamListeSpieler();
-    // nicht constant
-    void render( int yOff, Bild &zRObj );
+	// Konstruktor
+	AHSLETeamListeSpieler(const char* name, int punkte, const char* status, int farbe, int br);
+	// Destruktor
+	~AHSLETeamListeSpieler();
+	// nicht constant
+	void render(int yOff, Bild& zRObj);
 };
 
 class AHSLETeamListeTeam : public virtual ReferenceCounter
 {
 private:
-    TextFeld *nameTF;
-    TextFeld *sAnzahlTF;
-    TextFeld *statusTF;
-    LRahmen *ram;
-    RCArray< AHSLETeamListeSpieler > *members;
+	TextFeld* nameTF;
+	TextFeld* sAnzahlTF;
+	TextFeld* statusTF;
+	LRahmen* ram;
+	RCArray< AHSLETeamListeSpieler >* members;
 
 public:
-    // Konstruktor
-    AHSLETeamListeTeam( char *name, int sAnz, char *status, int farbe, int br );
-    // Destruktor
-    ~AHSLETeamListeTeam();
-    // nicht constant
-    void addSpieler( AHSLETeamListeSpieler *s );
-    void render( int xOff, int yOff, Bild &zRObj );
-    // constant
-    int getHeight() const;
+	// Konstruktor
+	AHSLETeamListeTeam(const char* name, int sAnz, const char* status, int farbe, int br);
+	// Destruktor
+	~AHSLETeamListeTeam();
+	// nicht constant
+	void addSpieler(AHSLETeamListeSpieler* s);
+	void render(int xOff, int yOff, Bild& zRObj);
+	// constant
+	int getHeight() const;
 };
 
 class AHSLETeamListe : public virtual ReferenceCounter
 {
 private:
-    RCArray< AHSLETeamListeTeam > *members;
-    int xPos;
+	RCArray< AHSLETeamListeTeam >* members;
+	int xPos;
 
 public:
-    // Konstruktor
-    AHSLETeamListe( int xPos );
-    // Destruktor
-    ~AHSLETeamListe();
-    // nicht constant
-    void addTeam( AHSLETeamListeTeam *t );
-    void render( Bild &zRObj );
-    // constant
-    int getHeight() const;
-    int getBreite() const;
+	// Konstruktor
+	AHSLETeamListe(int xPos);
+	// Destruktor
+	~AHSLETeamListe();
+	// nicht constant
+	void addTeam(AHSLETeamListeTeam* t);
+	void render(Bild& zRObj);
+	// constant
+	int getHeight() const;
+	int getBreite() const;
 };
 
 class AHSpielListeEintrag : public virtual ReferenceCounter
 {
 private:
-    TextFeld *spielTF;
-    TextFeld *karteTF;
-    TextFeld *datumTF;
-    TextFeld *statusTF;
-    Text *spiel;
-    Text *karte;
-    Text *datum;
-    Text *status;
-    Knopf *detailsK;
-    TextFeld *dauerTF;
-    TextFeld *spielStatusTF;
-    TextFeld *gewinnerTF;
-    TextFeld *sAnzahlTF;
-    Knopf *statistikK;
-    Knopf *videoK;
-    AHSLETeamListe *liste;
-    LRahmen *ram;
-    Bild *einklappen;
-    Bild *ausklappen;
-    int karteId;
-    int id;
-    double tickVal;
-    int aktion;
-    int maxHö;
+	TextFeld* spielTF;
+	TextFeld* karteTF;
+	TextFeld* datumTF;
+	TextFeld* statusTF;
+	Text* spiel;
+	Text* karte;
+	Text* datum;
+	Text* status;
+	Knopf* detailsK;
+	TextFeld* dauerTF;
+	TextFeld* spielStatusTF;
+	TextFeld* gewinnerTF;
+	TextFeld* sAnzahlTF;
+	Knopf* statistikK;
+	Knopf* videoK;
+	AHSLETeamListe* liste;
+	LRahmen* ram;
+	Bild* einklappen;
+	Bild* ausklappen;
+	int karteId;
+	int id;
+	double tickVal;
+	int aktion;
+	int maxHö;
 
 public:
-    // Konstruktor
-    AHSpielListeEintrag( int id, int karteId, char *spiel, char *karte, char *datum, char *status,
-                         char *dauer, char *spielStatus, char *gewinner, int sAnzahl );
-    // Destruktor
-    ~AHSpielListeEintrag();
-    // nicht constant
-    void addTeam( AHSLETeamListeTeam *t );
-    bool tick( double tickVal );
-    void doPublicMausEreignis( MausEreignis &me );
-    void render( int yOff, Bild &zRObj );
-    int getAktion();
-    // constant
-    int getKarteId() const;
-    int getHeight() const;
-    int getId() const;
-    int getListeBreite() const;
-    Text *zSpiel() const;
-    Text *zKarte() const;
-    Text *zDatum() const;
-    Text *zStatus() const;
+	// Konstruktor
+	AHSpielListeEintrag(int id, int karteId, const char* spiel, const char* karte, const char* datum, const char* status,
+		const char* dauer, const char* spielStatus, const char* gewinner, int sAnzahl);
+	// Destruktor
+	~AHSpielListeEintrag();
+	// nicht constant
+	void addTeam(AHSLETeamListeTeam* t);
+	bool tick(double tickVal);
+	void doPublicMausEreignis(MausEreignis& me);
+	void render(int yOff, Bild& zRObj);
+	int getAktion();
+	// constant
+	int getKarteId() const;
+	int getHeight() const;
+	int getId() const;
+	int getListeBreite() const;
+	Text* zSpiel() const;
+	Text* zKarte() const;
+	Text* zDatum() const;
+	Text* zStatus() const;
 };
 
 class AHSpielListe : public Zeichnung
 {
 private:
-    LRahmen *ram;
-    VScrollBar *scroll;
-    RCArray< AHSpielListeEintrag > *members;
-    Text *sortSpalte;
-    bool sortAbsteigend;
+	LRahmen* ram;
+	VScrollBar* scroll;
+	RCArray< AHSpielListeEintrag >* members;
+	Text* sortSpalte;
+	bool sortAbsteigend;
 
-    // privat
-    int getReihenfolge( int *arr );
+	// privat
+	int getReihenfolge(int* arr);
 
 public:
-    // Konstruktor
-    AHSpielListe();
-    // Destruktor
-    ~AHSpielListe();
-    // nicht constant
-    void setSortSpalte( char *sp );
-    void setSortRichtung( bool absteigend );
-    void reset();
-    void addSpiel( AHSpielListeEintrag *s );
-    bool tick( double tickVal ) override;
-    void doPublicMausEreignis( MausEreignis &me ) override;
-    void render( Bild &zRObj ) override;
-    // constant
-    int getAktion( int *spielId, int *karteId ) const;
+	// Konstruktor
+	AHSpielListe();
+	// Destruktor
+	~AHSpielListe();
+	// nicht constant
+	void setSortSpalte(const char* sp);
+	void setSortRichtung(bool absteigend);
+	void reset();
+	void addSpiel(AHSpielListeEintrag* s);
+	bool tick(double tickVal) override;
+	void doPublicMausEreignis(MausEreignis& me) override;
+	void render(Bild& zRObj) override;
+	// constant
+	int getAktion(int* spielId, int* karteId) const;
 };
 
 class AccountHistorie : public Thread
 {
 private:
-    Fenster *historieF;
-    AuswahlBox *sortSpalte;
-    AuswahlBox *sortRichtung;
-    AHSpielListe *liste;
-    AHSpielStatistik *statistik;
-    AHSpielVideo *video;
-    int status;
-    int accId;
-    int animation;
-    unsigned char alpha;
-    unsigned char alpha2;
-    unsigned char alpha3;
-    double tickVal;
-    bool rend;
+	Fenster* historieF;
+	AuswahlBox* sortSpalte;
+	AuswahlBox* sortRichtung;
+	AHSpielListe* liste;
+	AHSpielStatistik* statistik;
+	AHSpielVideo* video;
+	int status;
+	int accId;
+	int animation;
+	unsigned char alpha;
+	unsigned char alpha2;
+	unsigned char alpha3;
+	double tickVal;
+	bool rend;
 
 public:
-    // Konstruktor
-    AccountHistorie();
-    // Destruktor
-    ~AccountHistorie();
-    // nicht constant
-    void reset();
-    void ladeStatistik( int accId );
-    virtual void thread();
-    void setSichtbar( bool sichtbar, bool nachRechts );
-    bool tick( double zeit );
-    void doPublicMausEreignis( MausEreignis &me );
-    void doTastaturEreignis( TastaturEreignis &te );
-    void render( Bild &zRObj );
-    // constant
-    int getStatus() const;
+	// Konstruktor
+	AccountHistorie();
+	// Destruktor
+	~AccountHistorie();
+	// nicht constant
+	void reset();
+	void ladeStatistik(int accId);
+	virtual void thread();
+	void setSichtbar(bool sichtbar, bool nachRechts);
+	bool tick(double zeit);
+	void doPublicMausEreignis(MausEreignis& me);
+	void doTastaturEreignis(TastaturEreignis& te);
+	void render(Bild& zRObj);
+	// constant
+	int getStatus() const;
 };
 
 #endif

+ 934 - 934
KSGClient/NachLogin/Account/SpielPartner/AccountSpielPartner.cpp

@@ -10,1058 +10,1058 @@
 
 // Inhalt der AccountSPListeEintrag Klasse aus AccountSpielPartner.h
 // Konstruktor
-AccountSPListeEintrag::AccountSPListeEintrag( AccountSPListeEintragDaten *daten )
-    : ReferenceCounter(),
-    daten( daten ),
-    ram( new LRahmen() ),
-    members( new RCArray< AccountSPListeEintrag >() ),
-    name( initTextFeld( 5, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Name" ) ),
-    anzahl( initTextFeld( 110, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Spiele: " ) ),
-    prozent( initFBalken( 220, 0, 400, 20, FBalken::Style::normal ) ),
-    details( initKnopf( 580, 0, 20, 20, 0, "" ) ),
-    ausklappen( bilder->get( "data/client/bilder/account.ltdb/ausklappen.png" ) ),
-    einklappen( bilder->get( "data/client/bilder/account.ltdb/einklappen.png" ) ),
-    sortSpalte( new Text( "Name" ) ),
-    sortAbsteigend( 0 ),
-    tickVal( 0 ),
-    rend( 0 )
+AccountSPListeEintrag::AccountSPListeEintrag(AccountSPListeEintragDaten* daten)
+	: ReferenceCounter(),
+	daten(daten),
+	ram(new LRahmen()),
+	members(new RCArray< AccountSPListeEintrag >()),
+	name(initTextFeld(5, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Name")),
+	anzahl(initTextFeld(110, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Spiele: ")),
+	prozent(initFBalken(220, 0, 400, 20, FBalken::Style::normal)),
+	details(initKnopf(580, 0, 20, 20, 0, "")),
+	ausklappen(bilder->get("data/client/bilder/account.ltdb/ausklappen.png")),
+	einklappen(bilder->get("data/client/bilder/account.ltdb/einklappen.png")),
+	sortSpalte(new Text("Name")),
+	sortAbsteigend(0),
+	tickVal(0),
+	rend(0)
 {
-    details->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer );
-    details->setHintergrundBildZ( dynamic_cast<Bild *>( ausklappen->getThis() ) );
-    initToolTip( details, "Details anzeigen." );
-    ram->setFarbe( 0xFFFFFFFF );
-    ram->setRamenBreite( 1 );
-    ram->setSize( 0, 20 );
-    if( daten->name )
-        name->setText( daten->name->getText() );
-    anzahl->zText()->append( daten->anzahl );
-    TextRenderer rd( dynamic_cast<Schrift *>( uiFactory.initParam.schrift->getThis() ) );
-    rd.setSchriftSize( 12 );
-    name->setSize( rd.getTextBreite( name->zText()->getText() ) + 5, name->getHeight() );
-    anzahl->setPosition( ( name->getX() + name->getBreite() + 10 ) < 100 ? 100 : ( name->getX() + name->getBreite() + 10 ), anzahl->getY() );
-    anzahl->setSize( rd.getTextBreite( anzahl->zText()->getText() ) + 5, anzahl->getHeight() );
-    prozent->setPosition( ( anzahl->getX() + anzahl->getBreite() + 10 ) < 200 ? 200 : ( anzahl->getX() + anzahl->getBreite() + 10 ), prozent->getY() );
-    prozent->setAktionAnzahl( 100 );
-    prozent->aktionPlus( daten->prozent );
+	details->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer);
+	details->setHintergrundBildZ(dynamic_cast<Bild*>(ausklappen->getThis()));
+	initToolTip(details, "Details anzeigen.");
+	ram->setFarbe(0xFFFFFFFF);
+	ram->setRamenBreite(1);
+	ram->setSize(0, 20);
+	if (daten->name)
+		name->setText(daten->name->getText());
+	anzahl->zText()->append(daten->anzahl);
+	TextRenderer rd(dynamic_cast<Schrift*>(uiFactory.initParam.schrift->getThis()));
+	rd.setSchriftSize(12);
+	name->setSize(rd.getTextBreite(name->zText()->getText()) + 5, name->getHeight());
+	anzahl->setPosition((name->getX() + name->getBreite() + 10) < 100 ? 100 : (name->getX() + name->getBreite() + 10), anzahl->getY());
+	anzahl->setSize(rd.getTextBreite(anzahl->zText()->getText()) + 5, anzahl->getHeight());
+	prozent->setPosition((anzahl->getX() + anzahl->getBreite() + 10) < 200 ? 200 : (anzahl->getX() + anzahl->getBreite() + 10), prozent->getY());
+	prozent->setAktionAnzahl(100);
+	prozent->aktionPlus(daten->prozent);
 }
 
 // Destruktor
 AccountSPListeEintrag::~AccountSPListeEintrag()
 {
-    ram->release();
-    members->release();
-    name->release();
-    anzahl->release();
-    prozent->release();
-    details->release();
-    ausklappen->release();
-    einklappen->release();
-    sortSpalte->release();
-    daten->name->release();
-    delete daten;
+	ram->release();
+	members->release();
+	name->release();
+	anzahl->release();
+	prozent->release();
+	details->release();
+	ausklappen->release();
+	einklappen->release();
+	sortSpalte->release();
+	daten->name->release();
+	delete daten;
 }
 
 // privat
-int AccountSPListeEintrag::getReihenfolge( int *arr )
+int AccountSPListeEintrag::getReihenfolge(int* arr)
 {
-    int anz = members->getEintragAnzahl();
-    if( !anz || !HATSTYLE( ASPLEDStyle::Ausklappbar ) )
-        return 0;
-    int ret = 0;
-    bool *fertig = new bool[ anz ];
-    ZeroMemory( fertig, anz );
-    for( int i = 0; i < anz; i++ )
-    {
-        int index = -1;
-        int minMax = 0;
-        Text minMaxT;
-        for( int j = 0; j < anz; j++ )
-        {
-            AccountSPListeEintrag *tmp = members->z( j );
-            if( sortSpalte->istGleich( "Name" ) && !fertig[ j ] && ( index < 0 ||
-                                                                     ( sortAbsteigend && *tmp->zDaten()->name > minMaxT ) || ( !sortAbsteigend && *tmp->zDaten()->name < minMaxT ) ) )
-            {
-                minMaxT = tmp->zDaten()->name->getText();
-                index = j;
-            }
-            else if( sortSpalte->istGleich( "Spiele" ) && !fertig[ j ] && ( index < 0 ||
-                                                                            ( sortAbsteigend && tmp->zDaten()->anzahl > minMax ) || ( !sortAbsteigend && tmp->zDaten()->anzahl < minMax ) ) )
-            {
-                minMax = tmp->zDaten()->anzahl;
-                index = j;
-            }
-            else if( sortSpalte->istGleich( "Prozent" ) && !fertig[ j ] && ( index < 0 ||
-                                                                             ( sortAbsteigend && tmp->zDaten()->prozent > minMax ) || ( !sortAbsteigend && tmp->zDaten()->prozent < minMax ) ) )
-            {
-                minMax = tmp->zDaten()->prozent;
-                index = j;
-            }
-        }
-        if( index < 0 )
-            break;
-        fertig[ index ] = 1;
-        arr[ ret ] = index;
-        ret++;
-    }
-    delete[] fertig;
-    return ret;
+	int anz = members->getEintragAnzahl();
+	if (!anz || !HATSTYLE(ASPLEDStyle::Ausklappbar))
+		return 0;
+	int ret = 0;
+	bool* fertig = new bool[anz];
+	ZeroMemory(fertig, anz);
+	for (int i = 0; i < anz; i++)
+	{
+		int index = -1;
+		int minMax = 0;
+		Text minMaxT;
+		for (int j = 0; j < anz; j++)
+		{
+			AccountSPListeEintrag* tmp = members->z(j);
+			if (sortSpalte->istGleich("Name") && !fertig[j] && (index < 0 ||
+				(sortAbsteigend && *tmp->zDaten()->name > minMaxT) || (!sortAbsteigend && *tmp->zDaten()->name < minMaxT)))
+			{
+				minMaxT = tmp->zDaten()->name->getText();
+				index = j;
+			}
+			else if (sortSpalte->istGleich("Spiele") && !fertig[j] && (index < 0 ||
+				(sortAbsteigend && tmp->zDaten()->anzahl > minMax) || (!sortAbsteigend && tmp->zDaten()->anzahl < minMax)))
+			{
+				minMax = tmp->zDaten()->anzahl;
+				index = j;
+			}
+			else if (sortSpalte->istGleich("Prozent") && !fertig[j] && (index < 0 ||
+				(sortAbsteigend && tmp->zDaten()->prozent > minMax) || (!sortAbsteigend && tmp->zDaten()->prozent < minMax)))
+			{
+				minMax = tmp->zDaten()->prozent;
+				index = j;
+			}
+		}
+		if (index < 0)
+			break;
+		fertig[index] = 1;
+		arr[ret] = index;
+		ret++;
+	}
+	delete[] fertig;
+	return ret;
 }
 
 // nicht constant
-void AccountSPListeEintrag::addMember( AccountSPListeEintrag *e )
+void AccountSPListeEintrag::addMember(AccountSPListeEintrag* e)
 {
-    members->add( e );
-    rend = 1;
+	members->add(e);
+	rend = 1;
 }
 
-void AccountSPListeEintrag::setSortSpalte( char *sp )
+void AccountSPListeEintrag::setSortSpalte(const char* sp)
 {
-    sortSpalte->setText( sp );
-    if( HATSTYLE( ASPLEDStyle::Ausklappbar ) )
-    {
-        int anz = members->getEintragAnzahl();
-        for( int i = 0; i < anz; i++ )
-            members->z( i )->setSortSpalte( sp );
-    }
-    rend = 1;
+	sortSpalte->setText(sp);
+	if (HATSTYLE(ASPLEDStyle::Ausklappbar))
+	{
+		int anz = members->getEintragAnzahl();
+		for (int i = 0; i < anz; i++)
+			members->z(i)->setSortSpalte(sp);
+	}
+	rend = 1;
 }
 
-void AccountSPListeEintrag::setSortRichtung( bool absteigend )
+void AccountSPListeEintrag::setSortRichtung(bool absteigend)
 {
-    sortAbsteigend = absteigend;
-    if( HATSTYLE( ASPLEDStyle::Ausklappbar ) )
-    {
-        int anz = members->getEintragAnzahl();
-        for( int i = 0; i < anz; i++ )
-            members->z( i )->setSortRichtung( absteigend );
-    }
-    rend = 1;
+	sortAbsteigend = absteigend;
+	if (HATSTYLE(ASPLEDStyle::Ausklappbar))
+	{
+		int anz = members->getEintragAnzahl();
+		for (int i = 0; i < anz; i++)
+			members->z(i)->setSortRichtung(absteigend);
+	}
+	rend = 1;
 }
 
-bool AccountSPListeEintrag::tick( double tickVal )
+bool AccountSPListeEintrag::tick(double tickVal)
 {
-    rend |= details->tick( tickVal );
-    int anz = members->getEintragAnzahl();
-    for( int i = 0; i < anz; i++ )
-        rend |= members->z( i )->tick( tickVal );
-    this->tickVal += tickVal * 150;
-    int val = (int)this->tickVal;
-    this->tickVal -= val;
-    if( val )
-    {
-        if( details->zHintergrundBild() == ausklappen && ram->getHeight() != 20 )
-        {
-            if( ram->getHeight() - val < 20 )
-                ram->setSize( ram->getBreite(), 20 );
-            else
-                ram->setSize( ram->getBreite(), ram->getHeight() - val );
-            rend = 1;
-        }
-        if( details->zHintergrundBild() == einklappen )
-        {
-            int maxHö = 20;
-            for( int i = 0; i < anz; i++ )
-                maxHö += 5 + members->z( i )->getHeight();
-            if( maxHö > 20 )
-                maxHö += 5;
-            if( ram->getHeight() > maxHö )
-            {
-                if( ram->getHeight() - val < maxHö )
-                    ram->setSize( ram->getBreite(), maxHö );
-                else
-                    ram->setSize( ram->getBreite(), ram->getHeight() - val );
-                rend = 1;
-            }
-            if( ram->getHeight() < maxHö )
-            {
-                if( ram->getHeight() + val > maxHö )
-                    ram->setSize( ram->getBreite(), maxHö );
-                else
-                    ram->setSize( ram->getBreite(), ram->getHeight() + val );
-                rend = 1;
-            }
-        }
-    }
-    bool ret = rend;
-    rend = 0;
-    return ret;
+	rend |= details->tick(tickVal);
+	int anz = members->getEintragAnzahl();
+	for (int i = 0; i < anz; i++)
+		rend |= members->z(i)->tick(tickVal);
+	this->tickVal += tickVal * 150;
+	int val = (int)this->tickVal;
+	this->tickVal -= val;
+	if (val)
+	{
+		if (details->zHintergrundBild() == ausklappen && ram->getHeight() != 20)
+		{
+			if (ram->getHeight() - val < 20)
+				ram->setSize(ram->getBreite(), 20);
+			else
+				ram->setSize(ram->getBreite(), ram->getHeight() - val);
+			rend = 1;
+		}
+		if (details->zHintergrundBild() == einklappen)
+		{
+			int maxHö = 20;
+			for (int i = 0; i < anz; i++)
+				maxHö += 5 + members->z(i)->getHeight();
+			if (maxHö > 20)
+				maxHö += 5;
+			if (ram->getHeight() > maxHö)
+			{
+				if (ram->getHeight() - val < maxHö)
+					ram->setSize(ram->getBreite(), maxHö);
+				else
+					ram->setSize(ram->getBreite(), ram->getHeight() - val);
+				rend = 1;
+			}
+			if (ram->getHeight() < maxHö)
+			{
+				if (ram->getHeight() + val > maxHö)
+					ram->setSize(ram->getBreite(), maxHö);
+				else
+					ram->setSize(ram->getBreite(), ram->getHeight() + val);
+				rend = 1;
+			}
+		}
+	}
+	bool ret = rend;
+	rend = 0;
+	return ret;
 }
 
-void AccountSPListeEintrag::doPublicMausEreignis( MausEreignis &me )
+void AccountSPListeEintrag::doPublicMausEreignis(MausEreignis& me)
 {
-    int mx = me.mx;
-    int my = me.my;
-    bool vera = 0;
-    if( me.mx < 0 || me.my < 0 || me.mx > ram->getBreite() || me.my > ram->getHeight() )
-    {
-        vera = 1;
-        me.verarbeitet = 1;
-    }
-    if( HATSTYLE( ASPLEDStyle::Ausklappbar ) )
-    {
-        bool ok = me.verarbeitet;
-        details->doPublicMausEreignis( me );
-        if( !ok && me.verarbeitet && me.id == ME_RLinks )
-        {
-            if( details->zHintergrundBild() == ausklappen )
-            {
-                details->setHintergrundBildZ( dynamic_cast<Bild *>( einklappen->getThis() ) );
-                // TODO: details->zToolTip()->setText( "Karten verbergen." );
-            }
-            else
-            {
-                details->setHintergrundBildZ( dynamic_cast<Bild *>( ausklappen->getThis() ) );
-                // TODO: details->zToolTip()->setText( "Karten anzeigen." );
-            }
-        }
-    }
-    if( ram->getHeight() > 20 )
-    {
-        int anz = members->getEintragAnzahl();
-        int *rf = new int[ anz ];
-        int rfAnz = getReihenfolge( rf );
-        me.my -= 25;
-        for( int i = 0; i < rfAnz; i++ )
-        {
-            members->z( rf[ i ] )->doPublicMausEreignis( me );
-            me.my -= members->z( rf[ i ] )->getHeight() + 5;
-        }
-        delete[] rf;
-    }
-    me.mx = mx;
-    me.my = my;
-    if( vera )
-        me.verarbeitet = 0;
+	int mx = me.mx;
+	int my = me.my;
+	bool vera = 0;
+	if (me.mx < 0 || me.my < 0 || me.mx > ram->getBreite() || me.my > ram->getHeight())
+	{
+		vera = 1;
+		me.verarbeitet = 1;
+	}
+	if (HATSTYLE(ASPLEDStyle::Ausklappbar))
+	{
+		bool ok = me.verarbeitet;
+		details->doPublicMausEreignis(me);
+		if (!ok && me.verarbeitet && me.id == ME_RLinks)
+		{
+			if (details->zHintergrundBild() == ausklappen)
+			{
+				details->setHintergrundBildZ(dynamic_cast<Bild*>(einklappen->getThis()));
+				// TODO: details->zToolTip()->setText( "Karten verbergen." );
+			}
+			else
+			{
+				details->setHintergrundBildZ(dynamic_cast<Bild*>(ausklappen->getThis()));
+				// TODO: details->zToolTip()->setText( "Karten anzeigen." );
+			}
+		}
+	}
+	if (ram->getHeight() > 20)
+	{
+		int anz = members->getEintragAnzahl();
+		int* rf = new int[anz];
+		int rfAnz = getReihenfolge(rf);
+		me.my -= 25;
+		for (int i = 0; i < rfAnz; i++)
+		{
+			members->z(rf[i])->doPublicMausEreignis(me);
+			me.my -= members->z(rf[i])->getHeight() + 5;
+		}
+		delete[] rf;
+	}
+	me.mx = mx;
+	me.my = my;
+	if (vera)
+		me.verarbeitet = 0;
 }
 
-void AccountSPListeEintrag::render( int xOff, int yOff, int breite, Bild &zRObj )
+void AccountSPListeEintrag::render(int xOff, int yOff, int breite, Bild& zRObj)
 {
-    ram->setSize( breite, ram->getHeight() );
-    details->setPosition( ram->getBreite() - 20, details->getY() );
-    if( !zRObj.setDrawOptions( xOff, yOff, breite, ram->getHeight() ) )
-        return;
-    name->render( zRObj );
-    anzahl->render( zRObj );
-    prozent->render( zRObj );
-    if( HATSTYLE( ASPLEDStyle::Ausklappbar ) )
-        details->render( zRObj );
-    ram->render( zRObj );
-    if( ram->getHeight() > 20 )
-    {
-        zRObj.drawLinieH( 0, 20, ram->getBreite(), ram->getFarbe() );
-        int anz = members->getEintragAnzahl();
-        int *rf = new int[ anz ];
-        int rfAnz = getReihenfolge( rf );
-        yOff = 0;
-        for( int i = 0; i < rfAnz; i++ )
-        {
-            members->z( rf[ i ] )->render( 5, yOff + 25, breite - 10, zRObj );
-            yOff += 5 + members->z( rf[ i ] )->getHeight();
-        }
-        delete[] rf;
-    }
-    zRObj.releaseDrawOptions();
+	ram->setSize(breite, ram->getHeight());
+	details->setPosition(ram->getBreite() - 20, details->getY());
+	if (!zRObj.setDrawOptions(xOff, yOff, breite, ram->getHeight()))
+		return;
+	name->render(zRObj);
+	anzahl->render(zRObj);
+	prozent->render(zRObj);
+	if (HATSTYLE(ASPLEDStyle::Ausklappbar))
+		details->render(zRObj);
+	ram->render(zRObj);
+	if (ram->getHeight() > 20)
+	{
+		zRObj.drawLinieH(0, 20, ram->getBreite(), ram->getFarbe());
+		int anz = members->getEintragAnzahl();
+		int* rf = new int[anz];
+		int rfAnz = getReihenfolge(rf);
+		yOff = 0;
+		for (int i = 0; i < rfAnz; i++)
+		{
+			members->z(rf[i])->render(5, yOff + 25, breite - 10, zRObj);
+			yOff += 5 + members->z(rf[i])->getHeight();
+		}
+		delete[] rf;
+	}
+	zRObj.releaseDrawOptions();
 }
 
 // constant
 int AccountSPListeEintrag::getHeight() const
 {
-    return ram->getHeight();
+	return ram->getHeight();
 }
 
-AccountSPListeEintragDaten *AccountSPListeEintrag::zDaten() const
+AccountSPListeEintragDaten* AccountSPListeEintrag::zDaten() const
 {
-    return daten;
+	return daten;
 }
 
 
 // Inhalt der AccountSPListe Klasse aus AccountSpielPartner.h
 // Konstruktor
 AccountSPListe::AccountSPListe()
-    : Zeichnung(),
-    ram( new LRahmen() ),
-    scroll( new VScrollBar() ),
-    skp( new RCArray< AccountSPListeEintrag >() ),
-    spk( new RCArray< AccountSPListeEintrag >() ),
-    psk( new RCArray< AccountSPListeEintrag >() ),
-    gruppierung( new Text( "Spieler/Spiel/Karte" ) ),
-    sortSpalte( new Text( "Name" ) ),
-    sortAbsteigend( 0 ),
-    rend( 0 )
+	: Zeichnung(),
+	ram(new LRahmen()),
+	scroll(new VScrollBar()),
+	skp(new RCArray< AccountSPListeEintrag >()),
+	spk(new RCArray< AccountSPListeEintrag >()),
+	psk(new RCArray< AccountSPListeEintrag >()),
+	gruppierung(new Text("Spieler/Spiel/Karte")),
+	sortSpalte(new Text("Name")),
+	sortAbsteigend(0),
+	rend(0)
 {
-    pos = Punkt( 10, 40 );
-    ram->setSize( 760, 380 );
-    ram->setFarbe( 0xFFFFFFFF );
-    ram->setRamenBreite( 1 );
+	pos = Punkt(10, 40);
+	ram->setSize(760, 380);
+	ram->setFarbe(0xFFFFFFFF);
+	ram->setRamenBreite(1);
 }
 
 // Destruktor
 AccountSPListe::~AccountSPListe()
 {
-    ram->release();
-    scroll->release();
-    skp->release();
-    spk->release();
-    psk->release();
-    gruppierung->release();
-    sortSpalte->release();
+	ram->release();
+	scroll->release();
+	skp->release();
+	spk->release();
+	psk->release();
+	gruppierung->release();
+	sortSpalte->release();
 }
 
 // privat
-int AccountSPListe::getReihenfolge( int *arr )
+int AccountSPListe::getReihenfolge(int* arr)
 {
-    RCArray< AccountSPListeEintrag > *members = 0;
-    if( gruppierung->istGleich( "Spiel/Karte/Spieler" ) )
-        members = skp;
-    if( gruppierung->istGleich( "Spiel/Spieler/Karte" ) )
-        members = spk;
-    if( gruppierung->istGleich( "Spieler/Spiel/Karte" ) )
-        members = psk;
-    if( !members )
-        return 0;
-    int anz = members->getEintragAnzahl();
-    if( !anz )
-        return 0;
-    int ret = 0;
-    bool *fertig = new bool[ anz ];
-    ZeroMemory( fertig, anz );
-    for( int i = 0; i < anz; i++ )
-    {
-        int index = -1;
-        int minMax = 0;
-        Text minMaxT;
-        for( int j = 0; j < anz; j++ )
-        {
-            AccountSPListeEintrag *tmp = members->z( j );
-            if( sortSpalte->istGleich( "Name" ) && !fertig[ j ] && ( index < 0 ||
-                                                                     ( sortAbsteigend && *tmp->zDaten()->name > minMaxT ) || ( !sortAbsteigend && *tmp->zDaten()->name < minMaxT ) ) )
-            {
-                minMaxT = tmp->zDaten()->name->getText();
-                index = j;
-            }
-            else if( sortSpalte->istGleich( "Spiele" ) && !fertig[ j ] && ( index < 0 ||
-                                                                            ( sortAbsteigend && tmp->zDaten()->anzahl > minMax ) || ( !sortAbsteigend && tmp->zDaten()->anzahl < minMax ) ) )
-            {
-                minMax = tmp->zDaten()->anzahl;
-                index = j;
-            }
-            else if( sortSpalte->istGleich( "Prozent" ) && !fertig[ j ] && ( index < 0 ||
-                                                                             ( sortAbsteigend && tmp->zDaten()->prozent > minMax ) || ( !sortAbsteigend && tmp->zDaten()->prozent < minMax ) ) )
-            {
-                minMax = tmp->zDaten()->prozent;
-                index = j;
-            }
-        }
-        if( index < 0 )
-            break;
-        fertig[ index ] = 1;
-        arr[ ret ] = index;
-        ret++;
-    }
-    delete[] fertig;
-    return ret;
+	RCArray< AccountSPListeEintrag >* members = 0;
+	if (gruppierung->istGleich("Spiel/Karte/Spieler"))
+		members = skp;
+	if (gruppierung->istGleich("Spiel/Spieler/Karte"))
+		members = spk;
+	if (gruppierung->istGleich("Spieler/Spiel/Karte"))
+		members = psk;
+	if (!members)
+		return 0;
+	int anz = members->getEintragAnzahl();
+	if (!anz)
+		return 0;
+	int ret = 0;
+	bool* fertig = new bool[anz];
+	ZeroMemory(fertig, anz);
+	for (int i = 0; i < anz; i++)
+	{
+		int index = -1;
+		int minMax = 0;
+		Text minMaxT;
+		for (int j = 0; j < anz; j++)
+		{
+			AccountSPListeEintrag* tmp = members->z(j);
+			if (sortSpalte->istGleich("Name") && !fertig[j] && (index < 0 ||
+				(sortAbsteigend && *tmp->zDaten()->name > minMaxT) || (!sortAbsteigend && *tmp->zDaten()->name < minMaxT)))
+			{
+				minMaxT = tmp->zDaten()->name->getText();
+				index = j;
+			}
+			else if (sortSpalte->istGleich("Spiele") && !fertig[j] && (index < 0 ||
+				(sortAbsteigend && tmp->zDaten()->anzahl > minMax) || (!sortAbsteigend && tmp->zDaten()->anzahl < minMax)))
+			{
+				minMax = tmp->zDaten()->anzahl;
+				index = j;
+			}
+			else if (sortSpalte->istGleich("Prozent") && !fertig[j] && (index < 0 ||
+				(sortAbsteigend && tmp->zDaten()->prozent > minMax) || (!sortAbsteigend && tmp->zDaten()->prozent < minMax)))
+			{
+				minMax = tmp->zDaten()->prozent;
+				index = j;
+			}
+		}
+		if (index < 0)
+			break;
+		fertig[index] = 1;
+		arr[ret] = index;
+		ret++;
+	}
+	delete[] fertig;
+	return ret;
 }
 
 // nicht constant
 void AccountSPListe::reset()
 {
-    lockZeichnung();
-    skp->leeren();
-    spk->leeren();
-    psk->leeren();
-    unlockZeichnung();
+	lockZeichnung();
+	skp->leeren();
+	spk->leeren();
+	psk->leeren();
+	unlockZeichnung();
 }
 
-void AccountSPListe::ladeDaten( int accId )
+void AccountSPListe::ladeDaten(int accId)
 {
-    Array< int > *spieler = new Array< int >();
-    Array< int > *karten = new Array< int >();
-    Array< int > *anzahl = new Array< int >();
-    if( infoClient->getSpielPartnerListe( accId, spieler, karten, anzahl ) )
-    {
-        int anz = spieler->getEintragAnzahl();
-        int spielerAnzahl = 0;
-        int spielArtAnzahl = 0;
-        int anzahlGesammt = 0;
-        Array< int > *spielerUnique = new Array< int >();
-        Array< int > *spielArt = new Array< int >();
-        for( int i = 0; i < anz; i++ )
-        { // Spiel Art Ids ermitteln
-            anzahlGesammt += anzahl->get( i );
-            if( spieler->hat( i ) && spielerUnique->getWertIndex( spieler->get( i ) ) < 0 )
-            {
-                spielerUnique->set( spieler->get( i ), spielerAnzahl );
-                spielerAnzahl++;
-            }
-            if( !spielArt->hat( i ) )
-            {
-                spielArtAnzahl++;
-                int id = infoClient->getSpielId( karten->get( i ) );
-                for( int j = i; j < anz; j++ )
-                {
-                    if( karten->get( j ) == karten->get( i ) )
-                        spielArt->set( id, j );
-                }
-            }
-        }
-        spielerUnique->release();
-        // Spiel/Karte/Spieler Tabelle initialisieren
-        Array< int > *spielArtVera = new Array< int >();
-        for( int i = 0; i < spielArtAnzahl; i++ )
-        { // Spiel Arten Einträge
-            int id = 0;
-            for( int j = 0; j < anz; j++ )
-            {
-                if( spielArtVera->getWertIndex( spielArt->get( j ) ) < 0 )
-                {
-                    id = spielArt->get( j );
-                    spielArtVera->add( id );
-                    break;
-                }
-            }
-            if( !id )
-                break;
-            AccountSPListeEintragDaten *tmp = new AccountSPListeEintragDaten();
-            tmp->id = id;
-            tmp->name = infoClient->getSpielName( tmp->id );
-            tmp->style = ASPLEDStyle::SpielArt | ASPLEDStyle::Ausklappbar;
-            tmp->anzahl = 0;
-            for( int j = 0; j < anz; j++ )
-            {
-                if( spielArt->get( j ) == tmp->id )
-                    tmp->anzahl += anzahl->get( j );
-            }
-            tmp->prozent = tmp->anzahl * 100 / anzahlGesammt;
-            AccountSPListeEintrag *spielE = new AccountSPListeEintrag( tmp );
-            skp->add( spielE );
-            Array< int > *kartenVera = new Array< int >();
-            for( int j = 0; j < anz; j++ )
-            { // Karten Einträge
-                int id = 0;
-                for( int k = 0; k < anz; k++ )
-                {
-                    if( spielArt->get( k ) == tmp->id )
-                    {
-                        if( kartenVera->getWertIndex( karten->get( k ) ) < 0 )
-                        {
-                            id = karten->get( k );
-                            kartenVera->add( id );
-                            break;
-                        }
-                    }
-                }
-                if( !id )
-                    break;
-                AccountSPListeEintragDaten *tmpk = new AccountSPListeEintragDaten();
-                tmpk->id = id;
-                tmpk->name = infoClient->getKarteName( tmpk->id );
-                tmpk->style = ASPLEDStyle::Ausklappbar | ASPLEDStyle::Karte;
-                tmpk->anzahl = 0;
-                for( int k = 0; k < anz; k++ )
-                {
-                    if( karten->get( k ) == tmpk->id )
-                        tmpk->anzahl += anzahl->get( k );
-                }
-                tmpk->prozent = tmpk->anzahl * 100 / tmp->anzahl;
-                AccountSPListeEintrag *karteE = new AccountSPListeEintrag( tmpk );
-                spielE->addMember( karteE );
-                Array< int > *spielerVera = new Array< int >();
-                for( int k = 0; k < anz; k++ )
-                { // Spieler Einträge
-                    int id = 0;
-                    int gAnz = 0;
-                    for( int l = 0; l < anz; l++ )
-                    {
-                        if( karten->get( l ) == tmpk->id )
-                        {
-                            if( spielerVera->getWertIndex( spieler->get( l ) ) < 0 )
-                            {
-                                id = spieler->get( l );
-                                spielerVera->add( id );
-                                gAnz = anzahl->get( l );
-                                break;
-                            }
-                        }
-                    }
-                    if( !id )
-                        break;
-                    AccountSPListeEintragDaten *tmps = new AccountSPListeEintragDaten();
-                    tmps->id = id;
-                    tmps->name = infoClient->getSpielerName( tmps->id );
-                    tmps->style = ASPLEDStyle::Spieler;
-                    tmps->anzahl = gAnz;
-                    tmps->prozent = tmps->anzahl * 100 / tmpk->anzahl;
-                    karteE->addMember( new AccountSPListeEintrag( tmps ) );
-                }
-                spielerVera->release();
-            }
-            kartenVera->release();
-        }
-        spielArtVera->leeren();
-        // Spiel/Spieler/Karte Tabelle initialisieren
-        for( int i = 0; i < spielArtAnzahl; i++ )
-        { // Spiel Arten Einträge
-            int id = 0;
-            for( int j = 0; j < anz; j++ )
-            {
-                if( spielArtVera->getWertIndex( spielArt->get( j ) ) < 0 )
-                {
-                    id = spielArt->get( j );
-                    spielArtVera->add( id );
-                    break;
-                }
-            }
-            if( !id )
-                break;
-            AccountSPListeEintragDaten *tmp = new AccountSPListeEintragDaten();
-            tmp->id = id;
-            tmp->name = infoClient->getSpielName( tmp->id );
-            tmp->style = ASPLEDStyle::SpielArt | ASPLEDStyle::Ausklappbar;
-            tmp->anzahl = 0;
-            for( int j = 0; j < anz; j++ )
-            {
-                if( spielArt->get( j ) == tmp->id )
-                    tmp->anzahl += anzahl->get( j );
-            }
-            tmp->prozent = tmp->anzahl * 100 / anzahlGesammt;
-            AccountSPListeEintrag *spielE = new AccountSPListeEintrag( tmp );
-            spk->add( spielE );
-            Array< int > *spielerVera = new Array< int >();
-            for( int j = 0; j < anz; j++ )
-            { // Spieler Einträge
-                int id = 0;
-                for( int k = 0; k < anz; k++ )
-                {
-                    if( spielArt->get( k ) == tmp->id )
-                    {
-                        if( spielerVera->getWertIndex( spieler->get( k ) ) < 0 )
-                        {
-                            id = spieler->get( k );
-                            spielerVera->add( id );
-                            break;
-                        }
-                    }
-                }
-                if( !id )
-                    break;
-                AccountSPListeEintragDaten *tmps = new AccountSPListeEintragDaten();
-                tmps->id = id;
-                tmps->name = infoClient->getSpielerName( tmps->id );
-                tmps->style = ASPLEDStyle::Ausklappbar | ASPLEDStyle::Spieler;
-                tmps->anzahl = 0;
-                for( int k = 0; k < anz; k++ )
-                {
-                    if( spieler->get( k ) == tmps->id && spielArt->get( k ) == tmp->id )
-                        tmps->anzahl += anzahl->get( k );
-                }
-                tmps->prozent = tmps->anzahl * 100 / tmp->anzahl;
-                AccountSPListeEintrag *spielerE = new AccountSPListeEintrag( tmps );
-                spielE->addMember( spielerE );
-                Array< int > *karteVera = new Array< int >();
-                for( int k = 0; k < anz; k++ )
-                { // Karten Einträge
-                    int id = 0;
-                    int gAnz = 0;
-                    for( int l = 0; l < anz; l++ )
-                    {
-                        if( spieler->get( l ) == tmps->id && spielArt->get( l ) == tmp->id )
-                        {
-                            if( karteVera->getWertIndex( karten->get( l ) ) < 0 )
-                            {
-                                id = karten->get( l );
-                                karteVera->add( id );
-                                gAnz = anzahl->get( l );
-                                break;
-                            }
-                        }
-                    }
-                    if( !id )
-                        break;
-                    AccountSPListeEintragDaten *tmpk = new AccountSPListeEintragDaten();
-                    tmpk->id = id;
-                    tmpk->name = infoClient->getKarteName( tmpk->id );
-                    tmpk->style = ASPLEDStyle::Karte;
-                    tmpk->anzahl = gAnz;
-                    tmpk->prozent = tmpk->anzahl * 100 / tmps->anzahl;
-                    spielerE->addMember( new AccountSPListeEintrag( tmpk ) );
-                }
-                karteVera->release();
-            }
-            spielerVera->release();
-        }
-        spielArtVera->release();
-        // Spieler/Spiel/Karte Tabelle initialisieren
-        Array< int > *spielerVera = new Array< int >();
-        for( int i = 0; i < spielerAnzahl; i++ )
-        { // Spieler Einträge
-            int id = 0;
-            for( int j = 0; j < anz; j++ )
-            {
-                if( spielerVera->getWertIndex( spieler->get( j ) ) < 0 )
-                {
-                    id = spieler->get( j );
-                    spielerVera->add( id );
-                    break;
-                }
-            }
-            if( !id )
-                break;
-            AccountSPListeEintragDaten *tmp = new AccountSPListeEintragDaten();
-            tmp->id = id;
-            tmp->name = infoClient->getSpielerName( tmp->id );
-            tmp->style = ASPLEDStyle::Spieler | ASPLEDStyle::Ausklappbar;
-            tmp->anzahl = 0;
-            for( int j = 0; j < anz; j++ )
-            {
-                if( spieler->get( j ) == tmp->id )
-                    tmp->anzahl += anzahl->get( j );
-            }
-            tmp->prozent = tmp->anzahl * 100 / anzahlGesammt;
-            AccountSPListeEintrag *spielerE = new AccountSPListeEintrag( tmp );
-            psk->add( spielerE );
-            Array< int > *spielVera = new Array< int >();
-            for( int j = 0; j < anz; j++ )
-            { // Spiel Einträge
-                int id = 0;
-                for( int k = 0; k < anz; k++ )
-                {
-                    if( spieler->get( k ) == tmp->id )
-                    {
-                        if( spielVera->getWertIndex( spielArt->get( k ) ) < 0 )
-                        {
-                            id = spielArt->get( k );
-                            spielVera->add( id );
-                            break;
-                        }
-                    }
-                }
-                if( !id )
-                    break;
-                AccountSPListeEintragDaten *tmps = new AccountSPListeEintragDaten();
-                tmps->id = id;
-                tmps->name = infoClient->getSpielName( tmps->id );
-                tmps->style = ASPLEDStyle::Ausklappbar | ASPLEDStyle::SpielArt;
-                tmps->anzahl = 0;
-                for( int k = 0; k < anz; k++ )
-                {
-                    if( spieler->get( k ) == tmp->id && spielArt->get( k ) == tmps->id )
-                        tmps->anzahl += anzahl->get( k );
-                }
-                tmps->prozent = tmps->anzahl * 100 / tmp->anzahl;
-                AccountSPListeEintrag *spielE = new AccountSPListeEintrag( tmps );
-                spielerE->addMember( spielE );
-                Array< int > *karteVera = new Array< int >();
-                for( int k = 0; k < anz; k++ )
-                { // Karte Einträge
-                    int id = 0;
-                    int gAnz = 0;
-                    for( int l = 0; l < anz; l++ )
-                    {
-                        if( spieler->get( l ) == tmp->id && spielArt->get( l ) == tmps->id )
-                        {
-                            if( karteVera->getWertIndex( karten->get( l ) ) < 0 )
-                            {
-                                id = karten->get( l );
-                                karteVera->add( id );
-                                gAnz = anzahl->get( l );
-                                break;
-                            }
-                        }
-                    }
-                    if( !id )
-                        break;
-                    AccountSPListeEintragDaten *tmpk = new AccountSPListeEintragDaten();
-                    tmpk->id = id;
-                    tmpk->name = infoClient->getKarteName( tmpk->id );
-                    tmpk->style = ASPLEDStyle::Karte;
-                    tmpk->anzahl = gAnz;
-                    tmpk->prozent = tmpk->anzahl * 100 / tmps->anzahl;
-                    spielE->addMember( new AccountSPListeEintrag( tmpk ) );
-                }
-                karteVera->release();
-            }
-            spielVera->release();
-        }
-        spielerVera->release();
-        spielArt->release();
-    }
-    else
-        nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( "Die Spielpartner dieses Spielers konnten nicht ermittelt werden." ), new Text( "Ok" ) );
-    spieler->release();
-    karten->release();
-    anzahl->release();
+	Array< int >* spieler = new Array< int >();
+	Array< int >* karten = new Array< int >();
+	Array< int >* anzahl = new Array< int >();
+	if (infoClient->getSpielPartnerListe(accId, spieler, karten, anzahl))
+	{
+		int anz = spieler->getEintragAnzahl();
+		int spielerAnzahl = 0;
+		int spielArtAnzahl = 0;
+		int anzahlGesammt = 0;
+		Array< int >* spielerUnique = new Array< int >();
+		Array< int >* spielArt = new Array< int >();
+		for (int i = 0; i < anz; i++)
+		{ // Spiel Art Ids ermitteln
+			anzahlGesammt += anzahl->get(i);
+			if (spieler->hat(i) && spielerUnique->getWertIndex(spieler->get(i)) < 0)
+			{
+				spielerUnique->set(spieler->get(i), spielerAnzahl);
+				spielerAnzahl++;
+			}
+			if (!spielArt->hat(i))
+			{
+				spielArtAnzahl++;
+				int id = infoClient->getSpielId(karten->get(i));
+				for (int j = i; j < anz; j++)
+				{
+					if (karten->get(j) == karten->get(i))
+						spielArt->set(id, j);
+				}
+			}
+		}
+		spielerUnique->release();
+		// Spiel/Karte/Spieler Tabelle initialisieren
+		Array< int >* spielArtVera = new Array< int >();
+		for (int i = 0; i < spielArtAnzahl; i++)
+		{ // Spiel Arten Einträge
+			int id = 0;
+			for (int j = 0; j < anz; j++)
+			{
+				if (spielArtVera->getWertIndex(spielArt->get(j)) < 0)
+				{
+					id = spielArt->get(j);
+					spielArtVera->add(id);
+					break;
+				}
+			}
+			if (!id)
+				break;
+			AccountSPListeEintragDaten* tmp = new AccountSPListeEintragDaten();
+			tmp->id = id;
+			tmp->name = infoClient->getSpielName(tmp->id);
+			tmp->style = ASPLEDStyle::SpielArt | ASPLEDStyle::Ausklappbar;
+			tmp->anzahl = 0;
+			for (int j = 0; j < anz; j++)
+			{
+				if (spielArt->get(j) == tmp->id)
+					tmp->anzahl += anzahl->get(j);
+			}
+			tmp->prozent = tmp->anzahl * 100 / anzahlGesammt;
+			AccountSPListeEintrag* spielE = new AccountSPListeEintrag(tmp);
+			skp->add(spielE);
+			Array< int >* kartenVera = new Array< int >();
+			for (int j = 0; j < anz; j++)
+			{ // Karten Einträge
+				int id = 0;
+				for (int k = 0; k < anz; k++)
+				{
+					if (spielArt->get(k) == tmp->id)
+					{
+						if (kartenVera->getWertIndex(karten->get(k)) < 0)
+						{
+							id = karten->get(k);
+							kartenVera->add(id);
+							break;
+						}
+					}
+				}
+				if (!id)
+					break;
+				AccountSPListeEintragDaten* tmpk = new AccountSPListeEintragDaten();
+				tmpk->id = id;
+				tmpk->name = infoClient->getKarteName(tmpk->id);
+				tmpk->style = ASPLEDStyle::Ausklappbar | ASPLEDStyle::Karte;
+				tmpk->anzahl = 0;
+				for (int k = 0; k < anz; k++)
+				{
+					if (karten->get(k) == tmpk->id)
+						tmpk->anzahl += anzahl->get(k);
+				}
+				tmpk->prozent = tmpk->anzahl * 100 / tmp->anzahl;
+				AccountSPListeEintrag* karteE = new AccountSPListeEintrag(tmpk);
+				spielE->addMember(karteE);
+				Array< int >* spielerVera = new Array< int >();
+				for (int k = 0; k < anz; k++)
+				{ // Spieler Einträge
+					int id = 0;
+					int gAnz = 0;
+					for (int l = 0; l < anz; l++)
+					{
+						if (karten->get(l) == tmpk->id)
+						{
+							if (spielerVera->getWertIndex(spieler->get(l)) < 0)
+							{
+								id = spieler->get(l);
+								spielerVera->add(id);
+								gAnz = anzahl->get(l);
+								break;
+							}
+						}
+					}
+					if (!id)
+						break;
+					AccountSPListeEintragDaten* tmps = new AccountSPListeEintragDaten();
+					tmps->id = id;
+					tmps->name = infoClient->getSpielerName(tmps->id);
+					tmps->style = ASPLEDStyle::Spieler;
+					tmps->anzahl = gAnz;
+					tmps->prozent = tmps->anzahl * 100 / tmpk->anzahl;
+					karteE->addMember(new AccountSPListeEintrag(tmps));
+				}
+				spielerVera->release();
+			}
+			kartenVera->release();
+		}
+		spielArtVera->leeren();
+		// Spiel/Spieler/Karte Tabelle initialisieren
+		for (int i = 0; i < spielArtAnzahl; i++)
+		{ // Spiel Arten Einträge
+			int id = 0;
+			for (int j = 0; j < anz; j++)
+			{
+				if (spielArtVera->getWertIndex(spielArt->get(j)) < 0)
+				{
+					id = spielArt->get(j);
+					spielArtVera->add(id);
+					break;
+				}
+			}
+			if (!id)
+				break;
+			AccountSPListeEintragDaten* tmp = new AccountSPListeEintragDaten();
+			tmp->id = id;
+			tmp->name = infoClient->getSpielName(tmp->id);
+			tmp->style = ASPLEDStyle::SpielArt | ASPLEDStyle::Ausklappbar;
+			tmp->anzahl = 0;
+			for (int j = 0; j < anz; j++)
+			{
+				if (spielArt->get(j) == tmp->id)
+					tmp->anzahl += anzahl->get(j);
+			}
+			tmp->prozent = tmp->anzahl * 100 / anzahlGesammt;
+			AccountSPListeEintrag* spielE = new AccountSPListeEintrag(tmp);
+			spk->add(spielE);
+			Array< int >* spielerVera = new Array< int >();
+			for (int j = 0; j < anz; j++)
+			{ // Spieler Einträge
+				int id = 0;
+				for (int k = 0; k < anz; k++)
+				{
+					if (spielArt->get(k) == tmp->id)
+					{
+						if (spielerVera->getWertIndex(spieler->get(k)) < 0)
+						{
+							id = spieler->get(k);
+							spielerVera->add(id);
+							break;
+						}
+					}
+				}
+				if (!id)
+					break;
+				AccountSPListeEintragDaten* tmps = new AccountSPListeEintragDaten();
+				tmps->id = id;
+				tmps->name = infoClient->getSpielerName(tmps->id);
+				tmps->style = ASPLEDStyle::Ausklappbar | ASPLEDStyle::Spieler;
+				tmps->anzahl = 0;
+				for (int k = 0; k < anz; k++)
+				{
+					if (spieler->get(k) == tmps->id && spielArt->get(k) == tmp->id)
+						tmps->anzahl += anzahl->get(k);
+				}
+				tmps->prozent = tmps->anzahl * 100 / tmp->anzahl;
+				AccountSPListeEintrag* spielerE = new AccountSPListeEintrag(tmps);
+				spielE->addMember(spielerE);
+				Array< int >* karteVera = new Array< int >();
+				for (int k = 0; k < anz; k++)
+				{ // Karten Einträge
+					int id = 0;
+					int gAnz = 0;
+					for (int l = 0; l < anz; l++)
+					{
+						if (spieler->get(l) == tmps->id && spielArt->get(l) == tmp->id)
+						{
+							if (karteVera->getWertIndex(karten->get(l)) < 0)
+							{
+								id = karten->get(l);
+								karteVera->add(id);
+								gAnz = anzahl->get(l);
+								break;
+							}
+						}
+					}
+					if (!id)
+						break;
+					AccountSPListeEintragDaten* tmpk = new AccountSPListeEintragDaten();
+					tmpk->id = id;
+					tmpk->name = infoClient->getKarteName(tmpk->id);
+					tmpk->style = ASPLEDStyle::Karte;
+					tmpk->anzahl = gAnz;
+					tmpk->prozent = tmpk->anzahl * 100 / tmps->anzahl;
+					spielerE->addMember(new AccountSPListeEintrag(tmpk));
+				}
+				karteVera->release();
+			}
+			spielerVera->release();
+		}
+		spielArtVera->release();
+		// Spieler/Spiel/Karte Tabelle initialisieren
+		Array< int >* spielerVera = new Array< int >();
+		for (int i = 0; i < spielerAnzahl; i++)
+		{ // Spieler Einträge
+			int id = 0;
+			for (int j = 0; j < anz; j++)
+			{
+				if (spielerVera->getWertIndex(spieler->get(j)) < 0)
+				{
+					id = spieler->get(j);
+					spielerVera->add(id);
+					break;
+				}
+			}
+			if (!id)
+				break;
+			AccountSPListeEintragDaten* tmp = new AccountSPListeEintragDaten();
+			tmp->id = id;
+			tmp->name = infoClient->getSpielerName(tmp->id);
+			tmp->style = ASPLEDStyle::Spieler | ASPLEDStyle::Ausklappbar;
+			tmp->anzahl = 0;
+			for (int j = 0; j < anz; j++)
+			{
+				if (spieler->get(j) == tmp->id)
+					tmp->anzahl += anzahl->get(j);
+			}
+			tmp->prozent = tmp->anzahl * 100 / anzahlGesammt;
+			AccountSPListeEintrag* spielerE = new AccountSPListeEintrag(tmp);
+			psk->add(spielerE);
+			Array< int >* spielVera = new Array< int >();
+			for (int j = 0; j < anz; j++)
+			{ // Spiel Einträge
+				int id = 0;
+				for (int k = 0; k < anz; k++)
+				{
+					if (spieler->get(k) == tmp->id)
+					{
+						if (spielVera->getWertIndex(spielArt->get(k)) < 0)
+						{
+							id = spielArt->get(k);
+							spielVera->add(id);
+							break;
+						}
+					}
+				}
+				if (!id)
+					break;
+				AccountSPListeEintragDaten* tmps = new AccountSPListeEintragDaten();
+				tmps->id = id;
+				tmps->name = infoClient->getSpielName(tmps->id);
+				tmps->style = ASPLEDStyle::Ausklappbar | ASPLEDStyle::SpielArt;
+				tmps->anzahl = 0;
+				for (int k = 0; k < anz; k++)
+				{
+					if (spieler->get(k) == tmp->id && spielArt->get(k) == tmps->id)
+						tmps->anzahl += anzahl->get(k);
+				}
+				tmps->prozent = tmps->anzahl * 100 / tmp->anzahl;
+				AccountSPListeEintrag* spielE = new AccountSPListeEintrag(tmps);
+				spielerE->addMember(spielE);
+				Array< int >* karteVera = new Array< int >();
+				for (int k = 0; k < anz; k++)
+				{ // Karte Einträge
+					int id = 0;
+					int gAnz = 0;
+					for (int l = 0; l < anz; l++)
+					{
+						if (spieler->get(l) == tmp->id && spielArt->get(l) == tmps->id)
+						{
+							if (karteVera->getWertIndex(karten->get(l)) < 0)
+							{
+								id = karten->get(l);
+								karteVera->add(id);
+								gAnz = anzahl->get(l);
+								break;
+							}
+						}
+					}
+					if (!id)
+						break;
+					AccountSPListeEintragDaten* tmpk = new AccountSPListeEintragDaten();
+					tmpk->id = id;
+					tmpk->name = infoClient->getKarteName(tmpk->id);
+					tmpk->style = ASPLEDStyle::Karte;
+					tmpk->anzahl = gAnz;
+					tmpk->prozent = tmpk->anzahl * 100 / tmps->anzahl;
+					spielE->addMember(new AccountSPListeEintrag(tmpk));
+				}
+				karteVera->release();
+			}
+			spielVera->release();
+		}
+		spielerVera->release();
+		spielArt->release();
+	}
+	else
+		nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text("Die Spielpartner dieses Spielers konnten nicht ermittelt werden."), new Text("Ok"));
+	spieler->release();
+	karten->release();
+	anzahl->release();
 }
 
-void AccountSPListe::setGruppierung( char *gp )
+void AccountSPListe::setGruppierung(const char* gp)
 {
-    lockZeichnung();
-    gruppierung->setText( gp );
-    rend = 1;
-    unlockZeichnung();
+	lockZeichnung();
+	gruppierung->setText(gp);
+	rend = 1;
+	unlockZeichnung();
 }
 
-void AccountSPListe::setSortSpalte( char *sp )
+void AccountSPListe::setSortSpalte(const char* sp)
 {
-    lockZeichnung();
-    sortSpalte->setText( sp );
-    int anz = skp->getEintragAnzahl();
-    for( int i = 0; i < anz; i++ )
-        skp->z( i )->setSortSpalte( sp );
-    anz = spk->getEintragAnzahl();
-    for( int i = 0; i < anz; i++ )
-        spk->z( i )->setSortSpalte( sp );
-    anz = psk->getEintragAnzahl();
-    for( int i = 0; i < anz; i++ )
-        psk->z( i )->setSortSpalte( sp );
-    rend = 1;
-    unlockZeichnung();
+	lockZeichnung();
+	sortSpalte->setText(sp);
+	int anz = skp->getEintragAnzahl();
+	for (int i = 0; i < anz; i++)
+		skp->z(i)->setSortSpalte(sp);
+	anz = spk->getEintragAnzahl();
+	for (int i = 0; i < anz; i++)
+		spk->z(i)->setSortSpalte(sp);
+	anz = psk->getEintragAnzahl();
+	for (int i = 0; i < anz; i++)
+		psk->z(i)->setSortSpalte(sp);
+	rend = 1;
+	unlockZeichnung();
 }
 
-void AccountSPListe::setSortRichtung( bool absteigend )
+void AccountSPListe::setSortRichtung(bool absteigend)
 {
-    lockZeichnung();
-    sortAbsteigend = absteigend;
-    int anz = skp->getEintragAnzahl();
-    for( int i = 0; i < anz; i++ )
-        skp->z( i )->setSortRichtung( absteigend );
-    anz = spk->getEintragAnzahl();
-    for( int i = 0; i < anz; i++ )
-        spk->z( i )->setSortRichtung( absteigend );
-    anz = psk->getEintragAnzahl();
-    for( int i = 0; i < anz; i++ )
-        psk->z( i )->setSortRichtung( absteigend );
-    rend = 1;
-    unlockZeichnung();
+	lockZeichnung();
+	sortAbsteigend = absteigend;
+	int anz = skp->getEintragAnzahl();
+	for (int i = 0; i < anz; i++)
+		skp->z(i)->setSortRichtung(absteigend);
+	anz = spk->getEintragAnzahl();
+	for (int i = 0; i < anz; i++)
+		spk->z(i)->setSortRichtung(absteigend);
+	anz = psk->getEintragAnzahl();
+	for (int i = 0; i < anz; i++)
+		psk->z(i)->setSortRichtung(absteigend);
+	rend = 1;
+	unlockZeichnung();
 }
 
-bool AccountSPListe::tick( double tickVal )
+bool AccountSPListe::tick(double tickVal)
 {
-    lockZeichnung();
-    RCArray< AccountSPListeEintrag > *members = 0;
-    if( gruppierung->istGleich( "Spiel/Karte/Spieler" ) )
-        members = skp;
-    if( gruppierung->istGleich( "Spiel/Spieler/Karte" ) )
-        members = spk;
-    if( gruppierung->istGleich( "Spieler/Spiel/Karte" ) )
-        members = psk;
-    if( members )
-    {
-        int anz = members->getEintragAnzahl();
-        int *rf = new int[ anz ];
-        int rfAnz = getReihenfolge( rf );
-        for( int i = 0; i < rfAnz; i++ )
-            rend |= members->z( rf[ i ] )->tick( tickVal );
-        delete[] rf;
-    }
-    unlockZeichnung();
-    rend |= scroll->getRend();
-    bool ret = rend;
-    rend = 0;
-    return ret;
+	lockZeichnung();
+	RCArray< AccountSPListeEintrag >* members = 0;
+	if (gruppierung->istGleich("Spiel/Karte/Spieler"))
+		members = skp;
+	if (gruppierung->istGleich("Spiel/Spieler/Karte"))
+		members = spk;
+	if (gruppierung->istGleich("Spieler/Spiel/Karte"))
+		members = psk;
+	if (members)
+	{
+		int anz = members->getEintragAnzahl();
+		int* rf = new int[anz];
+		int rfAnz = getReihenfolge(rf);
+		for (int i = 0; i < rfAnz; i++)
+			rend |= members->z(rf[i])->tick(tickVal);
+		delete[] rf;
+	}
+	unlockZeichnung();
+	rend |= scroll->getRend();
+	bool ret = rend;
+	rend = 0;
+	return ret;
 }
 
-void AccountSPListe::doPublicMausEreignis( MausEreignis &me )
+void AccountSPListe::doPublicMausEreignis(MausEreignis& me)
 {
-    bool vera = 0;
-    if( me.mx - pos.x <= 0 || me.mx - pos.x >= ram->getBreite() || me.my - pos.y <= 0 || me.my - pos.y >= ram->getHeight() )
-    {
-        vera = 1;
-        me.verarbeitet = 1;
-    }
-    int mx = me.mx, my = me.my;
-    me.mx -= pos.x;
-    me.my -= pos.y;
-    scroll->doMausMessage( ram->getBreite() - 16, 1, 15, ram->getHeight() - 2, me );
-    me.mx -= 10;
-    me.my -= 10 - scroll->getScroll();
-    lockZeichnung();
-    RCArray< AccountSPListeEintrag > *members = 0;
-    if( gruppierung->istGleich( "Spiel/Karte/Spieler" ) )
-        members = skp;
-    if( gruppierung->istGleich( "Spiel/Spieler/Karte" ) )
-        members = spk;
-    if( gruppierung->istGleich( "Spieler/Spiel/Karte" ) )
-        members = psk;
-    if( members )
-    {
-        int anz = members->getEintragAnzahl();
-        int *rf = new int[ anz ];
-        int rfAnz = getReihenfolge( rf );
-        for( int i = 0; i < rfAnz; i++ )
-        {
-            members->z( rf[ i ] )->doPublicMausEreignis( me );
-            me.my -= members->z( rf[ i ] )->getHeight() + 10;
-        }
-        delete[] rf;
-    }
-    unlockZeichnung();
-    me.mx = mx, me.my = my;
-    if( vera )
-        me.verarbeitet = 0;
+	bool vera = 0;
+	if (me.mx - pos.x <= 0 || me.mx - pos.x >= ram->getBreite() || me.my - pos.y <= 0 || me.my - pos.y >= ram->getHeight())
+	{
+		vera = 1;
+		me.verarbeitet = 1;
+	}
+	int mx = me.mx, my = me.my;
+	me.mx -= pos.x;
+	me.my -= pos.y;
+	scroll->doMausMessage(ram->getBreite() - 16, 1, 15, ram->getHeight() - 2, me);
+	me.mx -= 10;
+	me.my -= 10 - scroll->getScroll();
+	lockZeichnung();
+	RCArray< AccountSPListeEintrag >* members = 0;
+	if (gruppierung->istGleich("Spiel/Karte/Spieler"))
+		members = skp;
+	if (gruppierung->istGleich("Spiel/Spieler/Karte"))
+		members = spk;
+	if (gruppierung->istGleich("Spieler/Spiel/Karte"))
+		members = psk;
+	if (members)
+	{
+		int anz = members->getEintragAnzahl();
+		int* rf = new int[anz];
+		int rfAnz = getReihenfolge(rf);
+		for (int i = 0; i < rfAnz; i++)
+		{
+			members->z(rf[i])->doPublicMausEreignis(me);
+			me.my -= members->z(rf[i])->getHeight() + 10;
+		}
+		delete[] rf;
+	}
+	unlockZeichnung();
+	me.mx = mx, me.my = my;
+	if (vera)
+		me.verarbeitet = 0;
 }
 
-void AccountSPListe::render( Bild &zRObj )
+void AccountSPListe::render(Bild& zRObj)
 {
-    if( !zRObj.setDrawOptions( pos, ram->getSize() ) )
-        return;
-    ram->render( zRObj );
-    scroll->render( ram->getBreite() - 16, 1, 15, ram->getHeight() - 2, zRObj );
-    if( !zRObj.setDrawOptions( 1, 1, ram->getBreite() - 15, ram->getHeight() - 2 ) )
-    {
-        zRObj.releaseDrawOptions();
-        return;
-    }
-    int anzHö = 10;
-    lockZeichnung();
-    RCArray< AccountSPListeEintrag > *members = 0;
-    if( gruppierung->istGleich( "Spiel/Karte/Spieler" ) )
-        members = skp;
-    if( gruppierung->istGleich( "Spiel/Spieler/Karte" ) )
-        members = spk;
-    if( gruppierung->istGleich( "Spieler/Spiel/Karte" ) )
-        members = psk;
-    if( members )
-    {
-        int anz = members->getEintragAnzahl();
-        int *rf = new int[ anz ];
-        int rfAnz = getReihenfolge( rf );
-        for( int i = 0; i < rfAnz; i++ )
-        {
-            members->z( rf[ i ] )->render( 10, anzHö - scroll->getScroll(), ram->getBreite() - 36, zRObj );
-            anzHö += members->z( rf[ i ] )->getHeight() + 10;
-        }
-        delete[] rf;
-    }
-    unlockZeichnung();
-    scroll->update( anzHö, ram->getHeight() - 2 );
-    zRObj.releaseDrawOptions();
-    zRObj.releaseDrawOptions();
+	if (!zRObj.setDrawOptions(pos, ram->getSize()))
+		return;
+	ram->render(zRObj);
+	scroll->render(ram->getBreite() - 16, 1, 15, ram->getHeight() - 2, zRObj);
+	if (!zRObj.setDrawOptions(1, 1, ram->getBreite() - 15, ram->getHeight() - 2))
+	{
+		zRObj.releaseDrawOptions();
+		return;
+	}
+	int anzHö = 10;
+	lockZeichnung();
+	RCArray< AccountSPListeEintrag >* members = 0;
+	if (gruppierung->istGleich("Spiel/Karte/Spieler"))
+		members = skp;
+	if (gruppierung->istGleich("Spiel/Spieler/Karte"))
+		members = spk;
+	if (gruppierung->istGleich("Spieler/Spiel/Karte"))
+		members = psk;
+	if (members)
+	{
+		int anz = members->getEintragAnzahl();
+		int* rf = new int[anz];
+		int rfAnz = getReihenfolge(rf);
+		for (int i = 0; i < rfAnz; i++)
+		{
+			members->z(rf[i])->render(10, anzHö - scroll->getScroll(), ram->getBreite() - 36, zRObj);
+			anzHö += members->z(rf[i])->getHeight() + 10;
+		}
+		delete[] rf;
+	}
+	unlockZeichnung();
+	scroll->update(anzHö, ram->getHeight() - 2);
+	zRObj.releaseDrawOptions();
+	zRObj.releaseDrawOptions();
 }
 
 
 // Inhalt der AccountSpielPartner Klasse aus AccountSpielPartner.h
 // Konstruktor
 AccountSpielPartner::AccountSpielPartner()
-    : Thread(),
-    spielPartnerF( initFenster( 810, 40, 780, 450, Fenster::Style::Sichtbar | Fenster::Style::Titel | Fenster::Style::TitelBuffered | Fenster::Style::Rahmen | Fenster::Style::Erlaubt, "Spielpartner von " ) ),
-    gruppAusw( initAuswahlBox( 10, 10, 150, 20, ABSTYLE, { "Spieler/Spiel/Karte", "Spiel/Karte/Spieler", "Spiel/Spieler/Karte" } ) ),
-    sortSpalte( initAuswahlBox( 170, 10, 150, 20, ABSTYLE, { "Name", "Spiele", "Prozent" } ) ),
-    sortRichtung( initAuswahlBox( 330, 10, 150, 20, ABSTYLE, { "Aufwärts", "Abwärts" } ) ),
-    liste( new AccountSPListe() ),
-    status( 0 ),
-    accId( 0 ),
-    animation( 0 ),
-    alpha( 255 ),
-    tickVal( 0 ),
-    rend( 0 )
+	: Thread(),
+	spielPartnerF(initFenster(810, 40, 780, 450, Fenster::Style::Sichtbar | Fenster::Style::Titel | Fenster::Style::TitelBuffered | Fenster::Style::Rahmen | Fenster::Style::Erlaubt, "Spielpartner von ")),
+	gruppAusw(initAuswahlBox(10, 10, 150, 20, ABSTYLE, { "Spieler/Spiel/Karte", "Spiel/Karte/Spieler", "Spiel/Spieler/Karte" })),
+	sortSpalte(initAuswahlBox(170, 10, 150, 20, ABSTYLE, { "Name", "Spiele", "Prozent" })),
+	sortRichtung(initAuswahlBox(330, 10, 150, 20, ABSTYLE, { "Aufwärts", "Abwärts" })),
+	liste(new AccountSPListe()),
+	status(0),
+	accId(0),
+	animation(0),
+	alpha(255),
+	tickVal(0),
+	rend(0)
 {
-    initToolTip( gruppAusw, "Wähle Gruppierung aus, nach der die Daten angezeigt werden sollen." );
-    initToolTip( sortSpalte, "Wähle aus, nach welcher Spalte die\nTabelle sortiert werden soll." );
-    initToolTip( sortRichtung, "Wähle aus, Ob Aufwärts oder Abwärts sortiert werden soll." );
-    spielPartnerF->addMember( dynamic_cast<Zeichnung *>( liste->getThis() ) );
-    spielPartnerF->addMember( dynamic_cast<Zeichnung *>( gruppAusw->getThis() ) );
-    spielPartnerF->addMember( dynamic_cast<Zeichnung *>( sortSpalte->getThis() ) );
-    spielPartnerF->addMember( dynamic_cast<Zeichnung *>( sortRichtung->getThis() ) );
-    spielPartnerF->setMausEreignis( _ret1ME );
+	initToolTip(gruppAusw, "Wähle Gruppierung aus, nach der die Daten angezeigt werden sollen.");
+	initToolTip(sortSpalte, "Wähle aus, nach welcher Spalte die\nTabelle sortiert werden soll.");
+	initToolTip(sortRichtung, "Wähle aus, Ob Aufwärts oder Abwärts sortiert werden soll.");
+	spielPartnerF->addMember(dynamic_cast<Zeichnung*>(liste->getThis()));
+	spielPartnerF->addMember(dynamic_cast<Zeichnung*>(gruppAusw->getThis()));
+	spielPartnerF->addMember(dynamic_cast<Zeichnung*>(sortSpalte->getThis()));
+	spielPartnerF->addMember(dynamic_cast<Zeichnung*>(sortRichtung->getThis()));
+	spielPartnerF->setMausEreignis(_ret1ME);
 }
 
 // Destruktor
 AccountSpielPartner::~AccountSpielPartner()
 {
-    spielPartnerF->release();
-    gruppAusw->release();
-    sortSpalte->release();
-    sortRichtung->release();
-    liste->release();
+	spielPartnerF->release();
+	gruppAusw->release();
+	sortSpalte->release();
+	sortRichtung->release();
+	liste->release();
 }
 
 // nicht constant
 void AccountSpielPartner::reset()
 {
-    liste->reset();
+	liste->reset();
 }
 
-void AccountSpielPartner::ladeStatistik( int accId )
+void AccountSpielPartner::ladeStatistik(int accId)
 {
-    if( this->accId == accId )
-        return;
-    this->status = 0;
-    if( run )
-    {
-        warteAufThread( 1000 );
-        ende();
-    }
-    if( ( animation | 0x1 ) == animation )
-    {
-        animation |= 0x4;
-        this->accId = accId;
-        this->status = 1;
-        return;
-    }
-    if( this->accId )
-        reset();
-    this->accId = accId;
-    start();
-    this->status = 1;
+	if (this->accId == accId)
+		return;
+	this->status = 0;
+	if (run)
+	{
+		warteAufThread(1000);
+		ende();
+	}
+	if ((animation | 0x1) == animation)
+	{
+		animation |= 0x4;
+		this->accId = accId;
+		this->status = 1;
+		return;
+	}
+	if (this->accId)
+		reset();
+	this->accId = accId;
+	start();
+	this->status = 1;
 }
 
 void AccountSpielPartner::thread()
 {
-    Text *name = infoClient->getSpielerName( accId );
-    if( name )
-    {
-        name->insert( 0, "Spielpartner von " );
-        spielPartnerF->setTitel( *name );
-        name->release();
-    }
-    liste->ladeDaten( accId );
-    animation &= ~0x4;
-    status = 2;
-    run = 0;
+	Text* name = infoClient->getSpielerName(accId);
+	if (name)
+	{
+		name->insert(0, "Spielpartner von ");
+		spielPartnerF->setTitel(*name);
+		name->release();
+	}
+	liste->ladeDaten(accId);
+	animation &= ~0x4;
+	status = 2;
+	run = 0;
 }
 
-void AccountSpielPartner::setSichtbar( bool sichtbar, bool nachRechts )
+void AccountSpielPartner::setSichtbar(bool sichtbar, bool nachRechts)
 {
-    if( sichtbar )
-    {
-        if( ( animation | 0x1 ) != animation || ( ( nachRechts && ( animation | 0x2 ) != animation ) || !nachRechts && ( animation | 0x2 ) == animation ) )
-        {
-            if( nachRechts )
-                spielPartnerF->setPosition( -810, 40 );
-            else
-                spielPartnerF->setPosition( 810, 40 );
-        }
-        animation |= 0x1;
-    }
-    else
-        animation &= ~0x1;
-    if( nachRechts )
-        animation |= 0x2;
-    else
-        animation &= ~0x2;
+	if (sichtbar)
+	{
+		if ((animation | 0x1) != animation || ((nachRechts && (animation | 0x2) != animation) || !nachRechts && (animation | 0x2) == animation))
+		{
+			if (nachRechts)
+				spielPartnerF->setPosition(-810, 40);
+			else
+				spielPartnerF->setPosition(810, 40);
+		}
+		animation |= 0x1;
+	}
+	else
+		animation &= ~0x1;
+	if (nachRechts)
+		animation |= 0x2;
+	else
+		animation &= ~0x2;
 }
 
-bool AccountSpielPartner::tick( double zeit )
+bool AccountSpielPartner::tick(double zeit)
 {
-    rend |= spielPartnerF->tick( zeit );
-    tickVal += zeit;
-    int valA = (int)( tickVal * 150 );
-    int valB = (int)( tickVal * 500 );
-    tickVal -= valA / 150.0;
-    if( valA )
-    {
-        if( ( animation | 0x4 ) == animation && alpha )
-        {
-            if( alpha - valA <= 0 )
-                alpha = 0;
-            else
-                alpha -= valA;
-            rend = 1;
-            if( !alpha )
-            {
-                reset();
-                start();
-            }
-        }
-        if( ( animation | 0x4 ) != animation && alpha != 255 )
-        {
-            if( alpha + valA >= 255 )
-                alpha = 255;
-            else
-                alpha += valA;
-            rend = 1;
-        }
-    }
-    if( valB )
-    {
-        if( ( animation | 0x1 ) == animation )
-        { // Sichtbar
-            if( ( animation | 0x2 ) == animation )
-            { // Nach Rechts
-                if( spielPartnerF->getX() != 10 )
-                {
-                    if( spielPartnerF->getX() + valB > 10 )
-                        spielPartnerF->setPosition( 10, spielPartnerF->getY() );
-                    else
-                        spielPartnerF->setPosition( spielPartnerF->getX() + valB, spielPartnerF->getY() );
-                    rend = 1;
-                }
-            }
-            else
-            { // Nach Links
-                if( spielPartnerF->getX() != 10 )
-                {
-                    if( spielPartnerF->getX() - valB < 10 )
-                        spielPartnerF->setPosition( 10, spielPartnerF->getY() );
-                    else
-                        spielPartnerF->setPosition( spielPartnerF->getX() - valB, spielPartnerF->getY() );
-                    rend = 1;
-                }
-            }
-        }
-        else
-        { // Unsichtbar
-            if( ( animation | 0x2 ) == animation )
-            { // Nach Rechts
-                if( spielPartnerF->getX() != 810 )
-                {
-                    if( spielPartnerF->getX() + valB > 810 )
-                        spielPartnerF->setPosition( 810, spielPartnerF->getY() );
-                    else
-                        spielPartnerF->setPosition( spielPartnerF->getX() + valB, spielPartnerF->getY() );
-                    rend = 1;
-                }
-            }
-            else
-            { // Nach Links
-                if( spielPartnerF->getX() != -810 )
-                {
-                    if( spielPartnerF->getX() - valB < -810 )
-                        spielPartnerF->setPosition( -810, spielPartnerF->getY() );
-                    else
-                        spielPartnerF->setPosition( spielPartnerF->getX() - valB, spielPartnerF->getY() );
-                    rend = 1;
-                }
-            }
-        }
-    }
-    bool ret = rend;
-    rend = 0;
-    return ret;
+	rend |= spielPartnerF->tick(zeit);
+	tickVal += zeit;
+	int valA = (int)(tickVal * 150);
+	int valB = (int)(tickVal * 500);
+	tickVal -= valA / 150.0;
+	if (valA)
+	{
+		if ((animation | 0x4) == animation && alpha)
+		{
+			if (alpha - valA <= 0)
+				alpha = 0;
+			else
+				alpha -= valA;
+			rend = 1;
+			if (!alpha)
+			{
+				reset();
+				start();
+			}
+		}
+		if ((animation | 0x4) != animation && alpha != 255)
+		{
+			if (alpha + valA >= 255)
+				alpha = 255;
+			else
+				alpha += valA;
+			rend = 1;
+		}
+	}
+	if (valB)
+	{
+		if ((animation | 0x1) == animation)
+		{ // Sichtbar
+			if ((animation | 0x2) == animation)
+			{ // Nach Rechts
+				if (spielPartnerF->getX() != 10)
+				{
+					if (spielPartnerF->getX() + valB > 10)
+						spielPartnerF->setPosition(10, spielPartnerF->getY());
+					else
+						spielPartnerF->setPosition(spielPartnerF->getX() + valB, spielPartnerF->getY());
+					rend = 1;
+				}
+			}
+			else
+			{ // Nach Links
+				if (spielPartnerF->getX() != 10)
+				{
+					if (spielPartnerF->getX() - valB < 10)
+						spielPartnerF->setPosition(10, spielPartnerF->getY());
+					else
+						spielPartnerF->setPosition(spielPartnerF->getX() - valB, spielPartnerF->getY());
+					rend = 1;
+				}
+			}
+		}
+		else
+		{ // Unsichtbar
+			if ((animation | 0x2) == animation)
+			{ // Nach Rechts
+				if (spielPartnerF->getX() != 810)
+				{
+					if (spielPartnerF->getX() + valB > 810)
+						spielPartnerF->setPosition(810, spielPartnerF->getY());
+					else
+						spielPartnerF->setPosition(spielPartnerF->getX() + valB, spielPartnerF->getY());
+					rend = 1;
+				}
+			}
+			else
+			{ // Nach Links
+				if (spielPartnerF->getX() != -810)
+				{
+					if (spielPartnerF->getX() - valB < -810)
+						spielPartnerF->setPosition(-810, spielPartnerF->getY());
+					else
+						spielPartnerF->setPosition(spielPartnerF->getX() - valB, spielPartnerF->getY());
+					rend = 1;
+				}
+			}
+		}
+	}
+	bool ret = rend;
+	rend = 0;
+	return ret;
 }
 
-void AccountSpielPartner::doPublicMausEreignis( MausEreignis &me )
+void AccountSpielPartner::doPublicMausEreignis(MausEreignis& me)
 {
-    int gruppAuswS = gruppAusw->getAuswahl();
-    int sortSpalteS = sortSpalte->getAuswahl();
-    int sortRichtungS = sortRichtung->getAuswahl();
-    spielPartnerF->doPublicMausEreignis( me );
-    if( gruppAusw->getAuswahl() != gruppAuswS )
-    {
-        liste->setGruppierung( gruppAusw->zEintrag( gruppAusw->getAuswahl() )->zText()->getText() );
-        gruppAusw->einklappen();
-    }
-    if( sortSpalte->getAuswahl() != sortSpalteS )
-    {
-        liste->setSortSpalte( sortSpalte->zEintrag( sortSpalte->getAuswahl() )->zText()->getText() );
-        sortSpalte->einklappen();
-    }
-    if( sortRichtung->getAuswahl() != sortRichtungS )
-    {
-        liste->setSortRichtung( sortRichtung->getAuswahl() != 0 );
-        sortRichtung->einklappen();
-    }
+	int gruppAuswS = gruppAusw->getAuswahl();
+	int sortSpalteS = sortSpalte->getAuswahl();
+	int sortRichtungS = sortRichtung->getAuswahl();
+	spielPartnerF->doPublicMausEreignis(me);
+	if (gruppAusw->getAuswahl() != gruppAuswS)
+	{
+		liste->setGruppierung(gruppAusw->zEintrag(gruppAusw->getAuswahl())->zText()->getText());
+		gruppAusw->einklappen();
+	}
+	if (sortSpalte->getAuswahl() != sortSpalteS)
+	{
+		liste->setSortSpalte(sortSpalte->zEintrag(sortSpalte->getAuswahl())->zText()->getText());
+		sortSpalte->einklappen();
+	}
+	if (sortRichtung->getAuswahl() != sortRichtungS)
+	{
+		liste->setSortRichtung(sortRichtung->getAuswahl() != 0);
+		sortRichtung->einklappen();
+	}
 }
 
-void AccountSpielPartner::render( Bild &zRObj )
+void AccountSpielPartner::render(Bild& zRObj)
 {
-    zRObj.setAlpha( alpha );
-    spielPartnerF->render( zRObj );
-    zRObj.releaseAlpha();
+	zRObj.setAlpha(alpha);
+	spielPartnerF->render(zRObj);
+	zRObj.releaseAlpha();
 }
 
 // constant
 int AccountSpielPartner::getStatus() const
 {
-    return status;
+	return status;
 }

+ 87 - 87
KSGClient/NachLogin/Account/SpielPartner/AccountSpielPartner.h

@@ -12,120 +12,120 @@ using namespace Framework;
 
 namespace ASPLEDStyle
 {
-    const int SpielArt = 1;
-    const int Karte = 2;
-    const int Spieler = 4;
-    const int Ausklappbar = 8;
+	const int SpielArt = 1;
+	const int Karte = 2;
+	const int Spieler = 4;
+	const int Ausklappbar = 8;
 }
 
 struct AccountSPListeEintragDaten
 {
-    int style;
-    int id;
-    Text *name;
-    int anzahl;
-    int prozent;
+	int style;
+	int id;
+	Text* name;
+	int anzahl;
+	int prozent;
 };
 
 class AccountSPListeEintrag : public virtual ReferenceCounter
 {
 private:
-    LRahmen *ram;
-    RCArray< AccountSPListeEintrag > *members;
-    TextFeld *name;
-    TextFeld *anzahl;
-    FBalken *prozent;
-    Knopf *details;
-    Bild *ausklappen;
-    Bild *einklappen;
-    AccountSPListeEintragDaten *daten;
-    Text *sortSpalte;
-    bool sortAbsteigend;
-    double tickVal;
-    bool rend;
+	LRahmen* ram;
+	RCArray< AccountSPListeEintrag >* members;
+	TextFeld* name;
+	TextFeld* anzahl;
+	FBalken* prozent;
+	Knopf* details;
+	Bild* ausklappen;
+	Bild* einklappen;
+	AccountSPListeEintragDaten* daten;
+	Text* sortSpalte;
+	bool sortAbsteigend;
+	double tickVal;
+	bool rend;
 
-    // privat
-    int getReihenfolge( int *arr );
+	// privat
+	int getReihenfolge(int* arr);
 
 public:
-    // Konstruktor
-    AccountSPListeEintrag( AccountSPListeEintragDaten *daten );
-    // Destruktor
-    ~AccountSPListeEintrag();
-    // nicht constant
-    void addMember( AccountSPListeEintrag *e );
-    void setSortSpalte( char *sp );
-    void setSortRichtung( bool absteigend );
-    bool tick( double tickVal );
-    void doPublicMausEreignis( MausEreignis &me );
-    void render( int xOff, int yOff, int breite, Bild &zRObj );
-    // constant
-    int getHeight() const;
-    AccountSPListeEintragDaten *zDaten() const;
+	// Konstruktor
+	AccountSPListeEintrag(AccountSPListeEintragDaten* daten);
+	// Destruktor
+	~AccountSPListeEintrag();
+	// nicht constant
+	void addMember(AccountSPListeEintrag* e);
+	void setSortSpalte(const char* sp);
+	void setSortRichtung(bool absteigend);
+	bool tick(double tickVal);
+	void doPublicMausEreignis(MausEreignis& me);
+	void render(int xOff, int yOff, int breite, Bild& zRObj);
+	// constant
+	int getHeight() const;
+	AccountSPListeEintragDaten* zDaten() const;
 };
 
 class AccountSPListe : public Zeichnung
 {
 private:
-    LRahmen *ram;
-    VScrollBar *scroll;
-    RCArray< AccountSPListeEintrag > *skp;
-    RCArray< AccountSPListeEintrag > *spk;
-    RCArray< AccountSPListeEintrag > *psk;
-    Text *gruppierung;
-    Text *sortSpalte;
-    bool sortAbsteigend;
-    bool rend;
+	LRahmen* ram;
+	VScrollBar* scroll;
+	RCArray< AccountSPListeEintrag >* skp;
+	RCArray< AccountSPListeEintrag >* spk;
+	RCArray< AccountSPListeEintrag >* psk;
+	Text* gruppierung;
+	Text* sortSpalte;
+	bool sortAbsteigend;
+	bool rend;
 
-    // privat
-    int getReihenfolge( int *arr );
+	// privat
+	int getReihenfolge(int* arr);
 
 public:
-    // Konstruktor
-    AccountSPListe();
-    // Destruktor
-    ~AccountSPListe();
-    // nicht constant
-    void reset();
-    void ladeDaten( int accId );
-    void setGruppierung( char *gp );
-    void setSortSpalte( char *sp );
-    void setSortRichtung( bool absteigend );
-    bool tick( double tickVal ) override;
-    void doPublicMausEreignis( MausEreignis &me ) override;
-    void render( Bild &zRObj ) override;
+	// Konstruktor
+	AccountSPListe();
+	// Destruktor
+	~AccountSPListe();
+	// nicht constant
+	void reset();
+	void ladeDaten(int accId);
+	void setGruppierung(const char* gp);
+	void setSortSpalte(const char* sp);
+	void setSortRichtung(bool absteigend);
+	bool tick(double tickVal) override;
+	void doPublicMausEreignis(MausEreignis& me) override;
+	void render(Bild& zRObj) override;
 };
 
 class AccountSpielPartner : public Thread
 {
 private:
-    Fenster *spielPartnerF;
-    AuswahlBox *gruppAusw;
-    AuswahlBox *sortSpalte;
-    AuswahlBox *sortRichtung;
-    AccountSPListe *liste;
-    int status;
-    int accId;
-    int animation;
-    unsigned char alpha;
-    double tickVal;
-    bool rend;
+	Fenster* spielPartnerF;
+	AuswahlBox* gruppAusw;
+	AuswahlBox* sortSpalte;
+	AuswahlBox* sortRichtung;
+	AccountSPListe* liste;
+	int status;
+	int accId;
+	int animation;
+	unsigned char alpha;
+	double tickVal;
+	bool rend;
 
 public:
-    // Konstruktor
-    AccountSpielPartner();
-    // Destruktor
-    ~AccountSpielPartner();
-    // nicht constant
-    void reset();
-    void ladeStatistik( int accId );
-    virtual void thread();
-    void setSichtbar( bool sichtbar, bool nachRechts );
-    bool tick( double zeit );
-    void doPublicMausEreignis( MausEreignis &me );
-    void render( Bild &zRObj );
-    // constant
-    int getStatus() const;
+	// Konstruktor
+	AccountSpielPartner();
+	// Destruktor
+	~AccountSpielPartner();
+	// nicht constant
+	void reset();
+	void ladeStatistik(int accId);
+	virtual void thread();
+	void setSichtbar(bool sichtbar, bool nachRechts);
+	bool tick(double zeit);
+	void doPublicMausEreignis(MausEreignis& me);
+	void render(Bild& zRObj);
+	// constant
+	int getStatus() const;
 };
 
 #endif;

+ 718 - 718
KSGClient/NachLogin/Account/Spiele_Karten/AccountSpieleUndKarten.cpp

@@ -9,591 +9,591 @@
 
 // Inhalt der AccountSUKListeKarte Klasse aus AccountSpieleUndKarten.h
 // Konstruktor
-AccountSUKListeKarte::AccountSUKListeKarte( int id, int account )
-    : ReferenceCounter(),
-    ram( new LRahmen() ),
-    name( initTextFeld( 5, 0, 150, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Karte: " ) ),
-    spiele( initTextFeld( 165, 0, 150, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Spiele: " ) ),
-    gewonnen( initTextFeld( 325, 0, 150, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Gewonnen: " ) ),
-    status( initTextFeld( 485, 0, 150, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Status: " ) ),
-    st( new Text() ),
-    karteId( id ),
-    rend( 0 )
-{
-    na = infoClient->getKarteName( id );
-    if( na )
-        name->zText()->append( na->getText() );
-    sp = infoClient->getAccountKarteSpiele( account, id );
-    spiele->zText()->append( sp );
-    gw = infoClient->getAccountKarteSpieleGewonnen( account, id );
-    gewonnen->zText()->append( gw );
-    if( infoClient->hatAccountKarte( account, id ) )
-        st->setText( "Im Besitz" );
-    else
-        st->setText( "Nicht im Besitz" );
-    status->zText()->append( st->getText() );
-    ram->setFarbe( 0xFFFFFFFF );
-    ram->setSize( 715, 20 );
-    ram->setRamenBreite( 1 );
+AccountSUKListeKarte::AccountSUKListeKarte(int id, int account)
+	: ReferenceCounter(),
+	ram(new LRahmen()),
+	name(initTextFeld(5, 0, 150, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Karte: ")),
+	spiele(initTextFeld(165, 0, 150, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Spiele: ")),
+	gewonnen(initTextFeld(325, 0, 150, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Gewonnen: ")),
+	status(initTextFeld(485, 0, 150, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Status: ")),
+	st(new Text()),
+	karteId(id),
+	rend(0)
+{
+	na = infoClient->getKarteName(id);
+	if (na)
+		name->zText()->append(na->getText());
+	sp = infoClient->getAccountKarteSpiele(account, id);
+	spiele->zText()->append(sp);
+	gw = infoClient->getAccountKarteSpieleGewonnen(account, id);
+	gewonnen->zText()->append(gw);
+	if (infoClient->hatAccountKarte(account, id))
+		st->setText("Im Besitz");
+	else
+		st->setText("Nicht im Besitz");
+	status->zText()->append(st->getText());
+	ram->setFarbe(0xFFFFFFFF);
+	ram->setSize(715, 20);
+	ram->setRamenBreite(1);
 }
 
 // Destruktor
 AccountSUKListeKarte::~AccountSUKListeKarte()
 {
-    ram->release();
-    name->release();
-    spiele->release();
-    gewonnen->release();
-    status->release();
-    if( na )
-        na->release();
-    st->release();
+	ram->release();
+	name->release();
+	spiele->release();
+	gewonnen->release();
+	status->release();
+	if (na)
+		na->release();
+	st->release();
 }
 
 // nicht constant
-void AccountSUKListeKarte::render( int yOff, Bild &zRObj )
+void AccountSUKListeKarte::render(int yOff, Bild& zRObj)
 {
-    if( !zRObj.setDrawOptions( 5, yOff, ram->getBreite(), ram->getHeight() ) )
-        return;
-    name->render( zRObj );
-    spiele->render( zRObj );
-    gewonnen->render( zRObj );
-    status->render( zRObj );
-    ram->render( zRObj );
-    zRObj.releaseDrawOptions();
+	if (!zRObj.setDrawOptions(5, yOff, ram->getBreite(), ram->getHeight()))
+		return;
+	name->render(zRObj);
+	spiele->render(zRObj);
+	gewonnen->render(zRObj);
+	status->render(zRObj);
+	ram->render(zRObj);
+	zRObj.releaseDrawOptions();
 }
 
 // constant
-Text *AccountSUKListeKarte::zName() const
+Text* AccountSUKListeKarte::zName() const
 {
-    return na;
+	return na;
 }
 
 int AccountSUKListeKarte::getSpiele() const
 {
-    return sp;
+	return sp;
 }
 
 int AccountSUKListeKarte::getGewonnen() const
 {
-    return gw;
+	return gw;
 }
 
-Text *AccountSUKListeKarte::zStatus() const
+Text* AccountSUKListeKarte::zStatus() const
 {
-    return st;
+	return st;
 }
 
 
 // Inhalt der AccountSUKListeSpiel Klasse aus AccountSpieleUndKarten.h
 // Konstruktor
-AccountSUKListeSpiel::AccountSUKListeSpiel( int id, int account )
-    : ReferenceCounter(),
-    ram( new LRahmen() ),
-    nameTF( initTextFeld( 5, 0, 150, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Name: " ) ),
-    spieleTF( initTextFeld( 165, 0, 150, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Spiele: " ) ),
-    gewonnenTF( initTextFeld( 325, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Gewonnen: " ) ),
-    punkteTF( initTextFeld( 435, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Punkte: " ) ),
-    statusTF( initTextFeld( 545, 0, 150, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Status: " ) ),
-    details( initKnopf( 705, 0, 20, 20, 0, "" ) ),
-    karten( new RCArray< AccountSUKListeKarte >() ),
-    einklappen( bilder->get( "data/client/bilder/account.ltdb/einklappen.png" ) ),
-    ausklappen( bilder->get( "data/client/bilder/account.ltdb/ausklappen.png" ) ),
-    status( new Text() ),
-    statusFilter( new Text( "Alle" ) ),
-    sortSpalte( new Text( "Name" ) ),
-    sortAbsteigend( 0 ),
-    spielId( id ),
-    tickVal( 0 ),
-    rend( 0 )
-{
-    ram->setFarbe( 0xFFFFFFFF );
-    ram->setRamenBreite( 1 );
-    ram->setSize( 725, 20 );
-    details->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer );
-    details->setHintergrundBildZ( dynamic_cast<Bild *>( ausklappen->getThis() ) );
-    initToolTip( details, "Karten anzeigen." );
-    name = infoClient->getSpielName( id );
-    if( name )
-        nameTF->zText()->append( name->getText() );
-    Array< int > *stat = new Array< int >();
-    if( infoClient->getSpielStatistik( account, id, stat ) )
-    {
-        spiele = stat->get( 0 );
-        gewonnen = stat->get( 1 );
-        punkte = stat->get( 3 );
-    }
-    stat->release();
-    spieleTF->zText()->append( spiele );
-    gewonnenTF->zText()->append( gewonnen );
-    punkteTF->zText()->append( punkte );
-    if( infoClient->hatAccountSpiel( account, id ) )
-        status->setText( "Im Besitz" );
-    else
-        status->setText( "Nicht im Besitz" );
-    statusTF->zText()->append( status->getText() );
-    Array< int > *maps = infoClient->getAccountKarteGespieltListe( account, id );
-    if( maps )
-    {
-        int anz = maps->getEintragAnzahl();
-        for( int i = 0; i < anz; i++ )
-            karten->set( new AccountSUKListeKarte( maps->get( i ), account ), i );
-        maps->release();
-    }
+AccountSUKListeSpiel::AccountSUKListeSpiel(int id, int account)
+	: ReferenceCounter(),
+	ram(new LRahmen()),
+	nameTF(initTextFeld(5, 0, 150, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Name: ")),
+	spieleTF(initTextFeld(165, 0, 150, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Spiele: ")),
+	gewonnenTF(initTextFeld(325, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Gewonnen: ")),
+	punkteTF(initTextFeld(435, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Punkte: ")),
+	statusTF(initTextFeld(545, 0, 150, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Status: ")),
+	details(initKnopf(705, 0, 20, 20, 0, "")),
+	karten(new RCArray< AccountSUKListeKarte >()),
+	einklappen(bilder->get("data/client/bilder/account.ltdb/einklappen.png")),
+	ausklappen(bilder->get("data/client/bilder/account.ltdb/ausklappen.png")),
+	status(new Text()),
+	statusFilter(new Text("Alle")),
+	sortSpalte(new Text("Name")),
+	sortAbsteigend(0),
+	spielId(id),
+	tickVal(0),
+	rend(0)
+{
+	ram->setFarbe(0xFFFFFFFF);
+	ram->setRamenBreite(1);
+	ram->setSize(725, 20);
+	details->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer);
+	details->setHintergrundBildZ(dynamic_cast<Bild*>(ausklappen->getThis()));
+	initToolTip(details, "Karten anzeigen.");
+	name = infoClient->getSpielName(id);
+	if (name)
+		nameTF->zText()->append(name->getText());
+	Array< int >* stat = new Array< int >();
+	if (infoClient->getSpielStatistik(account, id, stat))
+	{
+		spiele = stat->get(0);
+		gewonnen = stat->get(1);
+		punkte = stat->get(3);
+	}
+	stat->release();
+	spieleTF->zText()->append(spiele);
+	gewonnenTF->zText()->append(gewonnen);
+	punkteTF->zText()->append(punkte);
+	if (infoClient->hatAccountSpiel(account, id))
+		status->setText("Im Besitz");
+	else
+		status->setText("Nicht im Besitz");
+	statusTF->zText()->append(status->getText());
+	Array< int >* maps = infoClient->getAccountKarteGespieltListe(account, id);
+	if (maps)
+	{
+		int anz = maps->getEintragAnzahl();
+		for (int i = 0; i < anz; i++)
+			karten->set(new AccountSUKListeKarte(maps->get(i), account), i);
+		maps->release();
+	}
 }
 
 // Destruktor
 AccountSUKListeSpiel::~AccountSUKListeSpiel()
 {
-    ram->release();
-    nameTF->release();
-    spieleTF->release();
-    gewonnenTF->release();
-    punkteTF->release();
-    statusTF->release();
-    details->release();
-    karten->release();
-    einklappen->release();
-    ausklappen->release();
-    if( name )
-        name->release();
-    status->release();
-    statusFilter->release();
-    sortSpalte->release();
+	ram->release();
+	nameTF->release();
+	spieleTF->release();
+	gewonnenTF->release();
+	punkteTF->release();
+	statusTF->release();
+	details->release();
+	karten->release();
+	einklappen->release();
+	ausklappen->release();
+	if (name)
+		name->release();
+	status->release();
+	statusFilter->release();
+	sortSpalte->release();
 }
 
 // privat
-int AccountSUKListeSpiel::getReihenfolge( int *arr )
-{
-    int anz = karten->getEintragAnzahl();
-    if( !anz )
-        return 0;
-    int ret = 0;
-    bool *fertig = new bool[ anz ];
-    ZeroMemory( fertig, anz );
-    for( int i = 0; i < anz; i++ )
-    {
-        int index = -1;
-        int minMax = 0;
-        Text minMaxT;
-        for( int j = 0; j < anz; j++ )
-        {
-            AccountSUKListeKarte *tmp = karten->z( j );
-            if( !statusFilter->istGleich( "Alle" ) && !tmp->zStatus()->istGleich( statusFilter->getText() ) )
-                continue;
-            if( sortSpalte->istGleich( "Name" ) && !fertig[ j ] && ( index < 0 ||
-                                                                     ( sortAbsteigend && *tmp->zName() > minMaxT ) || ( !sortAbsteigend && *tmp->zName() < minMaxT ) ) )
-            {
-                minMaxT = tmp->zName()->getText();
-                index = j;
-            }
-            else if( sortSpalte->istGleich( "Spiele" ) && !fertig[ j ] && ( index < 0 ||
-                                                                            ( sortAbsteigend && tmp->getSpiele() > minMax ) || ( !sortAbsteigend && tmp->getSpiele() < minMax ) ) )
-            {
-                minMax = tmp->getSpiele();
-                index = j;
-            }
-            else if( sortSpalte->istGleich( "Gewonnen" ) && !fertig[ j ] && ( index < 0 ||
-                                                                              ( sortAbsteigend && tmp->getGewonnen() > minMax ) || ( !sortAbsteigend && tmp->getGewonnen() < minMax ) ) )
-            {
-                minMax = tmp->getGewonnen();
-                index = j;
-            }
-            else if( sortSpalte->istGleich( "Status" ) && !fertig[ j ] && ( index < 0 ||
-                                                                            ( sortAbsteigend && *tmp->zStatus() > minMaxT ) || ( !sortAbsteigend && *tmp->zStatus() < minMaxT ) ) )
-            {
-                minMaxT = tmp->zStatus()->getText();
-                index = j;
-            }
-            else if( sortSpalte->istGleich( "Punkte" ) && !fertig[ j ] )
-            {
-                index = j;
-                break;
-            }
-        }
-        if( index < 0 )
-            break;
-        fertig[ index ] = 1;
-        arr[ ret ] = index;
-        ret++;
-    }
-    delete[] fertig;
-    return ret;
+int AccountSUKListeSpiel::getReihenfolge(int* arr)
+{
+	int anz = karten->getEintragAnzahl();
+	if (!anz)
+		return 0;
+	int ret = 0;
+	bool* fertig = new bool[anz];
+	ZeroMemory(fertig, anz);
+	for (int i = 0; i < anz; i++)
+	{
+		int index = -1;
+		int minMax = 0;
+		Text minMaxT;
+		for (int j = 0; j < anz; j++)
+		{
+			AccountSUKListeKarte* tmp = karten->z(j);
+			if (!statusFilter->istGleich("Alle") && !tmp->zStatus()->istGleich(statusFilter->getText()))
+				continue;
+			if (sortSpalte->istGleich("Name") && !fertig[j] && (index < 0 ||
+				(sortAbsteigend && *tmp->zName() > minMaxT) || (!sortAbsteigend && *tmp->zName() < minMaxT)))
+			{
+				minMaxT = tmp->zName()->getText();
+				index = j;
+			}
+			else if (sortSpalte->istGleich("Spiele") && !fertig[j] && (index < 0 ||
+				(sortAbsteigend && tmp->getSpiele() > minMax) || (!sortAbsteigend && tmp->getSpiele() < minMax)))
+			{
+				minMax = tmp->getSpiele();
+				index = j;
+			}
+			else if (sortSpalte->istGleich("Gewonnen") && !fertig[j] && (index < 0 ||
+				(sortAbsteigend && tmp->getGewonnen() > minMax) || (!sortAbsteigend && tmp->getGewonnen() < minMax)))
+			{
+				minMax = tmp->getGewonnen();
+				index = j;
+			}
+			else if (sortSpalte->istGleich("Status") && !fertig[j] && (index < 0 ||
+				(sortAbsteigend && *tmp->zStatus() > minMaxT) || (!sortAbsteigend && *tmp->zStatus() < minMaxT)))
+			{
+				minMaxT = tmp->zStatus()->getText();
+				index = j;
+			}
+			else if (sortSpalte->istGleich("Punkte") && !fertig[j])
+			{
+				index = j;
+				break;
+			}
+		}
+		if (index < 0)
+			break;
+		fertig[index] = 1;
+		arr[ret] = index;
+		ret++;
+	}
+	delete[] fertig;
+	return ret;
 }
 
 // nicht constant
-void AccountSUKListeSpiel::setStatusAusw( char *status )
-{
-    statusFilter->setText( status );
-    rend = 1;
-}
-
-void AccountSUKListeSpiel::setSortSpalte( char *spalte )
-{
-    sortSpalte->setText( spalte );
-    rend = 1;
-}
-
-void AccountSUKListeSpiel::setSortRichtung( bool absteigend )
-{
-    sortAbsteigend = absteigend;
-    rend = 1;
-}
-
-bool AccountSUKListeSpiel::tick( double tickVal )
-{
-    rend |= details->tick( tickVal );
-    this->tickVal += tickVal * 150;
-    int val = (int)this->tickVal;
-    this->tickVal -= val;
-    if( val )
-    {
-        if( details->zHintergrundBild() == ausklappen && ram->getHeight() != 20 )
-        {
-            if( ram->getHeight() - val < 20 )
-                ram->setSize( ram->getBreite(), 20 );
-            else
-                ram->setSize( ram->getBreite(), ram->getHeight() - val );
-            rend = 1;
-        }
-        if( details->zHintergrundBild() == einklappen )
-        {
-            int maxHö = 20;
-            int anz = karten->getEintragAnzahl();
-            for( int i = 0; i < anz; i++ )
-            {
-                AccountSUKListeKarte *tmp = karten->z( i );
-                if( !statusFilter->istGleich( "Alle" ) && !tmp->zStatus()->istGleich( statusFilter->getText() ) )
-                    continue;
-                maxHö += 25;
-            }
-            if( maxHö > 20 )
-                maxHö += 5;
-            if( ram->getHeight() > maxHö )
-            {
-                if( ram->getHeight() - val < maxHö )
-                    ram->setSize( ram->getBreite(), maxHö );
-                else
-                    ram->setSize( ram->getBreite(), ram->getHeight() - val );
-                rend = 1;
-            }
-            if( ram->getHeight() < maxHö )
-            {
-                if( ram->getHeight() + val > maxHö )
-                    ram->setSize( ram->getBreite(), maxHö );
-                else
-                    ram->setSize( ram->getBreite(), ram->getHeight() + val );
-                rend = 1;
-            }
-        }
-    }
-    bool ret = rend;
-    rend = 0;
-    return ret;
-}
-
-void AccountSUKListeSpiel::doPublicMausEreignis( MausEreignis &me )
-{
-    bool vera = me.verarbeitet;
-    details->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet && me.id == ME_RLinks )
-    {
-        if( details->zHintergrundBild() == ausklappen )
-        {
-            details->setHintergrundBildZ( dynamic_cast<Bild *>( einklappen->getThis() ) );
-            // TODO: details->zToolTip()->setText( "Karten verbergen." );
-        }
-        else
-        {
-            details->setHintergrundBildZ( dynamic_cast<Bild *>( ausklappen->getThis() ) );
-            // TODO: details->zToolTip()->setText( "Karten anzeigen." );
-        }
-    }
-}
-
-void AccountSUKListeSpiel::render( int yOff, Bild &zRObj )
-{
-    if( !zRObj.setDrawOptions( 10, yOff, ram->getBreite(), ram->getHeight() ) )
-        return;
-    nameTF->render( zRObj );
-    spieleTF->render( zRObj );
-    gewonnenTF->render( zRObj );
-    punkteTF->render( zRObj );
-    statusTF->render( zRObj );
-    details->render( zRObj );
-    ram->render( zRObj );
-    if( ram->getHeight() > 20 )
-    {
-        zRObj.drawLinieH( 0, 20, ram->getBreite(), ram->getFarbe() );
-        if( !zRObj.setDrawOptions( 1, 25, ram->getBreite() - 2, ram->getHeight() - 2 ) )
-        {
-            zRObj.releaseDrawOptions();
-            return;
-        }
-        int anz = karten->getEintragAnzahl();
-        int *arr = new int[ anz ];
-        anz = getReihenfolge( arr );
-        yOff = 0;
-        for( int i = 0; i < anz; i++ )
-        {
-            karten->z( arr[ i ] )->render( yOff, zRObj );
-            yOff += 25;
-        }
-        delete[]arr;
-        zRObj.releaseDrawOptions();
-    }
-    zRObj.releaseDrawOptions();
+void AccountSUKListeSpiel::setStatusAusw(const char* status)
+{
+	statusFilter->setText(status);
+	rend = 1;
+}
+
+void AccountSUKListeSpiel::setSortSpalte(const char* spalte)
+{
+	sortSpalte->setText(spalte);
+	rend = 1;
+}
+
+void AccountSUKListeSpiel::setSortRichtung(bool absteigend)
+{
+	sortAbsteigend = absteigend;
+	rend = 1;
+}
+
+bool AccountSUKListeSpiel::tick(double tickVal)
+{
+	rend |= details->tick(tickVal);
+	this->tickVal += tickVal * 150;
+	int val = (int)this->tickVal;
+	this->tickVal -= val;
+	if (val)
+	{
+		if (details->zHintergrundBild() == ausklappen && ram->getHeight() != 20)
+		{
+			if (ram->getHeight() - val < 20)
+				ram->setSize(ram->getBreite(), 20);
+			else
+				ram->setSize(ram->getBreite(), ram->getHeight() - val);
+			rend = 1;
+		}
+		if (details->zHintergrundBild() == einklappen)
+		{
+			int maxHö = 20;
+			int anz = karten->getEintragAnzahl();
+			for (int i = 0; i < anz; i++)
+			{
+				AccountSUKListeKarte* tmp = karten->z(i);
+				if (!statusFilter->istGleich("Alle") && !tmp->zStatus()->istGleich(statusFilter->getText()))
+					continue;
+				maxHö += 25;
+			}
+			if (maxHö > 20)
+				maxHö += 5;
+			if (ram->getHeight() > maxHö)
+			{
+				if (ram->getHeight() - val < maxHö)
+					ram->setSize(ram->getBreite(), maxHö);
+				else
+					ram->setSize(ram->getBreite(), ram->getHeight() - val);
+				rend = 1;
+			}
+			if (ram->getHeight() < maxHö)
+			{
+				if (ram->getHeight() + val > maxHö)
+					ram->setSize(ram->getBreite(), maxHö);
+				else
+					ram->setSize(ram->getBreite(), ram->getHeight() + val);
+				rend = 1;
+			}
+		}
+	}
+	bool ret = rend;
+	rend = 0;
+	return ret;
+}
+
+void AccountSUKListeSpiel::doPublicMausEreignis(MausEreignis& me)
+{
+	bool vera = me.verarbeitet;
+	details->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet && me.id == ME_RLinks)
+	{
+		if (details->zHintergrundBild() == ausklappen)
+		{
+			details->setHintergrundBildZ(dynamic_cast<Bild*>(einklappen->getThis()));
+			// TODO: details->zToolTip()->setText( "Karten verbergen." );
+		}
+		else
+		{
+			details->setHintergrundBildZ(dynamic_cast<Bild*>(ausklappen->getThis()));
+			// TODO: details->zToolTip()->setText( "Karten anzeigen." );
+		}
+	}
+}
+
+void AccountSUKListeSpiel::render(int yOff, Bild& zRObj)
+{
+	if (!zRObj.setDrawOptions(10, yOff, ram->getBreite(), ram->getHeight()))
+		return;
+	nameTF->render(zRObj);
+	spieleTF->render(zRObj);
+	gewonnenTF->render(zRObj);
+	punkteTF->render(zRObj);
+	statusTF->render(zRObj);
+	details->render(zRObj);
+	ram->render(zRObj);
+	if (ram->getHeight() > 20)
+	{
+		zRObj.drawLinieH(0, 20, ram->getBreite(), ram->getFarbe());
+		if (!zRObj.setDrawOptions(1, 25, ram->getBreite() - 2, ram->getHeight() - 2))
+		{
+			zRObj.releaseDrawOptions();
+			return;
+		}
+		int anz = karten->getEintragAnzahl();
+		int* arr = new int[anz];
+		anz = getReihenfolge(arr);
+		yOff = 0;
+		for (int i = 0; i < anz; i++)
+		{
+			karten->z(arr[i])->render(yOff, zRObj);
+			yOff += 25;
+		}
+		delete[]arr;
+		zRObj.releaseDrawOptions();
+	}
+	zRObj.releaseDrawOptions();
 }
 
 // constant
 int AccountSUKListeSpiel::getHeight() const
 {
-    return ram->getHeight();
+	return ram->getHeight();
 }
 
-Text *AccountSUKListeSpiel::zName() const
+Text* AccountSUKListeSpiel::zName() const
 {
-    return name;
+	return name;
 }
 
 int AccountSUKListeSpiel::getSpiele() const
 {
-    return spiele;
+	return spiele;
 }
 
 int AccountSUKListeSpiel::getGewonnen() const
 {
-    return gewonnen;
+	return gewonnen;
 }
 
 int AccountSUKListeSpiel::getPunkte() const
 {
-    return punkte;
+	return punkte;
 }
 
-Text *AccountSUKListeSpiel::zStatus() const
+Text* AccountSUKListeSpiel::zStatus() const
 {
-    return status;
+	return status;
 }
 
 
 // Inhalt der AccountSUKListe Klasse aus AccountSpieleUndKarten.h
 // Konstruktor
 AccountSUKListe::AccountSUKListe()
-    : Zeichnung(),
-    ram( new LRahmen() ),
-    scroll( new VScrollBar() ),
-    spiele( new RCArray< AccountSUKListeSpiel >() ),
-    status( new Text() ),
-    statusFilter( new Text( "Alle" ) ),
-    sortSpalte( new Text( "Name" ) ),
-    sortAbsteigend( 0 ),
-    rend( 0 )
-{
-    pos = Punkt( 10, 40 );
-    ram->setSize( 760, 380 );
-    ram->setFarbe( 0xFFFFFFFF );
-    ram->setRamenBreite( 1 );
+	: Zeichnung(),
+	ram(new LRahmen()),
+	scroll(new VScrollBar()),
+	spiele(new RCArray< AccountSUKListeSpiel >()),
+	status(new Text()),
+	statusFilter(new Text("Alle")),
+	sortSpalte(new Text("Name")),
+	sortAbsteigend(0),
+	rend(0)
+{
+	pos = Punkt(10, 40);
+	ram->setSize(760, 380);
+	ram->setFarbe(0xFFFFFFFF);
+	ram->setRamenBreite(1);
 }
 
 // Destruktor
 AccountSUKListe::~AccountSUKListe()
 {
-    ram->release();
-    scroll->release();
-    spiele->release();
-    status->release();
-    statusFilter->release();
-    sortSpalte->release();
+	ram->release();
+	scroll->release();
+	spiele->release();
+	status->release();
+	statusFilter->release();
+	sortSpalte->release();
 }
 
 // privat
-int AccountSUKListe::getReihenfolge( int *arr )
-{
-    int anz = spiele->getEintragAnzahl();
-    if( !anz )
-        return 0;
-    int ret = 0;
-    bool *fertig = new bool[ anz ];
-    ZeroMemory( fertig, anz );
-    for( int i = 0; i < anz; i++ )
-    {
-        int index = -1;
-        int minMax = 0;
-        Text minMaxT;
-        for( int j = 0; j < anz; j++ )
-        {
-            AccountSUKListeSpiel *tmp = spiele->z( j );
-            if( !statusFilter->istGleich( "Alle" ) && !tmp->zStatus()->istGleich( statusFilter->getText() ) )
-                continue;
-            if( sortSpalte->istGleich( "Name" ) && !fertig[ j ] && ( index < 0 ||
-                                                                     ( sortAbsteigend && *tmp->zName() > minMaxT ) || ( !sortAbsteigend && *tmp->zName() < minMaxT ) ) )
-            {
-                minMaxT = tmp->zName()->getText();
-                index = j;
-            }
-            else if( sortSpalte->istGleich( "Spiele" ) && !fertig[ j ] && ( index < 0 ||
-                                                                            ( sortAbsteigend && tmp->getSpiele() > minMax ) || ( !sortAbsteigend && tmp->getSpiele() < minMax ) ) )
-            {
-                minMax = tmp->getSpiele();
-                index = j;
-            }
-            else if( sortSpalte->istGleich( "Gewonnen" ) && !fertig[ j ] && ( index < 0 ||
-                                                                              ( sortAbsteigend && tmp->getGewonnen() > minMax ) || ( !sortAbsteigend && tmp->getGewonnen() < minMax ) ) )
-            {
-                minMax = tmp->getGewonnen();
-                index = j;
-            }
-            else if( sortSpalte->istGleich( "Punkte" ) && !fertig[ j ] && ( index < 0 ||
-                                                                            ( sortAbsteigend && tmp->getPunkte() > minMax ) || ( !sortAbsteigend && tmp->getPunkte() < minMax ) ) )
-            {
-                minMax = tmp->getPunkte();
-                index = j;
-            }
-            else if( sortSpalte->istGleich( "Status" ) && !fertig[ j ] && ( index < 0 ||
-                                                                            ( sortAbsteigend && *tmp->zStatus() > minMaxT ) || ( !sortAbsteigend && *tmp->zStatus() < minMaxT ) ) )
-            {
-                minMaxT = tmp->zStatus()->getText();
-                index = j;
-            }
-        }
-        if( index < 0 )
-            break;
-        fertig[ index ] = 1;
-        arr[ ret ] = index;
-        ret++;
-    }
-    delete[] fertig;
-    return ret;
+int AccountSUKListe::getReihenfolge(int* arr)
+{
+	int anz = spiele->getEintragAnzahl();
+	if (!anz)
+		return 0;
+	int ret = 0;
+	bool* fertig = new bool[anz];
+	ZeroMemory(fertig, anz);
+	for (int i = 0; i < anz; i++)
+	{
+		int index = -1;
+		int minMax = 0;
+		Text minMaxT;
+		for (int j = 0; j < anz; j++)
+		{
+			AccountSUKListeSpiel* tmp = spiele->z(j);
+			if (!statusFilter->istGleich("Alle") && !tmp->zStatus()->istGleich(statusFilter->getText()))
+				continue;
+			if (sortSpalte->istGleich("Name") && !fertig[j] && (index < 0 ||
+				(sortAbsteigend && *tmp->zName() > minMaxT) || (!sortAbsteigend && *tmp->zName() < minMaxT)))
+			{
+				minMaxT = tmp->zName()->getText();
+				index = j;
+			}
+			else if (sortSpalte->istGleich("Spiele") && !fertig[j] && (index < 0 ||
+				(sortAbsteigend && tmp->getSpiele() > minMax) || (!sortAbsteigend && tmp->getSpiele() < minMax)))
+			{
+				minMax = tmp->getSpiele();
+				index = j;
+			}
+			else if (sortSpalte->istGleich("Gewonnen") && !fertig[j] && (index < 0 ||
+				(sortAbsteigend && tmp->getGewonnen() > minMax) || (!sortAbsteigend && tmp->getGewonnen() < minMax)))
+			{
+				minMax = tmp->getGewonnen();
+				index = j;
+			}
+			else if (sortSpalte->istGleich("Punkte") && !fertig[j] && (index < 0 ||
+				(sortAbsteigend && tmp->getPunkte() > minMax) || (!sortAbsteigend && tmp->getPunkte() < minMax)))
+			{
+				minMax = tmp->getPunkte();
+				index = j;
+			}
+			else if (sortSpalte->istGleich("Status") && !fertig[j] && (index < 0 ||
+				(sortAbsteigend && *tmp->zStatus() > minMaxT) || (!sortAbsteigend && *tmp->zStatus() < minMaxT)))
+			{
+				minMaxT = tmp->zStatus()->getText();
+				index = j;
+			}
+		}
+		if (index < 0)
+			break;
+		fertig[index] = 1;
+		arr[ret] = index;
+		ret++;
+	}
+	delete[] fertig;
+	return ret;
 }
 
 // nicht constant
 void AccountSUKListe::reset()
 {
-    lockZeichnung();
-    spiele->leeren();
-    unlockZeichnung();
-}
-
-void AccountSUKListe::addSpiel( AccountSUKListeSpiel *spiel )
-{
-    lockZeichnung();
-    spiel->setSortRichtung( sortAbsteigend );
-    spiel->setSortSpalte( sortSpalte->getText() );
-    spiel->setStatusAusw( statusFilter->getText() );
-    spiele->add( spiel );
-    unlockZeichnung();
-}
-
-void AccountSUKListe::setStatusAusw( char *status )
-{
-    lockZeichnung();
-    this->statusFilter->setText( status );
-    int anz = spiele->getEintragAnzahl();
-    for( int i = 0; i < anz; i++ )
-        spiele->z( i )->setStatusAusw( status );
-    unlockZeichnung();
-    rend = 1;
-}
-
-void AccountSUKListe::setSortSpalte( char *spalte )
-{
-    lockZeichnung();
-    this->sortSpalte->setText( spalte );
-    int anz = spiele->getEintragAnzahl();
-    for( int i = 0; i < anz; i++ )
-        spiele->z( i )->setSortSpalte( spalte );
-    unlockZeichnung();
-    rend = 1;
-}
-
-void AccountSUKListe::setSortRichtung( bool absteigend )
-{
-    lockZeichnung();
-    sortAbsteigend = absteigend;
-    int anz = spiele->getEintragAnzahl();
-    for( int i = 0; i < anz; i++ )
-        spiele->z( i )->setSortRichtung( absteigend );
-    unlockZeichnung();
-    rend = 1;
-}
-
-bool AccountSUKListe::tick( double tickVal )
-{
-    lockZeichnung();
-    int anz = spiele->getEintragAnzahl();
-    if( anz > 0 )
-    {
-        int *rf = new int[ anz ];
-        int rfAnz = getReihenfolge( rf );
-        for( int i = 0; i < rfAnz; i++ )
-            rend |= spiele->z( rf[ i ] )->tick( tickVal );
-        delete[] rf;
-    }
-    unlockZeichnung();
-    rend |= scroll->getRend();
-    bool ret = rend;
-    rend = 0;
-    return ret;
-}
-
-void AccountSUKListe::doPublicMausEreignis( MausEreignis &me )
-{
-    bool vera = 0;
-    if( me.mx - pos.x <= 0 || me.mx - pos.x >= ram->getBreite() || me.my - pos.y <= 0 || me.my - pos.y >= ram->getHeight() )
-    {
-        vera = 1;
-        me.verarbeitet = 1;
-    }
-    int mx = me.mx, my = me.my;
-    me.mx -= pos.x;
-    me.my -= pos.y;
-    scroll->doMausMessage( ram->getBreite() - 16, 1, 15, ram->getHeight() - 2, me );
-    me.mx -= 10;
-    me.my -= 10 - scroll->getScroll();
-    lockZeichnung();
-    int anz = spiele->getEintragAnzahl();
-    int *rf = new int[ anz ];
-    int rfAnz = getReihenfolge( rf );
-    for( int i = 0; i < rfAnz; i++ )
-    {
-        spiele->z( rf[ i ] )->doPublicMausEreignis( me );
-        me.my -= spiele->z( rf[ i ] )->getHeight() + 10;
-    }
-    delete[] rf;
-    unlockZeichnung();
-    me.mx = mx, me.my = my;
-    if( vera )
-        me.verarbeitet = 0;
-}
-
-void AccountSUKListe::render( Bild &zRObj )
-{
-    if( !zRObj.setDrawOptions( pos.x, pos.y, ram->getBreite(), ram->getBreite() ) )
-        return;
-    ram->render( zRObj );
-    scroll->render( ram->getBreite() - 16, 1, 15, ram->getHeight() - 2, zRObj );
-    if( !zRObj.setDrawOptions( 1, 1, ram->getBreite() - 15, ram->getHeight() - 2 ) )
-    {
-        zRObj.releaseDrawOptions();
-        return;
-    }
-    int y = -scroll->getScroll();
-    int anzHö = 10;
-    lockZeichnung();
-    int anz = spiele->getEintragAnzahl();
-    int *rf = new int[ anz ];
-    int rfAnz = getReihenfolge( rf );
-    for( int i = 0; i < rfAnz; i++ )
-    {
-        spiele->z( rf[ i ] )->render( anzHö, zRObj );
-        anzHö += spiele->z( rf[ i ] )->getHeight() + 10;
-    }
-    delete[] rf;
-    unlockZeichnung();
-    scroll->update( anzHö, ram->getHeight() - 2 );
-    zRObj.releaseDrawOptions();
-    zRObj.releaseDrawOptions();
+	lockZeichnung();
+	spiele->leeren();
+	unlockZeichnung();
+}
+
+void AccountSUKListe::addSpiel(AccountSUKListeSpiel* spiel)
+{
+	lockZeichnung();
+	spiel->setSortRichtung(sortAbsteigend);
+	spiel->setSortSpalte(sortSpalte->getText());
+	spiel->setStatusAusw(statusFilter->getText());
+	spiele->add(spiel);
+	unlockZeichnung();
+}
+
+void AccountSUKListe::setStatusAusw(const char* status)
+{
+	lockZeichnung();
+	this->statusFilter->setText(status);
+	int anz = spiele->getEintragAnzahl();
+	for (int i = 0; i < anz; i++)
+		spiele->z(i)->setStatusAusw(status);
+	unlockZeichnung();
+	rend = 1;
+}
+
+void AccountSUKListe::setSortSpalte(const char* spalte)
+{
+	lockZeichnung();
+	this->sortSpalte->setText(spalte);
+	int anz = spiele->getEintragAnzahl();
+	for (int i = 0; i < anz; i++)
+		spiele->z(i)->setSortSpalte(spalte);
+	unlockZeichnung();
+	rend = 1;
+}
+
+void AccountSUKListe::setSortRichtung(bool absteigend)
+{
+	lockZeichnung();
+	sortAbsteigend = absteigend;
+	int anz = spiele->getEintragAnzahl();
+	for (int i = 0; i < anz; i++)
+		spiele->z(i)->setSortRichtung(absteigend);
+	unlockZeichnung();
+	rend = 1;
+}
+
+bool AccountSUKListe::tick(double tickVal)
+{
+	lockZeichnung();
+	int anz = spiele->getEintragAnzahl();
+	if (anz > 0)
+	{
+		int* rf = new int[anz];
+		int rfAnz = getReihenfolge(rf);
+		for (int i = 0; i < rfAnz; i++)
+			rend |= spiele->z(rf[i])->tick(tickVal);
+		delete[] rf;
+	}
+	unlockZeichnung();
+	rend |= scroll->getRend();
+	bool ret = rend;
+	rend = 0;
+	return ret;
+}
+
+void AccountSUKListe::doPublicMausEreignis(MausEreignis& me)
+{
+	bool vera = 0;
+	if (me.mx - pos.x <= 0 || me.mx - pos.x >= ram->getBreite() || me.my - pos.y <= 0 || me.my - pos.y >= ram->getHeight())
+	{
+		vera = 1;
+		me.verarbeitet = 1;
+	}
+	int mx = me.mx, my = me.my;
+	me.mx -= pos.x;
+	me.my -= pos.y;
+	scroll->doMausMessage(ram->getBreite() - 16, 1, 15, ram->getHeight() - 2, me);
+	me.mx -= 10;
+	me.my -= 10 - scroll->getScroll();
+	lockZeichnung();
+	int anz = spiele->getEintragAnzahl();
+	int* rf = new int[anz];
+	int rfAnz = getReihenfolge(rf);
+	for (int i = 0; i < rfAnz; i++)
+	{
+		spiele->z(rf[i])->doPublicMausEreignis(me);
+		me.my -= spiele->z(rf[i])->getHeight() + 10;
+	}
+	delete[] rf;
+	unlockZeichnung();
+	me.mx = mx, me.my = my;
+	if (vera)
+		me.verarbeitet = 0;
+}
+
+void AccountSUKListe::render(Bild& zRObj)
+{
+	if (!zRObj.setDrawOptions(pos.x, pos.y, ram->getBreite(), ram->getBreite()))
+		return;
+	ram->render(zRObj);
+	scroll->render(ram->getBreite() - 16, 1, 15, ram->getHeight() - 2, zRObj);
+	if (!zRObj.setDrawOptions(1, 1, ram->getBreite() - 15, ram->getHeight() - 2))
+	{
+		zRObj.releaseDrawOptions();
+		return;
+	}
+	int y = -scroll->getScroll();
+	int anzHö = 10;
+	lockZeichnung();
+	int anz = spiele->getEintragAnzahl();
+	int* rf = new int[anz];
+	int rfAnz = getReihenfolge(rf);
+	for (int i = 0; i < rfAnz; i++)
+	{
+		spiele->z(rf[i])->render(anzHö, zRObj);
+		anzHö += spiele->z(rf[i])->getHeight() + 10;
+	}
+	delete[] rf;
+	unlockZeichnung();
+	scroll->update(anzHö, ram->getHeight() - 2);
+	zRObj.releaseDrawOptions();
+	zRObj.releaseDrawOptions();
 }
 
 #define ABSTYLE AuswahlBox::Style::Sichtbar | AuswahlBox::Style::Erlaubt | AuswahlBox::Style::Rahmen | AuswahlBox::Style::AuswahlBuffer | AuswahlBox::Style::MausBuffer | AuswahlBox::Style::MaxHeight | AuswahlBox::Style::Hintergrund | AuswahlBox::Style::VScroll
@@ -601,238 +601,238 @@ void AccountSUKListe::render( Bild &zRObj )
 // Inhalt der AccountSpieleUndKarten Klasse aus AccountSpieleUndKarten.h
 // Konstruktor
 AccountSpieleUndKarten::AccountSpieleUndKarten()
-    : Thread(),
-    spieleUndKartenF( initFenster( 810, 40, 780, 450, Fenster::Style::Sichtbar | Fenster::Style::Titel | Fenster::Style::TitelBuffered | Fenster::Style::Rahmen | Fenster::Style::Erlaubt, "Spiele und Karten von " ) ),
-    statusAusw( initAuswahlBox( 10, 10, 150, 20, ABSTYLE, { "Alle", "Im Besitz", "Nicht im Besitz" } ) ),
-    sortSpalte( initAuswahlBox( 170, 10, 150, 20, ABSTYLE, { "Name", "Spiele", "Gewonnen", "Punkte", "Status" } ) ),
-    sortRichtung( initAuswahlBox( 330, 10, 150, 20, ABSTYLE, { "Aufwärts", "Abwärts" } ) ),
-    liste( new AccountSUKListe() ),
-    status( 0 ),
-    accId( 0 ),
-    animation( 0 ),
-    alpha( 255 ),
-    tickVal( 0 ),
-    rend( 0 )
-{
-    initToolTip( statusAusw, "Wähle den Status der anzuzeigenden Spiele und Karten aus." );
-    initToolTip( sortSpalte, "Wähle aus, nach welcher Spalte die\nTabelle sortiert werden soll." );
-    initToolTip( sortRichtung, "Wähle aus, Ob Aufwärts oder Abwärts sortiert werden soll." );
-    spieleUndKartenF->addMember( dynamic_cast<Zeichnung *>( liste->getThis() ) );
-    spieleUndKartenF->addMember( dynamic_cast<Zeichnung *>( statusAusw->getThis() ) );
-    spieleUndKartenF->addMember( dynamic_cast<Zeichnung *>( sortSpalte->getThis() ) );
-    spieleUndKartenF->addMember( dynamic_cast<Zeichnung *>( sortRichtung->getThis() ) );
-    spieleUndKartenF->setMausEreignis( _ret1ME );
+	: Thread(),
+	spieleUndKartenF(initFenster(810, 40, 780, 450, Fenster::Style::Sichtbar | Fenster::Style::Titel | Fenster::Style::TitelBuffered | Fenster::Style::Rahmen | Fenster::Style::Erlaubt, "Spiele und Karten von ")),
+	statusAusw(initAuswahlBox(10, 10, 150, 20, ABSTYLE, { "Alle", "Im Besitz", "Nicht im Besitz" })),
+	sortSpalte(initAuswahlBox(170, 10, 150, 20, ABSTYLE, { "Name", "Spiele", "Gewonnen", "Punkte", "Status" })),
+	sortRichtung(initAuswahlBox(330, 10, 150, 20, ABSTYLE, { "Aufwärts", "Abwärts" })),
+	liste(new AccountSUKListe()),
+	status(0),
+	accId(0),
+	animation(0),
+	alpha(255),
+	tickVal(0),
+	rend(0)
+{
+	initToolTip(statusAusw, "Wähle den Status der anzuzeigenden Spiele und Karten aus.");
+	initToolTip(sortSpalte, "Wähle aus, nach welcher Spalte die\nTabelle sortiert werden soll.");
+	initToolTip(sortRichtung, "Wähle aus, Ob Aufwärts oder Abwärts sortiert werden soll.");
+	spieleUndKartenF->addMember(dynamic_cast<Zeichnung*>(liste->getThis()));
+	spieleUndKartenF->addMember(dynamic_cast<Zeichnung*>(statusAusw->getThis()));
+	spieleUndKartenF->addMember(dynamic_cast<Zeichnung*>(sortSpalte->getThis()));
+	spieleUndKartenF->addMember(dynamic_cast<Zeichnung*>(sortRichtung->getThis()));
+	spieleUndKartenF->setMausEreignis(_ret1ME);
 }
 
 // Destruktor
 AccountSpieleUndKarten::~AccountSpieleUndKarten()
 {
-    spieleUndKartenF->release();
-    statusAusw->release();
-    sortSpalte->release();
-    sortRichtung->release();
-    liste->release();
+	spieleUndKartenF->release();
+	statusAusw->release();
+	sortSpalte->release();
+	sortRichtung->release();
+	liste->release();
 }
 
 // nicht constant
 void AccountSpieleUndKarten::reset()
 {
-    liste->reset();
-}
-
-void AccountSpieleUndKarten::ladeStatistik( int accId )
-{
-    if( this->accId == accId )
-        return;
-    this->status = 0;
-    if( run )
-    {
-        warteAufThread( 1000 );
-        ende();
-    }
-    if( ( animation | 0x1 ) == animation )
-    {
-        animation |= 0x4;
-        this->accId = accId;
-        this->status = 1;
-        return;
-    }
-    if( this->accId )
-        reset();
-    this->accId = accId;
-    start();
-    this->status = 1;
+	liste->reset();
+}
+
+void AccountSpieleUndKarten::ladeStatistik(int accId)
+{
+	if (this->accId == accId)
+		return;
+	this->status = 0;
+	if (run)
+	{
+		warteAufThread(1000);
+		ende();
+	}
+	if ((animation | 0x1) == animation)
+	{
+		animation |= 0x4;
+		this->accId = accId;
+		this->status = 1;
+		return;
+	}
+	if (this->accId)
+		reset();
+	this->accId = accId;
+	start();
+	this->status = 1;
 }
 
 void AccountSpieleUndKarten::thread()
 {
-    Text *name = infoClient->getSpielerName( accId );
-    if( name )
-    {
-        name->insert( 0, "Spiele und Karten von " );
-        spieleUndKartenF->setTitel( *name );
-        name->release();
-    }
-    Array< int > *spiele = infoClient->getAccountSpielGespieltListe( accId );
-    if( spiele )
-    {
-        int anz = spiele->getEintragAnzahl();
-        for( int i = 0; i < anz; i++ )
-        {
-            AccountSUKListeSpiel *s = new AccountSUKListeSpiel( spiele->get( i ), accId );
-            liste->addSpiel( s );
-        }
-        spiele->release();
-    }
-    else
-        nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( "Fehler beim laden der Daten." ), new Text( "Ok" ) );
-    animation &= ~0x4;
-    status = 2;
-    run = 0;
-}
-
-void AccountSpieleUndKarten::setSichtbar( bool sichtbar, bool nachRechts )
-{
-    if( sichtbar )
-    {
-        if( ( animation | 0x1 ) != animation || ( ( nachRechts && ( animation | 0x2 ) != animation ) || !nachRechts && ( animation | 0x2 ) == animation ) )
-        {
-            if( nachRechts )
-                spieleUndKartenF->setPosition( -810, 40 );
-            else
-                spieleUndKartenF->setPosition( 810, 40 );
-        }
-        animation |= 0x1;
-    }
-    else
-        animation &= ~0x1;
-    if( nachRechts )
-        animation |= 0x2;
-    else
-        animation &= ~0x2;
-}
-
-bool AccountSpieleUndKarten::tick( double zeit )
-{
-    rend |= spieleUndKartenF->tick( zeit );
-    tickVal += zeit;
-    int valA = (int)( tickVal * 150 );
-    int valB = (int)( tickVal * 500 );
-    tickVal -= valA / 150.0;
-    if( valA )
-    {
-        if( ( animation | 0x4 ) == animation && alpha )
-        {
-            if( alpha - valA <= 0 )
-                alpha = 0;
-            else
-                alpha -= valA;
-            rend = 1;
-            if( !alpha )
-            {
-                reset();
-                start();
-            }
-        }
-        if( ( animation | 0x4 ) != animation && alpha != 255 )
-        {
-            if( alpha + valA >= 255 )
-                alpha = 255;
-            else
-                alpha += valA;
-            rend = 1;
-        }
-    }
-    if( valB )
-    {
-        if( ( animation | 0x1 ) == animation )
-        { // Sichtbar
-            if( ( animation | 0x2 ) == animation )
-            { // Nach Rechts
-                if( spieleUndKartenF->getX() != 10 )
-                {
-                    if( spieleUndKartenF->getX() + valB > 10 )
-                        spieleUndKartenF->setPosition( 10, spieleUndKartenF->getY() );
-                    else
-                        spieleUndKartenF->setPosition( spieleUndKartenF->getX() + valB, spieleUndKartenF->getY() );
-                    rend = 1;
-                }
-            }
-            else
-            { // Nach Links
-                if( spieleUndKartenF->getX() != 10 )
-                {
-                    if( spieleUndKartenF->getX() - valB < 10 )
-                        spieleUndKartenF->setPosition( 10, spieleUndKartenF->getY() );
-                    else
-                        spieleUndKartenF->setPosition( spieleUndKartenF->getX() - valB, spieleUndKartenF->getY() );
-                    rend = 1;
-                }
-            }
-        }
-        else
-        { // Unsichtbar
-            if( ( animation | 0x2 ) == animation )
-            { // Nach Rechts
-                if( spieleUndKartenF->getX() != 810 )
-                {
-                    if( spieleUndKartenF->getX() + valB > 810 )
-                        spieleUndKartenF->setPosition( 810, spieleUndKartenF->getY() );
-                    else
-                        spieleUndKartenF->setPosition( spieleUndKartenF->getX() + valB, spieleUndKartenF->getY() );
-                    rend = 1;
-                }
-            }
-            else
-            { // Nach Links
-                if( spieleUndKartenF->getX() != -810 )
-                {
-                    if( spieleUndKartenF->getX() - valB < -810 )
-                        spieleUndKartenF->setPosition( -810, spieleUndKartenF->getY() );
-                    else
-                        spieleUndKartenF->setPosition( spieleUndKartenF->getX() - valB, spieleUndKartenF->getY() );
-                    rend = 1;
-                }
-            }
-        }
-    }
-    bool ret = rend;
-    rend = 0;
-    return ret;
-}
-
-void AccountSpieleUndKarten::doPublicMausEreignis( MausEreignis &me )
-{
-    int statusAuswS = statusAusw->getAuswahl();
-    int sortSpalteS = sortSpalte->getAuswahl();
-    int sortRichtungS = sortRichtung->getAuswahl();
-    spieleUndKartenF->doPublicMausEreignis( me );
-    if( statusAusw->getAuswahl() != statusAuswS )
-    {
-        liste->setStatusAusw( statusAusw->zEintrag( statusAusw->getAuswahl() )->zText()->getText() );
-        statusAusw->einklappen();
-    }
-    if( sortSpalte->getAuswahl() != sortSpalteS )
-    {
-        liste->setSortSpalte( sortSpalte->zEintrag( sortSpalte->getAuswahl() )->zText()->getText() );
-        sortSpalte->einklappen();
-    }
-    if( sortRichtung->getAuswahl() != sortRichtungS )
-    {
-        liste->setSortRichtung( sortRichtung->getAuswahl() != 0 );
-        sortRichtung->einklappen();
-    }
-}
-
-void AccountSpieleUndKarten::render( Bild &zRObj )
-{
-    zRObj.setAlpha( alpha );
-    spieleUndKartenF->render( zRObj );
-    zRObj.releaseAlpha();
+	Text* name = infoClient->getSpielerName(accId);
+	if (name)
+	{
+		name->insert(0, "Spiele und Karten von ");
+		spieleUndKartenF->setTitel(*name);
+		name->release();
+	}
+	Array< int >* spiele = infoClient->getAccountSpielGespieltListe(accId);
+	if (spiele)
+	{
+		int anz = spiele->getEintragAnzahl();
+		for (int i = 0; i < anz; i++)
+		{
+			AccountSUKListeSpiel* s = new AccountSUKListeSpiel(spiele->get(i), accId);
+			liste->addSpiel(s);
+		}
+		spiele->release();
+	}
+	else
+		nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text("Fehler beim laden der Daten."), new Text("Ok"));
+	animation &= ~0x4;
+	status = 2;
+	run = 0;
+}
+
+void AccountSpieleUndKarten::setSichtbar(bool sichtbar, bool nachRechts)
+{
+	if (sichtbar)
+	{
+		if ((animation | 0x1) != animation || ((nachRechts && (animation | 0x2) != animation) || !nachRechts && (animation | 0x2) == animation))
+		{
+			if (nachRechts)
+				spieleUndKartenF->setPosition(-810, 40);
+			else
+				spieleUndKartenF->setPosition(810, 40);
+		}
+		animation |= 0x1;
+	}
+	else
+		animation &= ~0x1;
+	if (nachRechts)
+		animation |= 0x2;
+	else
+		animation &= ~0x2;
+}
+
+bool AccountSpieleUndKarten::tick(double zeit)
+{
+	rend |= spieleUndKartenF->tick(zeit);
+	tickVal += zeit;
+	int valA = (int)(tickVal * 150);
+	int valB = (int)(tickVal * 500);
+	tickVal -= valA / 150.0;
+	if (valA)
+	{
+		if ((animation | 0x4) == animation && alpha)
+		{
+			if (alpha - valA <= 0)
+				alpha = 0;
+			else
+				alpha -= valA;
+			rend = 1;
+			if (!alpha)
+			{
+				reset();
+				start();
+			}
+		}
+		if ((animation | 0x4) != animation && alpha != 255)
+		{
+			if (alpha + valA >= 255)
+				alpha = 255;
+			else
+				alpha += valA;
+			rend = 1;
+		}
+	}
+	if (valB)
+	{
+		if ((animation | 0x1) == animation)
+		{ // Sichtbar
+			if ((animation | 0x2) == animation)
+			{ // Nach Rechts
+				if (spieleUndKartenF->getX() != 10)
+				{
+					if (spieleUndKartenF->getX() + valB > 10)
+						spieleUndKartenF->setPosition(10, spieleUndKartenF->getY());
+					else
+						spieleUndKartenF->setPosition(spieleUndKartenF->getX() + valB, spieleUndKartenF->getY());
+					rend = 1;
+				}
+			}
+			else
+			{ // Nach Links
+				if (spieleUndKartenF->getX() != 10)
+				{
+					if (spieleUndKartenF->getX() - valB < 10)
+						spieleUndKartenF->setPosition(10, spieleUndKartenF->getY());
+					else
+						spieleUndKartenF->setPosition(spieleUndKartenF->getX() - valB, spieleUndKartenF->getY());
+					rend = 1;
+				}
+			}
+		}
+		else
+		{ // Unsichtbar
+			if ((animation | 0x2) == animation)
+			{ // Nach Rechts
+				if (spieleUndKartenF->getX() != 810)
+				{
+					if (spieleUndKartenF->getX() + valB > 810)
+						spieleUndKartenF->setPosition(810, spieleUndKartenF->getY());
+					else
+						spieleUndKartenF->setPosition(spieleUndKartenF->getX() + valB, spieleUndKartenF->getY());
+					rend = 1;
+				}
+			}
+			else
+			{ // Nach Links
+				if (spieleUndKartenF->getX() != -810)
+				{
+					if (spieleUndKartenF->getX() - valB < -810)
+						spieleUndKartenF->setPosition(-810, spieleUndKartenF->getY());
+					else
+						spieleUndKartenF->setPosition(spieleUndKartenF->getX() - valB, spieleUndKartenF->getY());
+					rend = 1;
+				}
+			}
+		}
+	}
+	bool ret = rend;
+	rend = 0;
+	return ret;
+}
+
+void AccountSpieleUndKarten::doPublicMausEreignis(MausEreignis& me)
+{
+	int statusAuswS = statusAusw->getAuswahl();
+	int sortSpalteS = sortSpalte->getAuswahl();
+	int sortRichtungS = sortRichtung->getAuswahl();
+	spieleUndKartenF->doPublicMausEreignis(me);
+	if (statusAusw->getAuswahl() != statusAuswS)
+	{
+		liste->setStatusAusw(statusAusw->zEintrag(statusAusw->getAuswahl())->zText()->getText());
+		statusAusw->einklappen();
+	}
+	if (sortSpalte->getAuswahl() != sortSpalteS)
+	{
+		liste->setSortSpalte(sortSpalte->zEintrag(sortSpalte->getAuswahl())->zText()->getText());
+		sortSpalte->einklappen();
+	}
+	if (sortRichtung->getAuswahl() != sortRichtungS)
+	{
+		liste->setSortRichtung(sortRichtung->getAuswahl() != 0);
+		sortRichtung->einklappen();
+	}
+}
+
+void AccountSpieleUndKarten::render(Bild& zRObj)
+{
+	zRObj.setAlpha(alpha);
+	spieleUndKartenF->render(zRObj);
+	zRObj.releaseAlpha();
 }
 
 // constant
 int AccountSpieleUndKarten::getStatus() const
 {
-    return status;
+	return status;
 }

+ 111 - 111
KSGClient/NachLogin/Account/Spiele_Karten/AccountSpieleUndKarten.h

@@ -12,142 +12,142 @@ using namespace Framework;
 class AccountSUKListeKarte : public virtual ReferenceCounter
 {
 private:
-    LRahmen *ram;
-    TextFeld *name;
-    TextFeld *spiele;
-    TextFeld *gewonnen;
-    TextFeld *status;
-    Text *na;
-    int sp;
-    int gw;
-    Text *st;
-    int karteId;
-    bool rend;
+	LRahmen* ram;
+	TextFeld* name;
+	TextFeld* spiele;
+	TextFeld* gewonnen;
+	TextFeld* status;
+	Text* na;
+	int sp;
+	int gw;
+	Text* st;
+	int karteId;
+	bool rend;
 
 public:
-    // Konstruktor
-    AccountSUKListeKarte( int id, int account );
-    // Destruktor
-    ~AccountSUKListeKarte();
-    // nicht constant
-    void render( int yOff, Bild &zRObj );
-    // constant
-    Text *zName() const;
-    int getSpiele() const;
-    int getGewonnen() const;
-    Text *zStatus() const;
+	// Konstruktor
+	AccountSUKListeKarte(int id, int account);
+	// Destruktor
+	~AccountSUKListeKarte();
+	// nicht constant
+	void render(int yOff, Bild& zRObj);
+	// constant
+	Text* zName() const;
+	int getSpiele() const;
+	int getGewonnen() const;
+	Text* zStatus() const;
 };
 
 class AccountSUKListeSpiel : public virtual ReferenceCounter
 {
 private:
-    LRahmen *ram;
-    TextFeld *nameTF;
-    TextFeld *spieleTF;
-    TextFeld *gewonnenTF;
-    TextFeld *punkteTF;
-    TextFeld *statusTF;
-    Knopf *details;
-    RCArray< AccountSUKListeKarte > *karten;
-    Bild *einklappen;
-    Bild *ausklappen;
-    Text *name;
-    int spiele;
-    int gewonnen;
-    int punkte;
-    Text *status;
-    Text *statusFilter;
-    Text *sortSpalte;
-    bool sortAbsteigend;
-    int spielId;
-    double tickVal;
-    bool rend;
+	LRahmen* ram;
+	TextFeld* nameTF;
+	TextFeld* spieleTF;
+	TextFeld* gewonnenTF;
+	TextFeld* punkteTF;
+	TextFeld* statusTF;
+	Knopf* details;
+	RCArray< AccountSUKListeKarte >* karten;
+	Bild* einklappen;
+	Bild* ausklappen;
+	Text* name;
+	int spiele;
+	int gewonnen;
+	int punkte;
+	Text* status;
+	Text* statusFilter;
+	Text* sortSpalte;
+	bool sortAbsteigend;
+	int spielId;
+	double tickVal;
+	bool rend;
 
-    // privat
-    int getReihenfolge( int *arr );
+	// privat
+	int getReihenfolge(int* arr);
 
 public:
-    // Konstruktor
-    AccountSUKListeSpiel( int id, int account );
-    // Destruktor
-    ~AccountSUKListeSpiel();
-    // nicht constant
-    void setStatusAusw( char *status );
-    void setSortSpalte( char *spalte );
-    void setSortRichtung( bool absteigend );
-    bool tick( double tickVal );
-    void doPublicMausEreignis( MausEreignis &me );
-    void render( int yOff, Bild &zRObj );
-    // constant
-    int getHeight() const;
-    Text *zName() const;
-    int getSpiele() const;
-    int getGewonnen() const;
-    int getPunkte() const;
-    Text *zStatus() const;
+	// Konstruktor
+	AccountSUKListeSpiel(int id, int account);
+	// Destruktor
+	~AccountSUKListeSpiel();
+	// nicht constant
+	void setStatusAusw(const char* status);
+	void setSortSpalte(const char* spalte);
+	void setSortRichtung(bool absteigend);
+	bool tick(double tickVal);
+	void doPublicMausEreignis(MausEreignis& me);
+	void render(int yOff, Bild& zRObj);
+	// constant
+	int getHeight() const;
+	Text* zName() const;
+	int getSpiele() const;
+	int getGewonnen() const;
+	int getPunkte() const;
+	Text* zStatus() const;
 };
 
 class AccountSUKListe : public Zeichnung
 {
 private:
-    LRahmen *ram;
-    VScrollBar *scroll;
-    RCArray< AccountSUKListeSpiel > *spiele;
-    Text *status;
-    Text *statusFilter;
-    Text *sortSpalte;
-    bool sortAbsteigend;
-    bool rend;
+	LRahmen* ram;
+	VScrollBar* scroll;
+	RCArray< AccountSUKListeSpiel >* spiele;
+	Text* status;
+	Text* statusFilter;
+	Text* sortSpalte;
+	bool sortAbsteigend;
+	bool rend;
 
-    // privat
-    int getReihenfolge( int *arr );
+	// privat
+	int getReihenfolge(int* arr);
 
 public:
-    // Konstruktor
-    AccountSUKListe();
-    // Destruktor
-    ~AccountSUKListe();
-    // nicht constant
-    void reset();
-    void addSpiel( AccountSUKListeSpiel *spiel );
-    void setStatusAusw( char *status );
-    void setSortSpalte( char *spalte );
-    void setSortRichtung( bool absteigend );
-    bool tick( double tickVal ) override;
-    void doPublicMausEreignis( MausEreignis &me ) override;
-    void render( Bild &zRObj ) override;
+	// Konstruktor
+	AccountSUKListe();
+	// Destruktor
+	~AccountSUKListe();
+	// nicht constant
+	void reset();
+	void addSpiel(AccountSUKListeSpiel* spiel);
+	void setStatusAusw(const char* status);
+	void setSortSpalte(const char* spalte);
+	void setSortRichtung(bool absteigend);
+	bool tick(double tickVal) override;
+	void doPublicMausEreignis(MausEreignis& me) override;
+	void render(Bild& zRObj) override;
 };
 
 class AccountSpieleUndKarten : public Thread
 {
 private:
-    Fenster *spieleUndKartenF;
-    AuswahlBox *statusAusw;
-    AuswahlBox *sortSpalte;
-    AuswahlBox *sortRichtung;
-    AccountSUKListe *liste;
-    int status;
-    int accId;
-    int animation;
-    unsigned char alpha;
-    double tickVal;
-    bool rend;
+	Fenster* spieleUndKartenF;
+	AuswahlBox* statusAusw;
+	AuswahlBox* sortSpalte;
+	AuswahlBox* sortRichtung;
+	AccountSUKListe* liste;
+	int status;
+	int accId;
+	int animation;
+	unsigned char alpha;
+	double tickVal;
+	bool rend;
 
 public:
-    // Konstruktor
-    AccountSpieleUndKarten();
-    // Destruktor
-    ~AccountSpieleUndKarten();
-    // nicht constant
-    void reset();
-    void ladeStatistik( int accId );
-    virtual void thread();
-    void setSichtbar( bool sichtbar, bool nachRechts );
-    bool tick( double zeit );
-    void doPublicMausEreignis( MausEreignis &me );
-    void render( Bild &zRObj );
-    // constant
-    int getStatus() const;
+	// Konstruktor
+	AccountSpieleUndKarten();
+	// Destruktor
+	~AccountSpieleUndKarten();
+	// nicht constant
+	void reset();
+	void ladeStatistik(int accId);
+	virtual void thread();
+	void setSichtbar(bool sichtbar, bool nachRechts);
+	bool tick(double zeit);
+	void doPublicMausEreignis(MausEreignis& me);
+	void render(Bild& zRObj);
+	// constant
+	int getStatus() const;
 };
 
 #endif

+ 241 - 241
KSGClient/NachLogin/Account/Suchen/AccountSuchen.cpp

@@ -7,294 +7,294 @@
 // Inhalt der AccountSuchen Klasse aud AccountSuchen.h
 // Konstruktor
 AccountSuchen::AccountSuchen()
-    : Thread(),
-    pos( 810, 0 ),
-    gr( 800, 500 ),
-    laden( (Animation2D *)ladeAnimation->dublizieren() ),
-    accountName( initTextFeld( 10, 10, 200, 20, TextFeld::Style::TextFeld, "Spieler Suchen" ) ),
-    suchen( initKnopf( 220, 10, 100, 20, Knopf::Style::Sichtbar, "Suchen" ) ),
-    sortSpalte( initAuswahlBox( 330, 10, 150, 20, ABSTYLE, { "Name", "Zuletzt Online", "Letztes Spiel", "Letzte Karte", "Spielart Punkte" } ) ),
-    sortRichtung( initAuswahlBox( 490, 10, 120, 20, ABSTYLE, { "Aufwärts", "Abwärts" } ) ),
-    zurück( initKnopf( 620, 10, 20, 20, 0, "" ) ),
-    seite( initTextFeld( 645, 10, 120, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Seite 0 von 0" ) ),
-    vor( initKnopf( 770, 10, 20, 20, 0, "" ) ),
-    liste( initObjTabelle( 10, 40, 780, 450, OTSTYLE, { { "Name", 158, 0, 0 }, { "Zuletzt Online", 150, 0, 0 }, { "Letztes Spiel", 145, 0, 0 }, { "Letzte Karte", 150, 0, 0 }, { "Spielart Punkte", 150, 0, 0 } }, 30 ) ),
-    auswahl( 0 ),
-    tickVal( 0 ),
-    sichtbar( 0 ),
-    jetztSeite( 0 ),
-    maxSeite( 0 ),
-    alpha( 255 ),
-    rend( 0 )
+	: Thread(),
+	pos(810, 0),
+	gr(800, 500),
+	laden((Animation2D*)ladeAnimation->dublizieren()),
+	accountName(initTextFeld(10, 10, 200, 20, TextFeld::Style::TextFeld, "Spieler Suchen")),
+	suchen(initKnopf(220, 10, 100, 20, Knopf::Style::Sichtbar, "Suchen")),
+	sortSpalte(initAuswahlBox(330, 10, 150, 20, ABSTYLE, { "Name", "Zuletzt Online", "Letztes Spiel", "Letzte Karte", "Spielart Punkte" })),
+	sortRichtung(initAuswahlBox(490, 10, 120, 20, ABSTYLE, { "Aufwärts", "Abwärts" })),
+	zurück(initKnopf(620, 10, 20, 20, 0, "")),
+	seite(initTextFeld(645, 10, 120, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Seite 0 von 0")),
+	vor(initKnopf(770, 10, 20, 20, 0, "")),
+	liste(initObjTabelle(10, 40, 780, 450, OTSTYLE, { { "Name", 158, 0, 0 }, { "Zuletzt Online", 150, 0, 0 }, { "Letztes Spiel", 145, 0, 0 }, { "Letzte Karte", 150, 0, 0 }, { "Spielart Punkte", 150, 0, 0 } }, 30)),
+	auswahl(0),
+	tickVal(0),
+	sichtbar(0),
+	jetztSeite(0),
+	maxSeite(0),
+	alpha(255),
+	rend(0)
 {
-    initToolTip( accountName, "Gebe den Namen eines Spielers ein." );
-    initToolTip( sortSpalte, "Wähle aus, nach welcher Spalte die\nTabelle sortiert werden soll." );
-    initToolTip( sortRichtung, "Wähle aus, ob Aufwärts oder Abwärts\nsortiert werden soll." );
-    Bild *zurückB = bilder->get( "data/client/bilder/shop.ltdb/zurück.png" );
-    Bild *weiterB = bilder->get( "data/client/bilder/shop.ltdb/weiter.png" );
-    laden->setSichtbar( 0 );
-    laden->setPosition( 375, 225 );
-    zurück->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::KlickBuffer );
-    zurück->setHintergrundBildZ( zurückB );
-    initToolTip( zurück, "Eine Seite zurück blättern." );
-    vor->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::KlickBuffer );
-    vor->setHintergrundBildZ( weiterB );
-    initToolTip( vor, "Eine Seite weiter blättern." );
-    liste->addSpalte( "Weiter" );
-    liste->setSpaltenBreite( "Weiter", 20 );
+	initToolTip(accountName, "Gebe den Namen eines Spielers ein.");
+	initToolTip(sortSpalte, "Wähle aus, nach welcher Spalte die\nTabelle sortiert werden soll.");
+	initToolTip(sortRichtung, "Wähle aus, ob Aufwärts oder Abwärts\nsortiert werden soll.");
+	Bild* zurückB = bilder->get("data/client/bilder/shop.ltdb/zurück.png");
+	Bild* weiterB = bilder->get("data/client/bilder/shop.ltdb/weiter.png");
+	laden->setSichtbar(0);
+	laden->setPosition(375, 225);
+	zurück->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::KlickBuffer);
+	zurück->setHintergrundBildZ(zurückB);
+	initToolTip(zurück, "Eine Seite zurück blättern.");
+	vor->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::KlickBuffer);
+	vor->setHintergrundBildZ(weiterB);
+	initToolTip(vor, "Eine Seite weiter blättern.");
+	liste->addSpalte("Weiter");
+	liste->setSpaltenBreite("Weiter", 20);
 }
 
 // Destruktor
 AccountSuchen::~AccountSuchen()
 {
-    laden->release();
-    accountName->release();
-    suchen->release();
-    sortSpalte->release();
-    sortRichtung->release();
-    zurück->release();
-    seite->release();
-    vor->release();
-    tabelleLehren( 1 );
-    liste->release();
+	laden->release();
+	accountName->release();
+	suchen->release();
+	sortSpalte->release();
+	sortRichtung->release();
+	zurück->release();
+	seite->release();
+	vor->release();
+	tabelleLehren(1);
+	liste->release();
 }
 
 // privat
 void AccountSuchen::lock()
 {
-    cs.lock();
+	cs.lock();
 }
 
 void AccountSuchen::unlock()
 {
-    cs.unlock();
+	cs.unlock();
 }
 
-void AccountSuchen::tabelleLehren( bool überschrift )
+void AccountSuchen::tabelleLehren(bool überschrift)
 {
-    lock();
-    int zAnz = liste->getZeilenAnzahl();
-    for( int i = !überschrift; i < zAnz; i++ )
-        liste->removeZeile( !überschrift );
-    unlock();
+	lock();
+	int zAnz = liste->getZeilenAnzahl();
+	for (int i = !überschrift; i < zAnz; i++)
+		liste->removeZeile(!überschrift);
+	unlock();
 }
 
 // nicht constant
-void AccountSuchen::setSichtbar( bool sichtbar )
+void AccountSuchen::setSichtbar(bool sichtbar)
 {
-    this->sichtbar = sichtbar;
+	this->sichtbar = sichtbar;
 }
 
 void AccountSuchen::thread()
 {
-    laden->setSichtbar( 1 );
-    tabelleLehren( 0 );
-    Array< KSGClient::AccountInfo > info;
-    int anz = infoClient->getSpielerListe( accountName->zText()->getText(), &jetztSeite, &maxSeite, sortSpalte->getAuswahl(),
-                                           sortRichtung->getAuswahl(), &info );
-    zurück->setStyle( Knopf::Style::Erlaubt, jetztSeite > 1 );
-    vor->setStyle( Knopf::Style::Erlaubt, jetztSeite < maxSeite );
-    lock();
-    seite->setText( "Seite " );
-    seite->zText()->append( jetztSeite );
-    seite->zText()->append( " von " );
-    seite->zText()->append( maxSeite );
-    unlock();
-    for( int i = 0; i < anz; i++ )
-    {
-        KSGClient::AccountInfo inf = info.get( i );
-        liste->addZeile( i + 1, Text() += inf.id );
-        liste->setZeilenHeight( i + 1, 20 );
-        liste->setZeichnungZ( liste->getSpaltenNummer( "Name" ), i + 1, initTextFeld( 0, 0, 0, 0, TextFeld::Style::Text | TextFeld::Style::VCenter, inf.name ) );
-        if( inf.zuletztOnline.hat( '.' ) )
-            inf.zuletztOnline.setText( inf.zuletztOnline.getTeilText( 0, inf.zuletztOnline.positionVon( '.' ) ) );
-        liste->setZeichnungZ( liste->getSpaltenNummer( "Zuletzt Online" ), i + 1, initTextFeld( 0, 0, 0, 0, TextFeld::Style::Text | TextFeld::Style::VCenter, inf.zuletztOnline ) );
-        liste->setZeichnungZ( liste->getSpaltenNummer( "Letztes Spiel" ), i + 1, initTextFeld( 0, 0, 0, 0, TextFeld::Style::Text | TextFeld::Style::VCenter, inf.letztesSpiel ) );
-        liste->setZeichnungZ( liste->getSpaltenNummer( "Letzte Karte" ), i + 1, initTextFeld( 0, 0, 0, 0, TextFeld::Style::Text | TextFeld::Style::VCenter, inf.letzteKarte ) );
-        liste->setZeichnungZ( liste->getSpaltenNummer( "Spielart Punkte" ), i + 1, initTextFeld( 0, 0, 0, 0, TextFeld::Style::Text | TextFeld::Style::VCenter, inf.punkte ) );
-        Knopf *details = initKnopf( 0, 0, 20, 20, 0, "" );
-        details->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::KlickBuffer | Knopf::Style::Erlaubt );
-        details->setMausEreignisParameter( this );
-        details->setMausEreignis( accountSuchenDetailsKlick );
-        details->setHintergrundBildZ( vor->getHintergrundBild() );
-        liste->setZeichnungZ( liste->getSpaltenNummer( "Weiter" ), i + 1, details );
-    }
-    laden->setSichtbar( 0 );
-    run = 0;
+	laden->setSichtbar(1);
+	tabelleLehren(0);
+	Array< KSGClient::AccountInfo > info;
+	int anz = infoClient->getSpielerListe(accountName->zText()->getText(), &jetztSeite, &maxSeite, sortSpalte->getAuswahl(),
+		sortRichtung->getAuswahl(), &info);
+	zurück->setStyle(Knopf::Style::Erlaubt, jetztSeite > 1);
+	vor->setStyle(Knopf::Style::Erlaubt, jetztSeite < maxSeite);
+	lock();
+	seite->setText("Seite ");
+	seite->zText()->append(jetztSeite);
+	seite->zText()->append(" von ");
+	seite->zText()->append(maxSeite);
+	unlock();
+	for (int i = 0; i < anz; i++)
+	{
+		KSGClient::AccountInfo inf = info.get(i);
+		liste->addZeile(i + 1, Text() += inf.id);
+		liste->setZeilenHeight(i + 1, 20);
+		liste->setZeichnungZ(liste->getSpaltenNummer("Name"), i + 1, initTextFeld(0, 0, 0, 0, TextFeld::Style::Text | TextFeld::Style::VCenter, inf.name));
+		if (inf.zuletztOnline.hat('.'))
+			inf.zuletztOnline.setText(inf.zuletztOnline.getTeilText(0, inf.zuletztOnline.positionVon('.')));
+		liste->setZeichnungZ(liste->getSpaltenNummer("Zuletzt Online"), i + 1, initTextFeld(0, 0, 0, 0, TextFeld::Style::Text | TextFeld::Style::VCenter, inf.zuletztOnline));
+		liste->setZeichnungZ(liste->getSpaltenNummer("Letztes Spiel"), i + 1, initTextFeld(0, 0, 0, 0, TextFeld::Style::Text | TextFeld::Style::VCenter, inf.letztesSpiel));
+		liste->setZeichnungZ(liste->getSpaltenNummer("Letzte Karte"), i + 1, initTextFeld(0, 0, 0, 0, TextFeld::Style::Text | TextFeld::Style::VCenter, inf.letzteKarte));
+		liste->setZeichnungZ(liste->getSpaltenNummer("Spielart Punkte"), i + 1, initTextFeld(0, 0, 0, 0, TextFeld::Style::Text | TextFeld::Style::VCenter, inf.punkte));
+		Knopf* details = initKnopf(0, 0, 20, 20, 0, "");
+		details->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::KlickBuffer | Knopf::Style::Erlaubt);
+		details->setMausEreignisParameter(this);
+		details->setMausEreignis(accountSuchenDetailsKlick);
+		details->setHintergrundBildZ(vor->getHintergrundBild());
+		liste->setZeichnungZ(liste->getSpaltenNummer("Weiter"), i + 1, details);
+	}
+	laden->setSichtbar(0);
+	run = 0;
 }
 
-bool AccountSuchen::detailsKlick( Knopf *zKnopf, MausEreignis &me )
+bool AccountSuchen::detailsKlick(Knopf* zKnopf, MausEreignis& me)
 {
-    if( me.id != ME_RLinks )
-        return 1;
-    int zAnz = liste->getZeilenAnzahl();
-    for( int i = 1; i < zAnz; i++ )
-    {
-        if( liste->zZeichnung( liste->getSpaltenNummer( "Weiter" ), i ) == zKnopf )
-        {
-            auswahl = *liste->zZeilenName( i );
-            break;
-        }
-    }
-    return 1;
+	if (me.id != ME_RLinks)
+		return 1;
+	int zAnz = liste->getZeilenAnzahl();
+	for (int i = 1; i < zAnz; i++)
+	{
+		if (liste->zZeichnung(liste->getSpaltenNummer("Weiter"), i) == zKnopf)
+		{
+			auswahl = (int)*liste->zZeilenName(i);
+			break;
+		}
+	}
+	return 1;
 }
 
-void AccountSuchen::doPublicMausEreignis( MausEreignis &me )
+void AccountSuchen::doPublicMausEreignis(MausEreignis& me)
 {
-    if( run )
-        return;
-    bool starten = 0;
-    lock();
-    me.mx -= pos.x;
-    me.my -= pos.y;
-    int ausw = sortSpalte->getAuswahl();
-    sortSpalte->doPublicMausEreignis( me );
-    if( ausw != sortSpalte->getAuswahl() )
-    {
-        sortSpalte->einklappen();
-        starten = 1;
-    }
-    ausw = sortRichtung->getAuswahl();
-    sortRichtung->doPublicMausEreignis( me );
-    if( ausw != sortRichtung->getAuswahl() )
-    {
-        sortRichtung->einklappen();
-        starten = 1;
-    }
-    accountName->doPublicMausEreignis( me );
-    bool vera = me.verarbeitet;
-    suchen->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet && me.id == ME_RLinks )
-    {
-        jetztSeite = 1;
-        starten = 1;
-    }
-    vera = me.verarbeitet;
-    zurück->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet )
-    {
-        seite--;
-        starten = 1;
-    }
-    vera = me.verarbeitet;
-    vor->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet )
-    {
-        seite++;
-        starten = 1;
-    }
-    liste->doPublicMausEreignis( me );
-    me.mx += pos.x;
-    me.my += pos.y;
-    unlock();
-    if( starten )
-        start();
+	if (run)
+		return;
+	bool starten = 0;
+	lock();
+	me.mx -= pos.x;
+	me.my -= pos.y;
+	int ausw = sortSpalte->getAuswahl();
+	sortSpalte->doPublicMausEreignis(me);
+	if (ausw != sortSpalte->getAuswahl())
+	{
+		sortSpalte->einklappen();
+		starten = 1;
+	}
+	ausw = sortRichtung->getAuswahl();
+	sortRichtung->doPublicMausEreignis(me);
+	if (ausw != sortRichtung->getAuswahl())
+	{
+		sortRichtung->einklappen();
+		starten = 1;
+	}
+	accountName->doPublicMausEreignis(me);
+	bool vera = me.verarbeitet;
+	suchen->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet && me.id == ME_RLinks)
+	{
+		jetztSeite = 1;
+		starten = 1;
+	}
+	vera = me.verarbeitet;
+	zurück->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet)
+	{
+		seite--;
+		starten = 1;
+	}
+	vera = me.verarbeitet;
+	vor->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet)
+	{
+		seite++;
+		starten = 1;
+	}
+	liste->doPublicMausEreignis(me);
+	me.mx += pos.x;
+	me.my += pos.y;
+	unlock();
+	if (starten)
+		start();
 }
 
-void AccountSuchen::doTastaturEreignis( TastaturEreignis &te )
+void AccountSuchen::doTastaturEreignis(TastaturEreignis& te)
 {
-    if( run )
-        return;
-    lock();
-    bool vera = te.verarbeitet;
-    accountName->doTastaturEreignis( te );
-    if( !vera && te.verarbeitet && te.taste == T_Enter && te.id == TE_Release )
-    {
-        jetztSeite = 1;
-        start();
-    }
-    unlock();
+	if (run)
+		return;
+	lock();
+	bool vera = te.verarbeitet;
+	accountName->doTastaturEreignis(te);
+	if (!vera && te.verarbeitet && te.taste == T_Enter && te.id == TE_Release)
+	{
+		jetztSeite = 1;
+		start();
+	}
+	unlock();
 }
 
-bool AccountSuchen::tick( double tickVal )
+bool AccountSuchen::tick(double tickVal)
 {
-    lock();
-    rend |= laden->tick( tickVal );
-    rend |= accountName->tick( tickVal );
-    rend |= suchen->tick( tickVal );
-    rend |= sortSpalte->tick( tickVal );
-    rend |= sortRichtung->tick( tickVal );
-    rend |= zurück->tick( tickVal );
-    rend |= seite->tick( tickVal );
-    rend |= vor->tick( tickVal );
-    rend |= liste->tick( tickVal );
-    this->tickVal += tickVal;
-    int valA = (int)( this->tickVal * 150 );
-    int valB = (int)( this->tickVal * 500 );
-    this->tickVal -= valA / 150.0;
-    if( valA )
-    {
-        if( laden->istSichtbar() && alpha != 100 )
-        {
-            if( alpha - valA < 100 )
-                alpha = 100;
-            else
-                alpha -= valA;
-            rend = 1;
-        }
-        if( !laden->istSichtbar() && alpha != 255 )
-        {
-            if( alpha + valA > 255 )
-                alpha = 255;
-            else
-                alpha += valA;
-            rend = 1;
-        }
-    }
-    if( valB )
-    {
-        if( sichtbar && pos.x != 0 )
-        {
-            if( pos.x + valB > 0 )
-                pos.x = 0;
-            else
-                pos.x += valB;
-            rend = 1;
-        }
-        else if( !sichtbar && pos.x != -810 )
-        {
-            if( pos.x - valB < -810 )
-                pos.x = -810;
-            else
-                pos.x -= valB;
-            rend = 1;
-        }
-    }
-    unlock();
-    bool ret = rend;
-    rend = 0;
-    return ret;
+	lock();
+	rend |= laden->tick(tickVal);
+	rend |= accountName->tick(tickVal);
+	rend |= suchen->tick(tickVal);
+	rend |= sortSpalte->tick(tickVal);
+	rend |= sortRichtung->tick(tickVal);
+	rend |= zurück->tick(tickVal);
+	rend |= seite->tick(tickVal);
+	rend |= vor->tick(tickVal);
+	rend |= liste->tick(tickVal);
+	this->tickVal += tickVal;
+	int valA = (int)(this->tickVal * 150);
+	int valB = (int)(this->tickVal * 500);
+	this->tickVal -= valA / 150.0;
+	if (valA)
+	{
+		if (laden->istSichtbar() && alpha != 100)
+		{
+			if (alpha - valA < 100)
+				alpha = 100;
+			else
+				alpha -= valA;
+			rend = 1;
+		}
+		if (!laden->istSichtbar() && alpha != 255)
+		{
+			if (alpha + valA > 255)
+				alpha = 255;
+			else
+				alpha += valA;
+			rend = 1;
+		}
+	}
+	if (valB)
+	{
+		if (sichtbar && pos.x != 0)
+		{
+			if (pos.x + valB > 0)
+				pos.x = 0;
+			else
+				pos.x += valB;
+			rend = 1;
+		}
+		else if (!sichtbar && pos.x != -810)
+		{
+			if (pos.x - valB < -810)
+				pos.x = -810;
+			else
+				pos.x -= valB;
+			rend = 1;
+		}
+	}
+	unlock();
+	bool ret = rend;
+	rend = 0;
+	return ret;
 }
 
-void AccountSuchen::render( Bild &zRObj )
+void AccountSuchen::render(Bild& zRObj)
 {
-    if( !zRObj.setDrawOptions( pos, gr ) )
-        return;
-    lock();
-    laden->render( zRObj );
-    accountName->render( zRObj );
-    suchen->render( zRObj );
-    zurück->render( zRObj );
-    seite->render( zRObj );
-    vor->render( zRObj );
-    liste->render( zRObj );
-    sortSpalte->render( zRObj );
-    sortRichtung->render( zRObj );
-    unlock();
-    zRObj.releaseDrawOptions();
+	if (!zRObj.setDrawOptions(pos, gr))
+		return;
+	lock();
+	laden->render(zRObj);
+	accountName->render(zRObj);
+	suchen->render(zRObj);
+	zurück->render(zRObj);
+	seite->render(zRObj);
+	vor->render(zRObj);
+	liste->render(zRObj);
+	sortSpalte->render(zRObj);
+	sortRichtung->render(zRObj);
+	unlock();
+	zRObj.releaseDrawOptions();
 }
 
 int AccountSuchen::getAuswahlAccountId()
 {
-    int ret = auswahl;
-    auswahl = 0;
-    return ret;
+	int ret = auswahl;
+	auswahl = 0;
+	return ret;
 }
 
 // Nachrichten
-bool accountSuchenDetailsKlick( void *p, void *obj, MausEreignis me )
+bool accountSuchenDetailsKlick(void* p, void* obj, MausEreignis me)
 {
-    if( p )
-        return ( (AccountSuchen *)p )->detailsKlick( (Knopf *)obj, me );
-    return 1;
+	if (p)
+		return ((AccountSuchen*)p)->detailsKlick((Knopf*)obj, me);
+	return 1;
 }

+ 1095 - 1095
KSGClient/NachLogin/Chat/ChatLeiste.cpp

@@ -10,190 +10,190 @@
 #include <Globals.h>
 #include <InitDatei.h>
 
-typedef GSL::GSLDateiV *( *GetGSLDatei )( );
+typedef GSL::GSLDateiV* (*GetGSLDatei)();
 
 // Inhalt der Chat Klasse aus ChatLeiste.h
 // Konstruktor
 Chat::Chat()
-    : ReferenceCounter()
-{
-    Bild *minimierenBild = bilder->get( "data/client/bilder/chat.ltdb/minimieren.png" );
-    Bild *closeBild = bilder->get( "data/client/bilder/chat.ltdb/entfernen.png" );
-    rahmen = new LRahmen();
-    rahmen->setAlpha( 1 );
-    rahmen->setFarbe( 0xFFFFFFFF );
-    rahmen->setRamenBreite( 1 );
-    verlauf = initTextFeld( 7, 7, 184, 210, TextFeld::Style::TextGebiet, "" );
-    verlauf->removeStyle( TextFeld::Style::Erlaubt );
-    verlauf->updateVScroll();
-    nachricht = initTextFeld( 1, 220, 198, 20, TextFeld::Style::TextFeld, "" );
-    initToolTip( nachricht, "Nachricht senden." );
-    name = initTextFeld( 1, 250, 198, 29, TextFeld::Style::Text | TextFeld::Style::VCenter, "" );
-    minimieren = initKnopf( 159, 255, 20, 20, 0, "" );
-    minimieren->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer );
-    minimieren->setHintergrundBildZ( minimierenBild );
-    initToolTip( minimieren, "Fenster einklappen." );
-    close = initKnopf( 179, 255, 20, 20, 0, "" );
-    close->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer );
-    close->setHintergrundBildZ( closeBild );
-    initToolTip( close, "Fenster schließen." );
-    bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
-    admin = 0;
-    tickVal = 0;
-    sichtbar = 1;
-    breite = 0;
-    höhe = 30;
-    animation = 1;
-    rend = 0;
-    msgSound = 0;
-    HMODULE dll = Framework::getDLLRegister()->ladeDLL( "GSL.dll", "data/bin/GSL.dll" );
-    if( dll )
-    {
-        GetGSLDatei getGSLDatei = (GetGSLDatei)GetProcAddress( dll, "getGSLDatei" );
-        if( getGSLDatei )
-        {
-            GSL::GSLDateiV *sDat = getGSLDatei();
-            sDat->setDatei( "data/sounds/popup.gsl" );
-            sDat->leseDaten();
-            msgSound = sDat->getSound( "chat.wav" );
-            sDat->release();
-            if( msgSound )
-                msgSound->setVolume( 0xFFFF, 0xFFFF );
-        }
-        if( !msgSound )
-            Framework::getDLLRegister()->releaseDLL( "GSL.dll" );
-    }
+	: ReferenceCounter()
+{
+	Bild* minimierenBild = bilder->get("data/client/bilder/chat.ltdb/minimieren.png");
+	Bild* closeBild = bilder->get("data/client/bilder/chat.ltdb/entfernen.png");
+	rahmen = new LRahmen();
+	rahmen->setAlpha(1);
+	rahmen->setFarbe(0xFFFFFFFF);
+	rahmen->setRamenBreite(1);
+	verlauf = initTextFeld(7, 7, 184, 210, TextFeld::Style::TextGebiet, "");
+	verlauf->removeStyle(TextFeld::Style::Erlaubt);
+	verlauf->updateVScroll();
+	nachricht = initTextFeld(1, 220, 198, 20, TextFeld::Style::TextFeld, "");
+	initToolTip(nachricht, "Nachricht senden.");
+	name = initTextFeld(1, 250, 198, 29, TextFeld::Style::Text | TextFeld::Style::VCenter, "");
+	minimieren = initKnopf(159, 255, 20, 20, 0, "");
+	minimieren->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer);
+	minimieren->setHintergrundBildZ(minimierenBild);
+	initToolTip(minimieren, "Fenster einklappen.");
+	close = initKnopf(179, 255, 20, 20, 0, "");
+	close->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer);
+	close->setHintergrundBildZ(closeBild);
+	initToolTip(close, "Fenster schließen.");
+	bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
+	admin = 0;
+	tickVal = 0;
+	sichtbar = 1;
+	breite = 0;
+	höhe = 30;
+	animation = 1;
+	rend = 0;
+	msgSound = 0;
+	HMODULE dll = Framework::getDLLRegister()->ladeDLL("GSL.dll", "data/bin/GSL.dll");
+	if (dll)
+	{
+		GetGSLDatei getGSLDatei = (GetGSLDatei)GetProcAddress(dll, "getGSLDatei");
+		if (getGSLDatei)
+		{
+			GSL::GSLDateiV* sDat = getGSLDatei();
+			sDat->setDatei("data/sounds/popup.gsl");
+			sDat->leseDaten();
+			msgSound = sDat->getSound("chat.wav");
+			sDat->release();
+			if (msgSound)
+				msgSound->setVolume(0xFFFF, 0xFFFF);
+		}
+		if (!msgSound)
+			Framework::getDLLRegister()->releaseDLL("GSL.dll");
+	}
 }
 
 // Destruktor
 Chat::~Chat()
 {
-    if( msgSound )
-    {
-        msgSound->release();
-        Framework::getDLLRegister()->releaseDLL( "GSL.dll" );
-    }
-    rahmen->release();
-    verlauf = (TextFeld *)verlauf->release();
-    nachricht = (TextFeld *)nachricht->release();
-    name = (TextFeld *)name->release();
-    minimieren = (Knopf *)minimieren->release();
-    close = (Knopf *)close->release();
+	if (msgSound)
+	{
+		msgSound->release();
+		Framework::getDLLRegister()->releaseDLL("GSL.dll");
+	}
+	rahmen->release();
+	verlauf = (TextFeld*)verlauf->release();
+	nachricht = (TextFeld*)nachricht->release();
+	name = (TextFeld*)name->release();
+	minimieren = (Knopf*)minimieren->release();
+	close = (Knopf*)close->release();
 }
 
 // nicht constant
-void Chat::setSichtbar( bool sichtbar )
+void Chat::setSichtbar(bool sichtbar)
 {
-    if( sichtbar )
-        animation = 2;
-    else
-        animation = 3;
-    this->sichtbar = sichtbar;
+	if (sichtbar)
+		animation = 2;
+	else
+		animation = 3;
+	this->sichtbar = sichtbar;
 }
 
 void Chat::entfernen()
 {
-    animation = 4;
+	animation = 4;
 }
 
-void Chat::addNachricht( char *txt )
+void Chat::addNachricht(const char* txt)
 {
-    int sound = userOptions->wertExistiert( "GUISound" ) ? *userOptions->zWert( "GUISound" ) : 100;
-    if( msgSound )
-    {
-        msgSound->setVolume( (int)( ( sound / 100.0 ) * 0xFFFF ), (int)( ( sound / 100.0 ) * 0xFFFF ) );
-        msgSound->playSound();
-    }
-    Text *n = new Text( txt );
-    verlauf->zTextRenderer()->textFormatieren( n, verlauf->getBreite() - 20 );
-    if( n->getText()[ n->getLength() - 1 ] != '\n' )
-        n->append( "\n" );
-    verlauf->zText()->append( dynamic_cast<Text *>( n->getThis() ) );
-    verlauf->setSchriftFarbe( verlauf->zText()->getLength() - n->getLength(), verlauf->zText()->getLength(), 0xFFFFFFFF );
-    n->release();
-    if( animation != 4 )
-        animation = 2;
-    verlauf->updateVScroll();
-    rend = 1;
+	int sound = userOptions->wertExistiert("GUISound") ? (int)*userOptions->zWert("GUISound") : 100;
+	if (msgSound)
+	{
+		msgSound->setVolume((int)((sound / 100.0) * 0xFFFF), (int)((sound / 100.0) * 0xFFFF));
+		msgSound->playSound();
+	}
+	Text* n = new Text(txt);
+	verlauf->zTextRenderer()->textFormatieren(n, verlauf->getBreite() - 20);
+	if (n->getText()[n->getLength() - 1] != '\n')
+		n->append("\n");
+	verlauf->zText()->append(dynamic_cast<Text*>(n->getThis()));
+	verlauf->setSchriftFarbe(verlauf->zText()->getLength() - n->getLength(), verlauf->zText()->getLength(), 0xFFFFFFFF);
+	n->release();
+	if (animation != 4)
+		animation = 2;
+	verlauf->updateVScroll();
+	rend = 1;
 }
 
 void Chat::setAdmin()
 {
-    admin = 1;
-    rend = 1;
+	admin = 1;
+	rend = 1;
 }
 
-void Chat::addSpieler( int accountId )
+void Chat::addSpieler(int accountId)
 {
-    // nur bei chatroom
+	// nur bei chatroom
 }
 
-void Chat::removeSpieler( int accountId )
+void Chat::removeSpieler(int accountId)
 {
-    // nur bei chatroom
+	// nur bei chatroom
 }
 
-bool Chat::tick( double tickVal )
+bool Chat::tick(double tickVal)
 {
-    // virtual
-    return 0;
+	// virtual
+	return 0;
 }
 
-void Chat::doPublicMausEreignis( MausEreignis &me )
+void Chat::doPublicMausEreignis(MausEreignis& me)
 {
-    // virtual
+	// virtual
 }
 
-void Chat::doTastaturEreignis( TastaturEreignis &te )
+void Chat::doTastaturEreignis(TastaturEreignis& te)
 {
-    // virtual
+	// virtual
 }
 
-void Chat::render( int x, Bild &zRObj )
+void Chat::render(int x, Bild& zRObj)
 {
-    // virtual
+	// virtual
 }
 
 // constant
-TextFeld *Chat::getName() const
+TextFeld* Chat::getName() const
 {
-    return dynamic_cast<TextFeld *>( name->getThis() );
+	return dynamic_cast<TextFeld*>(name->getThis());
 }
 
-TextFeld *Chat::zName() const
+TextFeld* Chat::zName() const
 {
-    return name;
+	return name;
 }
 
 int Chat::getAccountId() const
 {
-    // nur bei chat
-    return 0;
+	// nur bei chat
+	return 0;
 }
 
 int Chat::getChatroomId() const
 {
-    // nur bei chatroom
-    return 0;
+	// nur bei chatroom
+	return 0;
 }
 
 int Chat::getBreite() const
 {
-    return breite;
+	return breite;
 }
 
 bool Chat::istSichtbar() const
 {
-    return sichtbar;
+	return sichtbar;
 }
 
 // Inhalt der ChatFenster Klasse aus ChatLeiste.h
 // Konstruktor
-ChatFenster::ChatFenster( int accountId )
-    : Chat()
+ChatFenster::ChatFenster(int accountId)
+	: Chat()
 {
-    this->accountId = accountId;
-    name->setTextZ( infoClient->getSpielerName( accountId ) );
+	this->accountId = accountId;
+	name->setTextZ(infoClient->getSpielerName(accountId));
 }
 
 // Destruktor
@@ -203,1064 +203,1064 @@ ChatFenster::~ChatFenster()
 }
 
 // nicht constant
-bool ChatFenster::tick( double tickVal )
-{
-    rend |= close->tick( tickVal );
-    rend |= minimieren->tick( tickVal );
-    rend |= verlauf->tick( tickVal );
-    rend |= nachricht->tick( tickVal );
-    if( !animation )
-    {
-        bool ret = rend;
-        rend = 0;
-        return ret;
-    }
-    this->tickVal += tickVal * 300;
-    int val = (int)this->tickVal;
-    if( val < 1 )
-    {
-        bool ret = rend;
-        rend = 0;
-        return ret;
-    }
-    if( val > 10 )
-        val = 10;
-    this->tickVal -= val;
-    switch( animation )
-    {
-    case 1: // erstellen
-    case 2: // ausfahren
-        if( breite == 200 )
-        {
-            höhe += val;
-            if( höhe > 280 )
-            {
-                höhe = 280;
-                animation = 0;
-            }
-        }
-        else
-        {
-            breite += val;
-            if( breite > 200 )
-                breite = 200;
-        }
-        rend = 1;
-        break;
-    case 3: // einfahren
-        if( höhe == 30 )
-        {
-            breite -= val;
-            if( breite < 100 )
-            {
-                breite = 100;
-                animation = 0;
-            }
-        }
-        else
-        {
-            höhe -= val;
-            if( höhe < 30 )
-                höhe = 30;
-        }
-        rend = 1;
-        break;
-    case 4: // close
-        if( höhe == 30 )
-        {
-            breite -= val;
-            if( breite < 0 )
-            {
-                nachLogin->zChatLeiste()->removeChat( this ); // delete this
-                return 1;
-            }
-        }
-        else
-        {
-            höhe -= val;
-            if( höhe < 30 )
-                höhe = 30;
-        }
-        rend = 1;
-        break;
-    }
-    bool ret = rend;
-    rend = 0;
-    return ret;
-}
-
-void ChatFenster::doPublicMausEreignis( MausEreignis &me )
-{
-    bool tmp = me.verarbeitet;
-    if( me.mx < 0 || me.mx > breite || me.my < 280 - höhe || animation )
-        me.verarbeitet = 1;
-    verlauf->doPublicMausEreignis( me );
-    bool vera = me.verarbeitet;
-    minimieren->doPublicMausEreignis( me );
-    int aktion = me.verarbeitet && !vera ? 1 : 0;
-    close->doPublicMausEreignis( me );
-    if( !aktion )
-        aktion = me.verarbeitet && !vera ? 2 : 0;
-    nachricht->doPublicMausEreignis( me );
-    if( me.mx < 0 || me.mx > breite || me.my < 280 - höhe || animation )
-    {
-        me.verarbeitet = tmp;
-        return;
-    }
-    if( !aktion && !sichtbar && !vera )
-    {
-        if( me.mx < breite && me.mx > 0 && me.my > 250 && me.my < 280 )
-            aktion = 3;
-    }
-    switch( aktion )
-    {
-    case 1: // einfahren
-        if( me.id == ME_RLinks )
-            this->setSichtbar( 0 );
-        break;
-    case 2: // close
-        if( me.id == ME_RLinks )
-            animation = 4;
-        break;
-    case 3: // ausfahren
-        if( me.id == ME_RLinks )
-            this->setSichtbar( 1 );
-        break;
-    }
-}
-
-void ChatFenster::doTastaturEreignis( TastaturEreignis &te )
-{
-    bool tmp = te.verarbeitet;
-    if( animation )
-        te.verarbeitet = 1;
-    nachricht->doTastaturEreignis( te );
-    int aktion = te.verarbeitet && !tmp ? 1 : 0;
-    if( animation )
-    {
-        te.verarbeitet = tmp;
-        return;
-    }
-    switch( aktion )
-    {
-    case 1:
-        if( te.id == TE_Release && te.taste == T_Enter )
-        {
-            if( !nachricht->zText()->getLength() )
-                break;
-            nachricht->zText()->remove( "\n" );
-            if( chatClient->chatNachricht( accountId, nachricht->zText()->getText() ) )
-            {
-                Text *n = new Text( nachricht->zText()->getText() );
-                verlauf->zTextRenderer()->textFormatieren( n, verlauf->getBreite() - 15 );
-                if( n->getText()[ n->getLength() - 1 ] != '\n' )
-                    n->append( "\n" );
-                verlauf->zText()->append( n->getText() );
-                verlauf->setSchriftFarbe( verlauf->zText()->getLength() - n->getLength(), verlauf->zText()->getLength(), 0xFF00FF00 );
-                n->release();
-                verlauf->updateVScroll();
-                nachricht->setText( "" );
-                nachricht->setAuswahl( 0, 0 );
-                rend = 1;
-            }
-        }
-        break;
-    }
-}
-
-void ChatFenster::render( int xPos, Bild &zRObj )
-{
-    int x = xPos;
-    int y = 280 - höhe;
-    int br = breite;
-    int hö = höhe;
-    if( !zRObj.setDrawOptions( x, y, br, hö ) )
-        return;
-    zRObj.alphaRegion( 0, 0, br, hö, 0xA0000000 );
-    rahmen->setSize( br, hö );
-    rahmen->render( zRObj );
-    zRObj.addScrollOffset( 0, 280 - höhe );
-    verlauf->render( zRObj );
-    nachricht->render( zRObj );
-    name->render( zRObj );
-    minimieren->render( zRObj );
-    close->render( zRObj );
-    zRObj.releaseDrawOptions();
+bool ChatFenster::tick(double tickVal)
+{
+	rend |= close->tick(tickVal);
+	rend |= minimieren->tick(tickVal);
+	rend |= verlauf->tick(tickVal);
+	rend |= nachricht->tick(tickVal);
+	if (!animation)
+	{
+		bool ret = rend;
+		rend = 0;
+		return ret;
+	}
+	this->tickVal += tickVal * 300;
+	int val = (int)this->tickVal;
+	if (val < 1)
+	{
+		bool ret = rend;
+		rend = 0;
+		return ret;
+	}
+	if (val > 10)
+		val = 10;
+	this->tickVal -= val;
+	switch (animation)
+	{
+	case 1: // erstellen
+	case 2: // ausfahren
+		if (breite == 200)
+		{
+			höhe += val;
+			if (höhe > 280)
+			{
+				höhe = 280;
+				animation = 0;
+			}
+		}
+		else
+		{
+			breite += val;
+			if (breite > 200)
+				breite = 200;
+		}
+		rend = 1;
+		break;
+	case 3: // einfahren
+		if (höhe == 30)
+		{
+			breite -= val;
+			if (breite < 100)
+			{
+				breite = 100;
+				animation = 0;
+			}
+		}
+		else
+		{
+			höhe -= val;
+			if (höhe < 30)
+				höhe = 30;
+		}
+		rend = 1;
+		break;
+	case 4: // close
+		if (höhe == 30)
+		{
+			breite -= val;
+			if (breite < 0)
+			{
+				nachLogin->zChatLeiste()->removeChat(this); // delete this
+				return 1;
+			}
+		}
+		else
+		{
+			höhe -= val;
+			if (höhe < 30)
+				höhe = 30;
+		}
+		rend = 1;
+		break;
+	}
+	bool ret = rend;
+	rend = 0;
+	return ret;
+}
+
+void ChatFenster::doPublicMausEreignis(MausEreignis& me)
+{
+	bool tmp = me.verarbeitet;
+	if (me.mx < 0 || me.mx > breite || me.my < 280 - höhe || animation)
+		me.verarbeitet = 1;
+	verlauf->doPublicMausEreignis(me);
+	bool vera = me.verarbeitet;
+	minimieren->doPublicMausEreignis(me);
+	int aktion = me.verarbeitet && !vera ? 1 : 0;
+	close->doPublicMausEreignis(me);
+	if (!aktion)
+		aktion = me.verarbeitet && !vera ? 2 : 0;
+	nachricht->doPublicMausEreignis(me);
+	if (me.mx < 0 || me.mx > breite || me.my < 280 - höhe || animation)
+	{
+		me.verarbeitet = tmp;
+		return;
+	}
+	if (!aktion && !sichtbar && !vera)
+	{
+		if (me.mx < breite && me.mx > 0 && me.my > 250 && me.my < 280)
+			aktion = 3;
+	}
+	switch (aktion)
+	{
+	case 1: // einfahren
+		if (me.id == ME_RLinks)
+			this->setSichtbar(0);
+		break;
+	case 2: // close
+		if (me.id == ME_RLinks)
+			animation = 4;
+		break;
+	case 3: // ausfahren
+		if (me.id == ME_RLinks)
+			this->setSichtbar(1);
+		break;
+	}
+}
+
+void ChatFenster::doTastaturEreignis(TastaturEreignis& te)
+{
+	bool tmp = te.verarbeitet;
+	if (animation)
+		te.verarbeitet = 1;
+	nachricht->doTastaturEreignis(te);
+	int aktion = te.verarbeitet && !tmp ? 1 : 0;
+	if (animation)
+	{
+		te.verarbeitet = tmp;
+		return;
+	}
+	switch (aktion)
+	{
+	case 1:
+		if (te.id == TE_Release && te.taste == T_Enter)
+		{
+			if (!nachricht->zText()->getLength())
+				break;
+			nachricht->zText()->remove("\n");
+			if (chatClient->chatNachricht(accountId, nachricht->zText()->getText()))
+			{
+				Text* n = new Text(nachricht->zText()->getText());
+				verlauf->zTextRenderer()->textFormatieren(n, verlauf->getBreite() - 15);
+				if (n->getText()[n->getLength() - 1] != '\n')
+					n->append("\n");
+				verlauf->zText()->append(n->getText());
+				verlauf->setSchriftFarbe(verlauf->zText()->getLength() - n->getLength(), verlauf->zText()->getLength(), 0xFF00FF00);
+				n->release();
+				verlauf->updateVScroll();
+				nachricht->setText("");
+				nachricht->setAuswahl(0, 0);
+				rend = 1;
+			}
+		}
+		break;
+	}
+}
+
+void ChatFenster::render(int xPos, Bild& zRObj)
+{
+	int x = xPos;
+	int y = 280 - höhe;
+	int br = breite;
+	int hö = höhe;
+	if (!zRObj.setDrawOptions(x, y, br, hö))
+		return;
+	zRObj.alphaRegion(0, 0, br, hö, 0xA0000000);
+	rahmen->setSize(br, hö);
+	rahmen->render(zRObj);
+	zRObj.addScrollOffset(0, 280 - höhe);
+	verlauf->render(zRObj);
+	nachricht->render(zRObj);
+	name->render(zRObj);
+	minimieren->render(zRObj);
+	close->render(zRObj);
+	zRObj.releaseDrawOptions();
 }
 
 // constant
 int ChatFenster::getAccountId() const
 {
-    return accountId;
+	return accountId;
 }
 
 // Inhalt der ChatroomFenster Klasse aus ChatLeiste.h
 // Konstruktor
-ChatroomFenster::ChatroomFenster( int chatroomId )
-    : Chat()
-{
-    Bild *maximierenBild = bilder->get( "data/client/bilder/chat.ltdb/maximieren.png" );
-    this->chatroomId = chatroomId;
-    spielerName = initTextFeld( 200, 5, 120, 0, TextFeld::Style::TextFeld, "" );
-    initToolTip( spielerName, "Name des Spielers der eingeladen werden soll." );
-    einladen = initKnopf( 325, 5, 20, 0, 0, "" );
-    einladen->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer );
-    einladen->setHintergrundBildZ( maximierenBild );
-    initToolTip( einladen, "Spieler ins Chatroom einladen." );
-    spieler = new ObjTabelle();
-    spieler->setMausEreignis( _ret1ME );
-    spieler->setStyle( ObjTabelle::Style::Sichtbar | ObjTabelle::Style::Rahmen | ObjTabelle::Style::VScroll | ObjTabelle::Style::Erlaubt | ObjTabelle::Style::VScroll | ObjTabelle::Style::Raster );
-    spieler->setVertikalKlickScroll( 5 );
-    spieler->setPosition( 200, 1 );
-    spieler->setSize( 149, 240 );
-    spieler->setRasterFarbe( 0xFF555555 );
-    spieler->setRahmenFarbe( 0xFFFFFFFF );
-    spieler->addSpalte( 0, "Name" );
-    spieler->addSpalte( 1, "Freund" );
-    spieler->addSpalte( 2, "Kick" );
-    spieler->setSpaltenBreite( 0, 110 );
-    spieler->setSpaltenBreite( 1, 20 );
-    spieler->setSpaltenBreite( 2, 0 );
-    name->setTextZ( infoClient->getChatroomName( chatroomId ) );
-    close->setPosition( close->getX() + 150, close->getY() );
-    minimieren->setPosition( minimieren->getX() + 150, minimieren->getY() );
-    neueSpieler = new Array< int >();
-    alteSpieler = new Array< int >();
-    neueSpielerAnzahl = 0;
-    alteSpielerAnzahl = 0;
+ChatroomFenster::ChatroomFenster(int chatroomId)
+	: Chat()
+{
+	Bild* maximierenBild = bilder->get("data/client/bilder/chat.ltdb/maximieren.png");
+	this->chatroomId = chatroomId;
+	spielerName = initTextFeld(200, 5, 120, 0, TextFeld::Style::TextFeld, "");
+	initToolTip(spielerName, "Name des Spielers der eingeladen werden soll.");
+	einladen = initKnopf(325, 5, 20, 0, 0, "");
+	einladen->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer);
+	einladen->setHintergrundBildZ(maximierenBild);
+	initToolTip(einladen, "Spieler ins Chatroom einladen.");
+	spieler = new ObjTabelle();
+	spieler->setMausEreignis(_ret1ME);
+	spieler->setStyle(ObjTabelle::Style::Sichtbar | ObjTabelle::Style::Rahmen | ObjTabelle::Style::VScroll | ObjTabelle::Style::Erlaubt | ObjTabelle::Style::VScroll | ObjTabelle::Style::Raster);
+	spieler->setVertikalKlickScroll(5);
+	spieler->setPosition(200, 1);
+	spieler->setSize(149, 240);
+	spieler->setRasterFarbe(0xFF555555);
+	spieler->setRahmenFarbe(0xFFFFFFFF);
+	spieler->addSpalte(0, "Name");
+	spieler->addSpalte(1, "Freund");
+	spieler->addSpalte(2, "Kick");
+	spieler->setSpaltenBreite(0, 110);
+	spieler->setSpaltenBreite(1, 20);
+	spieler->setSpaltenBreite(2, 0);
+	name->setTextZ(infoClient->getChatroomName(chatroomId));
+	close->setPosition(close->getX() + 150, close->getY());
+	minimieren->setPosition(minimieren->getX() + 150, minimieren->getY());
+	neueSpieler = new Array< int >();
+	alteSpieler = new Array< int >();
+	neueSpielerAnzahl = 0;
+	alteSpielerAnzahl = 0;
 }
 
 // Destruktor
 ChatroomFenster::~ChatroomFenster()
 {
-    chatClient->chatroomVerlassen( chatroomId );
-    neueSpieler->release();
-    alteSpieler->release();
-    spieler = (ObjTabelle *)spieler->release();
-    spielerName = (TextFeld *)spielerName->release();
-    einladen = (Knopf *)einladen->release();
+	chatClient->chatroomVerlassen(chatroomId);
+	neueSpieler->release();
+	alteSpieler->release();
+	spieler = (ObjTabelle*)spieler->release();
+	spielerName = (TextFeld*)spielerName->release();
+	einladen = (Knopf*)einladen->release();
 }
 
 // nicht constant
-void ChatroomFenster::addSpieler( int accountId )
-{
-    Text *zeile = new Text();
-    zeile->append( accountId );
-    if( spieler->getZeilenNummer( zeile->getText() ) >= 0 )
-        return;
-    Bild *einladenBild = bilder->get( "data/client/bilder/chat.ltdb/maximieren.png" );
-    Bild *closeBild = bilder->get( "data/client/bilder/chat.ltdb/entfernen.png" );
-    spieler->addZeile( zeile->getText() );
-    spieler->setZeilenHeight( zeile->getText(), 0 );
-    Text *name = infoClient->getSpielerName( accountId );
-    TextFeld *sName = initTextFeld( 0, 0, 110, 20, TextFeld::Style::Sichtbar | TextFeld::Style::Text | TextFeld::Style::Center, name->getText() );
-    name->release();
-    spieler->setZeichnungZ( "Name", zeile->getText(), sName );
-    Knopf *freund = initKnopf( 0, 0, 20, 20, 0, "" );
-    freund->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer );
-    freund->setHintergrundBildZ( einladenBild );
-    freund->setMausEreignisParameter( this );
-    freund->setMausEreignis( chatroomFensterFreundME );
-    initToolTip( freund, "Freundeseinladung an den Spieler schicken." );
-    spieler->setZeichnungZ( "Freund", zeile->getText(), freund );
-    Knopf *entfernen = initKnopf( 0, 0, 0, 20, 0, "" );
-    entfernen->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer );
-    entfernen->setHintergrundBildZ( closeBild );
-    entfernen->setMausEreignisParameter( this );
-    entfernen->setMausEreignis( chatroomFensterEntfernenME );
-    initToolTip( entfernen, "Spieler aus Chatroom entfernen." );
-    spieler->setZeichnungZ( "Kick", zeile->getText(), entfernen );
-    neueSpieler->add( accountId, neueSpielerAnzahl );
-    neueSpielerAnzahl++;
-    zeile->release();
-    rend = 1;
-}
-
-void ChatroomFenster::removeSpieler( int accountId )
-{
-    Text *zeile = new Text();
-    zeile->append( accountId );
-    if( spieler->getZeilenNummer( zeile ) >= 0 )
-    {
-        alteSpieler->add( accountId, alteSpielerAnzahl );
-        alteSpielerAnzahl++;
-        rend = 1;
-    }
-}
-
-bool ChatroomFenster::tick( double tickVal )
-{
-    rend |= close->tick( tickVal );
-    rend |= minimieren->tick( tickVal );
-    rend |= einladen->tick( tickVal );
-    rend |= spieler->tick( tickVal );
-    rend |= spielerName->tick( tickVal );
-    rend |= verlauf->tick( tickVal );
-    rend |= nachricht->tick( tickVal );
-    this->tickVal += tickVal * 300;
-    int val = (int)this->tickVal;
-    if( val < 1 )
-    {
-        bool ret = rend;
-        rend = 0;
-        return ret;
-    }
-    if( val > 10 )
-        val = 10;
-    this->tickVal -= val;
-    switch( animation )
-    {
-    case 1: // erstellen
-    case 2: // ausfahren
-        if( breite == 350 )
-        {
-            höhe += val;
-            if( höhe > 280 )
-            {
-                höhe = 280;
-                animation = 0;
-            }
-        }
-        else
-        {
-            breite += val;
-            if( breite > 350 )
-                breite = 350;
-        }
-        rend = 1;
-        break;
-    case 3: // einfahren
-        if( höhe == 30 )
-        {
-            breite -= val;
-            if( breite < 100 )
-            {
-                breite = 100;
-                animation = 0;
-            }
-        }
-        else
-        {
-            höhe -= val;
-            if( höhe < 30 )
-                höhe = 30;
-        }
-        rend = 1;
-        break;
-    case 4: // close
-        if( höhe == 30 )
-        {
-            breite -= val;
-            if( breite < 0 )
-            {
-                nachLogin->zChatLeiste()->removeChat( this ); // delete this
-                return 1;
-            }
-        }
-        else
-        {
-            höhe -= val;
-            if( höhe < 30 )
-                höhe = 30;
-        }
-        rend = 1;
-        break;
-    }
-    Text *zeile = new Text( "" );
-    for( int i = 0; i < neueSpielerAnzahl; i++ )
-    {
-        int id = neueSpieler->hat( i ) ? neueSpieler->get( i ) : 0;
-        zeile->append( id );
-        int z = spieler->getZeilenNummer( zeile->getText() );
-        spieler->setZeilenHeight( z, spieler->getZeilenHeight( z ) + val / 2 );
-        if( spieler->getZeilenHeight( z ) > 20 )
-        {
-            spieler->setZeilenHeight( z, 20 );
-            neueSpieler->remove( i );
-            neueSpielerAnzahl--;
-            i--;
-        }
-        zeile->setText( "" );
-        rend = 1;
-    }
-    for( int i = 0; i < alteSpielerAnzahl; i++ )
-    {
-        int id = alteSpieler->hat( i ) ? alteSpieler->get( i ) : 0;
-        zeile->append( id );
-        int z = spieler->getZeilenNummer( zeile->getText() );
-        spieler->setZeilenHeight( z, spieler->getZeilenHeight( z ) - val / 2 );
-        if( spieler->getZeilenHeight( z ) <= 0 )
-        {
-            spieler->removeZeile( z );
-            alteSpieler->remove( i );
-            alteSpielerAnzahl--;
-            i--;
-        }
-        zeile->setText( "" );
-        rend = 1;
-    }
-    zeile->release();
-    if( admin )
-    {
-        if( spielerName->getHeight() != 20 )
-        {
-            spielerName->setSize( spielerName->getBreite(), spielerName->getHeight() + val / 2 );
-            einladen->setSize( einladen->getBreite(), einladen->getHeight() + val / 2 );
-            spieler->setPosition( spieler->getX(), spieler->getY() + val / 2 );
-            spieler->setSize( spieler->getBreite(), spieler->getHeight() - val / 2 );
-            if( spielerName->getHeight() >= 20 )
-            {
-                spielerName->setSize( spielerName->getBreite(), 20 );
-                einladen->setSize( einladen->getBreite(), 20 );
-                spieler->setPosition( spieler->getX(), 30 );
-                spieler->setSize( spieler->getBreite(), 210 );
-            }
-            rend = 1;
-        }
-        if( spieler->getSpaltenBreite( 2 ) != 20 )
-        {
-            spieler->setSpaltenBreite( 2, spieler->getSpaltenBreite( 2 ) + val / 2 );
-            spieler->setSpaltenBreite( 0, spieler->getSpaltenBreite( 0 ) - val / 2 );
-            if( spieler->getSpaltenBreite( 2 ) > 20 )
-            {
-                spieler->setSpaltenBreite( 2, 20 );
-                spieler->setSpaltenBreite( 0, 90 );
-            }
-            rend = 1;
-        }
-    }
-    bool ret = rend;
-    rend = 0;
-    return ret;
-}
-
-void ChatroomFenster::doPublicMausEreignis( MausEreignis &me )
-{
-    bool tmp = me.verarbeitet;
-    if( me.mx < 0 || me.mx > breite || me.my < 280 - höhe || animation )
-        me.verarbeitet = 1;
-    verlauf->doPublicMausEreignis( me );
-    bool vera = me.verarbeitet;
-    minimieren->doPublicMausEreignis( me );
-    int aktion = me.verarbeitet && !vera ? 1 : 0;
-    close->doPublicMausEreignis( me );
-    if( !aktion )
-        aktion = me.verarbeitet && !vera ? 2 : 0;
-    einladen->doPublicMausEreignis( me );
-    if( !aktion )
-        aktion = me.verarbeitet && !vera ? 4 : 0;
-    nachricht->doPublicMausEreignis( me );
-    spielerName->doPublicMausEreignis( me );
-    spieler->doPublicMausEreignis( me );
-    if( me.mx < 0 || me.mx > breite || me.my < 280 - höhe || animation )
-    {
-        me.verarbeitet = tmp;
-        return;
-    }
-    if( !aktion && !sichtbar && !vera )
-    {
-        if( me.mx < breite && me.mx > 0 && me.my > 250 && me.my < 280 )
-            aktion = 3;
-    }
-    switch( aktion )
-    {
-    case 1: // einfahren
-        if( me.id == ME_RLinks )
-            this->setSichtbar( 0 );
-        break;
-    case 2: // close
-        if( me.id == ME_RLinks )
-            animation = 4;
-        break;
-    case 3: // ausfahren
-        if( me.id == ME_RLinks )
-            this->setSichtbar( 1 );
-        break;
-    case 4: // einladen
-        if( me.id != ME_RLinks )
-            break;
-        if( spielerName->zText()->getLength() )
-        {
-            int accountId = infoClient->getAccountId( spielerName->zText()->getText() );
-            if( accountId )
-            {
-                if( chatClient->chatroomEinladung( accountId, chatroomId ) )
-                {
-                    nachLogin->zNachrichtenListe()->addNachricht( new Text( "Chatroom Einladung" ), new Text( "Es wurde eine Chatroom Einladung an den Spieler gesendet." ),
-                                                                  new Text( "Ok" ), 0 );
-                    spielerName->setText( "" );
-                    spielerName->setAuswahl( 0, 0 );
-                    rend = 1;
-                }
-            }
-            else
-            {
-                nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( "Der Spieler wurde nicht gefunden." ),
-                                                              new Text( "Ok" ), 0 );
-            }
-        }
-        break;
-    }
-}
-
-void ChatroomFenster::doTastaturEreignis( TastaturEreignis &te )
-{
-    bool tmp = te.verarbeitet;
-    if( animation )
-        te.verarbeitet = 1;
-    nachricht->doTastaturEreignis( te );
-    int aktion = te.verarbeitet && !tmp ? 1 : 0;
-    if( admin )
-    {
-        spielerName->doTastaturEreignis( te );
-        if( !aktion )
-            aktion = te.verarbeitet && !tmp ? 2 : 0;
-    }
-    if( animation )
-    {
-        te.verarbeitet = tmp;
-        return;
-    }
-    switch( aktion )
-    {
-    case 1:
-        if( te.id == TE_Release && te.taste == T_Enter )
-        {
-            nachricht->zText()->remove( "\n" );
-            chatClient->chatroomNachricht( chatroomId, nachricht->zText()->getText() );
-            nachricht->setText( "" );
-            nachricht->setAuswahl( 0, 0 );
-            rend = 1;
-        }
-        break;
-    case 2:
-        if( te.id == TE_Release && te.taste == T_Enter )
-        {
-            if( !spielerName->zText()->getLength() )
-                break;
-            int accountId = infoClient->getAccountId( spielerName->zText()->getText() );
-            if( accountId )
-            {
-                if( chatClient->chatroomEinladung( accountId, chatroomId ) )
-                {
-                    nachLogin->zNachrichtenListe()->addNachricht( new Text( "Chatroom Einladung" ), new Text( "Es wurde eine Chatroom Einladung an den Spieler gesendet." ),
-                                                                  new Text( "Ok" ), 0 );
-                    spielerName->setText( "" );
-                    spielerName->setAuswahl( 0, 0 );
-                    rend = 1;
-                }
-            }
-            else
-            {
-                nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( "Der Spieler wurde nicht gefunden." ),
-                                                              new Text( "Ok" ), 0 );
-            }
-        }
-        break;
-    }
-}
-
-void ChatroomFenster::render( int xPos, Bild &zRObj )
-{
-    int x = xPos;
-    int y = 280 - höhe;
-    int br = breite;
-    int hö = höhe;
-    if( !zRObj.setDrawOptions( x, y, br, hö ) )
-        return;
-    zRObj.alphaRegion( 0, 0, br, hö, 0x88000000 );
-    rahmen->setSize( br, hö );
-    rahmen->render( zRObj );
-    zRObj.addScrollOffset( 0, 280 - höhe );
-    verlauf->render( zRObj );
-    nachricht->render( zRObj );
-    spieler->render( zRObj );
-    name->render( zRObj );
-    minimieren->render( zRObj );
-    close->render( zRObj );
-    if( spielerName->getHeight() )
-    {
-        spielerName->render( zRObj );
-        einladen->render( zRObj );
-    }
-    zRObj.releaseDrawOptions();
-}
-
-bool ChatroomFenster::druckFreund( void *obj, MausEreignis &me )
-{
-    if( me.id == ME_RLinks )
-    {
-        Punkt p = spieler->getZeichnungPosition( (Zeichnung *)obj );
-        if( p.y >= 0 )
-        {
-            int accountId = TextZuInt( spieler->zZeilenName( p.y )->getText(), 10 );
-            if( chatClient->freundesAnfrage( accountId ) )
-            {
-                nachLogin->zNachrichtenListe()->addNachricht( new Text( "Freundes Einladung" ), new Text( "Es wurde eine Freundesanfrage an den Spieler gesendet." ),
-                                                              new Text( "Ok" ), 0 );
-            }
-        }
-        return 0;
-    }
-    return 1;
-}
-
-bool ChatroomFenster::druckEntfernen( void *obj, MausEreignis &me )
-{
-    if( me.id == ME_RLinks && admin )
-    {
-        Punkt p = spieler->getZeichnungPosition( (Zeichnung *)obj );
-        if( p.y >= 0 )
-        {
-            int accountId = TextZuInt( spieler->zZeilenName( p.y )->getText(), 10 );
-            if( chatClient->chatroomKick( chatroomId, accountId ) )
-            {
-                nachLogin->zNachrichtenListe()->addNachricht( new Text( "Kick" ), new Text( "Der Spieler musste das Chatroom verlassen." ),
-                                                              new Text( "Ok" ), 0 );
-            }
-        }
-        return 0;
-    }
-    return 1;
+void ChatroomFenster::addSpieler(int accountId)
+{
+	Text* zeile = new Text();
+	zeile->append(accountId);
+	if (spieler->getZeilenNummer(zeile->getText()) >= 0)
+		return;
+	Bild* einladenBild = bilder->get("data/client/bilder/chat.ltdb/maximieren.png");
+	Bild* closeBild = bilder->get("data/client/bilder/chat.ltdb/entfernen.png");
+	spieler->addZeile(zeile->getText());
+	spieler->setZeilenHeight(zeile->getText(), 0);
+	Text* name = infoClient->getSpielerName(accountId);
+	TextFeld* sName = initTextFeld(0, 0, 110, 20, TextFeld::Style::Sichtbar | TextFeld::Style::Text | TextFeld::Style::Center, name->getText());
+	name->release();
+	spieler->setZeichnungZ("Name", zeile->getText(), sName);
+	Knopf* freund = initKnopf(0, 0, 20, 20, 0, "");
+	freund->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer);
+	freund->setHintergrundBildZ(einladenBild);
+	freund->setMausEreignisParameter(this);
+	freund->setMausEreignis(chatroomFensterFreundME);
+	initToolTip(freund, "Freundeseinladung an den Spieler schicken.");
+	spieler->setZeichnungZ("Freund", zeile->getText(), freund);
+	Knopf* entfernen = initKnopf(0, 0, 0, 20, 0, "");
+	entfernen->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer);
+	entfernen->setHintergrundBildZ(closeBild);
+	entfernen->setMausEreignisParameter(this);
+	entfernen->setMausEreignis(chatroomFensterEntfernenME);
+	initToolTip(entfernen, "Spieler aus Chatroom entfernen.");
+	spieler->setZeichnungZ("Kick", zeile->getText(), entfernen);
+	neueSpieler->add(accountId, neueSpielerAnzahl);
+	neueSpielerAnzahl++;
+	zeile->release();
+	rend = 1;
+}
+
+void ChatroomFenster::removeSpieler(int accountId)
+{
+	Text* zeile = new Text();
+	zeile->append(accountId);
+	if (spieler->getZeilenNummer(zeile) >= 0)
+	{
+		alteSpieler->add(accountId, alteSpielerAnzahl);
+		alteSpielerAnzahl++;
+		rend = 1;
+	}
+}
+
+bool ChatroomFenster::tick(double tickVal)
+{
+	rend |= close->tick(tickVal);
+	rend |= minimieren->tick(tickVal);
+	rend |= einladen->tick(tickVal);
+	rend |= spieler->tick(tickVal);
+	rend |= spielerName->tick(tickVal);
+	rend |= verlauf->tick(tickVal);
+	rend |= nachricht->tick(tickVal);
+	this->tickVal += tickVal * 300;
+	int val = (int)this->tickVal;
+	if (val < 1)
+	{
+		bool ret = rend;
+		rend = 0;
+		return ret;
+	}
+	if (val > 10)
+		val = 10;
+	this->tickVal -= val;
+	switch (animation)
+	{
+	case 1: // erstellen
+	case 2: // ausfahren
+		if (breite == 350)
+		{
+			höhe += val;
+			if (höhe > 280)
+			{
+				höhe = 280;
+				animation = 0;
+			}
+		}
+		else
+		{
+			breite += val;
+			if (breite > 350)
+				breite = 350;
+		}
+		rend = 1;
+		break;
+	case 3: // einfahren
+		if (höhe == 30)
+		{
+			breite -= val;
+			if (breite < 100)
+			{
+				breite = 100;
+				animation = 0;
+			}
+		}
+		else
+		{
+			höhe -= val;
+			if (höhe < 30)
+				höhe = 30;
+		}
+		rend = 1;
+		break;
+	case 4: // close
+		if (höhe == 30)
+		{
+			breite -= val;
+			if (breite < 0)
+			{
+				nachLogin->zChatLeiste()->removeChat(this); // delete this
+				return 1;
+			}
+		}
+		else
+		{
+			höhe -= val;
+			if (höhe < 30)
+				höhe = 30;
+		}
+		rend = 1;
+		break;
+	}
+	Text* zeile = new Text("");
+	for (int i = 0; i < neueSpielerAnzahl; i++)
+	{
+		int id = neueSpieler->hat(i) ? neueSpieler->get(i) : 0;
+		zeile->append(id);
+		int z = spieler->getZeilenNummer(zeile->getText());
+		spieler->setZeilenHeight(z, spieler->getZeilenHeight(z) + val / 2);
+		if (spieler->getZeilenHeight(z) > 20)
+		{
+			spieler->setZeilenHeight(z, 20);
+			neueSpieler->remove(i);
+			neueSpielerAnzahl--;
+			i--;
+		}
+		zeile->setText("");
+		rend = 1;
+	}
+	for (int i = 0; i < alteSpielerAnzahl; i++)
+	{
+		int id = alteSpieler->hat(i) ? alteSpieler->get(i) : 0;
+		zeile->append(id);
+		int z = spieler->getZeilenNummer(zeile->getText());
+		spieler->setZeilenHeight(z, spieler->getZeilenHeight(z) - val / 2);
+		if (spieler->getZeilenHeight(z) <= 0)
+		{
+			spieler->removeZeile(z);
+			alteSpieler->remove(i);
+			alteSpielerAnzahl--;
+			i--;
+		}
+		zeile->setText("");
+		rend = 1;
+	}
+	zeile->release();
+	if (admin)
+	{
+		if (spielerName->getHeight() != 20)
+		{
+			spielerName->setSize(spielerName->getBreite(), spielerName->getHeight() + val / 2);
+			einladen->setSize(einladen->getBreite(), einladen->getHeight() + val / 2);
+			spieler->setPosition(spieler->getX(), spieler->getY() + val / 2);
+			spieler->setSize(spieler->getBreite(), spieler->getHeight() - val / 2);
+			if (spielerName->getHeight() >= 20)
+			{
+				spielerName->setSize(spielerName->getBreite(), 20);
+				einladen->setSize(einladen->getBreite(), 20);
+				spieler->setPosition(spieler->getX(), 30);
+				spieler->setSize(spieler->getBreite(), 210);
+			}
+			rend = 1;
+		}
+		if (spieler->getSpaltenBreite(2) != 20)
+		{
+			spieler->setSpaltenBreite(2, spieler->getSpaltenBreite(2) + val / 2);
+			spieler->setSpaltenBreite(0, spieler->getSpaltenBreite(0) - val / 2);
+			if (spieler->getSpaltenBreite(2) > 20)
+			{
+				spieler->setSpaltenBreite(2, 20);
+				spieler->setSpaltenBreite(0, 90);
+			}
+			rend = 1;
+		}
+	}
+	bool ret = rend;
+	rend = 0;
+	return ret;
+}
+
+void ChatroomFenster::doPublicMausEreignis(MausEreignis& me)
+{
+	bool tmp = me.verarbeitet;
+	if (me.mx < 0 || me.mx > breite || me.my < 280 - höhe || animation)
+		me.verarbeitet = 1;
+	verlauf->doPublicMausEreignis(me);
+	bool vera = me.verarbeitet;
+	minimieren->doPublicMausEreignis(me);
+	int aktion = me.verarbeitet && !vera ? 1 : 0;
+	close->doPublicMausEreignis(me);
+	if (!aktion)
+		aktion = me.verarbeitet && !vera ? 2 : 0;
+	einladen->doPublicMausEreignis(me);
+	if (!aktion)
+		aktion = me.verarbeitet && !vera ? 4 : 0;
+	nachricht->doPublicMausEreignis(me);
+	spielerName->doPublicMausEreignis(me);
+	spieler->doPublicMausEreignis(me);
+	if (me.mx < 0 || me.mx > breite || me.my < 280 - höhe || animation)
+	{
+		me.verarbeitet = tmp;
+		return;
+	}
+	if (!aktion && !sichtbar && !vera)
+	{
+		if (me.mx < breite && me.mx > 0 && me.my > 250 && me.my < 280)
+			aktion = 3;
+	}
+	switch (aktion)
+	{
+	case 1: // einfahren
+		if (me.id == ME_RLinks)
+			this->setSichtbar(0);
+		break;
+	case 2: // close
+		if (me.id == ME_RLinks)
+			animation = 4;
+		break;
+	case 3: // ausfahren
+		if (me.id == ME_RLinks)
+			this->setSichtbar(1);
+		break;
+	case 4: // einladen
+		if (me.id != ME_RLinks)
+			break;
+		if (spielerName->zText()->getLength())
+		{
+			int accountId = infoClient->getAccountId(spielerName->zText()->getText());
+			if (accountId)
+			{
+				if (chatClient->chatroomEinladung(accountId, chatroomId))
+				{
+					nachLogin->zNachrichtenListe()->addNachricht(new Text("Chatroom Einladung"), new Text("Es wurde eine Chatroom Einladung an den Spieler gesendet."),
+						new Text("Ok"), 0);
+					spielerName->setText("");
+					spielerName->setAuswahl(0, 0);
+					rend = 1;
+				}
+			}
+			else
+			{
+				nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text("Der Spieler wurde nicht gefunden."),
+					new Text("Ok"), 0);
+			}
+		}
+		break;
+	}
+}
+
+void ChatroomFenster::doTastaturEreignis(TastaturEreignis& te)
+{
+	bool tmp = te.verarbeitet;
+	if (animation)
+		te.verarbeitet = 1;
+	nachricht->doTastaturEreignis(te);
+	int aktion = te.verarbeitet && !tmp ? 1 : 0;
+	if (admin)
+	{
+		spielerName->doTastaturEreignis(te);
+		if (!aktion)
+			aktion = te.verarbeitet && !tmp ? 2 : 0;
+	}
+	if (animation)
+	{
+		te.verarbeitet = tmp;
+		return;
+	}
+	switch (aktion)
+	{
+	case 1:
+		if (te.id == TE_Release && te.taste == T_Enter)
+		{
+			nachricht->zText()->remove("\n");
+			chatClient->chatroomNachricht(chatroomId, nachricht->zText()->getText());
+			nachricht->setText("");
+			nachricht->setAuswahl(0, 0);
+			rend = 1;
+		}
+		break;
+	case 2:
+		if (te.id == TE_Release && te.taste == T_Enter)
+		{
+			if (!spielerName->zText()->getLength())
+				break;
+			int accountId = infoClient->getAccountId(spielerName->zText()->getText());
+			if (accountId)
+			{
+				if (chatClient->chatroomEinladung(accountId, chatroomId))
+				{
+					nachLogin->zNachrichtenListe()->addNachricht(new Text("Chatroom Einladung"), new Text("Es wurde eine Chatroom Einladung an den Spieler gesendet."),
+						new Text("Ok"), 0);
+					spielerName->setText("");
+					spielerName->setAuswahl(0, 0);
+					rend = 1;
+				}
+			}
+			else
+			{
+				nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text("Der Spieler wurde nicht gefunden."),
+					new Text("Ok"), 0);
+			}
+		}
+		break;
+	}
+}
+
+void ChatroomFenster::render(int xPos, Bild& zRObj)
+{
+	int x = xPos;
+	int y = 280 - höhe;
+	int br = breite;
+	int hö = höhe;
+	if (!zRObj.setDrawOptions(x, y, br, hö))
+		return;
+	zRObj.alphaRegion(0, 0, br, hö, 0x88000000);
+	rahmen->setSize(br, hö);
+	rahmen->render(zRObj);
+	zRObj.addScrollOffset(0, 280 - höhe);
+	verlauf->render(zRObj);
+	nachricht->render(zRObj);
+	spieler->render(zRObj);
+	name->render(zRObj);
+	minimieren->render(zRObj);
+	close->render(zRObj);
+	if (spielerName->getHeight())
+	{
+		spielerName->render(zRObj);
+		einladen->render(zRObj);
+	}
+	zRObj.releaseDrawOptions();
+}
+
+bool ChatroomFenster::druckFreund(void* obj, MausEreignis& me)
+{
+	if (me.id == ME_RLinks)
+	{
+		Punkt p = spieler->getZeichnungPosition((Zeichnung*)obj);
+		if (p.y >= 0)
+		{
+			int accountId = TextZuInt(spieler->zZeilenName(p.y)->getText(), 10);
+			if (chatClient->freundesAnfrage(accountId))
+			{
+				nachLogin->zNachrichtenListe()->addNachricht(new Text("Freundes Einladung"), new Text("Es wurde eine Freundesanfrage an den Spieler gesendet."),
+					new Text("Ok"), 0);
+			}
+		}
+		return 0;
+	}
+	return 1;
+}
+
+bool ChatroomFenster::druckEntfernen(void* obj, MausEreignis& me)
+{
+	if (me.id == ME_RLinks && admin)
+	{
+		Punkt p = spieler->getZeichnungPosition((Zeichnung*)obj);
+		if (p.y >= 0)
+		{
+			int accountId = TextZuInt(spieler->zZeilenName(p.y)->getText(), 10);
+			if (chatClient->chatroomKick(chatroomId, accountId))
+			{
+				nachLogin->zNachrichtenListe()->addNachricht(new Text("Kick"), new Text("Der Spieler musste das Chatroom verlassen."),
+					new Text("Ok"), 0);
+			}
+		}
+		return 0;
+	}
+	return 1;
 }
 
 // constant
 int ChatroomFenster::getChatroomId() const
 {
-    return chatroomId;
+	return chatroomId;
 }
 
 // Inhalt der ChatLeisteObj Klasse aus ChatLeiste.h
 // Konstruktor
 ChatLeisteObj::ChatLeisteObj()
-    : Zeichnung()
+	: Zeichnung()
 {
-    chats = new RCArray< Chat >();
-    hsb = new HScrollBar();
-    bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
-    anzahl = 0;
-    nowME = -1;
+	chats = new RCArray< Chat >();
+	hsb = new HScrollBar();
+	bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
+	anzahl = 0;
+	nowME = -1;
 }
 
 // Destruktor
 ChatLeisteObj::~ChatLeisteObj()
 {
-    chats->release();
-    hsb = (HScrollBar *)hsb->release();
+	chats->release();
+	hsb = (HScrollBar*)hsb->release();
 }
 
 // nicht constant
-void ChatLeisteObj::chatNachricht( int vonAccount, char *txt )
-{
-    if( !vonAccount )
-        return;
-    lockZeichnung();
-    bool gefunden = 0;
-    for( int i = 0; i < anzahl; i++ )
-    {
-        Chat *tmp = chats->z( i );
-        if( tmp->getAccountId() == vonAccount )
-        {
-            tmp->addNachricht( txt );
-            gefunden = 1;
-            break;
-        }
-    }
-    if( !gefunden )
-    {
-        addChat( vonAccount, 0 );
-        chatNachricht( vonAccount, txt );
-    }
-    unlockZeichnung();
-}
-
-void ChatLeisteObj::chatroomNachricht( int chatroomId, char *txt )
-{
-    lockZeichnung();
-    bool gefunden = 0;
-    for( int i = 0; i < anzahl; i++ )
-    {
-        Chat *tmp = chats->z( i );
-        if( tmp->getChatroomId() == chatroomId )
-        {
-            tmp->addNachricht( txt );
-            gefunden = 1;
-            break;
-        }
-    }
-    if( !gefunden )
-    {
-        addChat( 0, chatroomId );
-        chatroomNachricht( chatroomId, txt );
-    }
-    unlockZeichnung();
-}
-
-void ChatLeisteObj::addChat( int accountId, int chatroomId )
-{
-    lockZeichnung();
-    bool gefunden = 0;
-    if( accountId )
-    {
-        for( int i = 0; i < anzahl; i++ )
-        {
-            Chat *tmp = chats->z( i );
-            if( tmp->getAccountId() == accountId )
-            {
-                tmp->setSichtbar( 1 );
-                gefunden = 1;
-                break;
-            }
-        }
-        if( !gefunden )
-        {
-            ChatFenster *neu = new ChatFenster( accountId );
-            chats->add( neu, anzahl );
-            anzahl++;
-            rend = 1;
-        }
-    }
-    else if( chatroomId )
-    {
-        for( int i = 0; i < anzahl; i++ )
-        {
-            Chat *tmp = chats->z( i );
-            if( tmp->getChatroomId() == chatroomId )
-            {
-                tmp->setSichtbar( 1 );
-                gefunden = 1;
-                break;
-            }
-        }
-        if( !gefunden )
-        {
-            ChatroomFenster *neu = new ChatroomFenster( chatroomId );
-            chats->add( neu, anzahl );
-            anzahl++;
-            rend = 1;
-        }
-    }
-    unlockZeichnung();
-}
-
-void ChatLeisteObj::removeChat( int accountId, int chatroomId )
-{
-    lockZeichnung();
-    if( accountId )
-    {
-        for( int i = 0; i < anzahl; i++ )
-        {
-            Chat *tmp = chats->z( i );
-            if( tmp->getAccountId() == accountId )
-                tmp->entfernen();
-        }
-    }
-    else if( chatroomId )
-    {
-        for( int i = 0; i < anzahl; i++ )
-        {
-            Chat *tmp = chats->z( i );
-            if( tmp->getChatroomId() == chatroomId )
-                tmp->entfernen();
-        }
-    }
-    rend = 1;
-    unlockZeichnung();
-}
-
-void ChatLeisteObj::removeChat( Chat *zChat )
-{
-    lockZeichnung();
-    for( int i = 0; i < anzahl; i++ )
-    {
-        if( chats->z( i ) == zChat )
-        {
-            chats->remove( i );
-            anzahl--;
-            rend = 1;
-            break;
-        }
-    }
-    unlockZeichnung();
+void ChatLeisteObj::chatNachricht(int vonAccount, const char* txt)
+{
+	if (!vonAccount)
+		return;
+	lockZeichnung();
+	bool gefunden = 0;
+	for (int i = 0; i < anzahl; i++)
+	{
+		Chat* tmp = chats->z(i);
+		if (tmp->getAccountId() == vonAccount)
+		{
+			tmp->addNachricht(txt);
+			gefunden = 1;
+			break;
+		}
+	}
+	if (!gefunden)
+	{
+		addChat(vonAccount, 0);
+		chatNachricht(vonAccount, txt);
+	}
+	unlockZeichnung();
+}
+
+void ChatLeisteObj::chatroomNachricht(int chatroomId, const char* txt)
+{
+	lockZeichnung();
+	bool gefunden = 0;
+	for (int i = 0; i < anzahl; i++)
+	{
+		Chat* tmp = chats->z(i);
+		if (tmp->getChatroomId() == chatroomId)
+		{
+			tmp->addNachricht(txt);
+			gefunden = 1;
+			break;
+		}
+	}
+	if (!gefunden)
+	{
+		addChat(0, chatroomId);
+		chatroomNachricht(chatroomId, txt);
+	}
+	unlockZeichnung();
+}
+
+void ChatLeisteObj::addChat(int accountId, int chatroomId)
+{
+	lockZeichnung();
+	bool gefunden = 0;
+	if (accountId)
+	{
+		for (int i = 0; i < anzahl; i++)
+		{
+			Chat* tmp = chats->z(i);
+			if (tmp->getAccountId() == accountId)
+			{
+				tmp->setSichtbar(1);
+				gefunden = 1;
+				break;
+			}
+		}
+		if (!gefunden)
+		{
+			ChatFenster* neu = new ChatFenster(accountId);
+			chats->add(neu, anzahl);
+			anzahl++;
+			rend = 1;
+		}
+	}
+	else if (chatroomId)
+	{
+		for (int i = 0; i < anzahl; i++)
+		{
+			Chat* tmp = chats->z(i);
+			if (tmp->getChatroomId() == chatroomId)
+			{
+				tmp->setSichtbar(1);
+				gefunden = 1;
+				break;
+			}
+		}
+		if (!gefunden)
+		{
+			ChatroomFenster* neu = new ChatroomFenster(chatroomId);
+			chats->add(neu, anzahl);
+			anzahl++;
+			rend = 1;
+		}
+	}
+	unlockZeichnung();
+}
+
+void ChatLeisteObj::removeChat(int accountId, int chatroomId)
+{
+	lockZeichnung();
+	if (accountId)
+	{
+		for (int i = 0; i < anzahl; i++)
+		{
+			Chat* tmp = chats->z(i);
+			if (tmp->getAccountId() == accountId)
+				tmp->entfernen();
+		}
+	}
+	else if (chatroomId)
+	{
+		for (int i = 0; i < anzahl; i++)
+		{
+			Chat* tmp = chats->z(i);
+			if (tmp->getChatroomId() == chatroomId)
+				tmp->entfernen();
+		}
+	}
+	rend = 1;
+	unlockZeichnung();
+}
+
+void ChatLeisteObj::removeChat(Chat* zChat)
+{
+	lockZeichnung();
+	for (int i = 0; i < anzahl; i++)
+	{
+		if (chats->z(i) == zChat)
+		{
+			chats->remove(i);
+			anzahl--;
+			rend = 1;
+			break;
+		}
+	}
+	unlockZeichnung();
 }
 
 void ChatLeisteObj::removeAll()
 {
-    lockZeichnung();
-    chats->leeren();
-    anzahl = 0;
-    rend = 1;
-    unlockZeichnung();
-}
-
-void ChatLeisteObj::addSpieler( int chatroomId, int accountId )
-{
-    if( !chatroomId || !accountId )
-        return;
-    lockZeichnung();
-    for( int i = 0; i < anzahl; i++ )
-    {
-        Chat *tmp = chats->z( i );
-        if( tmp->getChatroomId() == chatroomId )
-        {
-            tmp->addSpieler( accountId );
-            break;
-        }
-    }
-    unlockZeichnung();
-}
-
-void ChatLeisteObj::removeSpieler( int chatroomId, int accountId )
-{
-    lockZeichnung();
-    if( !chatroomId || !accountId )
-        return;
-    for( int i = 0; i < anzahl; i++ )
-    {
-        Chat *tmp = chats->z( i );
-        if( tmp->getChatroomId() == chatroomId )
-        {
-            tmp->removeSpieler( accountId );
-            break;
-        }
-    }
-    unlockZeichnung();
-}
-
-void ChatLeisteObj::setChatroomAdmin( int chatroomId )
-{
-    lockZeichnung();
-    for( int i = 0; i < anzahl; i++ )
-    {
-        Chat *tmp = chats->z( i );
-        if( tmp->getChatroomId() == chatroomId )
-        {
-            tmp->setAdmin();
-            break;
-        }
-    }
-    unlockZeichnung();
-}
-
-bool ChatLeisteObj::tick( double tickVal )
-{
-    rend |= hsb->getRend();
-    rend |= nachLogin->zChatLeiste()->tick( tickVal );
-    for( int i = 0; i < anzahl; i++ )
-        rend |= chats->z( i )->tick( tickVal );
-    bool ret = rend;
-    rend = 0;
-    return ret;
-}
-
-void ChatLeisteObj::doTastaturEreignis( TastaturEreignis &te )
-{
-    for( int i = 0; i < anzahl; i++ )
-        chats->z( i )->doTastaturEreignis( te );
-}
-
-void ChatLeisteObj::doPublicMausEreignis( MausEreignis &me )
-{
-    int mx = me.mx;
-    int my = me.my;
-    me.my += 250;
-    me.mx += hsb->getScroll();
-    bool insideParent = me.insideParent;
-    me.insideParent = 1;
-    for( int i = 0; i < anzahl; i++ )
-    {
-        Chat *tmp = chats->z( i );
-        nowME = i;
-        tmp->doPublicMausEreignis( me );
-        nowME = -1;
-        me.mx -= tmp->getBreite();
-    }
-    me.mx = mx;
-    me.my = my;
-    hsb->doMausMessage( 1, 30, bildschirmGröße.x - 20, 20, me );
-    me.insideParent = insideParent;
-}
-
-void ChatLeisteObj::render( Bild &zRObj )
-{
-    int x = pos.x;
-    int y = pos.y;
-    int br = bildschirmGröße.x - 20;
-    int hö = 300;
-    if( !zRObj.setDrawOptionsErzwingen( x, y - 250, br, hö ) )
-        return;
-    int breite = 0;
-    for( int i = 0; i < anzahl; i++ )
-    {
-        Chat *tmp = chats->z( i );
-        tmp->render( breite - ( hsb ? hsb->getScroll() : 0 ), zRObj );
-        breite += tmp->getBreite();
-    }
-    if( hsb )
-    {
-        hsb->update( breite, bildschirmGröße.x - 22 );
-        hsb->render( 0, 280, bildschirmGröße.x - 22, 20, zRObj );
-    }
-    zRObj.releaseDrawOptions();
+	lockZeichnung();
+	chats->leeren();
+	anzahl = 0;
+	rend = 1;
+	unlockZeichnung();
+}
+
+void ChatLeisteObj::addSpieler(int chatroomId, int accountId)
+{
+	if (!chatroomId || !accountId)
+		return;
+	lockZeichnung();
+	for (int i = 0; i < anzahl; i++)
+	{
+		Chat* tmp = chats->z(i);
+		if (tmp->getChatroomId() == chatroomId)
+		{
+			tmp->addSpieler(accountId);
+			break;
+		}
+	}
+	unlockZeichnung();
+}
+
+void ChatLeisteObj::removeSpieler(int chatroomId, int accountId)
+{
+	lockZeichnung();
+	if (!chatroomId || !accountId)
+		return;
+	for (int i = 0; i < anzahl; i++)
+	{
+		Chat* tmp = chats->z(i);
+		if (tmp->getChatroomId() == chatroomId)
+		{
+			tmp->removeSpieler(accountId);
+			break;
+		}
+	}
+	unlockZeichnung();
+}
+
+void ChatLeisteObj::setChatroomAdmin(int chatroomId)
+{
+	lockZeichnung();
+	for (int i = 0; i < anzahl; i++)
+	{
+		Chat* tmp = chats->z(i);
+		if (tmp->getChatroomId() == chatroomId)
+		{
+			tmp->setAdmin();
+			break;
+		}
+	}
+	unlockZeichnung();
+}
+
+bool ChatLeisteObj::tick(double tickVal)
+{
+	rend |= hsb->getRend();
+	rend |= nachLogin->zChatLeiste()->tick(tickVal);
+	for (int i = 0; i < anzahl; i++)
+		rend |= chats->z(i)->tick(tickVal);
+	bool ret = rend;
+	rend = 0;
+	return ret;
+}
+
+void ChatLeisteObj::doTastaturEreignis(TastaturEreignis& te)
+{
+	for (int i = 0; i < anzahl; i++)
+		chats->z(i)->doTastaturEreignis(te);
+}
+
+void ChatLeisteObj::doPublicMausEreignis(MausEreignis& me)
+{
+	int mx = me.mx;
+	int my = me.my;
+	me.my += 250;
+	me.mx += hsb->getScroll();
+	bool insideParent = me.insideParent;
+	me.insideParent = 1;
+	for (int i = 0; i < anzahl; i++)
+	{
+		Chat* tmp = chats->z(i);
+		nowME = i;
+		tmp->doPublicMausEreignis(me);
+		nowME = -1;
+		me.mx -= tmp->getBreite();
+	}
+	me.mx = mx;
+	me.my = my;
+	hsb->doMausMessage(1, 30, bildschirmGröße.x - 20, 20, me);
+	me.insideParent = insideParent;
+}
+
+void ChatLeisteObj::render(Bild& zRObj)
+{
+	int x = pos.x;
+	int y = pos.y;
+	int br = bildschirmGröße.x - 20;
+	int hö = 300;
+	if (!zRObj.setDrawOptionsErzwingen(x, y - 250, br, hö))
+		return;
+	int breite = 0;
+	for (int i = 0; i < anzahl; i++)
+	{
+		Chat* tmp = chats->z(i);
+		tmp->render(breite - (hsb ? hsb->getScroll() : 0), zRObj);
+		breite += tmp->getBreite();
+	}
+	if (hsb)
+	{
+		hsb->update(breite, bildschirmGröße.x - 22);
+		hsb->render(0, 280, bildschirmGröße.x - 22, 20, zRObj);
+	}
+	zRObj.releaseDrawOptions();
 }
 
 // Inhalt der ChatLeiste Klasse aus ChatLeiste.h
 // Konstruktor
-ChatLeiste::ChatLeiste( Fenster *zNachLoginFenster )
-    : ReferenceCounter()
-{
-    minimierenBild = bilder->get( "data/client/bilder/chat.ltdb/minimieren.png" );
-    maximierenBild = bilder->get( "data/client/bilder/chat.ltdb/maximieren.png" );
-    bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
-    fenster = initFenster( 20 - bildschirmGröße.x, bildschirmGröße.y - 50, bildschirmGröße.x, 50, Fenster::Style::Sichtbar | Fenster::Style::Erlaubt | Fenster::Style::BodyHintergrund | Fenster::Style::Rahmen, "" );
-    fenster->setKBgFarbe( 0xFF000000 );
-    minMax = initKnopf( bildschirmGröße.x - 21, 1, 20, 20, 0, "" );
-    minMax->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer );
-    minMax->setHintergrundBildZ( dynamic_cast<Bild *>( minimierenBild->getThis() ) );
-    minMax->setMausEreignisParameter( this );
-    minMax->setMausEreignis( chatLeisteMinMaxME );
-    initToolTip( minMax, "Chat Leiste minimieren." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( minMax->getThis() ) );
-    chatLeiste = new ChatLeisteObj();
-    fenster->addMember( dynamic_cast<Zeichnung *>( chatLeiste->getThis() ) );
-    zNachLoginFenster->addMember( dynamic_cast<Zeichnung *>( fenster->getThis() ) );
-    tickVal = 0;
-    animation = 1;
-    rend = 0;
-    chatClient->chatNachrichtAnfrage();
+ChatLeiste::ChatLeiste(Fenster* zNachLoginFenster)
+	: ReferenceCounter()
+{
+	minimierenBild = bilder->get("data/client/bilder/chat.ltdb/minimieren.png");
+	maximierenBild = bilder->get("data/client/bilder/chat.ltdb/maximieren.png");
+	bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
+	fenster = initFenster(20 - bildschirmGröße.x, bildschirmGröße.y - 50, bildschirmGröße.x, 50, Fenster::Style::Sichtbar | Fenster::Style::Erlaubt | Fenster::Style::BodyHintergrund | Fenster::Style::Rahmen, "");
+	fenster->setKBgFarbe(0xFF000000);
+	minMax = initKnopf(bildschirmGröße.x - 21, 1, 20, 20, 0, "");
+	minMax->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer);
+	minMax->setHintergrundBildZ(dynamic_cast<Bild*>(minimierenBild->getThis()));
+	minMax->setMausEreignisParameter(this);
+	minMax->setMausEreignis(chatLeisteMinMaxME);
+	initToolTip(minMax, "Chat Leiste minimieren.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(minMax->getThis()));
+	chatLeiste = new ChatLeisteObj();
+	fenster->addMember(dynamic_cast<Zeichnung*>(chatLeiste->getThis()));
+	zNachLoginFenster->addMember(dynamic_cast<Zeichnung*>(fenster->getThis()));
+	tickVal = 0;
+	animation = 1;
+	rend = 0;
+	chatClient->chatNachrichtAnfrage();
 }
 
 // Destruktor
 ChatLeiste::~ChatLeiste()
 {
-    minimierenBild->release();
-    maximierenBild->release();
-    fenster = (Fenster *)fenster->release();
-    minMax = (Knopf *)minMax->release();
-    chatLeiste = (ChatLeisteObj *)chatLeiste->release();
+	minimierenBild->release();
+	maximierenBild->release();
+	fenster = (Fenster*)fenster->release();
+	minMax = (Knopf*)minMax->release();
+	chatLeiste = (ChatLeisteObj*)chatLeiste->release();
 }
 
 // nicht constant
-void ChatLeiste::chatNachricht( int vonAccount, char *txt )
+void ChatLeiste::chatNachricht(int vonAccount, const char* txt)
 {
-    chatLeiste->chatNachricht( vonAccount, txt );
+	chatLeiste->chatNachricht(vonAccount, txt);
 }
 
-void ChatLeiste::chatroomNachricht( int chatroomId, int vonAccount, char *txt )
+void ChatLeiste::chatroomNachricht(int chatroomId, int vonAccount, const char* txt)
 {
-    chatLeiste->chatroomNachricht( chatroomId, txt );
+	chatLeiste->chatroomNachricht(chatroomId, txt);
 }
 
-void ChatLeiste::addChat( int accountId, int chatroomId )
+void ChatLeiste::addChat(int accountId, int chatroomId)
 {
-    chatLeiste->addChat( accountId, chatroomId );
+	chatLeiste->addChat(accountId, chatroomId);
 }
 
-void ChatLeiste::removeChat( int accountId, int chatroomId )
+void ChatLeiste::removeChat(int accountId, int chatroomId)
 {
-    chatLeiste->removeChat( accountId, chatroomId );
+	chatLeiste->removeChat(accountId, chatroomId);
 }
 
-void ChatLeiste::removeChat( Chat *zChat )
+void ChatLeiste::removeChat(Chat* zChat)
 {
-    chatLeiste->removeChat( zChat );
+	chatLeiste->removeChat(zChat);
 }
 
 void ChatLeiste::removeAll()
 {
-    chatLeiste->removeAll();
-}
-
-void ChatLeiste::addSpieler( int chatroomId, int accountId )
-{
-    chatLeiste->addSpieler( chatroomId, accountId );
-}
-
-void ChatLeiste::removeSpieler( int chatroomId, int accountId )
-{
-    chatLeiste->removeSpieler( chatroomId, accountId );
-}
-
-void ChatLeiste::setChatroomAdmin( int chatroomId )
-{
-    chatLeiste->setChatroomAdmin( chatroomId );
-}
-
-bool ChatLeiste::tick( double tickVal )
-{
-    this->tickVal += tickVal * 500;
-    int val = (int)this->tickVal;
-    if( val < 1 )
-    {
-        bool ret = rend;
-        rend = 0;
-        return ret;
-    }
-    if( val > 16 )
-        val = 16;
-    this->tickVal -= val;
-    switch( animation )
-    {
-    case 1: // einfahren
-        if( fenster->getX() < 0 )
-            fenster->setPosition( fenster->getX() + val, fenster->getY() );
-        else
-        {
-            fenster->setPosition( 0, fenster->getY() );
-            animation = 0;
-        }
-        rend = 1;
-        break;
-    case 2: // ausfahren
-        if( fenster->getX() + fenster->getBreite() > 21 )
-            fenster->setPosition( fenster->getX() - val, fenster->getY() );
-        else
-        {
-            fenster->setPosition( 21 - fenster->getBreite(), fenster->getY() );
-            animation = 0;
-        }
-        rend = 1;
-        break;
-    }
-    bool ret = rend;
-    rend = 0;
-    return ret;
-}
-
-bool ChatLeiste::druckMinMax( MausEreignis &me )
-{
-    if( animation )
-        return 1;
-    if( me.id == ME_RLinks )
-    {
-        if( minMax->zHintergrundBild() == minimierenBild )
-        {
-            animation = 2;
-            minMax->setHintergrundBildZ( dynamic_cast<Bild *>( maximierenBild->getThis() ) );
-            // TODO minMax->zToolTip()->setText( "Chat Leiste maximieren." );
-        }
-        else
-        {
-            animation = 1;
-            minMax->setHintergrundBildZ( dynamic_cast<Bild *>( minimierenBild->getThis() ) );
-            // TODO minMax->zToolTip()->setText( "Chat Leiste minimieren." );
-        }
-    }
-    return 1;
+	chatLeiste->removeAll();
+}
+
+void ChatLeiste::addSpieler(int chatroomId, int accountId)
+{
+	chatLeiste->addSpieler(chatroomId, accountId);
+}
+
+void ChatLeiste::removeSpieler(int chatroomId, int accountId)
+{
+	chatLeiste->removeSpieler(chatroomId, accountId);
+}
+
+void ChatLeiste::setChatroomAdmin(int chatroomId)
+{
+	chatLeiste->setChatroomAdmin(chatroomId);
+}
+
+bool ChatLeiste::tick(double tickVal)
+{
+	this->tickVal += tickVal * 500;
+	int val = (int)this->tickVal;
+	if (val < 1)
+	{
+		bool ret = rend;
+		rend = 0;
+		return ret;
+	}
+	if (val > 16)
+		val = 16;
+	this->tickVal -= val;
+	switch (animation)
+	{
+	case 1: // einfahren
+		if (fenster->getX() < 0)
+			fenster->setPosition(fenster->getX() + val, fenster->getY());
+		else
+		{
+			fenster->setPosition(0, fenster->getY());
+			animation = 0;
+		}
+		rend = 1;
+		break;
+	case 2: // ausfahren
+		if (fenster->getX() + fenster->getBreite() > 21)
+			fenster->setPosition(fenster->getX() - val, fenster->getY());
+		else
+		{
+			fenster->setPosition(21 - fenster->getBreite(), fenster->getY());
+			animation = 0;
+		}
+		rend = 1;
+		break;
+	}
+	bool ret = rend;
+	rend = 0;
+	return ret;
+}
+
+bool ChatLeiste::druckMinMax(MausEreignis& me)
+{
+	if (animation)
+		return 1;
+	if (me.id == ME_RLinks)
+	{
+		if (minMax->zHintergrundBild() == minimierenBild)
+		{
+			animation = 2;
+			minMax->setHintergrundBildZ(dynamic_cast<Bild*>(maximierenBild->getThis()));
+			// TODO minMax->zToolTip()->setText( "Chat Leiste maximieren." );
+		}
+		else
+		{
+			animation = 1;
+			minMax->setHintergrundBildZ(dynamic_cast<Bild*>(minimierenBild->getThis()));
+			// TODO minMax->zToolTip()->setText( "Chat Leiste minimieren." );
+		}
+	}
+	return 1;
 }
 
 // Nachrichten
-bool chatLeisteMinMaxME( void *p, void *obj, MausEreignis me )
+bool chatLeisteMinMaxME(void* p, void* obj, MausEreignis me)
 {
-    return ( (ChatLeiste *)p )->druckMinMax( me );
+	return ((ChatLeiste*)p)->druckMinMax(me);
 }
 
-bool chatroomFensterFreundME( void *p, void *obj, MausEreignis me )
+bool chatroomFensterFreundME(void* p, void* obj, MausEreignis me)
 {
-    return ( (ChatroomFenster *)p )->druckFreund( obj, me );
+	return ((ChatroomFenster*)p)->druckFreund(obj, me);
 }
 
-bool chatroomFensterEntfernenME( void *p, void *obj, MausEreignis me )
+bool chatroomFensterEntfernenME(void* p, void* obj, MausEreignis me)
 {
-    return ( (ChatroomFenster *)p )->druckEntfernen( obj, me );
+	return ((ChatroomFenster*)p)->druckEntfernen(obj, me);
 }

+ 123 - 123
KSGClient/NachLogin/Chat/ChatLeiste.h

@@ -17,161 +17,161 @@ using namespace Network;
 class Chat : public virtual ReferenceCounter
 {
 protected:
-    LRahmen *rahmen;
-    TextFeld *verlauf;
-    TextFeld *nachricht;
-    TextFeld *name;
-    Knopf *minimieren;
-    Knopf *close;
-    Punkt bildschirmGröße;
-    GSL::GSLSoundV *msgSound;
-    bool admin;
-    double tickVal;
-    bool sichtbar;
-    int animation;
-    int breite;
-    int höhe;
-    bool rend;
+	LRahmen* rahmen;
+	TextFeld* verlauf;
+	TextFeld* nachricht;
+	TextFeld* name;
+	Knopf* minimieren;
+	Knopf* close;
+	Punkt bildschirmGröße;
+	GSL::GSLSoundV* msgSound;
+	bool admin;
+	double tickVal;
+	bool sichtbar;
+	int animation;
+	int breite;
+	int höhe;
+	bool rend;
 
 public:
-    // Konstruktor
-    Chat();
-    // Destruktor
-    ~Chat();
-    // nicht constant
-    void setSichtbar( bool sichtbar );
-    void entfernen();
-    void addNachricht( char *txt );
-    void setAdmin();
-    virtual void addSpieler( int accountId );
-    virtual void removeSpieler( int accountId );
-    virtual bool tick( double tickVal );
-    virtual void doPublicMausEreignis( MausEreignis &me );
-    virtual void doTastaturEreignis( TastaturEreignis &te );
-    virtual void render( int x, Bild &zRObj );
-    // constant
-    TextFeld *getName() const;
-    TextFeld *zName() const;
-    virtual int getAccountId() const;
-    virtual int getChatroomId() const;
-    int getBreite() const;
-    bool istSichtbar() const;
+	// Konstruktor
+	Chat();
+	// Destruktor
+	~Chat();
+	// nicht constant
+	void setSichtbar(bool sichtbar);
+	void entfernen();
+	void addNachricht(const char* txt);
+	void setAdmin();
+	virtual void addSpieler(int accountId);
+	virtual void removeSpieler(int accountId);
+	virtual bool tick(double tickVal);
+	virtual void doPublicMausEreignis(MausEreignis& me);
+	virtual void doTastaturEreignis(TastaturEreignis& te);
+	virtual void render(int x, Bild& zRObj);
+	// constant
+	TextFeld* getName() const;
+	TextFeld* zName() const;
+	virtual int getAccountId() const;
+	virtual int getChatroomId() const;
+	int getBreite() const;
+	bool istSichtbar() const;
 };
 
 class ChatFenster : public Chat
 {
 private:
-    int accountId;
+	int accountId;
 
 public:
-    // Konstruktor
-    ChatFenster( int accountId );
-    // Destruktor
-    ~ChatFenster();
-    // nicht constant
-    bool tick( double tickVal ) override;
-    void doPublicMausEreignis( MausEreignis &me ) override;
-    void doTastaturEreignis( TastaturEreignis &te ) override;
-    void render( int x, Bild &zRObj ) override;
-    // constant
-    int getAccountId() const override;
+	// Konstruktor
+	ChatFenster(int accountId);
+	// Destruktor
+	~ChatFenster();
+	// nicht constant
+	bool tick(double tickVal) override;
+	void doPublicMausEreignis(MausEreignis& me) override;
+	void doTastaturEreignis(TastaturEreignis& te) override;
+	void render(int x, Bild& zRObj) override;
+	// constant
+	int getAccountId() const override;
 };
 
 class ChatroomFenster : public Chat
 {
 private:
-    int chatroomId;
-    ObjTabelle *spieler;
-    Array< int > *neueSpieler;
-    int neueSpielerAnzahl;
-    Array< int > *alteSpieler;
-    int alteSpielerAnzahl;
-    TextFeld *spielerName;
-    Knopf *einladen;
+	int chatroomId;
+	ObjTabelle* spieler;
+	Array< int >* neueSpieler;
+	int neueSpielerAnzahl;
+	Array< int >* alteSpieler;
+	int alteSpielerAnzahl;
+	TextFeld* spielerName;
+	Knopf* einladen;
 
 public:
-    // Konstruktor
-    ChatroomFenster( int chatroomId );
-    // Destruktor
-    ~ChatroomFenster();
-    // nicht constant
-    void addSpieler( int accountId ) override;
-    void removeSpieler( int accountId ) override;
-    bool tick( double tickVal ) override;
-    void doPublicMausEreignis( MausEreignis &me ) override;
-    void doTastaturEreignis( TastaturEreignis &te ) override;
-    void render( int x, Bild &zRObj ) override;
-    bool druckFreund( void *obj, MausEreignis &me );
-    bool druckEntfernen( void *obj, MausEreignis &me );
-    // constant
-    virtual int getChatroomId() const;
+	// Konstruktor
+	ChatroomFenster(int chatroomId);
+	// Destruktor
+	~ChatroomFenster();
+	// nicht constant
+	void addSpieler(int accountId) override;
+	void removeSpieler(int accountId) override;
+	bool tick(double tickVal) override;
+	void doPublicMausEreignis(MausEreignis& me) override;
+	void doTastaturEreignis(TastaturEreignis& te) override;
+	void render(int x, Bild& zRObj) override;
+	bool druckFreund(void* obj, MausEreignis& me);
+	bool druckEntfernen(void* obj, MausEreignis& me);
+	// constant
+	virtual int getChatroomId() const;
 };
 
 class ChatLeisteObj : public Zeichnung
 {
 private:
-    RCArray< Chat > *chats;
-    HScrollBar *hsb;
-    Punkt bildschirmGröße;
-    int anzahl;
-    int nowME;
+	RCArray< Chat >* chats;
+	HScrollBar* hsb;
+	Punkt bildschirmGröße;
+	int anzahl;
+	int nowME;
 
 public:
-    // Konstruktor
-    ChatLeisteObj();
-    // Destruktor
-    ~ChatLeisteObj();
-    // nicht constant
-    void chatNachricht( int vonAccount, char *txt );
-    void chatroomNachricht( int chatroomId, char *txt );
-    void addChat( int accountId, int chatroomId );
-    void removeChat( int accountId, int chatroomId );
-    void removeChat( Chat *zChat );
-    void removeAll();
-    void addSpieler( int chatroomId, int accountId );
-    void removeSpieler( int chatroomId, int accountId );
-    void setChatroomAdmin( int chatroomId );
-    bool tick( double tickVal ) override;
-    void doTastaturEreignis( TastaturEreignis &te ) override;
-    void doPublicMausEreignis( MausEreignis &me ) override;
-    void render( Bild &zRObj ) override;
+	// Konstruktor
+	ChatLeisteObj();
+	// Destruktor
+	~ChatLeisteObj();
+	// nicht constant
+	void chatNachricht(int vonAccount, const char* txt);
+	void chatroomNachricht(int chatroomId, const char* txt);
+	void addChat(int accountId, int chatroomId);
+	void removeChat(int accountId, int chatroomId);
+	void removeChat(Chat* zChat);
+	void removeAll();
+	void addSpieler(int chatroomId, int accountId);
+	void removeSpieler(int chatroomId, int accountId);
+	void setChatroomAdmin(int chatroomId);
+	bool tick(double tickVal) override;
+	void doTastaturEreignis(TastaturEreignis& te) override;
+	void doPublicMausEreignis(MausEreignis& me) override;
+	void render(Bild& zRObj) override;
 };
 
 class ChatLeiste : public virtual ReferenceCounter
 {
 private:
-    Fenster *fenster;
-    Knopf *minMax;
-    ChatLeisteObj *chatLeiste;
-    Punkt bildschirmGröße;
-    Bild *minimierenBild;
-    Bild *maximierenBild;
-    double tickVal;
-    int animation;
-    bool rend;
+	Fenster* fenster;
+	Knopf* minMax;
+	ChatLeisteObj* chatLeiste;
+	Punkt bildschirmGröße;
+	Bild* minimierenBild;
+	Bild* maximierenBild;
+	double tickVal;
+	int animation;
+	bool rend;
 
 public:
-    // Konstruktor
-    ChatLeiste( Fenster *zNachLoginFenster );
-    // Destruktor
-    ~ChatLeiste();
-    // nicht constant
-    void chatNachricht( int vonAccount, char *txt );
-    void chatroomNachricht( int chatroomId, int vonAccount, char *txt );
-    void addChat( int accountId, int chatroomId );
-    void removeChat( int accountId, int chatroomId );
-    void removeChat( Chat *zChat );
-    void removeAll();
-    void addSpieler( int chatroomId, int accountId );
-    void removeSpieler( int chatroomId, int accountId );
-    void setChatroomAdmin( int chatroomId );
-    bool tick( double tickVal );
-    bool druckMinMax( MausEreignis &me );
+	// Konstruktor
+	ChatLeiste(Fenster* zNachLoginFenster);
+	// Destruktor
+	~ChatLeiste();
+	// nicht constant
+	void chatNachricht(int vonAccount, const char* txt);
+	void chatroomNachricht(int chatroomId, int vonAccount, const char* txt);
+	void addChat(int accountId, int chatroomId);
+	void removeChat(int accountId, int chatroomId);
+	void removeChat(Chat* zChat);
+	void removeAll();
+	void addSpieler(int chatroomId, int accountId);
+	void removeSpieler(int chatroomId, int accountId);
+	void setChatroomAdmin(int chatroomId);
+	bool tick(double tickVal);
+	bool druckMinMax(MausEreignis& me);
 };
 
 // Nachrichten
-bool chatLeisteMinMaxME( void *p, void *obj, MausEreignis me );
-bool chatroomFensterFreundME( void *p, void *obj, MausEreignis me );
-bool chatroomFensterEntfernenME( void *p, void *obj, MausEreignis me );
+bool chatLeisteMinMaxME(void* p, void* obj, MausEreignis me);
+bool chatroomFensterFreundME(void* p, void* obj, MausEreignis me);
+bool chatroomFensterEntfernenME(void* p, void* obj, MausEreignis me);
 
 #endif

+ 979 - 979
KSGClient/NachLogin/Chat/FreundesListe.cpp

@@ -12,1140 +12,1140 @@
 
 // Inhalt der FreundData Klasse aus FreundesListe.h
 // Konstruktor
-FreundData::FreundData( int accountId, LRahmen *rahmen, AlphaFeld *auswahlBuffer )
-    : Thread()
-{
-    Bild *entfernenBild = bilder->get( "data/client/bilder/chat.ltdb/entfernen.png" );
-    Bild *ansehenBild = bilder->get( "data/client/bilder/chat.ltdb/ansehen.png" );
-    Bild *nachrichtBild = bilder->get( "data/client/bilder/chat.ltdb/nachricht.png" );
-    Bild *einladenBild = bilder->get( "data/client/bilder/chat.ltdb/neuerfreund.png" );
-    this->accountId = accountId;
-    this->rahmen = rahmen;
-    this->auswahlBuffer = auswahlBuffer;
-    name = uiFactory.createTextFeld( uiFactory.initParam );
-    name->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Center );
-    name->setText( "" );
-    name->setSize( 200, 20 );
-    name->setPosition( 25, 1 );
-    status = uiFactory.createTextFeld( uiFactory.initParam );
-    status->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Center );
-    status->setSchriftFarbe( 0xFFFF0000 );
-    status->setText( "offline" );
-    status->setSize( 200, 20 );
-    status->setPosition( 25, 24 );
-    entfernen = initKnopf( 228, 49, 20, 20, 0, "" );
-    entfernen->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer );
-    entfernen->setHintergrundBildZ( entfernenBild );
-    entfernen->setHintergrundFarbe( 0 );
-    initToolTip( entfernen, "Freund entfernen." );
-    ansehen = initKnopf( 208, 49, 20, 20, 0, "" );
-    ansehen->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer );
-    ansehen->setHintergrundBildZ( ansehenBild );
-    ansehen->setHintergrundFarbe( 0 );
-    initToolTip( ansehen, "Account ansehen." );
-    nachricht = initKnopf( 188, 49, 20, 20, 0, "" );
-    nachricht->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer );
-    nachricht->setHintergrundBildZ( nachrichtBild );
-    nachricht->setHintergrundFarbe( 0 );
-    initToolTip( nachricht, "Nachricht senden." );
-    einladen = initKnopf( 168, 49, 20, 20, 0, "" );
-    einladen->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer );
-    einladen->setHintergrundBildZ( einladenBild );
-    einladen->setHintergrundFarbe( 0 );
-    initToolTip( einladen, "Spieler in Gruppe einladen.\nDies kann nur der Gruppen Administrator." );
-    online = 0;
-    einladenSichtbar = 0;
-    ausgewählt = 0;
-    höhe = 0;
-    animation = 1;
-    auswahlAlpha = 0;
-    tickVal = 0;
-    rend = 0;
-    start();
+FreundData::FreundData(int accountId, LRahmen* rahmen, AlphaFeld* auswahlBuffer)
+	: Thread()
+{
+	Bild* entfernenBild = bilder->get("data/client/bilder/chat.ltdb/entfernen.png");
+	Bild* ansehenBild = bilder->get("data/client/bilder/chat.ltdb/ansehen.png");
+	Bild* nachrichtBild = bilder->get("data/client/bilder/chat.ltdb/nachricht.png");
+	Bild* einladenBild = bilder->get("data/client/bilder/chat.ltdb/neuerfreund.png");
+	this->accountId = accountId;
+	this->rahmen = rahmen;
+	this->auswahlBuffer = auswahlBuffer;
+	name = uiFactory.createTextFeld(uiFactory.initParam);
+	name->setStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Center);
+	name->setText("");
+	name->setSize(200, 20);
+	name->setPosition(25, 1);
+	status = uiFactory.createTextFeld(uiFactory.initParam);
+	status->setStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Center);
+	status->setSchriftFarbe(0xFFFF0000);
+	status->setText("offline");
+	status->setSize(200, 20);
+	status->setPosition(25, 24);
+	entfernen = initKnopf(228, 49, 20, 20, 0, "");
+	entfernen->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer);
+	entfernen->setHintergrundBildZ(entfernenBild);
+	entfernen->setHintergrundFarbe(0);
+	initToolTip(entfernen, "Freund entfernen.");
+	ansehen = initKnopf(208, 49, 20, 20, 0, "");
+	ansehen->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer);
+	ansehen->setHintergrundBildZ(ansehenBild);
+	ansehen->setHintergrundFarbe(0);
+	initToolTip(ansehen, "Account ansehen.");
+	nachricht = initKnopf(188, 49, 20, 20, 0, "");
+	nachricht->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer);
+	nachricht->setHintergrundBildZ(nachrichtBild);
+	nachricht->setHintergrundFarbe(0);
+	initToolTip(nachricht, "Nachricht senden.");
+	einladen = initKnopf(168, 49, 20, 20, 0, "");
+	einladen->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer);
+	einladen->setHintergrundBildZ(einladenBild);
+	einladen->setHintergrundFarbe(0);
+	initToolTip(einladen, "Spieler in Gruppe einladen.\nDies kann nur der Gruppen Administrator.");
+	online = 0;
+	einladenSichtbar = 0;
+	ausgewählt = 0;
+	höhe = 0;
+	animation = 1;
+	auswahlAlpha = 0;
+	tickVal = 0;
+	rend = 0;
+	start();
 }
 
 // Destruktor
 FreundData::~FreundData()
 {
-    rahmen->release();
-    auswahlBuffer = (AlphaFeld *)auswahlBuffer->release();
-    name = (TextFeld *)name->release();
-    status = (TextFeld *)status->release();
-    entfernen = (Knopf *)entfernen->release();
-    ansehen = (Knopf *)ansehen->release();
-    nachricht = (Knopf *)nachricht->release();
-    einladen = (Knopf *)einladen->release();
+	rahmen->release();
+	auswahlBuffer = (AlphaFeld*)auswahlBuffer->release();
+	name = (TextFeld*)name->release();
+	status = (TextFeld*)status->release();
+	entfernen = (Knopf*)entfernen->release();
+	ansehen = (Knopf*)ansehen->release();
+	nachricht = (Knopf*)nachricht->release();
+	einladen = (Knopf*)einladen->release();
 }
 
 // nicht constant
 void FreundData::thread()
 {
-    if( infoClient )
-    {
-        Text *n = infoClient->getSpielerName( accountId );
-        name->setTextZ( n );
-    }
-    run = 0;
+	if (infoClient)
+	{
+		Text* n = infoClient->getSpielerName(accountId);
+		name->setTextZ(n);
+	}
+	run = 0;
 }
 
-void FreundData::setName( char *txt )
+void FreundData::setName(const char* txt)
 {
-    name->setText( txt );
-    rend = 1;
+	name->setText(txt);
+	rend = 1;
 }
 
-void FreundData::setStatus( char *txt )
+void FreundData::setStatus(const char* txt)
 {
-    status->setText( txt );
-    rend = 1;
+	status->setText(txt);
+	rend = 1;
 }
 
-void FreundData::setOnline( bool online )
+void FreundData::setOnline(bool online)
 {
-    this->online = online;
-    if( online )
-    {
-        status->setSchriftFarbe( 0xFF00FF00 );
-        status->setText( "online" );
-    }
-    else
-    {
-        status->setSchriftFarbe( 0xFFFF0000 );
-        status->setText( "offline" );
-    }
-    einladen->setStyle( Knopf::Style::Erlaubt, einladenSichtbar && online );
-    rend = 1;
+	this->online = online;
+	if (online)
+	{
+		status->setSchriftFarbe(0xFF00FF00);
+		status->setText("online");
+	}
+	else
+	{
+		status->setSchriftFarbe(0xFFFF0000);
+		status->setText("offline");
+	}
+	einladen->setStyle(Knopf::Style::Erlaubt, einladenSichtbar && online);
+	rend = 1;
 }
 
-void FreundData::setAusgewählt( bool ausw )
+void FreundData::setAusgewählt(bool ausw)
 {
-    if( animation != 3 )
-    {
-        ausgewählt = ausw;
-        if( ausw )
-            animation = 2;
-        else
-            animation = 1;
-    }
+	if (animation != 3)
+	{
+		ausgewählt = ausw;
+		if (ausw)
+			animation = 2;
+		else
+			animation = 1;
+	}
 }
 
 void FreundData::remove()
 {
-    animation = 3;
-}
-
-void FreundData::zeigeEinladeKnopf( bool zeigen )
-{
-    einladenSichtbar = zeigen;
-    einladen->setStyle( Knopf::Style::Erlaubt, einladenSichtbar && online );
-    rend = 1;
-}
-
-void FreundData::doPublicMausEreignis( MausEreignis &me )
-{
-    if( animation != 3 )
-    {
-        bool tmp = 0;
-        if( me.my > höhe || !ausgewählt )
-        {
-            tmp = me.verarbeitet;
-            me.verarbeitet = 1;
-        }
-        char aktion = 0;
-        bool vera = me.verarbeitet;
-        nachricht->doPublicMausEreignis( me );
-        aktion = me.verarbeitet && !vera ? 1 : 0;
-        ansehen->doPublicMausEreignis( me );
-        if( !aktion )
-            aktion = me.verarbeitet && !vera ? 2 : 0;
-        entfernen->doPublicMausEreignis( me );
-        if( !aktion )
-            aktion = me.verarbeitet && !vera ? 3 : 0;
-        einladen->doPublicMausEreignis( me );
-        if( !aktion )
-            aktion = me.verarbeitet && !vera ? 4 : 0;
-        if( me.my > höhe || !ausgewählt )
-        {
-            me.verarbeitet = tmp;
-            return;
-        }
-        switch( aktion )
-        {
-        case 1:
-            // Nachricht senden
-            if( me.id == ME_RLinks )
-                nachLogin->zChatLeiste()->addChat( accountId, 0 );
-            break;
-        case 2:
-            // profil ansehen
-            if( me.id == ME_RLinks )
-            {
-                if( nachLogin->zAccountAnsehenFenster()->setSpielerDetails( accountId, 2 ) )
-                {
-                    MausEreignis me = { ME_RLinks, 0, 0, 0, 1 };
-                    nachLogin->zTitelLeiste()->druckAccountAnsehen( me );
-                }
-            }
-            break;
-        case 3:
-            // freund entfernen
-            if( me.id == ME_RLinks )
-            {
-                int id = accountId;
-                Text *nachricht = new Text( "Möchtest du deine Freundschaft mit " );
-                nachricht->append( name->zText()->getText() );
-                nachricht->append( " wirklich beenden?" );
-                nachLogin->zNachrichtenListe()->addNachricht( new Text( "Bist du dir Sicher?" ), nachricht, new Text( "ja" ),
-                                                              new Text( "abbrechen" ), [id]()
-                {
-                    chatClient->freundschaftBeenden( id );
-                } );
-            }
-            break;
-        case 4: // In Gruppe einladen
-            if( me.id == ME_RLinks )
-            {
-                if( !anmeldungClient )
-                    anmeldungClient = mainClient->createAnmeldungServerClient();
-                if( !anmeldungClient )
-                {
-                    nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( mainClient->getLetzterFehler() ),
-                                                                  new Text( "Ok" ), 0 );
-                }
-                if( anmeldungClient && anmeldungClient->verbinde() )
-                {
-                    if( !anmeldungClient->gruppeSpielerEinladen( accountId, nachLogin->zSpielenFenster()->getGruppeId() ) )
-                    {
-                        nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( anmeldungClient->getLetzterFehler() ),
-                                                                      new Text( "Ok" ), 0 );
-                    }
-                    anmeldungClient->trenne( 0 );
-                }
-                else
-                {
-                    nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( anmeldungClient->getLetzterFehler() ),
-                                                                  new Text( "Ok" ), 0 );
-                }
-            }
-        default:
-            // nichts
-            break;
-        }
-    }
-}
-
-bool FreundData::tick( double tickVal )
-{
-    rend |= name->tick( tickVal );
-    rend |= status->tick( tickVal );
-    rend |= entfernen->tick( tickVal );
-    rend |= ansehen->tick( tickVal );
-    rend |= nachricht->tick( tickVal );
-    rend |= einladen->tick( tickVal );
-    this->tickVal += tickVal * 100;
-    int val = (int)this->tickVal;
-    if( val < 1 )
-    {
-        bool ret = rend;
-        rend = 0;
-        return ret;
-    }
-    if( val > 4 )
-        val = 4;
-    this->tickVal -= val;
-    switch( animation )
-    {
-    case 1:
-        if( höhe != 50 )
-        {
-            if( höhe > 50 )
-            {
-                höhe -= val;
-                if( höhe < 50 )
-                    höhe = 50;
-            }
-            else
-            {
-                höhe += val;
-                if( höhe > 50 )
-                    höhe = 50;
-            }
-            rend = 1;
-        }
-        else
-            animation = 0;
-        break;
-    case 2:
-        if( höhe != 70 )
-        {
-            höhe += val;
-            if( höhe > 70 )
-                höhe = 70;
-            rend = 1;
-        }
-        else
-            animation = 0;
-        break;
-    case 3:
-        höhe -= val;
-        if( höhe <= 0 )
-        {
-            nachLogin->zFreundesListe()->removeMember( this ); // delete this
-            return 1;
-        }
-        rend = 1;
-        break;
-    }
-    if( ausgewählt && auswahlAlpha < 50 )
-    {
-        if( auswahlAlpha + val > 50 )
-            auswahlAlpha = 50;
-        else
-            auswahlAlpha += val;
-        rend = 1;
-    }
-    else if( !ausgewählt && auswahlAlpha > 0 )
-    {
-        if( auswahlAlpha - val < 0 )
-            auswahlAlpha = 0;
-        else
-            auswahlAlpha -= val;
-        rend = 1;
-    }
-    bool ret = rend;
-    rend = 0;
-    return ret;
-}
-
-void FreundData::render( int yPos, Bild &zRObj )
-{
-    int br = 250;
-    if( !zRObj.setDrawOptions( 0, yPos, br, höhe ) )
-        return;
-    rahmen->setSize( br, höhe );
-    rahmen->render( zRObj );
-    int rbr = rahmen->getRBreite();
-    if( !zRObj.setDrawOptions( rbr, rbr, br - rbr * 2, höhe - rbr * 2 ) )
-    {
-        zRObj.releaseDrawOptions();
-        return;
-    }
-    if( auswahlAlpha > 0 )
-    {
-        auswahlBuffer->setFarbe( 0x0000FF00 | ( ( (int)auswahlAlpha << 24 ) & 0xFF000000 ) );
-        auswahlBuffer->setSize( br - rbr * 2, höhe - rbr * 2 );
-        auswahlBuffer->render( zRObj );
-    }
-    name->render( zRObj );
-    status->render( zRObj );
-    einladen->render( zRObj );
-    nachricht->render( zRObj );
-    ansehen->render( zRObj );
-    entfernen->render( zRObj );
-    zRObj.releaseDrawOptions();
-    zRObj.releaseDrawOptions();
+	animation = 3;
+}
+
+void FreundData::zeigeEinladeKnopf(bool zeigen)
+{
+	einladenSichtbar = zeigen;
+	einladen->setStyle(Knopf::Style::Erlaubt, einladenSichtbar && online);
+	rend = 1;
+}
+
+void FreundData::doPublicMausEreignis(MausEreignis& me)
+{
+	if (animation != 3)
+	{
+		bool tmp = 0;
+		if (me.my > höhe || !ausgewählt)
+		{
+			tmp = me.verarbeitet;
+			me.verarbeitet = 1;
+		}
+		char aktion = 0;
+		bool vera = me.verarbeitet;
+		nachricht->doPublicMausEreignis(me);
+		aktion = me.verarbeitet && !vera ? 1 : 0;
+		ansehen->doPublicMausEreignis(me);
+		if (!aktion)
+			aktion = me.verarbeitet && !vera ? 2 : 0;
+		entfernen->doPublicMausEreignis(me);
+		if (!aktion)
+			aktion = me.verarbeitet && !vera ? 3 : 0;
+		einladen->doPublicMausEreignis(me);
+		if (!aktion)
+			aktion = me.verarbeitet && !vera ? 4 : 0;
+		if (me.my > höhe || !ausgewählt)
+		{
+			me.verarbeitet = tmp;
+			return;
+		}
+		switch (aktion)
+		{
+		case 1:
+			// Nachricht senden
+			if (me.id == ME_RLinks)
+				nachLogin->zChatLeiste()->addChat(accountId, 0);
+			break;
+		case 2:
+			// profil ansehen
+			if (me.id == ME_RLinks)
+			{
+				if (nachLogin->zAccountAnsehenFenster()->setSpielerDetails(accountId, 2))
+				{
+					MausEreignis me = { ME_RLinks, 0, 0, 0, 1 };
+					nachLogin->zTitelLeiste()->druckAccountAnsehen(me);
+				}
+			}
+			break;
+		case 3:
+			// freund entfernen
+			if (me.id == ME_RLinks)
+			{
+				int id = accountId;
+				Text* nachricht = new Text("Möchtest du deine Freundschaft mit ");
+				nachricht->append(name->zText()->getText());
+				nachricht->append(" wirklich beenden?");
+				nachLogin->zNachrichtenListe()->addNachricht(new Text("Bist du dir Sicher?"), nachricht, new Text("ja"),
+					new Text("abbrechen"), [id]()
+					{
+						chatClient->freundschaftBeenden(id);
+					});
+			}
+			break;
+		case 4: // In Gruppe einladen
+			if (me.id == ME_RLinks)
+			{
+				if (!anmeldungClient)
+					anmeldungClient = mainClient->createAnmeldungServerClient();
+				if (!anmeldungClient)
+				{
+					nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text(mainClient->getLetzterFehler()),
+						new Text("Ok"), 0);
+				}
+				if (anmeldungClient && anmeldungClient->verbinde())
+				{
+					if (!anmeldungClient->gruppeSpielerEinladen(accountId, nachLogin->zSpielenFenster()->getGruppeId()))
+					{
+						nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text(anmeldungClient->getLetzterFehler()),
+							new Text("Ok"), 0);
+					}
+					anmeldungClient->trenne(0);
+				}
+				else
+				{
+					nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text(anmeldungClient->getLetzterFehler()),
+						new Text("Ok"), 0);
+				}
+			}
+		default:
+			// nichts
+			break;
+		}
+	}
+}
+
+bool FreundData::tick(double tickVal)
+{
+	rend |= name->tick(tickVal);
+	rend |= status->tick(tickVal);
+	rend |= entfernen->tick(tickVal);
+	rend |= ansehen->tick(tickVal);
+	rend |= nachricht->tick(tickVal);
+	rend |= einladen->tick(tickVal);
+	this->tickVal += tickVal * 100;
+	int val = (int)this->tickVal;
+	if (val < 1)
+	{
+		bool ret = rend;
+		rend = 0;
+		return ret;
+	}
+	if (val > 4)
+		val = 4;
+	this->tickVal -= val;
+	switch (animation)
+	{
+	case 1:
+		if (höhe != 50)
+		{
+			if (höhe > 50)
+			{
+				höhe -= val;
+				if (höhe < 50)
+					höhe = 50;
+			}
+			else
+			{
+				höhe += val;
+				if (höhe > 50)
+					höhe = 50;
+			}
+			rend = 1;
+		}
+		else
+			animation = 0;
+		break;
+	case 2:
+		if (höhe != 70)
+		{
+			höhe += val;
+			if (höhe > 70)
+				höhe = 70;
+			rend = 1;
+		}
+		else
+			animation = 0;
+		break;
+	case 3:
+		höhe -= val;
+		if (höhe <= 0)
+		{
+			nachLogin->zFreundesListe()->removeMember(this); // delete this
+			return 1;
+		}
+		rend = 1;
+		break;
+	}
+	if (ausgewählt && auswahlAlpha < 50)
+	{
+		if (auswahlAlpha + val > 50)
+			auswahlAlpha = 50;
+		else
+			auswahlAlpha += val;
+		rend = 1;
+	}
+	else if (!ausgewählt && auswahlAlpha > 0)
+	{
+		if (auswahlAlpha - val < 0)
+			auswahlAlpha = 0;
+		else
+			auswahlAlpha -= val;
+		rend = 1;
+	}
+	bool ret = rend;
+	rend = 0;
+	return ret;
+}
+
+void FreundData::render(int yPos, Bild& zRObj)
+{
+	int br = 250;
+	if (!zRObj.setDrawOptions(0, yPos, br, höhe))
+		return;
+	rahmen->setSize(br, höhe);
+	rahmen->render(zRObj);
+	int rbr = rahmen->getRBreite();
+	if (!zRObj.setDrawOptions(rbr, rbr, br - rbr * 2, höhe - rbr * 2))
+	{
+		zRObj.releaseDrawOptions();
+		return;
+	}
+	if (auswahlAlpha > 0)
+	{
+		auswahlBuffer->setFarbe(0x0000FF00 | (((int)auswahlAlpha << 24) & 0xFF000000));
+		auswahlBuffer->setSize(br - rbr * 2, höhe - rbr * 2);
+		auswahlBuffer->render(zRObj);
+	}
+	name->render(zRObj);
+	status->render(zRObj);
+	einladen->render(zRObj);
+	nachricht->render(zRObj);
+	ansehen->render(zRObj);
+	entfernen->render(zRObj);
+	zRObj.releaseDrawOptions();
+	zRObj.releaseDrawOptions();
 }
 
 // constant
 bool FreundData::istOnline() const
 {
-    return online;
+	return online;
 }
 
 bool FreundData::istAusgewählt() const
 {
-    return ausgewählt;
+	return ausgewählt;
 }
 
-char *FreundData::zName() const
+const char* FreundData::zName() const
 {
-    return name->zText()->getText();
+	return name->zText()->getText();
 }
 
-Text *FreundData::getName() const
+Text* FreundData::getName() const
 {
-    return name->getText();
+	return name->getText();
 }
 
-char *FreundData::zStatus() const
+const char* FreundData::zStatus() const
 {
-    return status->zText()->getText();
+	return status->zText()->getText();
 }
 
-Text *FreundData::getStatus() const
+Text* FreundData::getStatus() const
 {
-    return status->getText();
+	return status->getText();
 }
 
 int FreundData::getAccountId() const
 {
-    return accountId;
+	return accountId;
 }
 
 int FreundData::getHeight() const
 {
-    return höhe;
+	return höhe;
 }
 
 // Inhalt der FreundesListeObj Klasse aus FreundesListe.h
 // Konstruktor
 FreundesListeObj::FreundesListeObj()
-    : Zeichnung()
-{
-    members = new RCArray< FreundData >();
-    memberRahmen = new LRahmen();
-    memberRahmen->setFarbe( 0xFFFFFFFF );
-    memberRahmen->setRamenBreite( 1 );
-    auswahlBuffer = new AlphaFeld();
-    auswahlBuffer->setStrength( -2 );
-    auswahlBuffer->setPosition( 1, 1 );
-    vsb = new VScrollBar();
-    vsb->setKlickScroll( 10 );
-    bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
-    vsb->update( 0, bildschirmGröße.y - 200 );
-    memberNummer = 0;
-    einladenSichtbar = 0;
+	: Zeichnung()
+{
+	members = new RCArray< FreundData >();
+	memberRahmen = new LRahmen();
+	memberRahmen->setFarbe(0xFFFFFFFF);
+	memberRahmen->setRamenBreite(1);
+	auswahlBuffer = new AlphaFeld();
+	auswahlBuffer->setStrength(-2);
+	auswahlBuffer->setPosition(1, 1);
+	vsb = new VScrollBar();
+	vsb->setKlickScroll(10);
+	bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
+	vsb->update(0, bildschirmGröße.y - 200);
+	memberNummer = 0;
+	einladenSichtbar = 0;
 }
 
 // Destruktor
 FreundesListeObj::~FreundesListeObj()
 {
-    members->release();
-    memberRahmen->release();
-    auswahlBuffer = (AlphaFeld *)auswahlBuffer->release();
-    vsb = (VScrollBar *)vsb->release();
+	members->release();
+	memberRahmen->release();
+	auswahlBuffer = (AlphaFeld*)auswahlBuffer->release();
+	vsb = (VScrollBar*)vsb->release();
 }
 
 // nicht constant
-void FreundesListeObj::addMember( int accountId )
+void FreundesListeObj::addMember(int accountId)
 {
-    FreundData *tmp = new FreundData( accountId, dynamic_cast<LRahmen *>( memberRahmen->getThis() ), dynamic_cast<AlphaFeld *>( auswahlBuffer->getThis() ) );
-    members->add( tmp, memberNummer );
-    memberNummer++;
-    if( einladenSichtbar )
-        tmp->zeigeEinladeKnopf( 1 );
-    rend = 1;
+	FreundData* tmp = new FreundData(accountId, dynamic_cast<LRahmen*>(memberRahmen->getThis()), dynamic_cast<AlphaFeld*>(auswahlBuffer->getThis()));
+	members->add(tmp, memberNummer);
+	memberNummer++;
+	if (einladenSichtbar)
+		tmp->zeigeEinladeKnopf(1);
+	rend = 1;
 }
 
-void FreundesListeObj::removeMember( int accountId )
+void FreundesListeObj::removeMember(int accountId)
 {
-    for( int i = 0; i < memberNummer; i++ )
-    {
-        FreundData *tmp = members->z( i );
-        if( tmp->getAccountId() == accountId )
-        {
-            tmp->remove();
-            break;
-        }
-    }
+	for (int i = 0; i < memberNummer; i++)
+	{
+		FreundData* tmp = members->z(i);
+		if (tmp->getAccountId() == accountId)
+		{
+			tmp->remove();
+			break;
+		}
+	}
 }
 
-void FreundesListeObj::removeMember( FreundData *member )
+void FreundesListeObj::removeMember(FreundData* member)
 {
-    for( int i = 0; i < memberNummer; i++ )
-    {
-        if( members->z( i ) == member )
-        {
-            members->remove( i );
-            memberNummer--;
-            rend = 1;
-            break;
-        }
-    }
+	for (int i = 0; i < memberNummer; i++)
+	{
+		if (members->z(i) == member)
+		{
+			members->remove(i);
+			memberNummer--;
+			rend = 1;
+			break;
+		}
+	}
 }
 
 void FreundesListeObj::removeAll()
 {
-    members->leeren();
-    memberNummer = 0;
-    rend = 1;
-}
-
-void FreundesListeObj::setName( int accountId, char *txt )
-{
-    for( int i = 0; i < memberNummer; i++ )
-    {
-        FreundData *tmp = members->z( i );
-        if( tmp->getAccountId() == accountId )
-        {
-            tmp->setName( txt );
-            break;
-        }
-    }
-}
-
-void FreundesListeObj::setStatus( int accountId, char *txt )
-{
-    for( int i = 0; i < memberNummer; i++ )
-    {
-        FreundData *tmp = members->z( i );
-        if( tmp->getAccountId() == accountId )
-        {
-            tmp->setStatus( txt );
-            break;
-        }
-    }
-}
-
-void FreundesListeObj::setOnline( int accountId, bool online )
-{
-    for( int i = 0; i < memberNummer; i++ )
-    {
-        FreundData *tmp = members->z( i );
-        if( tmp->getAccountId() == accountId )
-        {
-            tmp->setOnline( online );
-            break;
-        }
-    }
-}
-
-void FreundesListeObj::zeigeEinladeKnopf( bool zeigen )
-{
-    einladenSichtbar = zeigen;
-    for( int i = 0; i < memberNummer; i++ )
-    {
-        FreundData *tmp = members->z( i );
-        tmp->zeigeEinladeKnopf( zeigen );
-    }
-}
-
-bool FreundesListeObj::tick( double tickVal )
-{
-    rend |= vsb->getRend();
-    rend |= nachLogin->zFreundesListe()->tick( tickVal );
-    for( int i = 0; i < memberNummer; i++ )
-    {
-        FreundData *tmp = members->z( i );
-        if( tmp )
-            rend |= tmp->tick( tickVal );
-    }
-    bool ret = rend;
-    rend = 0;
-    return ret;
-}
-
-void FreundesListeObj::doPublicMausEreignis( MausEreignis &me )
-{
-    int my = me.my;
-    me.my -= pos.y;
-    if( me.mx <= 250 && me.mx > 0 && me.my >= 0 )
-    {
-        me.my += vsb->getScroll();
-        for( int i = 0; i < memberNummer; i++ )
-        {
-            FreundData *tmp = members->z( i );
-            if( tmp )
-            {
-                if( me.my > 0 && me.my < tmp->getHeight() )
-                    tmp->setAusgewählt( 1 );
-                else
-                    tmp->setAusgewählt( 0 );
-                tmp->doPublicMausEreignis( me );
-                me.my -= tmp->getHeight();
-            }
-        }
-        me.my -= vsb->getScroll();
-    }
-    else
-    {
-        me.my += vsb->getScroll();
-        for( int i = 0; i < memberNummer; i++ )
-        {
-            FreundData *tmp = members->z( i );
-            if( tmp )
-            {
-                tmp->setAusgewählt( 0 );
-                tmp->doPublicMausEreignis( me );
-                me.my -= tmp->getHeight();
-            }
-        }
-        me.my -= vsb->getScroll();
-    }
-    me.my = my;
-    vsb->doMausMessage( 250, pos.y, 20, gr.y, me );
-}
-
-void FreundesListeObj::render( Bild &zrObj )
-{
-    if( !zrObj.setDrawOptions( pos.x, pos.y, gr.x, gr.y ) )
-        return;
-    int höhe = 0;
-    for( int i = 0; i < memberNummer; i++ )
-    {
-        FreundData *tmp = members->z( i );
-        tmp->render( höhe, zrObj );
-        höhe += tmp->getHeight();
-    }
-    vsb->update( höhe, gr.y );
-    vsb->render( 250, 0, 20, gr.y, zrObj );
-    zrObj.releaseDrawOptions();
+	members->leeren();
+	memberNummer = 0;
+	rend = 1;
+}
+
+void FreundesListeObj::setName(int accountId, const char* txt)
+{
+	for (int i = 0; i < memberNummer; i++)
+	{
+		FreundData* tmp = members->z(i);
+		if (tmp->getAccountId() == accountId)
+		{
+			tmp->setName(txt);
+			break;
+		}
+	}
+}
+
+void FreundesListeObj::setStatus(int accountId, const char* txt)
+{
+	for (int i = 0; i < memberNummer; i++)
+	{
+		FreundData* tmp = members->z(i);
+		if (tmp->getAccountId() == accountId)
+		{
+			tmp->setStatus(txt);
+			break;
+		}
+	}
+}
+
+void FreundesListeObj::setOnline(int accountId, bool online)
+{
+	for (int i = 0; i < memberNummer; i++)
+	{
+		FreundData* tmp = members->z(i);
+		if (tmp->getAccountId() == accountId)
+		{
+			tmp->setOnline(online);
+			break;
+		}
+	}
+}
+
+void FreundesListeObj::zeigeEinladeKnopf(bool zeigen)
+{
+	einladenSichtbar = zeigen;
+	for (int i = 0; i < memberNummer; i++)
+	{
+		FreundData* tmp = members->z(i);
+		tmp->zeigeEinladeKnopf(zeigen);
+	}
+}
+
+bool FreundesListeObj::tick(double tickVal)
+{
+	rend |= vsb->getRend();
+	rend |= nachLogin->zFreundesListe()->tick(tickVal);
+	for (int i = 0; i < memberNummer; i++)
+	{
+		FreundData* tmp = members->z(i);
+		if (tmp)
+			rend |= tmp->tick(tickVal);
+	}
+	bool ret = rend;
+	rend = 0;
+	return ret;
+}
+
+void FreundesListeObj::doPublicMausEreignis(MausEreignis& me)
+{
+	int my = me.my;
+	me.my -= pos.y;
+	if (me.mx <= 250 && me.mx > 0 && me.my >= 0)
+	{
+		me.my += vsb->getScroll();
+		for (int i = 0; i < memberNummer; i++)
+		{
+			FreundData* tmp = members->z(i);
+			if (tmp)
+			{
+				if (me.my > 0 && me.my < tmp->getHeight())
+					tmp->setAusgewählt(1);
+				else
+					tmp->setAusgewählt(0);
+				tmp->doPublicMausEreignis(me);
+				me.my -= tmp->getHeight();
+			}
+		}
+		me.my -= vsb->getScroll();
+	}
+	else
+	{
+		me.my += vsb->getScroll();
+		for (int i = 0; i < memberNummer; i++)
+		{
+			FreundData* tmp = members->z(i);
+			if (tmp)
+			{
+				tmp->setAusgewählt(0);
+				tmp->doPublicMausEreignis(me);
+				me.my -= tmp->getHeight();
+			}
+		}
+		me.my -= vsb->getScroll();
+	}
+	me.my = my;
+	vsb->doMausMessage(250, pos.y, 20, gr.y, me);
+}
+
+void FreundesListeObj::render(Bild& zrObj)
+{
+	if (!zrObj.setDrawOptions(pos.x, pos.y, gr.x, gr.y))
+		return;
+	int höhe = 0;
+	for (int i = 0; i < memberNummer; i++)
+	{
+		FreundData* tmp = members->z(i);
+		tmp->render(höhe, zrObj);
+		höhe += tmp->getHeight();
+	}
+	vsb->update(höhe, gr.y);
+	vsb->render(250, 0, 20, gr.y, zrObj);
+	zrObj.releaseDrawOptions();
 }
 
 // constant
-bool FreundesListeObj::istFreund( int accId ) const
+bool FreundesListeObj::istFreund(int accId) const
 {
-    for( int i = 0; i < memberNummer; i++ )
-    {
-        FreundData *tmp = members->z( i );
-        if( tmp->getAccountId() == accId )
-            return 1;
-    }
-    return 0;
+	for (int i = 0; i < memberNummer; i++)
+	{
+		FreundData* tmp = members->z(i);
+		if (tmp->getAccountId() == accId)
+			return 1;
+	}
+	return 0;
 }
 
 // Inhalt der FreundesListe Klasse aus FreundesListe.h
 // Konstruktor
-FreundesListe::FreundesListe( Fenster *zNachLoginFenster )
-    : Thread()
-{
-    minimierenBild = bilder->get( "data/client/bilder/chat.ltdb/minimieren.png" );
-    maximierenBild = bilder->get( "data/client/bilder/chat.ltdb/maximieren.png" );
-    Bild *neuerFreundBild = bilder->get( "data/client/bilder/chat.ltdb/neuerfreund.png" );
-
-    bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
-
-    fenster = new Fenster();
-    fenster->addStyle( Fenster::Style::Sichtbar | Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::BodyHintergrund );
-    fenster->setSize( 270, 20 );
-    fenster->setRFarbe( 0xFFFFFFFF );
-    fenster->setKBgFarbe( 0xFF000000 );
-    fenster->setPosition( -250, 100 );
-
-    minMax = initKnopf( 249, 1, 20, 20, 0, "" );
-    minMax->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer );
-    minMax->setHintergrundBildZ( dynamic_cast<Bild *>( minimierenBild->getThis() ) );
-    minMax->setMausEreignisParameter( this );
-    minMax->setMausEreignis( freundesListeMinMaxME );
-    initToolTip( minMax, "Freundes Leiste minimieren." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( minMax->getThis() ) );
-
-    überschrift = initTextFeld( 0, 5, 250, 25, TextFeld::Style::Text | TextFeld::Style::Center | TextFeld::Style::Sichtbar, "Freunde" );
-    überschrift->setSchriftSize( 15 );
-    fenster->addMember( dynamic_cast<Zeichnung *>( überschrift->getThis() ) );
-
-    accountName = initTextFeld( 25, 40, 200, 20, TextFeld::Style::TextFeld | TextFeld::Style::Sichtbar, "" );
-    accountName->setTastaturEreignisParameter( this );
-    accountName->setTastaturEreignis( freundesListeNameTE );
-    initToolTip( accountName, "Mit diesem Namen bist du bei anderen Spielern sichtbar." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( accountName->getThis() ) );
-
-    LTDBDatei *chatBilder = new LTDBDatei();
-    chatBilder->setDatei( new Text( "data/client/bilder/chat.ltdb" ) );
-    chatBilder->leseDaten( 0 );
-    Bild *neuerChatBild = chatBilder->laden( 0, new Text( "neuerchat.png" ) );
-    chatBilder->release();
-
-    neuerFreund = initKnopf( 5, 75, 20, 20, 0, "" );
-    neuerFreund->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer );
-    neuerFreund->setHintergrundBildZ( neuerFreundBild );
-    neuerFreund->setMausEreignisParameter( this );
-    neuerFreund->setMausEreignis( freundesListeNeuerFreundME );
-    initToolTip( neuerFreund, "Freundesanfrage senden." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( neuerFreund->getThis() ) );
-
-    neuerChat = initKnopf( 30, 75, 20, 20, 0, "" );
-    neuerChat->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer );
-    neuerChat->setHintergrundBildZ( neuerChatBild );
-    neuerChat->setMausEreignisParameter( this );
-    neuerChat->setMausEreignis( freundesListeNeuerChatME );
-    initToolTip( neuerChat, "Nachricht senden." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( neuerChat->getThis() ) );
-
-    neuerFreundFenster = initFenster( 0, 100, 270, 0, Fenster::Style::Erlaubt | Fenster::Style::Rahmen, 0 );
-    neuerFreundSpielerName = initTextFeld( 5, 5, 235, 20, TextFeld::Style::Sichtbar | TextFeld::Style::TextFeld, "Spieler Name" );
-    neuerFreundSpielerName->setTastaturEreignisParameter( this );
-    neuerFreundSpielerName->setTastaturEreignis( freundesListeNeuerFreundSpielerNameTE );
-    initToolTip( neuerFreundSpielerName, "Name des Spielers an den eine Freundesanfrage gesendet werden soll." );
-    neuerFreundFenster->addMember( dynamic_cast<Zeichnung *>( neuerFreundSpielerName->getThis() ) );
-    neuerFreundFertig = initKnopf( 245, 5, 20, 20, 0, "" );
-    neuerFreundFertig->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer );
-    neuerFreundFertig->setHintergrundBildZ( dynamic_cast<Bild *>( maximierenBild->getThis() ) );
-    neuerFreundFertig->setMausEreignisParameter( this );
-    neuerFreundFertig->setMausEreignis( freundesListeNeuerFreundFertigME );
-    initToolTip( neuerFreundFertig, "Diesem Spieler eine Freundesanfrage senden." );
-    neuerFreundFenster->addMember( dynamic_cast<Zeichnung *>( neuerFreundFertig->getThis() ) );
-    fenster->addMember( dynamic_cast<Zeichnung *>( neuerFreundFenster->getThis() ) );
-
-    neuerChatFenster = initFenster( 0, 100, 270, 0, Fenster::Style::Erlaubt | Fenster::Style::Rahmen, 0 );
-    neuerChatName = initTextFeld( 5, 5, 235, 20, TextFeld::Style::Sichtbar | TextFeld::Style::TextFeld, "Spieler Name" );
-    neuerChatName->setTastaturEreignisParameter( this );
-    neuerChatName->setTastaturEreignis( freundesListeNeuerChatNameTE );
-    initToolTip( neuerChatName, "Name des Spielers an den eine Nachricht gesendet werden soll." );
-    neuerChatFenster->addMember( dynamic_cast<Zeichnung *>( neuerChatName->getThis() ) );
-    neuerChatFertig = initKnopf( 245, 5, 20, 20, 0, "" );
-    neuerChatFertig->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer );
-    neuerChatFertig->setHintergrundBildZ( dynamic_cast<Bild *>( maximierenBild->getThis() ) );
-    neuerChatFertig->setMausEreignisParameter( this );
-    neuerChatFertig->setMausEreignis( freundesListeNeuerChatFertigME );
-    initToolTip( neuerChatFertig, "Diesem Spieler eine Nachricht senden." );
-    neuerChatFenster->addMember( dynamic_cast<Zeichnung *>( neuerChatFertig->getThis() ) );
-    neuesChatroomName = initTextFeld( 5, 30, 235, 20, TextFeld::Style::Sichtbar | TextFeld::Style::TextFeld, "Chatroom Name" );
-    neuesChatroomName->setTastaturEreignisParameter( this );
-    neuesChatroomName->setTastaturEreignis( freundesListeNeuesChatroomNameTE );
-    initToolTip( neuesChatroomName, "Name des Chatroom dem du beitreten möchtest." );
-    neuerChatFenster->addMember( dynamic_cast<Zeichnung *>( neuesChatroomName->getThis() ) );
-    neuesChatroomFertig = initKnopf( 245, 30, 20, 20, 0, "" );
-    neuesChatroomFertig->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer );
-    neuesChatroomFertig->setHintergrundBildZ( dynamic_cast<Bild *>( maximierenBild->getThis() ) );
-    neuesChatroomFertig->setMausEreignisParameter( this );
-    neuesChatroomFertig->setMausEreignis( freundesListeNeuesChatroomFertigME );
-    initToolTip( neuesChatroomFertig, "Chatroom erstellen oder beitreten." );
-    neuerChatFenster->addMember( dynamic_cast<Zeichnung *>( neuesChatroomFertig->getThis() ) );
-    fenster->addMember( dynamic_cast<Zeichnung *>( neuerChatFenster->getThis() ) );
-
-    freundesListe = new FreundesListeObj();
-    freundesListe->setPosition( 0, 100 );
-    freundesListe->setSize( 270, bildschirmGröße.y - 200 );
-    fenster->addMember( dynamic_cast<Zeichnung *>( freundesListe->getThis() ) );
-
-    zNachLoginFenster->addMember( dynamic_cast<Zeichnung *>( fenster->getThis() ) );
-    animation = 1;
-    tickVal = 0;
-    neuerFreundSichtbar = 0;
-    neuerChatSichtbar = 0;
-    rend = 0;
-
-    start();
+FreundesListe::FreundesListe(Fenster* zNachLoginFenster)
+	: Thread()
+{
+	minimierenBild = bilder->get("data/client/bilder/chat.ltdb/minimieren.png");
+	maximierenBild = bilder->get("data/client/bilder/chat.ltdb/maximieren.png");
+	Bild* neuerFreundBild = bilder->get("data/client/bilder/chat.ltdb/neuerfreund.png");
+
+	bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
+
+	fenster = new Fenster();
+	fenster->addStyle(Fenster::Style::Sichtbar | Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::BodyHintergrund);
+	fenster->setSize(270, 20);
+	fenster->setRFarbe(0xFFFFFFFF);
+	fenster->setKBgFarbe(0xFF000000);
+	fenster->setPosition(-250, 100);
+
+	minMax = initKnopf(249, 1, 20, 20, 0, "");
+	minMax->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer);
+	minMax->setHintergrundBildZ(dynamic_cast<Bild*>(minimierenBild->getThis()));
+	minMax->setMausEreignisParameter(this);
+	minMax->setMausEreignis(freundesListeMinMaxME);
+	initToolTip(minMax, "Freundes Leiste minimieren.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(minMax->getThis()));
+
+	überschrift = initTextFeld(0, 5, 250, 25, TextFeld::Style::Text | TextFeld::Style::Center | TextFeld::Style::Sichtbar, "Freunde");
+	überschrift->setSchriftSize(15);
+	fenster->addMember(dynamic_cast<Zeichnung*>(überschrift->getThis()));
+
+	accountName = initTextFeld(25, 40, 200, 20, TextFeld::Style::TextFeld | TextFeld::Style::Sichtbar, "");
+	accountName->setTastaturEreignisParameter(this);
+	accountName->setTastaturEreignis(freundesListeNameTE);
+	initToolTip(accountName, "Mit diesem Namen bist du bei anderen Spielern sichtbar.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(accountName->getThis()));
+
+	LTDBDatei* chatBilder = new LTDBDatei();
+	chatBilder->setDatei(new Text("data/client/bilder/chat.ltdb"));
+	chatBilder->leseDaten(0);
+	Bild* neuerChatBild = chatBilder->laden(0, new Text("neuerchat.png"));
+	chatBilder->release();
+
+	neuerFreund = initKnopf(5, 75, 20, 20, 0, "");
+	neuerFreund->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer);
+	neuerFreund->setHintergrundBildZ(neuerFreundBild);
+	neuerFreund->setMausEreignisParameter(this);
+	neuerFreund->setMausEreignis(freundesListeNeuerFreundME);
+	initToolTip(neuerFreund, "Freundesanfrage senden.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(neuerFreund->getThis()));
+
+	neuerChat = initKnopf(30, 75, 20, 20, 0, "");
+	neuerChat->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer);
+	neuerChat->setHintergrundBildZ(neuerChatBild);
+	neuerChat->setMausEreignisParameter(this);
+	neuerChat->setMausEreignis(freundesListeNeuerChatME);
+	initToolTip(neuerChat, "Nachricht senden.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(neuerChat->getThis()));
+
+	neuerFreundFenster = initFenster(0, 100, 270, 0, Fenster::Style::Erlaubt | Fenster::Style::Rahmen, 0);
+	neuerFreundSpielerName = initTextFeld(5, 5, 235, 20, TextFeld::Style::Sichtbar | TextFeld::Style::TextFeld, "Spieler Name");
+	neuerFreundSpielerName->setTastaturEreignisParameter(this);
+	neuerFreundSpielerName->setTastaturEreignis(freundesListeNeuerFreundSpielerNameTE);
+	initToolTip(neuerFreundSpielerName, "Name des Spielers an den eine Freundesanfrage gesendet werden soll.");
+	neuerFreundFenster->addMember(dynamic_cast<Zeichnung*>(neuerFreundSpielerName->getThis()));
+	neuerFreundFertig = initKnopf(245, 5, 20, 20, 0, "");
+	neuerFreundFertig->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer);
+	neuerFreundFertig->setHintergrundBildZ(dynamic_cast<Bild*>(maximierenBild->getThis()));
+	neuerFreundFertig->setMausEreignisParameter(this);
+	neuerFreundFertig->setMausEreignis(freundesListeNeuerFreundFertigME);
+	initToolTip(neuerFreundFertig, "Diesem Spieler eine Freundesanfrage senden.");
+	neuerFreundFenster->addMember(dynamic_cast<Zeichnung*>(neuerFreundFertig->getThis()));
+	fenster->addMember(dynamic_cast<Zeichnung*>(neuerFreundFenster->getThis()));
+
+	neuerChatFenster = initFenster(0, 100, 270, 0, Fenster::Style::Erlaubt | Fenster::Style::Rahmen, 0);
+	neuerChatName = initTextFeld(5, 5, 235, 20, TextFeld::Style::Sichtbar | TextFeld::Style::TextFeld, "Spieler Name");
+	neuerChatName->setTastaturEreignisParameter(this);
+	neuerChatName->setTastaturEreignis(freundesListeNeuerChatNameTE);
+	initToolTip(neuerChatName, "Name des Spielers an den eine Nachricht gesendet werden soll.");
+	neuerChatFenster->addMember(dynamic_cast<Zeichnung*>(neuerChatName->getThis()));
+	neuerChatFertig = initKnopf(245, 5, 20, 20, 0, "");
+	neuerChatFertig->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer);
+	neuerChatFertig->setHintergrundBildZ(dynamic_cast<Bild*>(maximierenBild->getThis()));
+	neuerChatFertig->setMausEreignisParameter(this);
+	neuerChatFertig->setMausEreignis(freundesListeNeuerChatFertigME);
+	initToolTip(neuerChatFertig, "Diesem Spieler eine Nachricht senden.");
+	neuerChatFenster->addMember(dynamic_cast<Zeichnung*>(neuerChatFertig->getThis()));
+	neuesChatroomName = initTextFeld(5, 30, 235, 20, TextFeld::Style::Sichtbar | TextFeld::Style::TextFeld, "Chatroom Name");
+	neuesChatroomName->setTastaturEreignisParameter(this);
+	neuesChatroomName->setTastaturEreignis(freundesListeNeuesChatroomNameTE);
+	initToolTip(neuesChatroomName, "Name des Chatroom dem du beitreten möchtest.");
+	neuerChatFenster->addMember(dynamic_cast<Zeichnung*>(neuesChatroomName->getThis()));
+	neuesChatroomFertig = initKnopf(245, 30, 20, 20, 0, "");
+	neuesChatroomFertig->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer);
+	neuesChatroomFertig->setHintergrundBildZ(dynamic_cast<Bild*>(maximierenBild->getThis()));
+	neuesChatroomFertig->setMausEreignisParameter(this);
+	neuesChatroomFertig->setMausEreignis(freundesListeNeuesChatroomFertigME);
+	initToolTip(neuesChatroomFertig, "Chatroom erstellen oder beitreten.");
+	neuerChatFenster->addMember(dynamic_cast<Zeichnung*>(neuesChatroomFertig->getThis()));
+	fenster->addMember(dynamic_cast<Zeichnung*>(neuerChatFenster->getThis()));
+
+	freundesListe = new FreundesListeObj();
+	freundesListe->setPosition(0, 100);
+	freundesListe->setSize(270, bildschirmGröße.y - 200);
+	fenster->addMember(dynamic_cast<Zeichnung*>(freundesListe->getThis()));
+
+	zNachLoginFenster->addMember(dynamic_cast<Zeichnung*>(fenster->getThis()));
+	animation = 1;
+	tickVal = 0;
+	neuerFreundSichtbar = 0;
+	neuerChatSichtbar = 0;
+	rend = 0;
+
+	start();
 }
 
 // Destruktor
 FreundesListe::~FreundesListe()
 {
-    fenster = (Fenster *)fenster->release();
-    minimierenBild->release();
-    maximierenBild->release();
-    minMax = (Knopf *)minMax->release();
-    überschrift = (TextFeld *)überschrift->release();
-    accountName = (TextFeld *)accountName->release();
-    freundesListe = (FreundesListeObj *)freundesListe->release();
-    neuerFreund = (Knopf *)neuerFreund->release();
-    neuerChat = (Knopf *)neuerChat->release();
-    neuerFreundFenster = (Fenster *)neuerFreundFenster->release();
-    neuerFreundSpielerName = (TextFeld *)neuerFreundSpielerName->release();
-    neuerFreundFertig = (Knopf *)neuerFreundFertig->release();
-    neuerChatFenster = (Fenster *)neuerChatFenster->release();
-    neuerChatName = (TextFeld *)neuerChatName->release();
-    neuerChatFertig = (Knopf *)neuerChatFertig->release();
-    neuesChatroomName = (TextFeld *)neuesChatroomName->release();
-    neuesChatroomFertig = (Knopf *)neuesChatroomFertig->release();
+	fenster = (Fenster*)fenster->release();
+	minimierenBild->release();
+	maximierenBild->release();
+	minMax = (Knopf*)minMax->release();
+	überschrift = (TextFeld*)überschrift->release();
+	accountName = (TextFeld*)accountName->release();
+	freundesListe = (FreundesListeObj*)freundesListe->release();
+	neuerFreund = (Knopf*)neuerFreund->release();
+	neuerChat = (Knopf*)neuerChat->release();
+	neuerFreundFenster = (Fenster*)neuerFreundFenster->release();
+	neuerFreundSpielerName = (TextFeld*)neuerFreundSpielerName->release();
+	neuerFreundFertig = (Knopf*)neuerFreundFertig->release();
+	neuerChatFenster = (Fenster*)neuerChatFenster->release();
+	neuerChatName = (TextFeld*)neuerChatName->release();
+	neuerChatFertig = (Knopf*)neuerChatFertig->release();
+	neuesChatroomName = (TextFeld*)neuesChatroomName->release();
+	neuesChatroomFertig = (Knopf*)neuesChatroomFertig->release();
 }
 
 // nicht constant
-void FreundesListe::addMember( int accountId )
+void FreundesListe::addMember(int accountId)
 {
-    freundesListe->addMember( accountId );
+	freundesListe->addMember(accountId);
 }
 
-void FreundesListe::removeMember( int accountId )
+void FreundesListe::removeMember(int accountId)
 {
-    freundesListe->removeMember( accountId );
+	freundesListe->removeMember(accountId);
 }
 
-void FreundesListe::removeMember( FreundData *member )
+void FreundesListe::removeMember(FreundData* member)
 {
-    freundesListe->removeMember( member );
+	freundesListe->removeMember(member);
 }
 
 void FreundesListe::removeAll()
 {
-    freundesListe->removeAll();
+	freundesListe->removeAll();
 }
 
-void FreundesListe::setName( int accountId, char *txt )
+void FreundesListe::setName(int accountId, const char* txt)
 {
-    freundesListe->setName( accountId, txt );
+	freundesListe->setName(accountId, txt);
 }
 
-void FreundesListe::setStatus( int accountId, char *txt )
+void FreundesListe::setStatus(int accountId, const char* txt)
 {
-    freundesListe->setStatus( accountId, txt );
+	freundesListe->setStatus(accountId, txt);
 }
 
-void FreundesListe::setOnline( int accountId, bool online )
+void FreundesListe::setOnline(int accountId, bool online)
 {
-    freundesListe->setOnline( accountId, online );
+	freundesListe->setOnline(accountId, online);
 }
 
-void FreundesListe::setAnimation( int animation )
+void FreundesListe::setAnimation(int animation)
 {
-    this->animation = animation;
+	this->animation = animation;
 }
 
 void FreundesListe::thread()
 {
-    bool err = 1;
-    if( infoClient && loginClient )
-    {
-        Text *name = infoClient->getSpielerName( loginClient->getAccountId() );
-        if( name )
-        {
-            accountName->setText( name->getText() );
-            name->release();
-            err = 0;
-        }
-    }
-    if( err && nachLogin->zNachrichtenListe() )
-    {
-        nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ),
-                                                      new Text( "Dein Accountname konnte nicht ermittelt werden." ),
-                                                      new Text( "Ok" ),
-                                                      0 );
-    }
-    err = 0;
-    if( ( !chatClient || !chatClient->freundesListeAnfragen() ) && nachLogin->zNachrichtenListe() )
-    {
-        nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ),
-                                                      new Text( "Deine Freunde konnten nicht geladen werden." ),
-                                                      new Text( "Ok" ),
-                                                      0 );
-    }
-    run = 0;
-}
-
-void FreundesListe::zeigeEinladeKnopf( bool zeigen )
-{
-    freundesListe->zeigeEinladeKnopf( zeigen );
-}
-
-bool FreundesListe::tick( double tickVal )
-{
-    this->tickVal += tickVal * 400;
-    int val = (int)this->tickVal;
-    if( val < 1 )
-    {
-        bool ret = rend;
-        rend = 0;
-        return ret;
-    }
-    if( val > 14 )
-        val = 14;
-    this->tickVal -= val;
-    switch( animation )
-    {
-    case 1:
-        if( fenster->getX() < 0 )
-        {
-            fenster->setPosition( fenster->getX() + val, fenster->getY() );
-            if( fenster->getX() > 0 )
-                fenster->setPosition( 0, fenster->getY() );
-        }
-        else if( fenster->getHeight() < bildschirmGröße.y - 100 )
-        {
-            fenster->setSize( fenster->getBreite(), fenster->getHeight() + val );
-            if( fenster->getHeight() > bildschirmGröße.y - 100 )
-                fenster->setSize( fenster->getBreite(), bildschirmGröße.y - 100 );
-        }
-        else
-            animation = 0;
-        rend = 1;
-        break;
-    case 2:
-        if( fenster->getHeight() > 20 )
-        {
-            fenster->setSize( fenster->getBreite(), fenster->getHeight() - val );
-            if( fenster->getHeight() < 20 )
-                fenster->setSize( fenster->getBreite(), 20 );
-        }
-        else if( fenster->getX() > -250 )
-        {
-            fenster->setPosition( fenster->getX() - val, fenster->getY() );
-            if( fenster->getX() < -250 )
-                fenster->setPosition( -250, fenster->getY() );
-        }
-        else
-            animation = 0;
-        rend = 1;
-        break;
-    }
-    if( neuerFreundSichtbar )
-    {
-        if( neuerFreundFenster->getHeight() != 30 && neuerChatFenster->hatStyleNicht( Fenster::Style::Sichtbar ) )
-        {
-            neuerFreundFenster->addStyle( Fenster::Style::Sichtbar );
-            neuerFreundFenster->setSize( neuerFreundFenster->getBreite(), neuerFreundFenster->getHeight() + val );
-            freundesListe->setPosition( freundesListe->getX(), freundesListe->getY() + val );
-            freundesListe->setSize( freundesListe->getBreite(), freundesListe->getHeight() - val );
-            if( neuerFreundFenster->getHeight() > 30 )
-            {
-                neuerFreundFenster->setSize( neuerFreundFenster->getBreite(), 30 );
-                freundesListe->setPosition( freundesListe->getX(), 130 );
-                freundesListe->setSize( freundesListe->getBreite(), bildschirmGröße.y - 230 );
-            }
-            rend = 1;
-        }
-    }
-    else
-    {
-        if( neuerFreundFenster->hatStyle( Fenster::Style::Sichtbar ) )
-        {
-            neuerFreundFenster->setSize( neuerFreundFenster->getBreite(), neuerFreundFenster->getHeight() - val );
-            freundesListe->setPosition( freundesListe->getX(), freundesListe->getY() - val );
-            freundesListe->setSize( freundesListe->getBreite(), freundesListe->getHeight() + val );
-            if( neuerFreundFenster->getHeight() < 0 )
-            {
-                neuerFreundFenster->setSize( neuerFreundFenster->getBreite(), 0 );
-                neuerFreundFenster->removeStyle( Fenster::Style::Sichtbar );
-                freundesListe->setPosition( freundesListe->getX(), 100 );
-                freundesListe->setSize( freundesListe->getBreite(), bildschirmGröße.y - 200 );
-            }
-            rend = 1;
-        }
-    }
-    if( neuerChatSichtbar )
-    {
-        if( neuerChatFenster->getHeight() != 55 && neuerFreundFenster->hatStyleNicht( Fenster::Style::Sichtbar ) )
-        {
-            neuerChatFenster->addStyle( Fenster::Style::Sichtbar );
-            neuerChatFenster->setSize( neuerChatFenster->getBreite(), neuerChatFenster->getHeight() + val );
-            freundesListe->setPosition( freundesListe->getX(), freundesListe->getY() + val );
-            freundesListe->setSize( freundesListe->getBreite(), freundesListe->getHeight() - val );
-            if( neuerChatFenster->getHeight() > 55 )
-            {
-                neuerChatFenster->setSize( neuerChatFenster->getBreite(), 55 );
-                freundesListe->setPosition( freundesListe->getX(), 155 );
-                freundesListe->setSize( freundesListe->getBreite(), bildschirmGröße.y - 255 );
-            }
-            rend = 1;
-        }
-    }
-    else
-    {
-        if( neuerChatFenster->hatStyle( Fenster::Style::Sichtbar ) )
-        {
-            neuerChatFenster->setSize( neuerChatFenster->getBreite(), neuerChatFenster->getHeight() - val );
-            freundesListe->setPosition( freundesListe->getX(), freundesListe->getY() - val );
-            freundesListe->setSize( freundesListe->getBreite(), freundesListe->getHeight() + val );
-            if( neuerChatFenster->getHeight() < 0 )
-            {
-                neuerChatFenster->setSize( neuerChatFenster->getBreite(), 0 );
-                neuerChatFenster->removeStyle( Fenster::Style::Sichtbar );
-                freundesListe->setPosition( freundesListe->getX(), 100 );
-                freundesListe->setSize( freundesListe->getBreite(), bildschirmGröße.y - 200 );
-            }
-            rend = 1;
-        }
-    }
-    bool ret = rend;
-    rend = 0;
-    return ret;
-}
-
-bool FreundesListe::druckMinMax( MausEreignis &me )
-{
-    if( me.id == ME_RLinks )
-    {
-        if( minMax->zHintergrundBild() == minimierenBild )
-        {
-            animation = 2;
-            minMax->setHintergrundBildZ( dynamic_cast<Bild *>( maximierenBild->getThis() ) );
-            // TODO minMax->zToolTip()->setText( "Freundes Leiste maximieren." );
-        }
-        else
-        {
-            animation = 1;
-            minMax->setHintergrundBildZ( dynamic_cast<Bild *>( minimierenBild->getThis() ) );
-            // TODO minMax->zToolTip()->setText( "Freundes Leiste minimieren." );
-        }
-    }
-    return 1;
-}
-
-bool FreundesListe::druckName( TastaturEreignis &te )
-{
-    if( te.id == TE_Release && te.taste == T_Enter )
-        chatClient->accountNameÄndern( accountName->zText()->getText() );
-    return 1;
-}
-
-bool FreundesListe::druckNeuerFreund( MausEreignis &me )
-{
-    if( me.id == ME_RLinks )
-    {
-        neuerChatSichtbar = 0;
-        neuerFreundSichtbar = !neuerFreundSichtbar;
-    }
-    return 1;
-}
-
-bool FreundesListe::druckNeuerChat( MausEreignis &me )
-{
-    if( me.id == ME_RLinks )
-    {
-        neuerFreundSichtbar = 0;
-        neuerChatSichtbar = !neuerChatSichtbar;
-    }
-    return 1;
-}
-
-bool FreundesListe::druckNeuerFreundSpielerName( TastaturEreignis &te )
-{
-    if( !neuerFreundSichtbar )
-        return 0;
-    if( te.id == TE_Release && te.taste == T_Enter )
-    {
-        MausEreignis me = { ME_RLinks, 0, 0, 0 };
-        druckNeuerFreundFertig( me );
-    }
-    return 1;
-}
-
-bool FreundesListe::druckNeuerFreundFertig( MausEreignis &me )
-{
-    if( !neuerFreundSichtbar )
-        return 0;
-    if( me.id == ME_RLinks )
-    {
-        if( neuerFreundSpielerName->zText()->getLength() )
-        {
-            int accountId = infoClient->getAccountId( neuerFreundSpielerName->zText()->getText() );
-            if( accountId )
-            {
-                if( chatClient->freundesAnfrage( accountId ) )
-                {
-                    nachLogin->zNachrichtenListe()->addNachricht( new Text( "Freundesanfrage" ), new Text( "Es wurde eine Anfrage an den Spieler gesendet." ),
-                                                                  new Text( "Ok" ), 0 );
-                    neuerFreundSichtbar = 0;
-                }
-            }
-            else
-                nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( "Der Spieler wurde nicht gefunden." ),
-                                                              new Text( "Ok" ), 0 );
-        }
-    }
-    return 1;
-}
-
-bool FreundesListe::druckNeuerChatName( TastaturEreignis &te )
-{
-    if( !neuerChatSichtbar )
-        return 0;
-    if( te.id == TE_Release && te.taste == T_Enter )
-    {
-        MausEreignis me = { ME_RLinks, 0, 0, 0 };
-        druckNeuerChatFertig( me );
-    }
-    return 1;
-}
-
-bool FreundesListe::druckNeuerChatFertig( MausEreignis &me )
-{
-    if( !neuerChatSichtbar )
-        return 0;
-    if( me.id == ME_RLinks )
-    {
-        if( neuerChatName->zText()->getLength() )
-        {
-            int accountId = infoClient->getAccountId( neuerChatName->zText()->getText() );
-            if( accountId )
-            {
-                nachLogin->zChatLeiste()->addChat( accountId, 0 );
-                neuerChatSichtbar = 0;
-            }
-            else
-                nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( "Der Spieler wurde nicht gefunden." ),
-                                                              new Text( "Ok" ), 0 );
-        }
-    }
-    return 1;
-}
-
-bool FreundesListe::druckNeuesChatroomName( TastaturEreignis &te )
-{
-    if( !neuerChatSichtbar )
-        return 0;
-    if( te.id == TE_Release && te.taste == T_Enter )
-    {
-        MausEreignis me = { ME_RLinks, 0, 0, 0 };
-        druckNeuesChatroomFertig( me );
-    }
-    return 1;
-}
-
-bool FreundesListe::druckNeuesChatroomFertig( MausEreignis &me )
-{
-    if( !neuerChatSichtbar )
-        return 0;
-    if( me.id == ME_RLinks )
-    {
-        if( neuesChatroomName->zText()->getLength() )
-        {
-            int chatroomId = infoClient->getChatroomId( neuesChatroomName->zText()->getText() );
-            if( chatroomId )
-            {
-                if( chatClient->chatroomBetreten( chatroomId ) )
-                {
-                    nachLogin->zChatLeiste()->addChat( 0, chatroomId );
-                    neuerChatSichtbar = 0;
-                }
-            }
-            else
-            {
-                chatroomId = chatClient->chatroomErstellen( neuesChatroomName->zText()->getText() );
-                if( chatroomId )
-                {
-                    nachLogin->zChatLeiste()->addChat( 0, chatroomId );
-                    neuerChatSichtbar = 0;
-                }
-            }
-        }
-    }
-    return 1;
+	bool err = 1;
+	if (infoClient && loginClient)
+	{
+		Text* name = infoClient->getSpielerName(loginClient->getAccountId());
+		if (name)
+		{
+			accountName->setText(name->getText());
+			name->release();
+			err = 0;
+		}
+	}
+	if (err && nachLogin->zNachrichtenListe())
+	{
+		nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
+			new Text("Dein Accountname konnte nicht ermittelt werden."),
+			new Text("Ok"),
+			0);
+	}
+	err = 0;
+	if ((!chatClient || !chatClient->freundesListeAnfragen()) && nachLogin->zNachrichtenListe())
+	{
+		nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
+			new Text("Deine Freunde konnten nicht geladen werden."),
+			new Text("Ok"),
+			0);
+	}
+	run = 0;
+}
+
+void FreundesListe::zeigeEinladeKnopf(bool zeigen)
+{
+	freundesListe->zeigeEinladeKnopf(zeigen);
+}
+
+bool FreundesListe::tick(double tickVal)
+{
+	this->tickVal += tickVal * 400;
+	int val = (int)this->tickVal;
+	if (val < 1)
+	{
+		bool ret = rend;
+		rend = 0;
+		return ret;
+	}
+	if (val > 14)
+		val = 14;
+	this->tickVal -= val;
+	switch (animation)
+	{
+	case 1:
+		if (fenster->getX() < 0)
+		{
+			fenster->setPosition(fenster->getX() + val, fenster->getY());
+			if (fenster->getX() > 0)
+				fenster->setPosition(0, fenster->getY());
+		}
+		else if (fenster->getHeight() < bildschirmGröße.y - 100)
+		{
+			fenster->setSize(fenster->getBreite(), fenster->getHeight() + val);
+			if (fenster->getHeight() > bildschirmGröße.y - 100)
+				fenster->setSize(fenster->getBreite(), bildschirmGröße.y - 100);
+		}
+		else
+			animation = 0;
+		rend = 1;
+		break;
+	case 2:
+		if (fenster->getHeight() > 20)
+		{
+			fenster->setSize(fenster->getBreite(), fenster->getHeight() - val);
+			if (fenster->getHeight() < 20)
+				fenster->setSize(fenster->getBreite(), 20);
+		}
+		else if (fenster->getX() > -250)
+		{
+			fenster->setPosition(fenster->getX() - val, fenster->getY());
+			if (fenster->getX() < -250)
+				fenster->setPosition(-250, fenster->getY());
+		}
+		else
+			animation = 0;
+		rend = 1;
+		break;
+	}
+	if (neuerFreundSichtbar)
+	{
+		if (neuerFreundFenster->getHeight() != 30 && neuerChatFenster->hatStyleNicht(Fenster::Style::Sichtbar))
+		{
+			neuerFreundFenster->addStyle(Fenster::Style::Sichtbar);
+			neuerFreundFenster->setSize(neuerFreundFenster->getBreite(), neuerFreundFenster->getHeight() + val);
+			freundesListe->setPosition(freundesListe->getX(), freundesListe->getY() + val);
+			freundesListe->setSize(freundesListe->getBreite(), freundesListe->getHeight() - val);
+			if (neuerFreundFenster->getHeight() > 30)
+			{
+				neuerFreundFenster->setSize(neuerFreundFenster->getBreite(), 30);
+				freundesListe->setPosition(freundesListe->getX(), 130);
+				freundesListe->setSize(freundesListe->getBreite(), bildschirmGröße.y - 230);
+			}
+			rend = 1;
+		}
+	}
+	else
+	{
+		if (neuerFreundFenster->hatStyle(Fenster::Style::Sichtbar))
+		{
+			neuerFreundFenster->setSize(neuerFreundFenster->getBreite(), neuerFreundFenster->getHeight() - val);
+			freundesListe->setPosition(freundesListe->getX(), freundesListe->getY() - val);
+			freundesListe->setSize(freundesListe->getBreite(), freundesListe->getHeight() + val);
+			if (neuerFreundFenster->getHeight() < 0)
+			{
+				neuerFreundFenster->setSize(neuerFreundFenster->getBreite(), 0);
+				neuerFreundFenster->removeStyle(Fenster::Style::Sichtbar);
+				freundesListe->setPosition(freundesListe->getX(), 100);
+				freundesListe->setSize(freundesListe->getBreite(), bildschirmGröße.y - 200);
+			}
+			rend = 1;
+		}
+	}
+	if (neuerChatSichtbar)
+	{
+		if (neuerChatFenster->getHeight() != 55 && neuerFreundFenster->hatStyleNicht(Fenster::Style::Sichtbar))
+		{
+			neuerChatFenster->addStyle(Fenster::Style::Sichtbar);
+			neuerChatFenster->setSize(neuerChatFenster->getBreite(), neuerChatFenster->getHeight() + val);
+			freundesListe->setPosition(freundesListe->getX(), freundesListe->getY() + val);
+			freundesListe->setSize(freundesListe->getBreite(), freundesListe->getHeight() - val);
+			if (neuerChatFenster->getHeight() > 55)
+			{
+				neuerChatFenster->setSize(neuerChatFenster->getBreite(), 55);
+				freundesListe->setPosition(freundesListe->getX(), 155);
+				freundesListe->setSize(freundesListe->getBreite(), bildschirmGröße.y - 255);
+			}
+			rend = 1;
+		}
+	}
+	else
+	{
+		if (neuerChatFenster->hatStyle(Fenster::Style::Sichtbar))
+		{
+			neuerChatFenster->setSize(neuerChatFenster->getBreite(), neuerChatFenster->getHeight() - val);
+			freundesListe->setPosition(freundesListe->getX(), freundesListe->getY() - val);
+			freundesListe->setSize(freundesListe->getBreite(), freundesListe->getHeight() + val);
+			if (neuerChatFenster->getHeight() < 0)
+			{
+				neuerChatFenster->setSize(neuerChatFenster->getBreite(), 0);
+				neuerChatFenster->removeStyle(Fenster::Style::Sichtbar);
+				freundesListe->setPosition(freundesListe->getX(), 100);
+				freundesListe->setSize(freundesListe->getBreite(), bildschirmGröße.y - 200);
+			}
+			rend = 1;
+		}
+	}
+	bool ret = rend;
+	rend = 0;
+	return ret;
+}
+
+bool FreundesListe::druckMinMax(MausEreignis& me)
+{
+	if (me.id == ME_RLinks)
+	{
+		if (minMax->zHintergrundBild() == minimierenBild)
+		{
+			animation = 2;
+			minMax->setHintergrundBildZ(dynamic_cast<Bild*>(maximierenBild->getThis()));
+			// TODO minMax->zToolTip()->setText( "Freundes Leiste maximieren." );
+		}
+		else
+		{
+			animation = 1;
+			minMax->setHintergrundBildZ(dynamic_cast<Bild*>(minimierenBild->getThis()));
+			// TODO minMax->zToolTip()->setText( "Freundes Leiste minimieren." );
+		}
+	}
+	return 1;
+}
+
+bool FreundesListe::druckName(TastaturEreignis& te)
+{
+	if (te.id == TE_Release && te.taste == T_Enter)
+		chatClient->accountNameÄndern(accountName->zText()->getText());
+	return 1;
+}
+
+bool FreundesListe::druckNeuerFreund(MausEreignis& me)
+{
+	if (me.id == ME_RLinks)
+	{
+		neuerChatSichtbar = 0;
+		neuerFreundSichtbar = !neuerFreundSichtbar;
+	}
+	return 1;
+}
+
+bool FreundesListe::druckNeuerChat(MausEreignis& me)
+{
+	if (me.id == ME_RLinks)
+	{
+		neuerFreundSichtbar = 0;
+		neuerChatSichtbar = !neuerChatSichtbar;
+	}
+	return 1;
+}
+
+bool FreundesListe::druckNeuerFreundSpielerName(TastaturEreignis& te)
+{
+	if (!neuerFreundSichtbar)
+		return 0;
+	if (te.id == TE_Release && te.taste == T_Enter)
+	{
+		MausEreignis me = { ME_RLinks, 0, 0, 0 };
+		druckNeuerFreundFertig(me);
+	}
+	return 1;
+}
+
+bool FreundesListe::druckNeuerFreundFertig(MausEreignis& me)
+{
+	if (!neuerFreundSichtbar)
+		return 0;
+	if (me.id == ME_RLinks)
+	{
+		if (neuerFreundSpielerName->zText()->getLength())
+		{
+			int accountId = infoClient->getAccountId(neuerFreundSpielerName->zText()->getText());
+			if (accountId)
+			{
+				if (chatClient->freundesAnfrage(accountId))
+				{
+					nachLogin->zNachrichtenListe()->addNachricht(new Text("Freundesanfrage"), new Text("Es wurde eine Anfrage an den Spieler gesendet."),
+						new Text("Ok"), 0);
+					neuerFreundSichtbar = 0;
+				}
+			}
+			else
+				nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text("Der Spieler wurde nicht gefunden."),
+					new Text("Ok"), 0);
+		}
+	}
+	return 1;
+}
+
+bool FreundesListe::druckNeuerChatName(TastaturEreignis& te)
+{
+	if (!neuerChatSichtbar)
+		return 0;
+	if (te.id == TE_Release && te.taste == T_Enter)
+	{
+		MausEreignis me = { ME_RLinks, 0, 0, 0 };
+		druckNeuerChatFertig(me);
+	}
+	return 1;
+}
+
+bool FreundesListe::druckNeuerChatFertig(MausEreignis& me)
+{
+	if (!neuerChatSichtbar)
+		return 0;
+	if (me.id == ME_RLinks)
+	{
+		if (neuerChatName->zText()->getLength())
+		{
+			int accountId = infoClient->getAccountId(neuerChatName->zText()->getText());
+			if (accountId)
+			{
+				nachLogin->zChatLeiste()->addChat(accountId, 0);
+				neuerChatSichtbar = 0;
+			}
+			else
+				nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text("Der Spieler wurde nicht gefunden."),
+					new Text("Ok"), 0);
+		}
+	}
+	return 1;
+}
+
+bool FreundesListe::druckNeuesChatroomName(TastaturEreignis& te)
+{
+	if (!neuerChatSichtbar)
+		return 0;
+	if (te.id == TE_Release && te.taste == T_Enter)
+	{
+		MausEreignis me = { ME_RLinks, 0, 0, 0 };
+		druckNeuesChatroomFertig(me);
+	}
+	return 1;
+}
+
+bool FreundesListe::druckNeuesChatroomFertig(MausEreignis& me)
+{
+	if (!neuerChatSichtbar)
+		return 0;
+	if (me.id == ME_RLinks)
+	{
+		if (neuesChatroomName->zText()->getLength())
+		{
+			int chatroomId = infoClient->getChatroomId(neuesChatroomName->zText()->getText());
+			if (chatroomId)
+			{
+				if (chatClient->chatroomBetreten(chatroomId))
+				{
+					nachLogin->zChatLeiste()->addChat(0, chatroomId);
+					neuerChatSichtbar = 0;
+				}
+			}
+			else
+			{
+				chatroomId = chatClient->chatroomErstellen(neuesChatroomName->zText()->getText());
+				if (chatroomId)
+				{
+					nachLogin->zChatLeiste()->addChat(0, chatroomId);
+					neuerChatSichtbar = 0;
+				}
+			}
+		}
+	}
+	return 1;
 }
 
 // constant
-bool FreundesListe::istFreund( int accId ) const
+bool FreundesListe::istFreund(int accId) const
 {
-    return freundesListe->istFreund( accId );
+	return freundesListe->istFreund(accId);
 }
 
 // Nachrichten
-bool freundesListeMinMaxME( void *p, void *obj, MausEreignis me )
+bool freundesListeMinMaxME(void* p, void* obj, MausEreignis me)
 {
-    return ( (FreundesListe *)p )->druckMinMax( me );
+	return ((FreundesListe*)p)->druckMinMax(me);
 }
 
-bool freundesListeNameTE( void *p, void *obj, TastaturEreignis te )
+bool freundesListeNameTE(void* p, void* obj, TastaturEreignis te)
 {
-    return ( (FreundesListe *)p )->druckName( te );
+	return ((FreundesListe*)p)->druckName(te);
 }
 
-bool freundesListeNeuerFreundME( void *p, void *obj, MausEreignis me )
+bool freundesListeNeuerFreundME(void* p, void* obj, MausEreignis me)
 {
-    return ( (FreundesListe *)p )->druckNeuerFreund( me );
+	return ((FreundesListe*)p)->druckNeuerFreund(me);
 }
 
-bool freundesListeNeuerChatME( void *p, void *obj, MausEreignis me )
+bool freundesListeNeuerChatME(void* p, void* obj, MausEreignis me)
 {
-    return ( (FreundesListe *)p )->druckNeuerChat( me );
+	return ((FreundesListe*)p)->druckNeuerChat(me);
 }
 
-bool freundesListeNeuerFreundSpielerNameTE( void *p, void *obj, TastaturEreignis te )
+bool freundesListeNeuerFreundSpielerNameTE(void* p, void* obj, TastaturEreignis te)
 {
-    return ( (FreundesListe *)p )->druckNeuerFreundSpielerName( te );
+	return ((FreundesListe*)p)->druckNeuerFreundSpielerName(te);
 }
 
-bool freundesListeNeuerFreundFertigME( void *p, void *obj, MausEreignis me )
+bool freundesListeNeuerFreundFertigME(void* p, void* obj, MausEreignis me)
 {
-    return ( (FreundesListe *)p )->druckNeuerFreundFertig( me );
+	return ((FreundesListe*)p)->druckNeuerFreundFertig(me);
 }
 
-bool freundesListeNeuerChatNameTE( void *p, void *obj, TastaturEreignis te )
+bool freundesListeNeuerChatNameTE(void* p, void* obj, TastaturEreignis te)
 {
-    return ( (FreundesListe *)p )->druckNeuerChatName( te );
+	return ((FreundesListe*)p)->druckNeuerChatName(te);
 }
 
-bool freundesListeNeuerChatFertigME( void *p, void *obj, MausEreignis me )
+bool freundesListeNeuerChatFertigME(void* p, void* obj, MausEreignis me)
 {
-    return ( (FreundesListe *)p )->druckNeuerChatFertig( me );
+	return ((FreundesListe*)p)->druckNeuerChatFertig(me);
 }
 
-bool freundesListeNeuesChatroomNameTE( void *p, void *obj, TastaturEreignis te )
+bool freundesListeNeuesChatroomNameTE(void* p, void* obj, TastaturEreignis te)
 {
-    return ( (FreundesListe *)p )->druckNeuesChatroomName( te );
+	return ((FreundesListe*)p)->druckNeuesChatroomName(te);
 }
 
-bool freundesListeNeuesChatroomFertigME( void *p, void *obj, MausEreignis me )
+bool freundesListeNeuesChatroomFertigME(void* p, void* obj, MausEreignis me)
 {
-    return ( (FreundesListe *)p )->druckNeuesChatroomFertig( me );
+	return ((FreundesListe*)p)->druckNeuesChatroomFertig(me);
 }

+ 127 - 127
KSGClient/NachLogin/Chat/FreundesListe.h

@@ -14,151 +14,151 @@ using namespace Framework;
 class FreundData : public Thread
 {
 private:
-    LRahmen *rahmen;
-    AlphaFeld *auswahlBuffer;
-    TextFeld *name;
-    TextFeld *status;
-    Knopf *entfernen;
-    Knopf *ansehen;
-    Knopf *nachricht;
-    Knopf *einladen;
-    int accountId;
-    bool einladenSichtbar;
-    bool online;
-    bool ausgewählt;
-    int höhe;
-    int animation;
-    unsigned char auswahlAlpha;
-    double tickVal;
-    bool rend;
+	LRahmen* rahmen;
+	AlphaFeld* auswahlBuffer;
+	TextFeld* name;
+	TextFeld* status;
+	Knopf* entfernen;
+	Knopf* ansehen;
+	Knopf* nachricht;
+	Knopf* einladen;
+	int accountId;
+	bool einladenSichtbar;
+	bool online;
+	bool ausgewählt;
+	int höhe;
+	int animation;
+	unsigned char auswahlAlpha;
+	double tickVal;
+	bool rend;
 
 public:
-    // Konstruktor
-    FreundData( int accountId, LRahmen *rahmen, AlphaFeld *auswahlBuffer );
-    // Destruktor
-    ~FreundData();
-    // nicht constant
-    void thread();
-    void setName( char *txt );
-    void setStatus( char *txt );
-    void setOnline( bool online );
-    void setAusgewählt( bool ausw );
-    void remove();
-    void zeigeEinladeKnopf( bool zeigen );
-    void doPublicMausEreignis( MausEreignis &me );
-    bool tick( double tickVal );
-    void render( int yPos, Bild &zRObj );
-    // constant
-    bool istOnline() const;
-    bool istAusgewählt() const;
-    char *zName() const;
-    Text *getName() const;
-    char *zStatus() const;
-    Text *getStatus() const;
-    int getAccountId() const;
-    int getHeight() const;
+	// Konstruktor
+	FreundData(int accountId, LRahmen* rahmen, AlphaFeld* auswahlBuffer);
+	// Destruktor
+	~FreundData();
+	// nicht constant
+	void thread();
+	void setName(const char* txt);
+	void setStatus(const char* txt);
+	void setOnline(bool online);
+	void setAusgewählt(bool ausw);
+	void remove();
+	void zeigeEinladeKnopf(bool zeigen);
+	void doPublicMausEreignis(MausEreignis& me);
+	bool tick(double tickVal);
+	void render(int yPos, Bild& zRObj);
+	// constant
+	bool istOnline() const;
+	bool istAusgewählt() const;
+	const char* zName() const;
+	Text* getName() const;
+	const char* zStatus() const;
+	Text* getStatus() const;
+	int getAccountId() const;
+	int getHeight() const;
 };
 
 class FreundesListeObj : public Zeichnung
 {
 private:
-    RCArray< FreundData > *members;
-    LRahmen *memberRahmen;
-    AlphaFeld *auswahlBuffer;
-    VScrollBar *vsb;
-    Punkt bildschirmGröße;
-    bool einladenSichtbar;
-    int memberNummer;
+	RCArray< FreundData >* members;
+	LRahmen* memberRahmen;
+	AlphaFeld* auswahlBuffer;
+	VScrollBar* vsb;
+	Punkt bildschirmGröße;
+	bool einladenSichtbar;
+	int memberNummer;
 
 public:
-    // Konstruktor
-    FreundesListeObj();
-    // Destruktor
-    ~FreundesListeObj();
-    // nicht constant
-    void addMember( int accountId );
-    void removeMember( int accountId );
-    void removeMember( FreundData *member );
-    void removeAll();
-    void setName( int accountId, char *txt );
-    void setStatus( int accountId, char *txt );
-    void setOnline( int accountId, bool online );
-    void zeigeEinladeKnopf( bool zeigen );
-    bool tick( double tickVal ) override;
-    void doPublicMausEreignis( MausEreignis &me ) override;
-    void render( Bild &zRObj ) override;
-    // constant
-    bool istFreund( int accId ) const;
+	// Konstruktor
+	FreundesListeObj();
+	// Destruktor
+	~FreundesListeObj();
+	// nicht constant
+	void addMember(int accountId);
+	void removeMember(int accountId);
+	void removeMember(FreundData* member);
+	void removeAll();
+	void setName(int accountId, const char* txt);
+	void setStatus(int accountId, const char* txt);
+	void setOnline(int accountId, bool online);
+	void zeigeEinladeKnopf(bool zeigen);
+	bool tick(double tickVal) override;
+	void doPublicMausEreignis(MausEreignis& me) override;
+	void render(Bild& zRObj) override;
+	// constant
+	bool istFreund(int accId) const;
 };
 
 class FreundesListe : public Thread
 {
 private:
-    Fenster *fenster;
-    TextFeld *überschrift;
-    TextFeld *accountName;
-    Knopf *minMax;
-    Knopf *neuerFreund;
-    Knopf *neuerChat;
-    FreundesListeObj *freundesListe;
-    Punkt bildschirmGröße;
-    Fenster *neuerFreundFenster;
-    TextFeld *neuerFreundSpielerName;
-    Knopf *neuerFreundFertig;
-    Fenster *neuerChatFenster;
-    TextFeld *neuerChatName;
-    Knopf *neuerChatFertig;
-    TextFeld *neuesChatroomName;
-    Knopf *neuesChatroomFertig;
-    Bild *minimierenBild;
-    Bild *maximierenBild;
-    int animation;
-    double tickVal;
-    bool neuerFreundSichtbar;
-    bool neuerChatSichtbar;
-    bool rend;
+	Fenster* fenster;
+	TextFeld* überschrift;
+	TextFeld* accountName;
+	Knopf* minMax;
+	Knopf* neuerFreund;
+	Knopf* neuerChat;
+	FreundesListeObj* freundesListe;
+	Punkt bildschirmGröße;
+	Fenster* neuerFreundFenster;
+	TextFeld* neuerFreundSpielerName;
+	Knopf* neuerFreundFertig;
+	Fenster* neuerChatFenster;
+	TextFeld* neuerChatName;
+	Knopf* neuerChatFertig;
+	TextFeld* neuesChatroomName;
+	Knopf* neuesChatroomFertig;
+	Bild* minimierenBild;
+	Bild* maximierenBild;
+	int animation;
+	double tickVal;
+	bool neuerFreundSichtbar;
+	bool neuerChatSichtbar;
+	bool rend;
 
 public:
-    // Konstruktor
-    FreundesListe( Fenster *zNachLoginFenster );
-    // Destruktor
-    ~FreundesListe();
-    // nicht constant
-    void addMember( int accountId );
-    void removeMember( int accountId );
-    void removeMember( FreundData *member );
-    void removeAll();
-    void setName( int accountId, char *txt );
-    void setStatus( int accountId, char *txt );
-    void setOnline( int accountId, bool online );
-    void setAnimation( int animation );
-    void thread();
-    void zeigeEinladeKnopf( bool zeigen );
-    bool tick( double tickVal );
-    bool druckMinMax( MausEreignis &me );
-    bool druckName( TastaturEreignis &te );
-    bool druckNeuerFreund( MausEreignis &me );
-    bool druckNeuerChat( MausEreignis &me );
-    bool druckNeuerFreundSpielerName( TastaturEreignis &te );
-    bool druckNeuerFreundFertig( MausEreignis &me );
-    bool druckNeuerChatName( TastaturEreignis &te );
-    bool druckNeuerChatFertig( MausEreignis &me );
-    bool druckNeuesChatroomName( TastaturEreignis &te );
-    bool druckNeuesChatroomFertig( MausEreignis &me );
-    // constant
-    bool istFreund( int accId ) const;
+	// Konstruktor
+	FreundesListe(Fenster* zNachLoginFenster);
+	// Destruktor
+	~FreundesListe();
+	// nicht constant
+	void addMember(int accountId);
+	void removeMember(int accountId);
+	void removeMember(FreundData* member);
+	void removeAll();
+	void setName(int accountId, const char* txt);
+	void setStatus(int accountId, const char* txt);
+	void setOnline(int accountId, bool online);
+	void setAnimation(int animation);
+	void thread();
+	void zeigeEinladeKnopf(bool zeigen);
+	bool tick(double tickVal);
+	bool druckMinMax(MausEreignis& me);
+	bool druckName(TastaturEreignis& te);
+	bool druckNeuerFreund(MausEreignis& me);
+	bool druckNeuerChat(MausEreignis& me);
+	bool druckNeuerFreundSpielerName(TastaturEreignis& te);
+	bool druckNeuerFreundFertig(MausEreignis& me);
+	bool druckNeuerChatName(TastaturEreignis& te);
+	bool druckNeuerChatFertig(MausEreignis& me);
+	bool druckNeuesChatroomName(TastaturEreignis& te);
+	bool druckNeuesChatroomFertig(MausEreignis& me);
+	// constant
+	bool istFreund(int accId) const;
 };
 
 // Nachrichten
-bool freundesListeMinMaxME( void *p, void *obj, MausEreignis me );
-bool freundesListeNameTE( void *p, void *obj, TastaturEreignis te );
-bool freundesListeNeuerFreundME( void *p, void *obj, MausEreignis me );
-bool freundesListeNeuerChatME( void *p, void *obj, MausEreignis me );
-bool freundesListeNeuerFreundSpielerNameTE( void *p, void *obj, TastaturEreignis te );
-bool freundesListeNeuerFreundFertigME( void *p, void *obj, MausEreignis me );
-bool freundesListeNeuerChatNameTE( void *p, void *obj, TastaturEreignis te );
-bool freundesListeNeuerChatFertigME( void *p, void *obj, MausEreignis me );
-bool freundesListeNeuesChatroomNameTE( void *p, void *obj, TastaturEreignis te );
-bool freundesListeNeuesChatroomFertigME( void *p, void *obj, MausEreignis me );
+bool freundesListeMinMaxME(void* p, void* obj, MausEreignis me);
+bool freundesListeNameTE(void* p, void* obj, TastaturEreignis te);
+bool freundesListeNeuerFreundME(void* p, void* obj, MausEreignis me);
+bool freundesListeNeuerChatME(void* p, void* obj, MausEreignis me);
+bool freundesListeNeuerFreundSpielerNameTE(void* p, void* obj, TastaturEreignis te);
+bool freundesListeNeuerFreundFertigME(void* p, void* obj, MausEreignis me);
+bool freundesListeNeuerChatNameTE(void* p, void* obj, TastaturEreignis te);
+bool freundesListeNeuerChatFertigME(void* p, void* obj, MausEreignis me);
+bool freundesListeNeuesChatroomNameTE(void* p, void* obj, TastaturEreignis te);
+bool freundesListeNeuesChatroomFertigME(void* p, void* obj, MausEreignis me);
 
 #endif

+ 753 - 753
KSGClient/NachLogin/Chat/NachrichtenListe.cpp

@@ -13,841 +13,841 @@
 #include <Globals.h>
 #include <InitDatei.h>
 
-typedef GSL::GSLDateiV *( *GetGSLDatei )( );
-
-NLNachricht::NLNachricht( Text *titel )
-    : ReferenceCounter()
-{
-    rahmen = new LRahmen();
-    rahmen->setRamenBreite( 1 );
-    rahmen->setFarbe( 0xFFFFFFFF );
-    this->titel = initTextFeld( 1, 1, 208, 20, TextFeld::Style::Text | TextFeld::Style::Center, titel->getText() );
-    titel->release();
-    close = initKnopf( 208, 1, 20, 20, 0, "" );
-    close->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer );
-    Bild *closeBild = bilder->get( "data/client/bilder/chat.ltdb/entfernen.png" );
-    close->setHintergrundBildZ( closeBild );
-    initToolTip( close, "Nachricht ignorieren." );
-    maxHöhe = 20;
-    animation = 1;
-    ausgewählt = 0;
-    tickVal = 0;
-    rend = 0;
-    höhe = 0;
+typedef GSL::GSLDateiV* (*GetGSLDatei)();
+
+NLNachricht::NLNachricht(Text* titel)
+	: ReferenceCounter()
+{
+	rahmen = new LRahmen();
+	rahmen->setRamenBreite(1);
+	rahmen->setFarbe(0xFFFFFFFF);
+	this->titel = initTextFeld(1, 1, 208, 20, TextFeld::Style::Text | TextFeld::Style::Center, titel->getText());
+	titel->release();
+	close = initKnopf(208, 1, 20, 20, 0, "");
+	close->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer);
+	Bild* closeBild = bilder->get("data/client/bilder/chat.ltdb/entfernen.png");
+	close->setHintergrundBildZ(closeBild);
+	initToolTip(close, "Nachricht ignorieren.");
+	maxHöhe = 20;
+	animation = 1;
+	ausgewählt = 0;
+	tickVal = 0;
+	rend = 0;
+	höhe = 0;
 }
 
 NLNachricht::~NLNachricht()
 {
-    titel = (TextFeld *)titel->release();
-    close = (Knopf *)close->release();
-    rahmen->release();
+	titel = (TextFeld*)titel->release();
+	close = (Knopf*)close->release();
+	rahmen->release();
 }
 
 
 void NLNachricht::entfernen()
 {
-    animation = 3;
-}
-
-void NLNachricht::setAusgewählt( bool ausgewählt )
-{
-    if( animation != 3 )
-    {
-        this->ausgewählt = ausgewählt;
-        if( ausgewählt )
-            animation = 2;
-        else
-            animation = 1;
-    }
-}
-
-void NLNachricht::doPublicMausEreignis( MausEreignis &me )
-{
-    if( animation != 3 )
-    {
-        bool tmp = 0;
-        if( me.my > höhe || !ausgewählt )
-        {
-            tmp = me.verarbeitet;
-            me.verarbeitet = 1;
-        }
-        char aktion = me.verarbeitet ? 2 : 0;
-        close->doPublicMausEreignis( me );
-        if( !aktion )
-            aktion = me.verarbeitet ? 1 : 0;
-        if( me.my > höhe || !ausgewählt )
-        {
-            me.verarbeitet = tmp;
-            return;
-        }
-        if( me.id != ME_RLinks )
-            return;
-        if( aktion == 1 )
-            entfernen();
-    }
-}
-
-bool NLNachricht::tick( double tickVal )
-{
-    rend |= close->tick( tickVal );
-    if( !animation )
-    {
-        bool ret = rend;
-        rend = 0;
-        return ret;
-    }
-    this->tickVal += tickVal * 100;
-    int val = (int)this->tickVal;
-    if( val < 1 )
-    {
-        bool ret = rend;
-        rend = 0;
-        return ret;
-    }
-    if( val > 4 )
-        val = 4;
-    this->tickVal -= val;
-    switch( animation )
-    {
-    case 1:
-        if( höhe != 20 )
-        {
-            if( höhe > 20 )
-            {
-                höhe -= val;
-                if( höhe < 20 )
-                    höhe = 20;
-            }
-            else
-            {
-                höhe += val;
-                if( höhe > 20 )
-                    höhe = 20;
-            }
-            rend = 1;
-        }
-        else
-            animation = 0;
-        break;
-    case 2:
-        if( höhe != maxHöhe )
-        {
-            höhe += val;
-            if( höhe > maxHöhe )
-                höhe = maxHöhe;
-            rend = 1;
-        }
-        else
-            animation = 0;
-        break;
-    case 3:
-        höhe -= val;
-        if( höhe <= 0 )
-        {
-            nachLogin->zNachrichtenListe()->removeNachricht( this ); // delete this
-            return 1;
-        }
-        rend = 1;
-        break;
-    }
-    bool ret = rend;
-    rend = 0;
-    return ret;
-}
-
-void NLNachricht::render( int y, Bild &zRObj )
-{
-    int br = 228;
-    int hö = höhe;
-    if( !zRObj.setDrawOptions( 0, y, br, hö ) )
-        return;
-    rahmen->setSize( br, hö );
-    rahmen->render( zRObj );
-    int rbr = rahmen->getRBreite();
-    if( !zRObj.setDrawOptions( rbr, rbr, br - rbr * 2, hö - rbr * 2 ) )
-    {
-        zRObj.releaseDrawOptions();
-        return;
-    }
-    titel->render( zRObj );
-    close->render( zRObj );
-    zRObj.releaseDrawOptions();
-    zRObj.releaseDrawOptions();
+	animation = 3;
+}
+
+void NLNachricht::setAusgewählt(bool ausgewählt)
+{
+	if (animation != 3)
+	{
+		this->ausgewählt = ausgewählt;
+		if (ausgewählt)
+			animation = 2;
+		else
+			animation = 1;
+	}
+}
+
+void NLNachricht::doPublicMausEreignis(MausEreignis& me)
+{
+	if (animation != 3)
+	{
+		bool tmp = 0;
+		if (me.my > höhe || !ausgewählt)
+		{
+			tmp = me.verarbeitet;
+			me.verarbeitet = 1;
+		}
+		char aktion = me.verarbeitet ? 2 : 0;
+		close->doPublicMausEreignis(me);
+		if (!aktion)
+			aktion = me.verarbeitet ? 1 : 0;
+		if (me.my > höhe || !ausgewählt)
+		{
+			me.verarbeitet = tmp;
+			return;
+		}
+		if (me.id != ME_RLinks)
+			return;
+		if (aktion == 1)
+			entfernen();
+	}
+}
+
+bool NLNachricht::tick(double tickVal)
+{
+	rend |= close->tick(tickVal);
+	if (!animation)
+	{
+		bool ret = rend;
+		rend = 0;
+		return ret;
+	}
+	this->tickVal += tickVal * 100;
+	int val = (int)this->tickVal;
+	if (val < 1)
+	{
+		bool ret = rend;
+		rend = 0;
+		return ret;
+	}
+	if (val > 4)
+		val = 4;
+	this->tickVal -= val;
+	switch (animation)
+	{
+	case 1:
+		if (höhe != 20)
+		{
+			if (höhe > 20)
+			{
+				höhe -= val;
+				if (höhe < 20)
+					höhe = 20;
+			}
+			else
+			{
+				höhe += val;
+				if (höhe > 20)
+					höhe = 20;
+			}
+			rend = 1;
+		}
+		else
+			animation = 0;
+		break;
+	case 2:
+		if (höhe != maxHöhe)
+		{
+			höhe += val;
+			if (höhe > maxHöhe)
+				höhe = maxHöhe;
+			rend = 1;
+		}
+		else
+			animation = 0;
+		break;
+	case 3:
+		höhe -= val;
+		if (höhe <= 0)
+		{
+			nachLogin->zNachrichtenListe()->removeNachricht(this); // delete this
+			return 1;
+		}
+		rend = 1;
+		break;
+	}
+	bool ret = rend;
+	rend = 0;
+	return ret;
+}
+
+void NLNachricht::render(int y, Bild& zRObj)
+{
+	int br = 228;
+	int hö = höhe;
+	if (!zRObj.setDrawOptions(0, y, br, hö))
+		return;
+	rahmen->setSize(br, hö);
+	rahmen->render(zRObj);
+	int rbr = rahmen->getRBreite();
+	if (!zRObj.setDrawOptions(rbr, rbr, br - rbr * 2, hö - rbr * 2))
+	{
+		zRObj.releaseDrawOptions();
+		return;
+	}
+	titel->render(zRObj);
+	close->render(zRObj);
+	zRObj.releaseDrawOptions();
+	zRObj.releaseDrawOptions();
 }
 
 // contant
 bool NLNachricht::istAusgewählt() const
 {
-    return ausgewählt;
+	return ausgewählt;
 }
 
 int NLNachricht::getHeight() const
 {
-    return höhe;
-}
-
-Text *NLNachricht::zTitel() const
-{
-    return titel->zText();
-}
-
-SpielUpdateNachricht::SpielUpdateNachricht( Text *titel, Text *nachricht, int dgID, std::function<void()> posAk, std::function<void()> negAk )
-    : NLNachricht( titel )
-{
-    Text *result = new Text( nachricht->getText() );
-    int län = nachricht->getLength();
-    char *txt = nachricht->getText();
-    int x = 0;
-    int y = 0;
-    Alphabet *tmp = uiFactory.initParam.schrift->getAlphabet( 12 );
-    TextRenderer rd( dynamic_cast<Schrift *>( uiFactory.initParam.schrift->getThis() ) );
-    rd.setSchriftSize( 12 );
-    int zeilenHöhe = rd.getZeilenHeight() + rd.getZeilenAbstand();
-    int lastPos = -1;
-    for( int i = 0; i < län; i++ )
-    {
-        char c = txt[ i ];
-        if( c == ' ' )
-        {
-            lastPos = i;
-            x += 6;
-            continue;
-        }
-        if( c == '\n' )
-        {
-            x = 0;
-            y += zeilenHöhe;
-            lastPos = -1;
-            continue;
-        }
-        Buchstabe *b = tmp->getBuchstabe( (unsigned)c );
-        if( b )
-        {
-            x += b->getBreite();
-            if( x > 228 && lastPos > -1 )
-            {
-                result->ersetzen( lastPos, lastPos + 1, "\n" );
-                x = 0;
-                y += zeilenHöhe;
-                i = lastPos;
-                lastPos = -1;
-            }
-            b->release();
-        }
-    }
-    y += zeilenHöhe;
-    tmp->release();
-    nachricht->release();
-    text = initTextFeld( 1, 22, 228, y, TextFeld::Style::Text, result->getText() );
-    result->release();
-    fortschritt = initFBalken( 5, y + 20, 215, 20, FBalken::Style::normal );
-    herunterladen = initKnopf( 10, 45 + y, 120, 20, Knopf::Style::Sichtbar, "herunterladen" );
-    abbrechen = initKnopf( 140, 45 + y, 80, 20, Knopf::Style::Sichtbar, "abbrechen" );
-    this->posAk = posAk;
-    this->negAk = negAk;
-    maxHöhe = 75 + y;
-    update = new Update( dynamic_cast<FBalken *>( fortschritt->getThis() ), dgID, [this]( bool ok )
-    {
-        this->animation = 3;
-        if( ok )
-            this->posAk();
-        else
-            this->negAk();
-    } );
-    if( !updateH->add( dynamic_cast<Update *>( update->getThis() ) ) )
-        entfernen();
+	return höhe;
+}
+
+Text* NLNachricht::zTitel() const
+{
+	return titel->zText();
+}
+
+SpielUpdateNachricht::SpielUpdateNachricht(Text* titel, Text* nachricht, int dgID, std::function<void()> posAk, std::function<void()> negAk)
+	: NLNachricht(titel)
+{
+	Text* result = new Text(nachricht->getText());
+	int län = nachricht->getLength();
+	const char* txt = nachricht->getText();
+	int x = 0;
+	int y = 0;
+	Alphabet* tmp = uiFactory.initParam.schrift->getAlphabet(12);
+	TextRenderer rd(dynamic_cast<Schrift*>(uiFactory.initParam.schrift->getThis()));
+	rd.setSchriftSize(12);
+	int zeilenHöhe = rd.getZeilenHeight() + rd.getZeilenAbstand();
+	int lastPos = -1;
+	for (int i = 0; i < län; i++)
+	{
+		char c = txt[i];
+		if (c == ' ')
+		{
+			lastPos = i;
+			x += 6;
+			continue;
+		}
+		if (c == '\n')
+		{
+			x = 0;
+			y += zeilenHöhe;
+			lastPos = -1;
+			continue;
+		}
+		Buchstabe* b = tmp->getBuchstabe((unsigned)c);
+		if (b)
+		{
+			x += b->getBreite();
+			if (x > 228 && lastPos > -1)
+			{
+				result->ersetzen(lastPos, lastPos + 1, "\n");
+				x = 0;
+				y += zeilenHöhe;
+				i = lastPos;
+				lastPos = -1;
+			}
+			b->release();
+		}
+	}
+	y += zeilenHöhe;
+	tmp->release();
+	nachricht->release();
+	text = initTextFeld(1, 22, 228, y, TextFeld::Style::Text, result->getText());
+	result->release();
+	fortschritt = initFBalken(5, y + 20, 215, 20, FBalken::Style::normal);
+	herunterladen = initKnopf(10, 45 + y, 120, 20, Knopf::Style::Sichtbar, "herunterladen");
+	abbrechen = initKnopf(140, 45 + y, 80, 20, Knopf::Style::Sichtbar, "abbrechen");
+	this->posAk = posAk;
+	this->negAk = negAk;
+	maxHöhe = 75 + y;
+	update = new Update(dynamic_cast<FBalken*>(fortschritt->getThis()), dgID, [this](bool ok)
+		{
+			this->animation = 3;
+			if (ok)
+				this->posAk();
+			else
+				this->negAk();
+		});
+	if (!updateH->add(dynamic_cast<Update*>(update->getThis())))
+		entfernen();
 }
 
 SpielUpdateNachricht::~SpielUpdateNachricht()
 {
-    text->release();
-    herunterladen->release();
-    abbrechen->release();
-    fortschritt->release();
-    updateH->remove( update->getDateiGruppe() );
-    update->abbrechen();
-    update->warteAufThread( 10000 );
-    update->ende();
-    update->release();
+	text->release();
+	herunterladen->release();
+	abbrechen->release();
+	fortschritt->release();
+	updateH->remove(update->getDateiGruppe());
+	update->abbrechen();
+	update->warteAufThread(10000);
+	update->ende();
+	update->release();
 }
 
 // nicht constant
 void SpielUpdateNachricht::entfernen()
 {
-    __super::entfernen();
-    negAk();
-}
-
-void SpielUpdateNachricht::doPublicMausEreignis( MausEreignis &me )
-{
-    __super::doPublicMausEreignis( me );
-    if( animation != 3 )
-    {
-        bool tmp = 0;
-        if( me.my > höhe || !ausgewählt )
-        {
-            tmp = me.verarbeitet;
-            me.verarbeitet = 1;
-        }
-        char aktion = me.verarbeitet ? 3 : 0;
-        herunterladen->doPublicMausEreignis( me );
-        if( !aktion )
-            aktion = me.verarbeitet ? 1 : 0;
-        abbrechen->doPublicMausEreignis( me );
-        if( !aktion )
-            aktion = me.verarbeitet ? 2 : 0;
-        if( me.my > höhe || !ausgewählt )
-        {
-            me.verarbeitet = tmp;
-            return;
-        }
-        if( me.id != ME_RLinks )
-            return;
-        switch( aktion )
-        {
-        case 1:
-            // positiv
-            update->herunterladen();
-            herunterladen->removeStyle( Knopf::Style::Erlaubt | Knopf::Style::Sichtbar );
-            break;
-        case 2:
-            // negativ
-            update->abbrechen();
-            abbrechen->removeStyle( Knopf::Style::Erlaubt | Knopf::Style::Sichtbar );
-            break;
-        }
-    }
-}
-
-bool SpielUpdateNachricht::tick( double tickVal )
-{
-    rend |= herunterladen->tick( tickVal );
-    rend |= fortschritt->tick( tickVal );
-    rend |= abbrechen->tick( tickVal );
-    rend |= text->tick( tickVal );
-    return __super::tick( tickVal );
-}
-
-void SpielUpdateNachricht::render( int y, Bild &zRObj )
-{
-    __super::render( y, zRObj );
-    int rbr = rahmen->getRBreite();
-    if( !zRObj.setDrawOptions( rbr, y + rbr, rahmen->getBreite() - rbr * 2, rahmen->getHeight() - rbr * 2 ) )
-        return;
-    text->render( zRObj );
-    fortschritt->render( zRObj );
-    herunterladen->render( zRObj );
-    abbrechen->render( zRObj );
-    zRObj.releaseDrawOptions();
+	__super::entfernen();
+	negAk();
+}
+
+void SpielUpdateNachricht::doPublicMausEreignis(MausEreignis& me)
+{
+	__super::doPublicMausEreignis(me);
+	if (animation != 3)
+	{
+		bool tmp = 0;
+		if (me.my > höhe || !ausgewählt)
+		{
+			tmp = me.verarbeitet;
+			me.verarbeitet = 1;
+		}
+		char aktion = me.verarbeitet ? 3 : 0;
+		herunterladen->doPublicMausEreignis(me);
+		if (!aktion)
+			aktion = me.verarbeitet ? 1 : 0;
+		abbrechen->doPublicMausEreignis(me);
+		if (!aktion)
+			aktion = me.verarbeitet ? 2 : 0;
+		if (me.my > höhe || !ausgewählt)
+		{
+			me.verarbeitet = tmp;
+			return;
+		}
+		if (me.id != ME_RLinks)
+			return;
+		switch (aktion)
+		{
+		case 1:
+			// positiv
+			update->herunterladen();
+			herunterladen->removeStyle(Knopf::Style::Erlaubt | Knopf::Style::Sichtbar);
+			break;
+		case 2:
+			// negativ
+			update->abbrechen();
+			abbrechen->removeStyle(Knopf::Style::Erlaubt | Knopf::Style::Sichtbar);
+			break;
+		}
+	}
+}
+
+bool SpielUpdateNachricht::tick(double tickVal)
+{
+	rend |= herunterladen->tick(tickVal);
+	rend |= fortschritt->tick(tickVal);
+	rend |= abbrechen->tick(tickVal);
+	rend |= text->tick(tickVal);
+	return __super::tick(tickVal);
+}
+
+void SpielUpdateNachricht::render(int y, Bild& zRObj)
+{
+	__super::render(y, zRObj);
+	int rbr = rahmen->getRBreite();
+	if (!zRObj.setDrawOptions(rbr, y + rbr, rahmen->getBreite() - rbr * 2, rahmen->getHeight() - rbr * 2))
+		return;
+	text->render(zRObj);
+	fortschritt->render(zRObj);
+	herunterladen->render(zRObj);
+	abbrechen->render(zRObj);
+	zRObj.releaseDrawOptions();
 }
 
 // Inhalt der Nachricht Klasse aus NachrichtListe.h
 // Konstruktor
-Nachricht::Nachricht( Text *titel, Text *nachricht, Text *positiv, Text *negativ, std::function<void()> posAk, std::function<void()> negAk )
-    : NLNachricht( titel )
-{
-
-    Text *result = new Text( nachricht->getText() );
-    int län = nachricht->getLength();
-    char *txt = nachricht->getText();
-    int x = 0;
-    int y = 0;
-    Alphabet *tmp = uiFactory.initParam.schrift->getAlphabet( 12 );
-    TextRenderer rd( dynamic_cast<Schrift *>( uiFactory.initParam.schrift->getThis() ) );
-    rd.setSchriftSize( 12 );
-    int zeilenHöhe = rd.getZeilenHeight() + rd.getZeilenAbstand();
-    int lastPos = -1;
-    for( int i = 0; i < län; i++ )
-    {
-        char c = txt[ i ];
-        if( c == ' ' )
-        {
-            lastPos = i;
-            x += 6;
-            continue;
-        }
-        if( c == '\n' )
-        {
-            x = 0;
-            y += zeilenHöhe;
-            lastPos = -1;
-            continue;
-        }
-        Buchstabe *b = tmp->getBuchstabe( (unsigned)c );
-        if( b )
-        {
-            x += b->getBreite();
-            if( x > 228 && lastPos > -1 )
-            {
-                result->ersetzen( lastPos, lastPos + 1, "\n" );
-                x = 0;
-                y += zeilenHöhe;
-                i = lastPos;
-                lastPos = -1;
-            }
-            b->release();
-        }
-    }
-    y += zeilenHöhe;
-    tmp->release();
-    nachricht->release();
-    text = initTextFeld( 1, 22, 228, y, TextFeld::Style::Text, result->getText() );
-    result->release();
-    if( positiv )
-    {
-        this->positiv = initKnopf( 10, 20 + y, 100, 20, Knopf::Style::Sichtbar, positiv->getText() );
-        positiv->release();
-    }
-    else
-        this->positiv = 0;
-    if( negativ )
-    {
-        this->negativ = initKnopf( 120, 20 + y, 100, 20, Knopf::Style::Sichtbar, negativ->getText() );
-        negativ->release();
-    }
-    else
-        this->negativ = 0;
-    this->posAk = posAk;
-    this->negAk = negAk;
-    maxHöhe = 50 + y;
+Nachricht::Nachricht(Text* titel, Text* nachricht, Text* positiv, Text* negativ, std::function<void()> posAk, std::function<void()> negAk)
+	: NLNachricht(titel)
+{
+
+	Text* result = new Text(nachricht->getText());
+	int län = nachricht->getLength();
+	const char* txt = nachricht->getText();
+	int x = 0;
+	int y = 0;
+	Alphabet* tmp = uiFactory.initParam.schrift->getAlphabet(12);
+	TextRenderer rd(dynamic_cast<Schrift*>(uiFactory.initParam.schrift->getThis()));
+	rd.setSchriftSize(12);
+	int zeilenHöhe = rd.getZeilenHeight() + rd.getZeilenAbstand();
+	int lastPos = -1;
+	for (int i = 0; i < län; i++)
+	{
+		char c = txt[i];
+		if (c == ' ')
+		{
+			lastPos = i;
+			x += 6;
+			continue;
+		}
+		if (c == '\n')
+		{
+			x = 0;
+			y += zeilenHöhe;
+			lastPos = -1;
+			continue;
+		}
+		Buchstabe* b = tmp->getBuchstabe((unsigned)c);
+		if (b)
+		{
+			x += b->getBreite();
+			if (x > 228 && lastPos > -1)
+			{
+				result->ersetzen(lastPos, lastPos + 1, "\n");
+				x = 0;
+				y += zeilenHöhe;
+				i = lastPos;
+				lastPos = -1;
+			}
+			b->release();
+		}
+	}
+	y += zeilenHöhe;
+	tmp->release();
+	nachricht->release();
+	text = initTextFeld(1, 22, 228, y, TextFeld::Style::Text, result->getText());
+	result->release();
+	if (positiv)
+	{
+		this->positiv = initKnopf(10, 20 + y, 100, 20, Knopf::Style::Sichtbar, positiv->getText());
+		positiv->release();
+	}
+	else
+		this->positiv = 0;
+	if (negativ)
+	{
+		this->negativ = initKnopf(120, 20 + y, 100, 20, Knopf::Style::Sichtbar, negativ->getText());
+		negativ->release();
+	}
+	else
+		this->negativ = 0;
+	this->posAk = posAk;
+	this->negAk = negAk;
+	maxHöhe = 50 + y;
 }
 
 // Destruktor
 Nachricht::~Nachricht()
 {
-    text = (TextFeld *)text->release();
-    if( positiv )
-        positiv = (Knopf *)positiv->release();
-    if( negativ )
-        negativ = (Knopf *)negativ->release();
+	text = (TextFeld*)text->release();
+	if (positiv)
+		positiv = (Knopf*)positiv->release();
+	if (negativ)
+		negativ = (Knopf*)negativ->release();
 }
 
 void Nachricht::entfernen()
 {
-    __super::entfernen();
-    negAk();
-}
-
-void Nachricht::doPublicMausEreignis( MausEreignis &me )
-{
-    __super::doPublicMausEreignis( me );
-    if( animation != 3 )
-    {
-        bool tmp = 0;
-        if( me.my > höhe || !ausgewählt )
-        {
-            tmp = me.verarbeitet;
-            me.verarbeitet = 1;
-        }
-        char aktion = me.verarbeitet ? 3 : 0;
-        if( positiv )
-            positiv->doPublicMausEreignis( me );
-        if( !aktion )
-            aktion = me.verarbeitet ? 1 : 0;
-        if( negativ )
-            negativ->doPublicMausEreignis( me );
-        if( !aktion )
-            aktion = me.verarbeitet ? 2 : 0;
-        if( me.my > höhe || !ausgewählt )
-        {
-            me.verarbeitet = tmp;
-            return;
-        }
-        if( me.id != ME_RLinks )
-            return;
-        switch( aktion )
-        {
-        case 1:
-            // positiv
-            __super::entfernen();
-            posAk();
-            break;
-        case 2:
-            // negativ
-            __super::entfernen();
-            negAk();
-            break;
-        }
-    }
-}
-
-bool Nachricht::tick( double tickVal )
-{
-    rend |= positiv ? positiv->tick( tickVal ) : 0;
-    rend |= negativ ? negativ->tick( tickVal ) : 0;
-    rend |= text->tick( tickVal );
-    return __super::tick( tickVal );
-}
-
-void Nachricht::render( int yPos, Bild &zRObj )
-{
-    __super::render( yPos, zRObj );
-    int rbr = rahmen->getRBreite();
-    if( !zRObj.setDrawOptions( rbr, yPos + rbr, rahmen->getBreite() - rbr * 2, rahmen->getHeight() - rbr * 2 ) )
-        return;
-    text->render( zRObj );
-    if( positiv )
-        positiv->render( zRObj );
-    if( negativ )
-        negativ->render( zRObj );
-    zRObj.releaseDrawOptions();
+	__super::entfernen();
+	negAk();
+}
+
+void Nachricht::doPublicMausEreignis(MausEreignis& me)
+{
+	__super::doPublicMausEreignis(me);
+	if (animation != 3)
+	{
+		bool tmp = 0;
+		if (me.my > höhe || !ausgewählt)
+		{
+			tmp = me.verarbeitet;
+			me.verarbeitet = 1;
+		}
+		char aktion = me.verarbeitet ? 3 : 0;
+		if (positiv)
+			positiv->doPublicMausEreignis(me);
+		if (!aktion)
+			aktion = me.verarbeitet ? 1 : 0;
+		if (negativ)
+			negativ->doPublicMausEreignis(me);
+		if (!aktion)
+			aktion = me.verarbeitet ? 2 : 0;
+		if (me.my > höhe || !ausgewählt)
+		{
+			me.verarbeitet = tmp;
+			return;
+		}
+		if (me.id != ME_RLinks)
+			return;
+		switch (aktion)
+		{
+		case 1:
+			// positiv
+			__super::entfernen();
+			posAk();
+			break;
+		case 2:
+			// negativ
+			__super::entfernen();
+			negAk();
+			break;
+		}
+	}
+}
+
+bool Nachricht::tick(double tickVal)
+{
+	rend |= positiv ? positiv->tick(tickVal) : 0;
+	rend |= negativ ? negativ->tick(tickVal) : 0;
+	rend |= text->tick(tickVal);
+	return __super::tick(tickVal);
+}
+
+void Nachricht::render(int yPos, Bild& zRObj)
+{
+	__super::render(yPos, zRObj);
+	int rbr = rahmen->getRBreite();
+	if (!zRObj.setDrawOptions(rbr, yPos + rbr, rahmen->getBreite() - rbr * 2, rahmen->getHeight() - rbr * 2))
+		return;
+	text->render(zRObj);
+	if (positiv)
+		positiv->render(zRObj);
+	if (negativ)
+		negativ->render(zRObj);
+	zRObj.releaseDrawOptions();
 }
 
 
 // Inhalt der NachrichtenListeObj Klasse aus NachrichtListe.h
 // Konstruktor
 NachrichtenListeObj::NachrichtenListeObj()
-    : Zeichnung()
+	: Zeichnung()
 {
-    members = new RCArray< NLNachricht >();
-    vsb = new VScrollBar();
-    vsb->setKlickScroll( 10 );
-    bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
-    vsb->update( 0, bildschirmGröße.y - 122 );
-    anzahl = 0;
-    gr = Punkt( 250, bildschirmGröße.y - 122 );
+	members = new RCArray< NLNachricht >();
+	vsb = new VScrollBar();
+	vsb->setKlickScroll(10);
+	bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
+	vsb->update(0, bildschirmGröße.y - 122);
+	anzahl = 0;
+	gr = Punkt(250, bildschirmGröße.y - 122);
 }
 
 // Destruktor
 NachrichtenListeObj::~NachrichtenListeObj()
 {
-    vsb = (VScrollBar *)vsb->release();
-    members->release();
+	vsb = (VScrollBar*)vsb->release();
+	members->release();
 }
 
 // nicht constant
-void NachrichtenListeObj::addNachricht( NLNachricht *nachricht )
+void NachrichtenListeObj::addNachricht(NLNachricht* nachricht)
 {
-    members->add( nachricht, anzahl );
-    anzahl++;
-    rend = 1;
+	members->add(nachricht, anzahl);
+	anzahl++;
+	rend = 1;
 }
 
-void NachrichtenListeObj::removeNachricht( NLNachricht *zNachricht )
+void NachrichtenListeObj::removeNachricht(NLNachricht* zNachricht)
 {
-    for( int i = 0; i < anzahl; i++ )
-    {
-        if( members->z( i ) == zNachricht )
-        {
-            members->remove( i );
-            anzahl--;
-            rend = 1;
-            break;
-        }
-    }
+	for (int i = 0; i < anzahl; i++)
+	{
+		if (members->z(i) == zNachricht)
+		{
+			members->remove(i);
+			anzahl--;
+			rend = 1;
+			break;
+		}
+	}
 }
 
 void NachrichtenListeObj::removeAll()
 {
-    lockZeichnung();
-    members->leeren();
-    anzahl = 0;
-    rend = 1;
-    unlockZeichnung();
-}
-
-bool NachrichtenListeObj::tick( double tickVal )
-{
-    lockZeichnung();
-    rend |= vsb->getRend();
-    rend |= nachLogin->zNachrichtenListe()->tick( tickVal );
-    for( int i = 0; i < anzahl; i++ )
-    {
-        NLNachricht *tmp = members->z( i );
-        if( tmp )
-            rend |= tmp->tick( tickVal );
-    }
-    unlockZeichnung();
-    bool ret = rend;
-    rend = 0;
-    return ret;
-}
-
-void NachrichtenListeObj::doPublicMausEreignis( MausEreignis &me )
-{
-    lockZeichnung();
-    int my = me.my;
-    me.my -= 20;
-    if( me.mx <= 229 && me.mx > 0 && me.my >= 0 )
-    {
-        me.my += vsb->getScroll();
-        for( int i = 0; i < anzahl; i++ )
-        {
-            NLNachricht *tmp = members->z( i );
-            if( tmp )
-            {
-                if( me.my > 0 && me.my < tmp->getHeight() )
-                    tmp->setAusgewählt( 1 );
-                else
-                    tmp->setAusgewählt( 0 );
-                tmp->doPublicMausEreignis( me );
-                me.my -= tmp->getHeight();
-            }
-        }
-        me.my -= vsb->getScroll();
-    }
-    else
-    {
-        me.my += vsb->getScroll();
-        for( int i = 0; i < anzahl; i++ )
-        {
-            NLNachricht *tmp = members->z( i );
-            if( tmp )
-            {
-                tmp->setAusgewählt( 0 );
-                tmp->doPublicMausEreignis( me );
-                me.my -= tmp->getHeight();
-            }
-        }
-        me.my -= vsb->getScroll();
-    }
-    me.my = my;
-    vsb->doMausMessage( 229, 20, 20, bildschirmGröße.y - 122, me );
-    unlockZeichnung();
-}
-
-void NachrichtenListeObj::render( Bild &zrObj )
-{
-    lockZeichnung();
-    int x = pos.x;
-    int y = pos.y;
-    int br = gr.x;
-    int hö = gr.y;
-    if( !zrObj.setDrawOptions( x, y, br, hö ) )
-    {
-        unlockZeichnung();
-        return;
-    }
-    int höhe = 0;
-    for( int i = 0; i < anzahl; i++ )
-    {
-        NLNachricht *tmp = members->z( i );
-        tmp->render( höhe - ( vsb ? vsb->getScroll() : 0 ), zrObj );
-        höhe += tmp->getHeight();
-    }
-    if( vsb )
-    {
-        vsb->update( höhe, bildschirmGröße.y - 122 );
-        vsb->render( 229, 0, 20, bildschirmGröße.y - 122, zrObj );
-    }
-    zrObj.releaseDrawOptions();
-    unlockZeichnung();
+	lockZeichnung();
+	members->leeren();
+	anzahl = 0;
+	rend = 1;
+	unlockZeichnung();
+}
+
+bool NachrichtenListeObj::tick(double tickVal)
+{
+	lockZeichnung();
+	rend |= vsb->getRend();
+	rend |= nachLogin->zNachrichtenListe()->tick(tickVal);
+	for (int i = 0; i < anzahl; i++)
+	{
+		NLNachricht* tmp = members->z(i);
+		if (tmp)
+			rend |= tmp->tick(tickVal);
+	}
+	unlockZeichnung();
+	bool ret = rend;
+	rend = 0;
+	return ret;
+}
+
+void NachrichtenListeObj::doPublicMausEreignis(MausEreignis& me)
+{
+	lockZeichnung();
+	int my = me.my;
+	me.my -= 20;
+	if (me.mx <= 229 && me.mx > 0 && me.my >= 0)
+	{
+		me.my += vsb->getScroll();
+		for (int i = 0; i < anzahl; i++)
+		{
+			NLNachricht* tmp = members->z(i);
+			if (tmp)
+			{
+				if (me.my > 0 && me.my < tmp->getHeight())
+					tmp->setAusgewählt(1);
+				else
+					tmp->setAusgewählt(0);
+				tmp->doPublicMausEreignis(me);
+				me.my -= tmp->getHeight();
+			}
+		}
+		me.my -= vsb->getScroll();
+	}
+	else
+	{
+		me.my += vsb->getScroll();
+		for (int i = 0; i < anzahl; i++)
+		{
+			NLNachricht* tmp = members->z(i);
+			if (tmp)
+			{
+				tmp->setAusgewählt(0);
+				tmp->doPublicMausEreignis(me);
+				me.my -= tmp->getHeight();
+			}
+		}
+		me.my -= vsb->getScroll();
+	}
+	me.my = my;
+	vsb->doMausMessage(229, 20, 20, bildschirmGröße.y - 122, me);
+	unlockZeichnung();
+}
+
+void NachrichtenListeObj::render(Bild& zrObj)
+{
+	lockZeichnung();
+	int x = pos.x;
+	int y = pos.y;
+	int br = gr.x;
+	int hö = gr.y;
+	if (!zrObj.setDrawOptions(x, y, br, hö))
+	{
+		unlockZeichnung();
+		return;
+	}
+	int höhe = 0;
+	for (int i = 0; i < anzahl; i++)
+	{
+		NLNachricht* tmp = members->z(i);
+		tmp->render(höhe - (vsb ? vsb->getScroll() : 0), zrObj);
+		höhe += tmp->getHeight();
+	}
+	if (vsb)
+	{
+		vsb->update(höhe, bildschirmGröße.y - 122);
+		vsb->render(229, 0, 20, bildschirmGröße.y - 122, zrObj);
+	}
+	zrObj.releaseDrawOptions();
+	unlockZeichnung();
 }
 
 
 // Inhalt der NachrichtenListe Klasse aus NachrichtListe.h
 // Konstruktor
-NachrichtenListe::NachrichtenListe( Fenster *zNachLoginFenster )
-    : ReferenceCounter()
-{
-    minimierenBild = bilder->get( "data/client/bilder/chat.ltdb/minimieren.png" );
-    maximierenBild = bilder->get( "data/client/bilder/chat.ltdb/maximieren.png" );
-    bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
-    fenster = initFenster( bildschirmGröße.x - 21, 100, 250, 22, Fenster::Style::Sichtbar | Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::BodyHintergrund, "" );
-    fenster->setKBgFarbe( 0xFF000000 );
-    überschrift = initTextFeld( 1, 1, 248, 20, TextFeld::Style::Text | TextFeld::Style::Center | TextFeld::Style::Sichtbar, "Nachrichten" );
-    überschrift->setSchriftSize( 15 );
-    fenster->addMember( dynamic_cast<Zeichnung *>( überschrift->getThis() ) );
-    minMax = initKnopf( 1, 1, 20, 20, 0, "" );
-    minMax->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer );
-    minMax->setMausEreignisParameter( this );
-    minMax->setMausEreignis( NachrichtenListeMinMaxME );
-    minMax->setHintergrundBildZ( dynamic_cast<Bild *>( minimierenBild->getThis() ) );
-    initToolTip( minMax, "Nachrichten Leiste minimieren." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( minMax->getThis() ) );
-    nachrichtenListe = new NachrichtenListeObj();
-    nachrichtenListe->setPosition( 1, 21 );
-    nachrichtenListe->setSize( 248, bildschirmGröße.y - 122 );
-    fenster->addMember( dynamic_cast<Zeichnung *>( nachrichtenListe->getThis() ) );
-    zNachLoginFenster->addMember( dynamic_cast<Zeichnung *>( fenster->getThis() ) );
-    tickVal = 0;
-    animation = 1;
-    rend = 0;
-    msgSound = 0;
-    errSound = 0;
-    HMODULE dll = Framework::getDLLRegister()->ladeDLL( "GSL.dll", "data/bin/GSL.dll" );
-    if( dll )
-    {
-        GetGSLDatei getGSLDatei = (GetGSLDatei)GetProcAddress( dll, "getGSLDatei" );
-        if( getGSLDatei )
-        {
-            GSL::GSLDateiV *sDat = getGSLDatei();
-            sDat->setDatei( "data/sounds/popup.gsl" );
-            sDat->leseDaten();
-            msgSound = sDat->getSound( "info.wav" );
-            errSound = sDat->getSound( "error.wav" );
-            sDat->release();
-            if( msgSound )
-                msgSound->setVolume( 0xFFFF, 0xFFFF );
-            if( errSound )
-                errSound->setVolume( 0xFFFF, 0xFFFF );
-        }
-        if( !msgSound && !errSound )
-            Framework::getDLLRegister()->releaseDLL( "GSL.dll" );
-    }
+NachrichtenListe::NachrichtenListe(Fenster* zNachLoginFenster)
+	: ReferenceCounter()
+{
+	minimierenBild = bilder->get("data/client/bilder/chat.ltdb/minimieren.png");
+	maximierenBild = bilder->get("data/client/bilder/chat.ltdb/maximieren.png");
+	bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
+	fenster = initFenster(bildschirmGröße.x - 21, 100, 250, 22, Fenster::Style::Sichtbar | Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::BodyHintergrund, "");
+	fenster->setKBgFarbe(0xFF000000);
+	überschrift = initTextFeld(1, 1, 248, 20, TextFeld::Style::Text | TextFeld::Style::Center | TextFeld::Style::Sichtbar, "Nachrichten");
+	überschrift->setSchriftSize(15);
+	fenster->addMember(dynamic_cast<Zeichnung*>(überschrift->getThis()));
+	minMax = initKnopf(1, 1, 20, 20, 0, "");
+	minMax->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer);
+	minMax->setMausEreignisParameter(this);
+	minMax->setMausEreignis(NachrichtenListeMinMaxME);
+	minMax->setHintergrundBildZ(dynamic_cast<Bild*>(minimierenBild->getThis()));
+	initToolTip(minMax, "Nachrichten Leiste minimieren.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(minMax->getThis()));
+	nachrichtenListe = new NachrichtenListeObj();
+	nachrichtenListe->setPosition(1, 21);
+	nachrichtenListe->setSize(248, bildschirmGröße.y - 122);
+	fenster->addMember(dynamic_cast<Zeichnung*>(nachrichtenListe->getThis()));
+	zNachLoginFenster->addMember(dynamic_cast<Zeichnung*>(fenster->getThis()));
+	tickVal = 0;
+	animation = 1;
+	rend = 0;
+	msgSound = 0;
+	errSound = 0;
+	HMODULE dll = Framework::getDLLRegister()->ladeDLL("GSL.dll", "data/bin/GSL.dll");
+	if (dll)
+	{
+		GetGSLDatei getGSLDatei = (GetGSLDatei)GetProcAddress(dll, "getGSLDatei");
+		if (getGSLDatei)
+		{
+			GSL::GSLDateiV* sDat = getGSLDatei();
+			sDat->setDatei("data/sounds/popup.gsl");
+			sDat->leseDaten();
+			msgSound = sDat->getSound("info.wav");
+			errSound = sDat->getSound("error.wav");
+			sDat->release();
+			if (msgSound)
+				msgSound->setVolume(0xFFFF, 0xFFFF);
+			if (errSound)
+				errSound->setVolume(0xFFFF, 0xFFFF);
+		}
+		if (!msgSound && !errSound)
+			Framework::getDLLRegister()->releaseDLL("GSL.dll");
+	}
 }
 
 // Destruktor
 NachrichtenListe::~NachrichtenListe()
 {
-    if( msgSound || errSound )
-    {
-        if( msgSound )
-        {
-            msgSound->stopSound();
-            msgSound->release();
-        }
-        if( errSound )
-        {
-            errSound->stopSound();
-            errSound->release();
-        }
-        Framework::getDLLRegister()->releaseDLL( "GSL.dll" );
-    }
-    überschrift = (TextFeld *)überschrift->release();
-    fenster = (Fenster *)fenster->release();
-    minMax = (Knopf *)minMax->release();
-    nachrichtenListe = (NachrichtenListeObj *)nachrichtenListe->release();
-    minimierenBild->release();
-    maximierenBild->release();
-    schrift->release();
+	if (msgSound || errSound)
+	{
+		if (msgSound)
+		{
+			msgSound->stopSound();
+			msgSound->release();
+		}
+		if (errSound)
+		{
+			errSound->stopSound();
+			errSound->release();
+		}
+		Framework::getDLLRegister()->releaseDLL("GSL.dll");
+	}
+	überschrift = (TextFeld*)überschrift->release();
+	fenster = (Fenster*)fenster->release();
+	minMax = (Knopf*)minMax->release();
+	nachrichtenListe = (NachrichtenListeObj*)nachrichtenListe->release();
+	minimierenBild->release();
+	maximierenBild->release();
+	schrift->release();
 }
 
 // nicht constant
-void NachrichtenListe::addNachricht( Text *titel, Text *nachricht, Text *positiv, Text *negativ, std::function<void()> posAk, std::function<void()> negAk )
-{
-    int sound = userOptions->wertExistiert( "GUISound" ) ? *userOptions->zWert( "GUISound" ) : 100;
-    if( titel && titel->hat( "Fehler" ) && errSound )
-    {
-        errSound->setVolume( (int)( ( sound / 100.0 ) * 0xFFFF ), (int)( ( sound / 100.0 ) * 0xFFFF ) );
-        errSound->playSound();
-    }
-    else if( msgSound )
-    {
-        msgSound->setVolume( (int)( ( sound / 100.0 ) * 0xFFFF ), (int)( ( sound / 100.0 ) * 0xFFFF ) );
-        msgSound->playSound();
-    }
-    nachrichtenListe->addNachricht( new Nachricht( titel, nachricht, positiv, negativ, posAk, negAk ) );
-}
-void NachrichtenListe::addNachricht( NLNachricht *nachricht )
-{
-    int sound = userOptions->wertExistiert( "GUISound" ) ? *userOptions->zWert( "GUISound" ) : 100;
-    if( nachricht->zTitel() && nachricht->zTitel()->hat( "Fehler" ) && errSound )
-    {
-        errSound->setVolume( (int)( ( sound / 100.0 ) * 0xFFFF ), (int)( ( sound / 100.0 ) * 0xFFFF ) );
-        errSound->playSound();
-    }
-    else if( msgSound )
-    {
-        msgSound->setVolume( (int)( ( sound / 100.0 ) * 0xFFFF ), (int)( ( sound / 100.0 ) * 0xFFFF ) );
-        msgSound->playSound();
-    }
-    nachrichtenListe->addNachricht( nachricht );
-}
-
-void NachrichtenListe::removeNachricht( NLNachricht *zNachricht )
-{
-    nachrichtenListe->removeNachricht( zNachricht );
+void NachrichtenListe::addNachricht(Text* titel, Text* nachricht, Text* positiv, Text* negativ, std::function<void()> posAk, std::function<void()> negAk)
+{
+	int sound = userOptions->wertExistiert("GUISound") ? (int)*userOptions->zWert("GUISound") : 100;
+	if (titel && titel->hat("Fehler") && errSound)
+	{
+		errSound->setVolume((int)((sound / 100.0) * 0xFFFF), (int)((sound / 100.0) * 0xFFFF));
+		errSound->playSound();
+	}
+	else if (msgSound)
+	{
+		msgSound->setVolume((int)((sound / 100.0) * 0xFFFF), (int)((sound / 100.0) * 0xFFFF));
+		msgSound->playSound();
+	}
+	nachrichtenListe->addNachricht(new Nachricht(titel, nachricht, positiv, negativ, posAk, negAk));
+}
+void NachrichtenListe::addNachricht(NLNachricht* nachricht)
+{
+	int sound = userOptions->wertExistiert("GUISound") ? (int)*userOptions->zWert("GUISound") : 100;
+	if (nachricht->zTitel() && nachricht->zTitel()->hat("Fehler") && errSound)
+	{
+		errSound->setVolume((int)((sound / 100.0) * 0xFFFF), (int)((sound / 100.0) * 0xFFFF));
+		errSound->playSound();
+	}
+	else if (msgSound)
+	{
+		msgSound->setVolume((int)((sound / 100.0) * 0xFFFF), (int)((sound / 100.0) * 0xFFFF));
+		msgSound->playSound();
+	}
+	nachrichtenListe->addNachricht(nachricht);
+}
+
+void NachrichtenListe::removeNachricht(NLNachricht* zNachricht)
+{
+	nachrichtenListe->removeNachricht(zNachricht);
 }
 
 void NachrichtenListe::removeAll()
 {
-    nachrichtenListe->removeAll();
-}
-
-bool NachrichtenListe::druckMinMax( MausEreignis &me )
-{
-    if( me.id == ME_RLinks )
-    {
-        if( minMax->zHintergrundBild() == minimierenBild )
-        {
-            animation = 2;
-            minMax->setHintergrundBildZ( dynamic_cast<Bild *>( maximierenBild->getThis() ) );
-            // TODO minMax->zToolTip()->setText( "Nachrichten Leiste maximieren." );
-        }
-        else
-        {
-            animation = 1;
-            minMax->setHintergrundBildZ( dynamic_cast<Bild *>( minimierenBild->getThis() ) );
-            // TODO minMax->zToolTip()->setText( "Nachrichten Leiste minimieren." );
-        }
-    }
-    return 1;
-}
-
-bool NachrichtenListe::tick( double tickVal )
-{
-    if( !animation )
-    {
-        bool ret = rend;
-        rend = 0;
-        return ret;
-    }
-    this->tickVal += tickVal * 400;
-    int val = (int)this->tickVal;
-    if( val < 1 )
-    {
-        bool ret = rend;
-        rend = 0;
-        return ret;
-    }
-    if( val > 14 )
-        val = 14;
-    this->tickVal -= val;
-    switch( animation )
-    {
-    case 1: // maximieren
-        if( fenster->getX() > bildschirmGröße.x - 250 )
-        {
-            fenster->setPosition( fenster->getX() - val, fenster->getY() );
-            minMax->setPosition( minMax->getX() + val, minMax->getY() );
-            if( fenster->getX() < bildschirmGröße.x - 250 )
-            {
-                fenster->setPosition( bildschirmGröße.x - 250, fenster->getY() );
-                minMax->setPosition( 229, minMax->getY() );
-            }
-            rend = 1;
-        }
-        else if( fenster->getHeight() < bildschirmGröße.y - 100 )
-        {
-            fenster->setSize( fenster->getBreite(), fenster->getHeight() + val );
-            if( fenster->getHeight() >= bildschirmGröße.y - 100 )
-            {
-                fenster->setSize( fenster->getBreite(), bildschirmGröße.y - 100 );
-                animation = 0;
-            }
-            rend = 1;
-        }
-        break;
-    case 2: // minimieren
-        if( fenster->getHeight() > 22 )
-        {
-            fenster->setSize( fenster->getBreite(), fenster->getHeight() - val );
-            if( fenster->getHeight() < 22 )
-                fenster->setSize( fenster->getBreite(), 22 );
-            rend = 1;
-        }
-        else if( fenster->getX() < bildschirmGröße.x - 21 )
-        {
-            minMax->setPosition( minMax->getX() - val, minMax->getY() );
-            fenster->setPosition( fenster->getX() + val, fenster->getY() );
-            if( fenster->getX() >= bildschirmGröße.x - 21 )
-            {
-                minMax->setPosition( 1, minMax->getY() );
-                fenster->setPosition( bildschirmGröße.x - 21, fenster->getY() );
-                animation = 0;
-            }
-            rend = 1;
-        }
-        break;
-    }
-    bool ret = rend;
-    rend = 0;
-    return ret;
+	nachrichtenListe->removeAll();
+}
+
+bool NachrichtenListe::druckMinMax(MausEreignis& me)
+{
+	if (me.id == ME_RLinks)
+	{
+		if (minMax->zHintergrundBild() == minimierenBild)
+		{
+			animation = 2;
+			minMax->setHintergrundBildZ(dynamic_cast<Bild*>(maximierenBild->getThis()));
+			// TODO minMax->zToolTip()->setText( "Nachrichten Leiste maximieren." );
+		}
+		else
+		{
+			animation = 1;
+			minMax->setHintergrundBildZ(dynamic_cast<Bild*>(minimierenBild->getThis()));
+			// TODO minMax->zToolTip()->setText( "Nachrichten Leiste minimieren." );
+		}
+	}
+	return 1;
+}
+
+bool NachrichtenListe::tick(double tickVal)
+{
+	if (!animation)
+	{
+		bool ret = rend;
+		rend = 0;
+		return ret;
+	}
+	this->tickVal += tickVal * 400;
+	int val = (int)this->tickVal;
+	if (val < 1)
+	{
+		bool ret = rend;
+		rend = 0;
+		return ret;
+	}
+	if (val > 14)
+		val = 14;
+	this->tickVal -= val;
+	switch (animation)
+	{
+	case 1: // maximieren
+		if (fenster->getX() > bildschirmGröße.x - 250)
+		{
+			fenster->setPosition(fenster->getX() - val, fenster->getY());
+			minMax->setPosition(minMax->getX() + val, minMax->getY());
+			if (fenster->getX() < bildschirmGröße.x - 250)
+			{
+				fenster->setPosition(bildschirmGröße.x - 250, fenster->getY());
+				minMax->setPosition(229, minMax->getY());
+			}
+			rend = 1;
+		}
+		else if (fenster->getHeight() < bildschirmGröße.y - 100)
+		{
+			fenster->setSize(fenster->getBreite(), fenster->getHeight() + val);
+			if (fenster->getHeight() >= bildschirmGröße.y - 100)
+			{
+				fenster->setSize(fenster->getBreite(), bildschirmGröße.y - 100);
+				animation = 0;
+			}
+			rend = 1;
+		}
+		break;
+	case 2: // minimieren
+		if (fenster->getHeight() > 22)
+		{
+			fenster->setSize(fenster->getBreite(), fenster->getHeight() - val);
+			if (fenster->getHeight() < 22)
+				fenster->setSize(fenster->getBreite(), 22);
+			rend = 1;
+		}
+		else if (fenster->getX() < bildschirmGröße.x - 21)
+		{
+			minMax->setPosition(minMax->getX() - val, minMax->getY());
+			fenster->setPosition(fenster->getX() + val, fenster->getY());
+			if (fenster->getX() >= bildschirmGröße.x - 21)
+			{
+				minMax->setPosition(1, minMax->getY());
+				fenster->setPosition(bildschirmGröße.x - 21, fenster->getY());
+				animation = 0;
+			}
+			rend = 1;
+		}
+		break;
+	}
+	bool ret = rend;
+	rend = 0;
+	return ret;
 }
 
 // Nachrichten
-bool NachrichtenListeMinMaxME( void *p, void *obj, MausEreignis me )
+bool NachrichtenListeMinMaxME(void* p, void* obj, MausEreignis me)
 {
-    return ( (NachrichtenListe *)p )->druckMinMax( me );
+	return ((NachrichtenListe*)p)->druckMinMax(me);
 }

+ 335 - 335
KSGClient/NachLogin/Editor/Auswahl/Auswahl.cpp

@@ -6,378 +6,378 @@
 
 // Inhalt der Auswahl Klasse aus Auswahl.h
 // Konstruktor
-Auswahl::Auswahl( KartenEditor *kEditor )
-    : Thread()
+Auswahl::Auswahl(KartenEditor* kEditor)
+	: Thread()
 {
-    this->kEditor = kEditor;
-    alpha = 255;
-    sichtbar = 0;
-    suchFilterT = initTextFeld( 10, 10, 70, 20, TextFeld::Style::Text | TextFeld::Style::VCenter, "Suchfilter:" );
-    suchFilter = initTextFeld( 90, 10, 210, 20, TextFeld::Style::TextFeld, "" );
-    initToolTip( suchFilter, "Gebe etwas vom Namen der Karte ein, nach der du suchst." );
-    suchen = initKnopf( 310, 10, 100, 20, Knopf::Style::Sichtbar, "suchen" );
-    sortSpalte = initAuswahlBox( 640, 10, 120, 20, ABSTYLE,
-                                 { "Name", "Spielart", "Preis (Kupfer)", "Verkauft", "Spieleranzahl" } );
-    sortRichtung = initAuswahlBox( 770, 10, 120, 20, ABSTYLE, { "Aufsteigend", "Absteigend" } );
-    karten = initObjTabelle( 10, 40, 880, 520, OTSTYLE, { { "Name", 220, 220, 220 }, { "Spielart", 220, 220, 220 },
-    { "Kupfer", 130, 130, 130 }, { "Verkauft", 125, 125, 125 }, { "Spieleranzahl", 140, 140, 140 },
-    { "", 20, 20, 20 } }, 20 );
-    neuKarteName = initTextFeld( 10, 570, 195, 20, TextFeld::Style::TextFeld, "" );
-    initToolTip( neuKarteName, "Name einer neuen Karte" );
-    neuKarteSpielArt = initAuswahlBox( 215, 570, 195, 20, ABSTYLE, {} );
-    neuKarte = initKnopf( 420, 570, 120, 20, Knopf::Style::Sichtbar, "Karte Erstellen" );
-    laden = (Framework::Animation2D *)ladeAnimation->dublizieren();
-    laden->setPosition( 425, 275 );
-    laden->setSichtbar( 0 );
-    aktion = 0;
-    tickVal = 0;
-    rend = 0;
+	this->kEditor = kEditor;
+	alpha = 255;
+	sichtbar = 0;
+	suchFilterT = initTextFeld(10, 10, 70, 20, TextFeld::Style::Text | TextFeld::Style::VCenter, "Suchfilter:");
+	suchFilter = initTextFeld(90, 10, 210, 20, TextFeld::Style::TextFeld, "");
+	initToolTip(suchFilter, "Gebe etwas vom Namen der Karte ein, nach der du suchst.");
+	suchen = initKnopf(310, 10, 100, 20, Knopf::Style::Sichtbar, "suchen");
+	sortSpalte = initAuswahlBox(640, 10, 120, 20, ABSTYLE,
+		{ "Name", "Spielart", "Preis (Kupfer)", "Verkauft", "Spieleranzahl" });
+	sortRichtung = initAuswahlBox(770, 10, 120, 20, ABSTYLE, { "Aufsteigend", "Absteigend" });
+	karten = initObjTabelle(10, 40, 880, 520, OTSTYLE, { { "Name", 220, 220, 220 }, { "Spielart", 220, 220, 220 },
+	{ "Kupfer", 130, 130, 130 }, { "Verkauft", 125, 125, 125 }, { "Spieleranzahl", 140, 140, 140 },
+	{ "", 20, 20, 20 } }, 20);
+	neuKarteName = initTextFeld(10, 570, 195, 20, TextFeld::Style::TextFeld, "");
+	initToolTip(neuKarteName, "Name einer neuen Karte");
+	neuKarteSpielArt = initAuswahlBox(215, 570, 195, 20, ABSTYLE, {});
+	neuKarte = initKnopf(420, 570, 120, 20, Knopf::Style::Sichtbar, "Karte Erstellen");
+	laden = (Framework::Animation2D*)ladeAnimation->dublizieren();
+	laden->setPosition(425, 275);
+	laden->setSichtbar(0);
+	aktion = 0;
+	tickVal = 0;
+	rend = 0;
 }
 
 // Destruktor
 Auswahl::~Auswahl()
 {
-    laden->release();
-    suchFilterT->release();
-    suchFilter->release();
-    suchen->release();
-    sortSpalte->release();
-    sortRichtung->release();
-    karten->release();
-    neuKarteName->release();
-    neuKarteSpielArt->release();
-    neuKarte->release();
-    kEditor->release();
+	laden->release();
+	suchFilterT->release();
+	suchFilter->release();
+	suchen->release();
+	sortSpalte->release();
+	sortRichtung->release();
+	karten->release();
+	neuKarteName->release();
+	neuKarteSpielArt->release();
+	neuKarte->release();
+	kEditor->release();
 }
 
 // nicht constant
-void Auswahl::setSichtbar( bool sicht )
+void Auswahl::setSichtbar(bool sicht)
 {
-    sichtbar = sicht;
-    if( sichtbar )
-    {
-        MausEreignis me;
-        me.id = ME_RLinks;
-        me.verarbeitet = 0;
-        me.mx = suchen->getX() + 1;
-        me.my = suchen->getY() + 1;
-        doPublicMausEreignis( me );
-    }
+	sichtbar = sicht;
+	if (sichtbar)
+	{
+		MausEreignis me;
+		me.id = ME_RLinks;
+		me.verarbeitet = 0;
+		me.mx = suchen->getX() + 1;
+		me.my = suchen->getY() + 1;
+		doPublicMausEreignis(me);
+	}
 }
 
 void Auswahl::thread()
 {
-    laden->setSichtbar( 1 );
-    if( aktion < 0 )
-    {
-        int port = 0;
-        Text ip = "";
-        KSGClient::EditorServerClient *editorClient = infoClient->createEditorServerClient( 0 );
-        if( !editorClient )
-        {
-            nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( infoClient->getLetzterFehler() ), new Text( "Ok" ) );
-            aktion = 0;
-            laden->setSichtbar( 0 );
-            run = 0;
-            return;
-        }
-        bool ok = 0;
-        if( editorClient->verbinde() )
-        {
-            if( editorClient->karteErstellen( neuKarteName->zText()->getText(), infoClient->getSpielId( neuKarteSpielArt->zEintrag( neuKarteSpielArt->getAuswahl() )->zText()->getText() ) ) )
-                ok = 1;
-            editorClient->trenne( 1 );
-        }
-        if( !ok )
-        {
-            nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( editorClient->getLetzterFehler() ), new Text( "Ok" ) );
-            aktion = 0;
-            laden->setSichtbar( 0 );
-            run = 0;
-            editorClient->release();
-            return;
-        }
-        aktion = 0;
-        laden->setSichtbar( 0 );
-        run = 0;
-        editorClient->release();
-        return;
-    }
-    if( aktion )
-    {
-        int port = 0;
-        Text ip = "";
-        if( editorClient )
-            editorClient = (KSGClient::EditorServerClient *)editorClient->release();
-        editorClient = infoClient->createEditorServerClient( aktion );
-        if( !editorClient )
-        {
-            nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( infoClient->getLetzterFehler() ), new Text( "Ok" ) );
-            aktion = 0;
-            laden->setSichtbar( 0 );
-            run = 0;
-            return;
-        }
-        bool ok = 0;
-        if( editorClient->verbinde() )
-        {
-            if( editorClient->ladeKarte( aktion ) )
-                ok = 1;
-        }
-        if( !ok )
-        {
-            nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( editorClient->getLetzterFehler() ), new Text( "Ok" ) );
-            aktion = 0;
-            laden->setSichtbar( 0 );
-            run = 0;
-            return;
-        }
-        kEditor->setKarte( aktion );
-        aktion = 0;
-        setSichtbar( 0 );
-        while( alpha != 0 )
-            Sleep( 100 );
-        laden->setSichtbar( 0 );
-        run = 0;
-        return;
-    }
-    Array< int > *saList = infoClient->getAccountSpielArtListe();
-    if( saList )
-    {
-        RCArray< Text > *saNamen = new RCArray< Text >();
-        int anz = saList->getEintragAnzahl();
-        for( int i = 0; i < anz; i++ )
-        {
-            if( !saList->hat( i ) )
-                continue;
-            Text *name = infoClient->getSpielName( saList->hat( i ) ? saList->get( i ) : 0 );
-            if( name )
-                saNamen->add( name );
-        }
-        neuKarteSpielArt->lockZeichnung();
-        neuKarteSpielArt->setAuswahl( 0 );
-        anz = neuKarteSpielArt->getEintragAnzahl();
-        for( int i = 0; i < anz; i++ )
-            neuKarteSpielArt->removeEintrag( 0 );
-        anz = saNamen->getEintragAnzahl();
-        for( int i = 0; i < anz; i++ )
-        {
-            if( saNamen->z( i ) )
-                neuKarteSpielArt->addEintrag( saNamen->z( i )->getText() );
-        }
-        neuKarteSpielArt->unlockZeichnung();
-        saNamen->release();
-        saList->release();
-    }
-    karten->lockZeichnung();
-    int anz = karten->getZeilenAnzahl();
-    for( int i = 1; i < anz; i++ )
-        karten->removeZeile( 1 );
-    karten->unlockZeichnung();
-    Bild *shopWeiter = bilder->get( "data/client/bilder/shop.ltdb/weiter.png" );
-    Array< int > *kId = new Array< int >();
-    RCArray< Text > *kName = new RCArray< Text >();
-    RCArray< Text > *saName = new RCArray< Text >();
-    Array< int > *kupfer = new Array< int >();
-    Array< int > *verkauft = new Array< int >();
-    Array< int > *maxSpieler = new Array< int >();
-    int kAnz = infoClient->getKartenListe( suchFilter->zText()->getText(), (char)sortSpalte->getAuswahl(), (char)sortRichtung->getAuswahl(),
-                                           kId, kName, saName, kupfer, verkauft, maxSpieler );
-    for( int i = 0; i < kAnz; i++ )
-    {
-        Text zeile;
-        zeile = kId->get( i );
-        karten->addZeile( zeile );
-        karten->setZeichnungZ( 0, i + 1, initTextFeld( 0, 0, 0, 0, TextFeld::Style::Text | TextFeld::Style::VCenter, kName->z( i )->getText() ) );
-        karten->setZeichnungZ( 1, i + 1, initTextFeld( 0, 0, 0, 0, TextFeld::Style::Text | TextFeld::Style::VCenter, saName->z( i )->getText() ) );
-        karten->setZeichnungZ( 2, i + 1, initTextFeld( 0, 0, 0, 0, TextFeld::Style::Text | TextFeld::Style::VCenter, Text() += kupfer->get( i ) ) );
-        karten->setZeichnungZ( 3, i + 1, initTextFeld( 0, 0, 0, 0, TextFeld::Style::Text | TextFeld::Style::VCenter, Text() += verkauft->get( i ) ) );
-        karten->setZeichnungZ( 4, i + 1, initTextFeld( 0, 0, 0, 0, TextFeld::Style::Text | TextFeld::Style::VCenter, Text() += maxSpieler->get( i ) ) );
-        Knopf *weiter = initKnopf( 0, 0, 0, 0, 0, "" );
-        weiter->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::KlickBuffer );
-        weiter->setHintergrundBildZ( dynamic_cast<Bild *>( shopWeiter->getThis() ) );
-        weiter->setMausEreignisParameter( this );
-        weiter->setMausEreignis( auswahlWeiterME );
-        karten->setZeichnungZ( 5, i + 1, weiter );
-    }
-    kId->release();
-    kName->release();
-    saName->release();
-    kupfer->release();
-    verkauft->release();
-    maxSpieler->release();
-    shopWeiter->release();
-    laden->setSichtbar( 0 );
-    run = 0;
+	laden->setSichtbar(1);
+	if (aktion < 0)
+	{
+		int port = 0;
+		Text ip = "";
+		KSGClient::EditorServerClient* editorClient = infoClient->createEditorServerClient(0);
+		if (!editorClient)
+		{
+			nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text(infoClient->getLetzterFehler()), new Text("Ok"));
+			aktion = 0;
+			laden->setSichtbar(0);
+			run = 0;
+			return;
+		}
+		bool ok = 0;
+		if (editorClient->verbinde())
+		{
+			if (editorClient->karteErstellen(neuKarteName->zText()->getText(), infoClient->getSpielId(neuKarteSpielArt->zEintrag(neuKarteSpielArt->getAuswahl())->zText()->getText())))
+				ok = 1;
+			editorClient->trenne(1);
+		}
+		if (!ok)
+		{
+			nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text(editorClient->getLetzterFehler()), new Text("Ok"));
+			aktion = 0;
+			laden->setSichtbar(0);
+			run = 0;
+			editorClient->release();
+			return;
+		}
+		aktion = 0;
+		laden->setSichtbar(0);
+		run = 0;
+		editorClient->release();
+		return;
+	}
+	if (aktion)
+	{
+		int port = 0;
+		Text ip = "";
+		if (editorClient)
+			editorClient = (KSGClient::EditorServerClient*)editorClient->release();
+		editorClient = infoClient->createEditorServerClient(aktion);
+		if (!editorClient)
+		{
+			nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text(infoClient->getLetzterFehler()), new Text("Ok"));
+			aktion = 0;
+			laden->setSichtbar(0);
+			run = 0;
+			return;
+		}
+		bool ok = 0;
+		if (editorClient->verbinde())
+		{
+			if (editorClient->ladeKarte(aktion))
+				ok = 1;
+		}
+		if (!ok)
+		{
+			nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text(editorClient->getLetzterFehler()), new Text("Ok"));
+			aktion = 0;
+			laden->setSichtbar(0);
+			run = 0;
+			return;
+		}
+		kEditor->setKarte(aktion);
+		aktion = 0;
+		setSichtbar(0);
+		while (alpha != 0)
+			Sleep(100);
+		laden->setSichtbar(0);
+		run = 0;
+		return;
+	}
+	Array< int >* saList = infoClient->getAccountSpielArtListe();
+	if (saList)
+	{
+		RCArray< Text >* saNamen = new RCArray< Text >();
+		int anz = saList->getEintragAnzahl();
+		for (int i = 0; i < anz; i++)
+		{
+			if (!saList->hat(i))
+				continue;
+			Text* name = infoClient->getSpielName(saList->hat(i) ? saList->get(i) : 0);
+			if (name)
+				saNamen->add(name);
+		}
+		neuKarteSpielArt->lockZeichnung();
+		neuKarteSpielArt->setAuswahl(0);
+		anz = neuKarteSpielArt->getEintragAnzahl();
+		for (int i = 0; i < anz; i++)
+			neuKarteSpielArt->removeEintrag(0);
+		anz = saNamen->getEintragAnzahl();
+		for (int i = 0; i < anz; i++)
+		{
+			if (saNamen->z(i))
+				neuKarteSpielArt->addEintrag(saNamen->z(i)->getText());
+		}
+		neuKarteSpielArt->unlockZeichnung();
+		saNamen->release();
+		saList->release();
+	}
+	karten->lockZeichnung();
+	int anz = karten->getZeilenAnzahl();
+	for (int i = 1; i < anz; i++)
+		karten->removeZeile(1);
+	karten->unlockZeichnung();
+	Bild* shopWeiter = bilder->get("data/client/bilder/shop.ltdb/weiter.png");
+	Array< int >* kId = new Array< int >();
+	RCArray< Text >* kName = new RCArray< Text >();
+	RCArray< Text >* saName = new RCArray< Text >();
+	Array< int >* kupfer = new Array< int >();
+	Array< int >* verkauft = new Array< int >();
+	Array< int >* maxSpieler = new Array< int >();
+	int kAnz = infoClient->getKartenListe(suchFilter->zText()->getText(), (char)sortSpalte->getAuswahl(), (char)sortRichtung->getAuswahl(),
+		kId, kName, saName, kupfer, verkauft, maxSpieler);
+	for (int i = 0; i < kAnz; i++)
+	{
+		Text zeile;
+		zeile = kId->get(i);
+		karten->addZeile(zeile);
+		karten->setZeichnungZ(0, i + 1, initTextFeld(0, 0, 0, 0, TextFeld::Style::Text | TextFeld::Style::VCenter, kName->z(i)->getText()));
+		karten->setZeichnungZ(1, i + 1, initTextFeld(0, 0, 0, 0, TextFeld::Style::Text | TextFeld::Style::VCenter, saName->z(i)->getText()));
+		karten->setZeichnungZ(2, i + 1, initTextFeld(0, 0, 0, 0, TextFeld::Style::Text | TextFeld::Style::VCenter, Text() += kupfer->get(i)));
+		karten->setZeichnungZ(3, i + 1, initTextFeld(0, 0, 0, 0, TextFeld::Style::Text | TextFeld::Style::VCenter, Text() += verkauft->get(i)));
+		karten->setZeichnungZ(4, i + 1, initTextFeld(0, 0, 0, 0, TextFeld::Style::Text | TextFeld::Style::VCenter, Text() += maxSpieler->get(i)));
+		Knopf* weiter = initKnopf(0, 0, 0, 0, 0, "");
+		weiter->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::KlickBuffer);
+		weiter->setHintergrundBildZ(dynamic_cast<Bild*>(shopWeiter->getThis()));
+		weiter->setMausEreignisParameter(this);
+		weiter->setMausEreignis(auswahlWeiterME);
+		karten->setZeichnungZ(5, i + 1, weiter);
+	}
+	kId->release();
+	kName->release();
+	saName->release();
+	kupfer->release();
+	verkauft->release();
+	maxSpieler->release();
+	shopWeiter->release();
+	laden->setSichtbar(0);
+	run = 0;
 }
 
-bool Auswahl::weiterME( Zeichnung *obj, MausEreignis &me )
+bool Auswahl::weiterME(Zeichnung* obj, MausEreignis& me)
 {
-    if( me.id != ME_RLinks )
-        return 1;
-    karten->lockZeichnung();
-    int anz = karten->getZeilenAnzahl();
-    for( int i = 1; i < anz; i++ )
-    {
-        if( karten->zZeichnung( 5, i ) == obj )
-        {
-            aktion = *karten->zZeilenName( i );
-            start();
-        }
-    }
-    karten->unlockZeichnung();
-    return 1;
+	if (me.id != ME_RLinks)
+		return 1;
+	karten->lockZeichnung();
+	int anz = karten->getZeilenAnzahl();
+	for (int i = 1; i < anz; i++)
+	{
+		if (karten->zZeichnung(5, i) == obj)
+		{
+			aktion = (int)*karten->zZeilenName(i);
+			start();
+		}
+	}
+	karten->unlockZeichnung();
+	return 1;
 }
 
-void Auswahl::doPublicMausEreignis( MausEreignis &me )
+void Auswahl::doPublicMausEreignis(MausEreignis& me)
 {
-    if( !sichtbar || run )
-        return;
-    suchFilter->doPublicMausEreignis( me );
-    bool vera = me.verarbeitet;
-    suchen->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet && me.id == ME_RLinks )
-    {
-        aktion = 0;
-        start();
-    }
-    int ausw = sortSpalte->getAuswahl();
-    sortSpalte->doPublicMausEreignis( me );
-    if( ausw != sortSpalte->getAuswahl() )
-    {
-        aktion = 0;
-        start();
-        sortSpalte->einklappen();
-    }
-    ausw = sortRichtung->getAuswahl();
-    sortRichtung->doPublicMausEreignis( me );
-    if( ausw != sortRichtung->getAuswahl() )
-    {
-        aktion = 0;
-        start();
-        sortRichtung->einklappen();
-    }
-    karten->doPublicMausEreignis( me );
-    neuKarteName->doPublicMausEreignis( me );
-    neuKarteSpielArt->doPublicMausEreignis( me );
-    vera = me.verarbeitet;
-    neuKarte->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet && me.id == ME_RLinks )
-    {
-        aktion = -1;
-        start();
-    }
+	if (!sichtbar || run)
+		return;
+	suchFilter->doPublicMausEreignis(me);
+	bool vera = me.verarbeitet;
+	suchen->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet && me.id == ME_RLinks)
+	{
+		aktion = 0;
+		start();
+	}
+	int ausw = sortSpalte->getAuswahl();
+	sortSpalte->doPublicMausEreignis(me);
+	if (ausw != sortSpalte->getAuswahl())
+	{
+		aktion = 0;
+		start();
+		sortSpalte->einklappen();
+	}
+	ausw = sortRichtung->getAuswahl();
+	sortRichtung->doPublicMausEreignis(me);
+	if (ausw != sortRichtung->getAuswahl())
+	{
+		aktion = 0;
+		start();
+		sortRichtung->einklappen();
+	}
+	karten->doPublicMausEreignis(me);
+	neuKarteName->doPublicMausEreignis(me);
+	neuKarteSpielArt->doPublicMausEreignis(me);
+	vera = me.verarbeitet;
+	neuKarte->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet && me.id == ME_RLinks)
+	{
+		aktion = -1;
+		start();
+	}
 }
 
-void Auswahl::doTastaturEreignis( TastaturEreignis &te )
+void Auswahl::doTastaturEreignis(TastaturEreignis& te)
 {
-    if( !sichtbar || run )
-        return;
-    bool vera = te.verarbeitet;
-    suchFilter->doTastaturEreignis( te );
-    if( !vera && te.verarbeitet && te.taste == T_Enter && te.id == TE_Release )
-    {
-        MausEreignis me;
-        me.id = ME_RLinks;
-        me.verarbeitet = 0;
-        me.mx = suchen->getX() + 1;
-        me.my = suchen->getY() + 1;
-        doPublicMausEreignis( me );
-    }
-    neuKarteName->doTastaturEreignis( te );
+	if (!sichtbar || run)
+		return;
+	bool vera = te.verarbeitet;
+	suchFilter->doTastaturEreignis(te);
+	if (!vera && te.verarbeitet && te.taste == T_Enter && te.id == TE_Release)
+	{
+		MausEreignis me;
+		me.id = ME_RLinks;
+		me.verarbeitet = 0;
+		me.mx = suchen->getX() + 1;
+		me.my = suchen->getY() + 1;
+		doPublicMausEreignis(me);
+	}
+	neuKarteName->doTastaturEreignis(te);
 }
 
-bool Auswahl::tick( double zeit )
+bool Auswahl::tick(double zeit)
 {
-    tickVal += zeit * 250;
-    int val = (int)tickVal;
-    if( val < 1 )
-    {
-        bool ret = rend;
-        rend = 0;
-        return ret;
-    }
-    if( val > 10 )
-        val = 10;
-    rend |= sortSpalte->tick( zeit );
-    rend |= sortRichtung->tick( zeit );
-    rend |= neuKarteSpielArt->tick( zeit );
-    rend |= laden->tick( zeit );
-    rend |= suchFilterT->tick( zeit );
-    rend |= suchFilter->tick( zeit );
-    rend |= suchen->tick( zeit );
-    rend |= karten->tick( zeit );
-    rend |= neuKarteName->tick( zeit );
-    rend |= neuKarte->tick( zeit );
-    if( sichtbar && alpha != 255 && !run )
-    {
-        if( alpha + val > 255 )
-            alpha = 255;
-        else
-            alpha += val;
-        rend = 1;
-    }
-    if( sichtbar && alpha != 125 && run )
-    {
-        if( alpha > 125 )
-        {
-            if( alpha - val < 125 )
-                alpha = 125;
-            else
-                alpha -= val;
-            rend = 1;
-        }
-        else
-        {
-            if( alpha + val > 125 )
-                alpha = 125;
-            else
-                alpha += 125;
-            rend = 1;
-        }
-    }
-    if( !sichtbar && alpha != 0 )
-    {
-        if( alpha - val < 0 )
-            alpha = 0;
-        else
-            alpha -= val;
-        rend = 1;
-    }
-    bool ret = rend;
-    rend = 0;
-    return ret;
+	tickVal += zeit * 250;
+	int val = (int)tickVal;
+	if (val < 1)
+	{
+		bool ret = rend;
+		rend = 0;
+		return ret;
+	}
+	if (val > 10)
+		val = 10;
+	rend |= sortSpalte->tick(zeit);
+	rend |= sortRichtung->tick(zeit);
+	rend |= neuKarteSpielArt->tick(zeit);
+	rend |= laden->tick(zeit);
+	rend |= suchFilterT->tick(zeit);
+	rend |= suchFilter->tick(zeit);
+	rend |= suchen->tick(zeit);
+	rend |= karten->tick(zeit);
+	rend |= neuKarteName->tick(zeit);
+	rend |= neuKarte->tick(zeit);
+	if (sichtbar && alpha != 255 && !run)
+	{
+		if (alpha + val > 255)
+			alpha = 255;
+		else
+			alpha += val;
+		rend = 1;
+	}
+	if (sichtbar && alpha != 125 && run)
+	{
+		if (alpha > 125)
+		{
+			if (alpha - val < 125)
+				alpha = 125;
+			else
+				alpha -= val;
+			rend = 1;
+		}
+		else
+		{
+			if (alpha + val > 125)
+				alpha = 125;
+			else
+				alpha += 125;
+			rend = 1;
+		}
+	}
+	if (!sichtbar && alpha != 0)
+	{
+		if (alpha - val < 0)
+			alpha = 0;
+		else
+			alpha -= val;
+		rend = 1;
+	}
+	bool ret = rend;
+	rend = 0;
+	return ret;
 }
 
-void Auswahl::render( Bild &zRObj )
+void Auswahl::render(Bild& zRObj)
 {
-    if( !alpha )
-        return;
-    zRObj.setAlpha( alpha );
-    suchFilterT->render( zRObj );
-    suchFilter->render( zRObj );
-    suchen->render( zRObj );
-    karten->render( zRObj );
-    neuKarteName->render( zRObj );
-    neuKarte->render( zRObj );
-    neuKarteSpielArt->render( zRObj );
-    sortSpalte->render( zRObj );
-    sortRichtung->render( zRObj );
-    zRObj.releaseAlpha();
-    laden->render( zRObj );
+	if (!alpha)
+		return;
+	zRObj.setAlpha(alpha);
+	suchFilterT->render(zRObj);
+	suchFilter->render(zRObj);
+	suchen->render(zRObj);
+	karten->render(zRObj);
+	neuKarteName->render(zRObj);
+	neuKarte->render(zRObj);
+	neuKarteSpielArt->render(zRObj);
+	sortSpalte->render(zRObj);
+	sortRichtung->render(zRObj);
+	zRObj.releaseAlpha();
+	laden->render(zRObj);
 }
 
 // constant
 bool Auswahl::istSichtbar() const
 {
-    return sichtbar;
+	return sichtbar;
 }
 
 
 // Ereignisse
-bool auswahlWeiterME( void *p, void *obj, MausEreignis me )
+bool auswahlWeiterME(void* p, void* obj, MausEreignis me)
 {
-    if( p )
-        return ( (Auswahl *)p )->weiterME( (Zeichnung *)obj, me );
-    return 1;
+	if (p)
+		return ((Auswahl*)p)->weiterME((Zeichnung*)obj, me);
+	return 1;
 }

+ 1015 - 1015
KSGClient/NachLogin/Editor/Karte/Dateien/KEDEditor.cpp

@@ -8,1152 +8,1152 @@
 
 // Inhalt der KEDBildSeite Klasse aus KEDEditor.h
 // Konstruktor
-KEDBildSeite::KEDBildSeite( Knopf *zNeueDatei, Knopf *zDateiRemove )
-    : ReferenceCounter()
-{
-    bilder = initAuswahlListe( 220, 10, 200, 510, AuswahlListe::Style::Normal, {} );
-    bildObj = initBildZ( 430, 10, 440, 440, BildZ::Style::normal | BildZ::Style::Alpha, 0 );
-    bildLöschen = initKnopf( 430, 460, 100, 20, Knopf::Style::Sichtbar, "Bild Löschen" );
-    importieren = initKnopf( 430, 490, 100, 20, Knopf::Style::Sichtbar, "Importieren" );
-    dateiLöschen = dynamic_cast<Knopf *>( zDateiRemove->getThis() );
-    neueDatei = dynamic_cast<Knopf *>( zNeueDatei->getThis() );
-    importDialog = 0;
-    importPfad = 0;
-    aktion = 0;
-    sichtbar = 0;
-    alpha = 0;
-    alpha2 = 0;
-    tickVal = 0;
+KEDBildSeite::KEDBildSeite(Knopf* zNeueDatei, Knopf* zDateiRemove)
+	: ReferenceCounter()
+{
+	bilder = initAuswahlListe(220, 10, 200, 510, AuswahlListe::Style::Normal, {});
+	bildObj = initBildZ(430, 10, 440, 440, BildZ::Style::normal | BildZ::Style::Alpha, 0);
+	bildLöschen = initKnopf(430, 460, 100, 20, Knopf::Style::Sichtbar, "Bild Löschen");
+	importieren = initKnopf(430, 490, 100, 20, Knopf::Style::Sichtbar, "Importieren");
+	dateiLöschen = dynamic_cast<Knopf*>(zDateiRemove->getThis());
+	neueDatei = dynamic_cast<Knopf*>(zNeueDatei->getThis());
+	importDialog = 0;
+	importPfad = 0;
+	aktion = 0;
+	sichtbar = 0;
+	alpha = 0;
+	alpha2 = 0;
+	tickVal = 0;
 }
 
 // Destruktor
 KEDBildSeite::~KEDBildSeite()
 {
-    bilder->release();
-    bildObj->release();
-    bildLöschen->release();
-    importieren->release();
-    dateiLöschen->release();
-    neueDatei->release();
-    if( importDialog )
-        importDialog->release();
-    if( importPfad )
-        importPfad->release();
+	bilder->release();
+	bildObj->release();
+	bildLöschen->release();
+	importieren->release();
+	dateiLöschen->release();
+	neueDatei->release();
+	if (importDialog)
+		importDialog->release();
+	if (importPfad)
+		importPfad->release();
 }
 
 // nicht constant
 int KEDBildSeite::getAktion()
 {
-    int ret = aktion;
-    aktion = 0;
-    return ret;
-}
-
-void KEDBildSeite::setBildListe( RCArray< Text > *list )
-{
-    uiFactory.initParam.bildschirm->lock();
-    Text txt = bilder->zEintrag( bilder->getAuswahl() ) ? bilder->zEintrag( bilder->getAuswahl() )->zText()->getText() : "";
-    while( bilder->getEintragAnzahl() )
-        bilder->removeEintrag( 0 );
-    int anz = list->getEintragAnzahl();
-    int ausw = -1;
-    for( int i = 0; i < anz; i++ )
-    {
-        if( list->z( i )->istGleich( txt ) )
-            ausw = i;
-        bilder->addEintrag( list->get( i ) );
-    }
-    if( ausw >= 0 )
-        bilder->setAuswahl( ausw );
-    else
-        bilder->deSelect();
-    list->release();
-    uiFactory.initParam.bildschirm->unlock();
-}
-
-void KEDBildSeite::setBild( Bild *b )
-{
-    uiFactory.initParam.bildschirm->lock();
-    bildObj->setBild( b );
-    uiFactory.initParam.bildschirm->unlock();
-}
-
-void KEDBildSeite::setSichtbar( bool s )
-{
-    sichtbar = s;
-}
-
-bool KEDBildSeite::tick( double tv )
-{
-    if( importDialog )
-    {
-        if( !importDialog->isRunning() )
-        {
-            if( importPfad )
-                importPfad->release();
-            importPfad = importDialog->getPfad();
-            importDialog = (DateiDialogTh *)importDialog->release();
-            if( sichtbar && importPfad )
-                aktion = 3;
-        }
-    }
-    bool ret = bilder->tick( tv );
-    ret |= bildObj->tick( tv );
-    ret |= bildLöschen->tick( tv );
-    ret |= importieren->tick( tv );
-    ret |= dateiLöschen->tick( tv );
-    ret |= neueDatei->tick( tv );
-    tickVal += tv * 150;
-    int val = 0;
-    if( tickVal > 1 )
-        val = (int)tickVal;
-    else
-        return ret;
-    if( sichtbar && alpha != 255 )
-    {
-        if( alpha + val > 255 )
-            alpha = 255;
-        else
-            alpha += val;
-        ret = 1;
-    }
-    if( !sichtbar && alpha != 0 )
-    {
-        if( alpha - val < 0 )
-            alpha = 0;
-        else
-            alpha -= val;
-        ret = 1;
-    }
-    if( sichtbar && bilder->getAuswahl() >= 0 && alpha2 != 255 )
-    {
-        if( alpha2 + val > 255 )
-            alpha2 = 255;
-        else
-            alpha2 += val;
-        ret = 1;
-    }
-    if( ( !sichtbar || bilder->getAuswahl() < 0 ) && alpha2 != 0 )
-    {
-        if( alpha2 - val < 0 )
-            alpha2 = 0;
-        else
-            alpha2 -= val;
-        ret = 1;
-    }
-    return ret;
-}
-
-void KEDBildSeite::doPublicMausEreignis( MausEreignis &me )
-{
-    if( !sichtbar )
-        return;
-    int ausw = bilder->getAuswahl();
-    bilder->doPublicMausEreignis( me );
-    if( ausw != bilder->getAuswahl() && me.id == ME_RLinks )
-    {
-        if( bilder->getAuswahl() >= 0 )
-            aktion = 1;
-        else
-            bilder->setAuswahl( ausw );
-    }
-    bool vera = me.verarbeitet;
-    dateiLöschen->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet && me.id == ME_RLinks )
-        aktion = 4;
-    vera = me.verarbeitet;
-    neueDatei->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet && me.id == ME_RLinks )
-        aktion = 5;
-    vera = me.verarbeitet;
-    importieren->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet && me.id == ME_RLinks )
-    {
-        if( !importDialog )
-        {
-            importDialog = new DateiDialogTh();
-            importDialog->setOpen( 1 );
-            importDialog->setDateiTypAuswahl( 4 );
-            importDialog->addDateiTyp( "JPEG-Bild", "*.jpg;*.jpeg;*.jpe" );
-            importDialog->addDateiTyp( "GIF-Bild", "*.gif" );
-            importDialog->addDateiTyp( "PNG-Bild", "*.png" );
-            importDialog->addDateiTyp( "Alle Dateien", "*.*" );
-            importDialog->start();
-        }
-    }
-    if( bilder->getAuswahl() < 0 )
-        return;
-    bildObj->doPublicMausEreignis( me );
-    vera = me.verarbeitet;
-    bildLöschen->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet && me.id == ME_RLinks )
-        aktion = 2;
-}
-
-void KEDBildSeite::render( Bild &zRObj )
-{
-    if( !alpha )
-        return;
-    zRObj.setAlpha( alpha );
-    bilder->render( zRObj );
-    neueDatei->setPosition( 540, 490 );
-    neueDatei->render( zRObj );
-    dateiLöschen->setPosition( 540, 460 );
-    dateiLöschen->render( zRObj );
-    importieren->render( zRObj );
-    zRObj.setAlpha( alpha2 );
-    bildObj->render( zRObj );
-    bildLöschen->render( zRObj );
-    zRObj.releaseAlpha();
-    zRObj.releaseAlpha();
+	int ret = aktion;
+	aktion = 0;
+	return ret;
+}
+
+void KEDBildSeite::setBildListe(RCArray< Text >* list)
+{
+	uiFactory.initParam.bildschirm->lock();
+	Text txt = bilder->zEintrag(bilder->getAuswahl()) ? bilder->zEintrag(bilder->getAuswahl())->zText()->getText() : "";
+	while (bilder->getEintragAnzahl())
+		bilder->removeEintrag(0);
+	int anz = list->getEintragAnzahl();
+	int ausw = -1;
+	for (int i = 0; i < anz; i++)
+	{
+		if (list->z(i)->istGleich(txt))
+			ausw = i;
+		bilder->addEintrag(list->get(i));
+	}
+	if (ausw >= 0)
+		bilder->setAuswahl(ausw);
+	else
+		bilder->deSelect();
+	list->release();
+	uiFactory.initParam.bildschirm->unlock();
+}
+
+void KEDBildSeite::setBild(Bild* b)
+{
+	uiFactory.initParam.bildschirm->lock();
+	bildObj->setBild(b);
+	uiFactory.initParam.bildschirm->unlock();
+}
+
+void KEDBildSeite::setSichtbar(bool s)
+{
+	sichtbar = s;
+}
+
+bool KEDBildSeite::tick(double tv)
+{
+	if (importDialog)
+	{
+		if (!importDialog->isRunning())
+		{
+			if (importPfad)
+				importPfad->release();
+			importPfad = importDialog->getPfad();
+			importDialog = (DateiDialogTh*)importDialog->release();
+			if (sichtbar && importPfad)
+				aktion = 3;
+		}
+	}
+	bool ret = bilder->tick(tv);
+	ret |= bildObj->tick(tv);
+	ret |= bildLöschen->tick(tv);
+	ret |= importieren->tick(tv);
+	ret |= dateiLöschen->tick(tv);
+	ret |= neueDatei->tick(tv);
+	tickVal += tv * 150;
+	int val = 0;
+	if (tickVal > 1)
+		val = (int)tickVal;
+	else
+		return ret;
+	if (sichtbar && alpha != 255)
+	{
+		if (alpha + val > 255)
+			alpha = 255;
+		else
+			alpha += val;
+		ret = 1;
+	}
+	if (!sichtbar && alpha != 0)
+	{
+		if (alpha - val < 0)
+			alpha = 0;
+		else
+			alpha -= val;
+		ret = 1;
+	}
+	if (sichtbar && bilder->getAuswahl() >= 0 && alpha2 != 255)
+	{
+		if (alpha2 + val > 255)
+			alpha2 = 255;
+		else
+			alpha2 += val;
+		ret = 1;
+	}
+	if ((!sichtbar || bilder->getAuswahl() < 0) && alpha2 != 0)
+	{
+		if (alpha2 - val < 0)
+			alpha2 = 0;
+		else
+			alpha2 -= val;
+		ret = 1;
+	}
+	return ret;
+}
+
+void KEDBildSeite::doPublicMausEreignis(MausEreignis& me)
+{
+	if (!sichtbar)
+		return;
+	int ausw = bilder->getAuswahl();
+	bilder->doPublicMausEreignis(me);
+	if (ausw != bilder->getAuswahl() && me.id == ME_RLinks)
+	{
+		if (bilder->getAuswahl() >= 0)
+			aktion = 1;
+		else
+			bilder->setAuswahl(ausw);
+	}
+	bool vera = me.verarbeitet;
+	dateiLöschen->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet && me.id == ME_RLinks)
+		aktion = 4;
+	vera = me.verarbeitet;
+	neueDatei->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet && me.id == ME_RLinks)
+		aktion = 5;
+	vera = me.verarbeitet;
+	importieren->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet && me.id == ME_RLinks)
+	{
+		if (!importDialog)
+		{
+			importDialog = new DateiDialogTh();
+			importDialog->setOpen(1);
+			importDialog->setDateiTypAuswahl(4);
+			importDialog->addDateiTyp("JPEG-Bild", "*.jpg;*.jpeg;*.jpe");
+			importDialog->addDateiTyp("GIF-Bild", "*.gif");
+			importDialog->addDateiTyp("PNG-Bild", "*.png");
+			importDialog->addDateiTyp("Alle Dateien", "*.*");
+			importDialog->start();
+		}
+	}
+	if (bilder->getAuswahl() < 0)
+		return;
+	bildObj->doPublicMausEreignis(me);
+	vera = me.verarbeitet;
+	bildLöschen->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet && me.id == ME_RLinks)
+		aktion = 2;
+}
+
+void KEDBildSeite::render(Bild& zRObj)
+{
+	if (!alpha)
+		return;
+	zRObj.setAlpha(alpha);
+	bilder->render(zRObj);
+	neueDatei->setPosition(540, 490);
+	neueDatei->render(zRObj);
+	dateiLöschen->setPosition(540, 460);
+	dateiLöschen->render(zRObj);
+	importieren->render(zRObj);
+	zRObj.setAlpha(alpha2);
+	bildObj->render(zRObj);
+	bildLöschen->render(zRObj);
+	zRObj.releaseAlpha();
+	zRObj.releaseAlpha();
 }
 
 // constant
-Text *KEDBildSeite::zBildImportPfad() const
+Text* KEDBildSeite::zBildImportPfad() const
 {
-    return importPfad;
+	return importPfad;
 }
 
-Text *KEDBildSeite::zBildAuswahl() const
+Text* KEDBildSeite::zBildAuswahl() const
 {
-    if( !bilder->zEintrag( bilder->getAuswahl() ) )
-        return 0;
-    return bilder->zEintrag( bilder->getAuswahl() )->zText();
+	if (!bilder->zEintrag(bilder->getAuswahl()))
+		return 0;
+	return bilder->zEintrag(bilder->getAuswahl())->zText();
 }
 
 
-bool kEDEditorNeuModelOkME( void *p, void *obj, MausEreignis me )
+bool kEDEditorNeuModelOkME(void* p, void* obj, MausEreignis me)
 {
-    if( p )
-        return ( (KEDModellSeite *)p )->neuModelOkME( me );
-    else if( me.id == ME_RLinks )
-        ( (Fenster *)obj )->removeStyle( Fenster::Style::Sichtbar );
-    return 1;
+	if (p)
+		return ((KEDModellSeite*)p)->neuModelOkME(me);
+	else if (me.id == ME_RLinks)
+		((Fenster*)obj)->removeStyle(Fenster::Style::Sichtbar);
+	return 1;
 }
 
 
 // Inhalt der KEDModellSeite Klasse aus KEDEditor.h
 // Konstruktor
-KEDModellSeite::KEDModellSeite( Knopf *zNeueDatei, Knopf *zDateiRemove, AuswahlListe *datL )
-    : ReferenceCounter()
-{
-    dateien = datL;
-    modelle = initAuswahlListe( 220, 10, 200, 510, AuswahlListe::Style::Normal, {} );
-    modelObj = new M2DVorschau();
-    modelObj->setPosition( 430, 10 );
-    modelObj->setSize( 440, 440 );
-    modelObj->setStyle( M2DVorschau::Style::Rahmen | M2DVorschau::Style::Erlaubt | M2DVorschau::Style::Sichtbar | M2DVorschau::Style::UsrMove | M2DVorschau::Style::UsrRot | M2DVorschau::Style::UsrScale );
-    modelObj->setRahmenFarbe( 0xFFFFFFFF );
-    modelObj->setMausEreignis( _ret1ME );
-    modelObj->setModel2DZ( new Model2D() );
-    modelObj->zModel()->setStyle( Model2D::Style::Erlaubt | Model2D::Style::Mesh | Model2D::Style::Sichtbar );
-    modelObj->zModel()->setFarbe( 0xFFFFFFFF );
-    modelLöschen = initKnopf( 430, 460, 100, 20, Knopf::Style::Sichtbar, "Modell2D Löschen" );
-    neuesModel = initKnopf( 430, 490, 100, 20, Knopf::Style::Sichtbar, "Neues Modell2D" );
-    bearbeiten = initKnopf( 550, 490, 100, 20, Knopf::Style::Sichtbar, "Bearbeiten" );
-    dateiLöschen = dynamic_cast<Knopf *>( zDateiRemove->getThis() );
-    neueDatei = dynamic_cast<Knopf *>( zNeueDatei->getThis() );
-    editor = new Model2DEditor::GUI();
-    neuModelF = initFenster( 365, 160, 150, 90, Fenster::Style::Erlaubt | Fenster::Style::BodyHintergrund | Fenster::Style::BodyHAlpha |
-                             Fenster::Style::Rahmen | Fenster::Style::Closable | Fenster::Style::ClosingKlickBuffer | Fenster::Style::ClosingHintergrund |
-                             Fenster::Style::ClosingHAlpha | Fenster::Style::Titel | Fenster::Style::TitelHintergrund | Fenster::Style::TitelHAlpha | Fenster::Style::TitelBuffered, "Neues Modell" );
-    neuModelF->setKBgFarbe( 0xC0000000 );
-    neuModelF->setSBgFarbe( 0xC0000000 );
-    neuModelF->setTBgFarbe( 0xC0000000 );
-    neuModelF->setClosingMe( kEDEditorNeuModelOkME );
-    neuModelName = initTextFeld( 10, 10, 130, 20, TextFeld::Style::TextFeld, "Name" );
-    neuModelOk = initKnopf( 25, 40, 100, 20, Knopf::Style::Normal | Knopf::Style::Sichtbar, "Erstellen" );
-    neuModelOk->setMausEreignisParameter( this );
-    neuModelOk->setMausEreignis( kEDEditorNeuModelOkME );
-    neuModelF->addMember( dynamic_cast<Zeichnung *>( neuModelName->getThis() ) );
-    neuModelF->addMember( dynamic_cast<Zeichnung *>( neuModelOk->getThis() ) );
-    aktion = 0;
-    sichtbar = 0;
-    alpha = 0;
-    alpha2 = 0;
-    alpha3 = 0;
-    tickVal = 0;
+KEDModellSeite::KEDModellSeite(Knopf* zNeueDatei, Knopf* zDateiRemove, AuswahlListe* datL)
+	: ReferenceCounter()
+{
+	dateien = datL;
+	modelle = initAuswahlListe(220, 10, 200, 510, AuswahlListe::Style::Normal, {});
+	modelObj = new M2DVorschau();
+	modelObj->setPosition(430, 10);
+	modelObj->setSize(440, 440);
+	modelObj->setStyle(M2DVorschau::Style::Rahmen | M2DVorschau::Style::Erlaubt | M2DVorschau::Style::Sichtbar | M2DVorschau::Style::UsrMove | M2DVorschau::Style::UsrRot | M2DVorschau::Style::UsrScale);
+	modelObj->setRahmenFarbe(0xFFFFFFFF);
+	modelObj->setMausEreignis(_ret1ME);
+	modelObj->setModel2DZ(new Model2D());
+	modelObj->zModel()->setStyle(Model2D::Style::Erlaubt | Model2D::Style::Mesh | Model2D::Style::Sichtbar);
+	modelObj->zModel()->setFarbe(0xFFFFFFFF);
+	modelLöschen = initKnopf(430, 460, 100, 20, Knopf::Style::Sichtbar, "Modell2D Löschen");
+	neuesModel = initKnopf(430, 490, 100, 20, Knopf::Style::Sichtbar, "Neues Modell2D");
+	bearbeiten = initKnopf(550, 490, 100, 20, Knopf::Style::Sichtbar, "Bearbeiten");
+	dateiLöschen = dynamic_cast<Knopf*>(zDateiRemove->getThis());
+	neueDatei = dynamic_cast<Knopf*>(zNeueDatei->getThis());
+	editor = new Model2DEditor::GUI();
+	neuModelF = initFenster(365, 160, 150, 90, Fenster::Style::Erlaubt | Fenster::Style::BodyHintergrund | Fenster::Style::BodyHAlpha |
+		Fenster::Style::Rahmen | Fenster::Style::Closable | Fenster::Style::ClosingKlickBuffer | Fenster::Style::ClosingHintergrund |
+		Fenster::Style::ClosingHAlpha | Fenster::Style::Titel | Fenster::Style::TitelHintergrund | Fenster::Style::TitelHAlpha | Fenster::Style::TitelBuffered, "Neues Modell");
+	neuModelF->setKBgFarbe(0xC0000000);
+	neuModelF->setSBgFarbe(0xC0000000);
+	neuModelF->setTBgFarbe(0xC0000000);
+	neuModelF->setClosingMe(kEDEditorNeuModelOkME);
+	neuModelName = initTextFeld(10, 10, 130, 20, TextFeld::Style::TextFeld, "Name");
+	neuModelOk = initKnopf(25, 40, 100, 20, Knopf::Style::Normal | Knopf::Style::Sichtbar, "Erstellen");
+	neuModelOk->setMausEreignisParameter(this);
+	neuModelOk->setMausEreignis(kEDEditorNeuModelOkME);
+	neuModelF->addMember(dynamic_cast<Zeichnung*>(neuModelName->getThis()));
+	neuModelF->addMember(dynamic_cast<Zeichnung*>(neuModelOk->getThis()));
+	aktion = 0;
+	sichtbar = 0;
+	alpha = 0;
+	alpha2 = 0;
+	alpha3 = 0;
+	tickVal = 0;
 }
 
 // Destruktor
 KEDModellSeite::~KEDModellSeite()
 {
-    dateien->release();
-    modelle->release();
-    modelObj->release();
-    modelLöschen->release();
-    neuesModel->release();
-    dateiLöschen->release();
-    neueDatei->release();
-    bearbeiten->release();
-    editor->release();
-    neuModelF->release();
-    neuModelName->release();
-    neuModelOk->release();
+	dateien->release();
+	modelle->release();
+	modelObj->release();
+	modelLöschen->release();
+	neuesModel->release();
+	dateiLöschen->release();
+	neueDatei->release();
+	bearbeiten->release();
+	editor->release();
+	neuModelF->release();
+	neuModelName->release();
+	neuModelOk->release();
 }
 
 // nicht constant
 int KEDModellSeite::getAktion()
 {
-    int ret = aktion;
-    aktion = 0;
-    return ret;
-}
-
-bool KEDModellSeite::neuModelOkME( MausEreignis &me )
-{
-    if( me.id == ME_RLinks )
-    {
-        neuModelF->removeStyle( Fenster::Style::Sichtbar );
-        aktion = 4;
-    }
-    return 1;
-}
-
-void KEDModellSeite::setModelListe( RCArray< Text > *list )
-{
-    uiFactory.initParam.bildschirm->lock();
-    Text txt = modelle->zEintrag( modelle->getAuswahl() ) ? modelle->zEintrag( modelle->getAuswahl() )->zText()->getText() : "";
-    while( modelle->getEintragAnzahl() )
-        modelle->removeEintrag( 0 );
-    int anz = list->getEintragAnzahl();
-    int ausw = -1;
-    for( int i = 0; i < anz; i++ )
-    {
-        if( list->z( i )->istGleich( txt ) )
-            ausw = i;
-        modelle->addEintrag( list->get( i ) );
-    }
-    if( ausw >= 0 )
-        modelle->setAuswahl( ausw );
-    else
-        modelle->deSelect();
-    list->release();
-    uiFactory.initParam.bildschirm->unlock();
-}
-
-void KEDModellSeite::setModel( Model2DData *mdl )
-{
-    modelObj->setModel2D( dynamic_cast<Model2DData *>( mdl->getThis() ) );
-    editor->setModel( mdl );
-}
-
-void KEDModellSeite::setSichtbar( bool s )
-{
-    sichtbar = s;
-}
-
-bool KEDModellSeite::tick( double tv )
-{
-    bool ret = modelle->tick( tv );
-    ret |= modelObj->tick( tv );
-    ret |= modelLöschen->tick( tv );
-    ret |= neuesModel->tick( tv );
-    ret |= dateiLöschen->tick( tv );
-    ret |= neueDatei->tick( tv );
-    ret |= bearbeiten->tick( tv );
-    ret |= editor->tick( tv );
-    ret |= neuModelF->tick( tv );
-    int a = editor->getAktion();
-    if( a == 1 || a == 2 )
-    {
-        editor->setSichtbar( 0 );
-        modelObj->addStyle( Model2D::Style::Sichtbar );
-        modelle->addStyle( Model2D::Style::Sichtbar );
-        dateien->addStyle( AuswahlListe::Style::Sichtbar );
-        dateiLöschen->addStyle( Knopf::Style::Sichtbar );
-        neueDatei->addStyle( Knopf::Style::Sichtbar );
-        neuesModel->addStyle( Knopf::Style::Sichtbar );
-        modelLöschen->addStyle( Knopf::Style::Sichtbar );
-        bearbeiten->addStyle( Knopf::Style::Sichtbar );
-    }
-    if( a == 1 )
-        aktion = 3;
-    tickVal += tv * 150;
-    int val = 0;
-    if( tickVal > 1 )
-        val = (int)tickVal;
-    else
-        return ret;
-    if( sichtbar && alpha != 255 )
-    {
-        if( alpha + val > 255 )
-            alpha = 255;
-        else
-            alpha += val;
-        ret = 1;
-    }
-    if( !sichtbar && alpha != 0 )
-    {
-        if( alpha - val < 0 )
-            alpha = 0;
-        else
-            alpha -= val;
-        ret = 1;
-    }
-    if( sichtbar && modelle->getAuswahl() >= 0 && alpha2 != 255 )
-    {
-        if( alpha2 + val > 255 )
-            alpha2 = 255;
-        else
-            alpha2 += val;
-        ret = 1;
-    }
-    if( ( !sichtbar || modelle->getAuswahl() < 0 ) && alpha2 != 0 )
-    {
-        if( alpha2 - val < 0 )
-            alpha2 = 0;
-        else
-            alpha2 -= val;
-        ret = 1;
-    }
-    if( sichtbar && neuModelF->hatStyle( Fenster::Style::Sichtbar ) && alpha3 > 100 )
-    {
-        if( alpha3 - val < 100 )
-            alpha3 = 100;
-        else
-            alpha3 -= val;
-        ret = 1;
-    }
-    if( sichtbar && neuModelF->hatStyleNicht( Fenster::Style::Sichtbar ) && alpha3 < 255 )
-    {
-        if( alpha3 + val > 255 )
-            alpha3 = 255;
-        else
-            alpha3 += val;
-        ret = 1;
-    }
-    return ret;
-}
-
-void KEDModellSeite::doPublicMausEreignis( MausEreignis &me )
-{
-    if( !sichtbar )
-        return;
-    if( neuModelF->hatStyle( Fenster::Style::Sichtbar ) )
-    {
-        neuModelF->doPublicMausEreignis( me );
-        return;
-    }
-    int ausw = modelle->getAuswahl();
-    modelle->doPublicMausEreignis( me );
-    if( ausw != modelle->getAuswahl() && me.id == ME_RLinks )
-    {
-        if( modelle->getAuswahl() >= 0 )
-            aktion = 1;
-        else
-            modelle->setAuswahl( ausw );
-    }
-    bool vera = me.verarbeitet;
-    dateiLöschen->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet && me.id == ME_RLinks )
-        aktion = 5;
-    vera = me.verarbeitet;
-    neueDatei->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet && me.id == ME_RLinks )
-        aktion = 6;
-    vera = me.verarbeitet;
-    neuesModel->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet && me.id == ME_RLinks )
-        neuModelF->addStyle( Fenster::Style::Sichtbar );
-    vera = me.verarbeitet;
-    if( modelle->getAuswahl() < 0 )
-        return;
-    bearbeiten->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet && me.id == ME_RLinks )
-    {
-        editor->setSichtbar( 1 );
-        modelObj->removeStyle( Model2D::Style::Sichtbar );
-        modelle->removeStyle( Model2D::Style::Sichtbar );
-        dateien->removeStyle( AuswahlListe::Style::Sichtbar );
-        dateiLöschen->removeStyle( Knopf::Style::Sichtbar );
-        neueDatei->removeStyle( Knopf::Style::Sichtbar );
-        neuesModel->removeStyle( Knopf::Style::Sichtbar );
-        bearbeiten->removeStyle( Knopf::Style::Sichtbar );
-        modelLöschen->removeStyle( Knopf::Style::Sichtbar );
-    }
-    modelObj->doPublicMausEreignis( me );
-    editor->doPublicMausEreignis( me );
-    vera = me.verarbeitet;
-    modelLöschen->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet && me.id == ME_RLinks )
-        aktion = 2;
-}
-
-void KEDModellSeite::doTastaturEreignis( TastaturEreignis &te )
-{
-    if( neuModelF->hatStyle( Fenster::Style::Sichtbar ) )
-    {
-        neuModelF->doTastaturEreignis( te );
-        return;
-    }
-    editor->doTastaturEreignis( te );
-}
-
-void KEDModellSeite::render( Bild &zRObj )
-{
-    if( !alpha )
-        return;
-    zRObj.setAlpha( alpha );
-    zRObj.setAlpha( alpha3 );
-    modelle->render( zRObj );
-    neuesModel->render( zRObj );
-    neueDatei->setPosition( 670, 490 );
-    neueDatei->render( zRObj );
-    dateiLöschen->setPosition( 670, 460 );
-    dateiLöschen->render( zRObj );
-    if( modelle->getAuswahl() >= 0 )
-    {
-        bearbeiten->render( zRObj );
-        modelLöschen->render( zRObj );
-        zRObj.setAlpha( alpha2 );
-        modelObj->render( zRObj );
-        editor->render( zRObj );
-        zRObj.releaseAlpha();
-    }
-    zRObj.releaseAlpha();
-    neuModelF->render( zRObj );
-    zRObj.releaseAlpha();
+	int ret = aktion;
+	aktion = 0;
+	return ret;
+}
+
+bool KEDModellSeite::neuModelOkME(MausEreignis& me)
+{
+	if (me.id == ME_RLinks)
+	{
+		neuModelF->removeStyle(Fenster::Style::Sichtbar);
+		aktion = 4;
+	}
+	return 1;
+}
+
+void KEDModellSeite::setModelListe(RCArray< Text >* list)
+{
+	uiFactory.initParam.bildschirm->lock();
+	Text txt = modelle->zEintrag(modelle->getAuswahl()) ? modelle->zEintrag(modelle->getAuswahl())->zText()->getText() : "";
+	while (modelle->getEintragAnzahl())
+		modelle->removeEintrag(0);
+	int anz = list->getEintragAnzahl();
+	int ausw = -1;
+	for (int i = 0; i < anz; i++)
+	{
+		if (list->z(i)->istGleich(txt))
+			ausw = i;
+		modelle->addEintrag(list->get(i));
+	}
+	if (ausw >= 0)
+		modelle->setAuswahl(ausw);
+	else
+		modelle->deSelect();
+	list->release();
+	uiFactory.initParam.bildschirm->unlock();
+}
+
+void KEDModellSeite::setModel(Model2DData* mdl)
+{
+	modelObj->setModel2D(dynamic_cast<Model2DData*>(mdl->getThis()));
+	editor->setModel(mdl);
+}
+
+void KEDModellSeite::setSichtbar(bool s)
+{
+	sichtbar = s;
+}
+
+bool KEDModellSeite::tick(double tv)
+{
+	bool ret = modelle->tick(tv);
+	ret |= modelObj->tick(tv);
+	ret |= modelLöschen->tick(tv);
+	ret |= neuesModel->tick(tv);
+	ret |= dateiLöschen->tick(tv);
+	ret |= neueDatei->tick(tv);
+	ret |= bearbeiten->tick(tv);
+	ret |= editor->tick(tv);
+	ret |= neuModelF->tick(tv);
+	int a = editor->getAktion();
+	if (a == 1 || a == 2)
+	{
+		editor->setSichtbar(0);
+		modelObj->addStyle(Model2D::Style::Sichtbar);
+		modelle->addStyle(Model2D::Style::Sichtbar);
+		dateien->addStyle(AuswahlListe::Style::Sichtbar);
+		dateiLöschen->addStyle(Knopf::Style::Sichtbar);
+		neueDatei->addStyle(Knopf::Style::Sichtbar);
+		neuesModel->addStyle(Knopf::Style::Sichtbar);
+		modelLöschen->addStyle(Knopf::Style::Sichtbar);
+		bearbeiten->addStyle(Knopf::Style::Sichtbar);
+	}
+	if (a == 1)
+		aktion = 3;
+	tickVal += tv * 150;
+	int val = 0;
+	if (tickVal > 1)
+		val = (int)tickVal;
+	else
+		return ret;
+	if (sichtbar && alpha != 255)
+	{
+		if (alpha + val > 255)
+			alpha = 255;
+		else
+			alpha += val;
+		ret = 1;
+	}
+	if (!sichtbar && alpha != 0)
+	{
+		if (alpha - val < 0)
+			alpha = 0;
+		else
+			alpha -= val;
+		ret = 1;
+	}
+	if (sichtbar && modelle->getAuswahl() >= 0 && alpha2 != 255)
+	{
+		if (alpha2 + val > 255)
+			alpha2 = 255;
+		else
+			alpha2 += val;
+		ret = 1;
+	}
+	if ((!sichtbar || modelle->getAuswahl() < 0) && alpha2 != 0)
+	{
+		if (alpha2 - val < 0)
+			alpha2 = 0;
+		else
+			alpha2 -= val;
+		ret = 1;
+	}
+	if (sichtbar && neuModelF->hatStyle(Fenster::Style::Sichtbar) && alpha3 > 100)
+	{
+		if (alpha3 - val < 100)
+			alpha3 = 100;
+		else
+			alpha3 -= val;
+		ret = 1;
+	}
+	if (sichtbar && neuModelF->hatStyleNicht(Fenster::Style::Sichtbar) && alpha3 < 255)
+	{
+		if (alpha3 + val > 255)
+			alpha3 = 255;
+		else
+			alpha3 += val;
+		ret = 1;
+	}
+	return ret;
+}
+
+void KEDModellSeite::doPublicMausEreignis(MausEreignis& me)
+{
+	if (!sichtbar)
+		return;
+	if (neuModelF->hatStyle(Fenster::Style::Sichtbar))
+	{
+		neuModelF->doPublicMausEreignis(me);
+		return;
+	}
+	int ausw = modelle->getAuswahl();
+	modelle->doPublicMausEreignis(me);
+	if (ausw != modelle->getAuswahl() && me.id == ME_RLinks)
+	{
+		if (modelle->getAuswahl() >= 0)
+			aktion = 1;
+		else
+			modelle->setAuswahl(ausw);
+	}
+	bool vera = me.verarbeitet;
+	dateiLöschen->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet && me.id == ME_RLinks)
+		aktion = 5;
+	vera = me.verarbeitet;
+	neueDatei->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet && me.id == ME_RLinks)
+		aktion = 6;
+	vera = me.verarbeitet;
+	neuesModel->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet && me.id == ME_RLinks)
+		neuModelF->addStyle(Fenster::Style::Sichtbar);
+	vera = me.verarbeitet;
+	if (modelle->getAuswahl() < 0)
+		return;
+	bearbeiten->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet && me.id == ME_RLinks)
+	{
+		editor->setSichtbar(1);
+		modelObj->removeStyle(Model2D::Style::Sichtbar);
+		modelle->removeStyle(Model2D::Style::Sichtbar);
+		dateien->removeStyle(AuswahlListe::Style::Sichtbar);
+		dateiLöschen->removeStyle(Knopf::Style::Sichtbar);
+		neueDatei->removeStyle(Knopf::Style::Sichtbar);
+		neuesModel->removeStyle(Knopf::Style::Sichtbar);
+		bearbeiten->removeStyle(Knopf::Style::Sichtbar);
+		modelLöschen->removeStyle(Knopf::Style::Sichtbar);
+	}
+	modelObj->doPublicMausEreignis(me);
+	editor->doPublicMausEreignis(me);
+	vera = me.verarbeitet;
+	modelLöschen->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet && me.id == ME_RLinks)
+		aktion = 2;
+}
+
+void KEDModellSeite::doTastaturEreignis(TastaturEreignis& te)
+{
+	if (neuModelF->hatStyle(Fenster::Style::Sichtbar))
+	{
+		neuModelF->doTastaturEreignis(te);
+		return;
+	}
+	editor->doTastaturEreignis(te);
+}
+
+void KEDModellSeite::render(Bild& zRObj)
+{
+	if (!alpha)
+		return;
+	zRObj.setAlpha(alpha);
+	zRObj.setAlpha(alpha3);
+	modelle->render(zRObj);
+	neuesModel->render(zRObj);
+	neueDatei->setPosition(670, 490);
+	neueDatei->render(zRObj);
+	dateiLöschen->setPosition(670, 460);
+	dateiLöschen->render(zRObj);
+	if (modelle->getAuswahl() >= 0)
+	{
+		bearbeiten->render(zRObj);
+		modelLöschen->render(zRObj);
+		zRObj.setAlpha(alpha2);
+		modelObj->render(zRObj);
+		editor->render(zRObj);
+		zRObj.releaseAlpha();
+	}
+	zRObj.releaseAlpha();
+	neuModelF->render(zRObj);
+	zRObj.releaseAlpha();
 }
 
 // constant
-Text *KEDModellSeite::zModelAuswahl() const
+Text* KEDModellSeite::zModelAuswahl() const
 {
-    if( !modelle->zEintrag( modelle->getAuswahl() ) )
-        return 0;
-    return modelle->zEintrag( modelle->getAuswahl() )->zText();
+	if (!modelle->zEintrag(modelle->getAuswahl()))
+		return 0;
+	return modelle->zEintrag(modelle->getAuswahl())->zText();
 }
 
-Text *KEDModellSeite::zNeuModelName() const
+Text* KEDModellSeite::zNeuModelName() const
 {
-    return neuModelName->zText();
+	return neuModelName->zText();
 }
 
-Model2DData *KEDModellSeite::getModelData() const
+Model2DData* KEDModellSeite::getModelData() const
 {
-    return editor->getM2Data();
+	return editor->getM2Data();
 }
 
 
 // Inhalt der KEDSoundSeite Klasse aus KEDEditor.h
 // Konstruktor
-KEDSoundSeite::KEDSoundSeite( Knopf *zNeueDatei, Knopf *zDateiRemove )
-    : ReferenceCounter()
-{
-    Framework::getDLLRegister()->ladeDLL( "GSL.dll", "data/bin/GSL.dll" );
-    sounds = initAuswahlListe( 220, 10, 200, 510, AuswahlListe::Style::Normal, {} );
-    play = initKnopf( 430, 430, 100, 20, Knopf::Style::Sichtbar, "Play" );
-    soundLöschen = initKnopf( 430, 460, 100, 20, Knopf::Style::Sichtbar, "Bild Löschen" );
-    importieren = initKnopf( 430, 490, 100, 20, Knopf::Style::Sichtbar, "Importieren" );
-    dateiLöschen = dynamic_cast<Knopf *>( zDateiRemove->getThis() );
-    neueDatei = dynamic_cast<Knopf *>( zNeueDatei->getThis() );
-    importDialog = 0;
-    importPfad = 0;
-    aktion = 0;
-    sichtbar = 0;
-    alpha = 0;
-    alpha2 = 0;
-    tickVal = 0;
-    sound = 0;
+KEDSoundSeite::KEDSoundSeite(Knopf* zNeueDatei, Knopf* zDateiRemove)
+	: ReferenceCounter()
+{
+	Framework::getDLLRegister()->ladeDLL("GSL.dll", "data/bin/GSL.dll");
+	sounds = initAuswahlListe(220, 10, 200, 510, AuswahlListe::Style::Normal, {});
+	play = initKnopf(430, 430, 100, 20, Knopf::Style::Sichtbar, "Play");
+	soundLöschen = initKnopf(430, 460, 100, 20, Knopf::Style::Sichtbar, "Bild Löschen");
+	importieren = initKnopf(430, 490, 100, 20, Knopf::Style::Sichtbar, "Importieren");
+	dateiLöschen = dynamic_cast<Knopf*>(zDateiRemove->getThis());
+	neueDatei = dynamic_cast<Knopf*>(zNeueDatei->getThis());
+	importDialog = 0;
+	importPfad = 0;
+	aktion = 0;
+	sichtbar = 0;
+	alpha = 0;
+	alpha2 = 0;
+	tickVal = 0;
+	sound = 0;
 }
 
 // Destruktor
 KEDSoundSeite::~KEDSoundSeite()
 {
-    if( sound )
-    {
-        sound->stopSound();
-        sound->release();
-    }
-    Framework::getDLLRegister()->releaseDLL( "GSL.dll" );
-    sounds->release();
-    play->release();
-    soundLöschen->release();
-    importieren->release();
-    dateiLöschen->release();
-    neueDatei->release();
-    if( importDialog )
-        importDialog->release();
-    if( importPfad )
-        importPfad->release();
+	if (sound)
+	{
+		sound->stopSound();
+		sound->release();
+	}
+	Framework::getDLLRegister()->releaseDLL("GSL.dll");
+	sounds->release();
+	play->release();
+	soundLöschen->release();
+	importieren->release();
+	dateiLöschen->release();
+	neueDatei->release();
+	if (importDialog)
+		importDialog->release();
+	if (importPfad)
+		importPfad->release();
 }
 
 // nicht constant
 int KEDSoundSeite::getAktion()
 {
-    int ret = aktion;
-    aktion = 0;
-    return ret;
-}
-
-void KEDSoundSeite::setSoundListe( RCArray< Text > *list )
-{
-    uiFactory.initParam.bildschirm->lock();
-    Text txt = sounds->zEintrag( sounds->getAuswahl() ) ? sounds->zEintrag( sounds->getAuswahl() )->zText()->getText() : "";
-    while( sounds->getEintragAnzahl() )
-        sounds->removeEintrag( 0 );
-    int anz = list->getEintragAnzahl();
-    int ausw = -1;
-    for( int i = 0; i < anz; i++ )
-    {
-        if( list->z( i )->istGleich( txt ) )
-            ausw = i;
-        sounds->addEintrag( list->get( i ) );
-    }
-    if( ausw >= 0 )
-        sounds->setAuswahl( ausw );
-    else
-        sounds->deSelect();
-    list->release();
-    uiFactory.initParam.bildschirm->unlock();
-}
-
-void KEDSoundSeite::setSound( GSL::GSLSoundV *b )
-{
-    if( sound )
-    {
-        sound->stopSound();
-        sound->release();
-    }
-    sound = b;
-    int vol = userOptions->wertExistiert( "GUISound" ) ? *userOptions->zWert( "GUISound" ) : 100;
-    sound->setVolume( (int)( ( vol / 100.0 ) * 0xFFFF ), (int)( ( vol / 100.0 ) * 0xFFFF ) );
-    sound->playSound();
-}
-
-void KEDSoundSeite::setSichtbar( bool s )
-{
-    sichtbar = s;
-}
-
-bool KEDSoundSeite::tick( double tv )
-{
-    if( importDialog )
-    {
-        if( !importDialog->isRunning() )
-        {
-            if( importPfad )
-                importPfad->release();
-            importPfad = importDialog->getPfad();
-            importDialog = (DateiDialogTh *)importDialog->release();
-            if( sichtbar && importPfad )
-                aktion = 3;
-        }
-    }
-    bool ret = sounds->tick( tv );
-    ret |= play->tick( tv );
-    ret |= soundLöschen->tick( tv );
-    ret |= importieren->tick( tv );
-    ret |= dateiLöschen->tick( tv );
-    ret |= neueDatei->tick( tv );
-    tickVal += tv * 150;
-    int val = 0;
-    if( tickVal > 1 )
-        val = (int)tickVal;
-    else
-        return ret;
-    if( sichtbar && alpha != 255 )
-    {
-        if( alpha + val > 255 )
-            alpha = 255;
-        else
-            alpha += val;
-        ret = 1;
-    }
-    if( !sichtbar && alpha != 0 )
-    {
-        if( alpha - val < 0 )
-            alpha = 0;
-        else
-            alpha -= val;
-        ret = 1;
-    }
-    if( sichtbar && sounds->getAuswahl() >= 0 && alpha2 != 255 )
-    {
-        if( alpha2 + val > 255 )
-            alpha2 = 255;
-        else
-            alpha2 += val;
-        ret = 1;
-    }
-    if( ( !sichtbar || sounds->getAuswahl() < 0 ) && alpha2 != 0 )
-    {
-        if( alpha2 - val < 0 )
-            alpha2 = 0;
-        else
-            alpha2 -= val;
-        ret = 1;
-    }
-    return ret;
-}
-
-void KEDSoundSeite::doPublicMausEreignis( MausEreignis &me )
-{
-    if( !sichtbar )
-        return;
-    int ausw = sounds->getAuswahl();
-    sounds->doPublicMausEreignis( me );
-    if( ausw != sounds->getAuswahl() && me.id == ME_RLinks )
-    {
-        if( sounds->getAuswahl() >= 0 )
-        {
-            if( sound )
-                sound->stopSound();
-        }
-        else
-            sounds->setAuswahl( ausw );
-    }
-    bool vera = me.verarbeitet;
-    dateiLöschen->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet && me.id == ME_RLinks )
-        aktion = 4;
-    vera = me.verarbeitet;
-    neueDatei->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet && me.id == ME_RLinks )
-        aktion = 5;
-    vera = me.verarbeitet;
-    importieren->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet && me.id == ME_RLinks )
-    {
-        if( !importDialog )
-        {
-            importDialog = new DateiDialogTh();
-            importDialog->setOpen( 1 );
-            importDialog->setDateiTypAuswahl( 4 );
-            importDialog->addDateiTyp( "WAV-Sound", "*.wav" );
-            importDialog->addDateiTyp( "Alle Dateien", "*.*" );
-            importDialog->start();
-        }
-    }
-    if( sounds->getAuswahl() < 0 )
-        return;
-    vera = me.verarbeitet;
-    play->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet && me.id == ME_RLinks )
-    {
-        if( sound )
-            sound->stopSound();
-        aktion = 1;
-    }
-    vera = me.verarbeitet;
-    soundLöschen->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet && me.id == ME_RLinks )
-        aktion = 2;
-}
-
-void KEDSoundSeite::render( Bild &zRObj )
-{
-    if( !alpha )
-        return;
-    zRObj.setAlpha( alpha );
-    sounds->render( zRObj );
-    neueDatei->setPosition( 540, 490 );
-    neueDatei->render( zRObj );
-    dateiLöschen->setPosition( 540, 460 );
-    dateiLöschen->render( zRObj );
-    importieren->render( zRObj );
-    zRObj.setAlpha( alpha2 );
-    play->render( zRObj );
-    soundLöschen->render( zRObj );
-    zRObj.releaseAlpha();
-    zRObj.releaseAlpha();
+	int ret = aktion;
+	aktion = 0;
+	return ret;
+}
+
+void KEDSoundSeite::setSoundListe(RCArray< Text >* list)
+{
+	uiFactory.initParam.bildschirm->lock();
+	Text txt = sounds->zEintrag(sounds->getAuswahl()) ? sounds->zEintrag(sounds->getAuswahl())->zText()->getText() : "";
+	while (sounds->getEintragAnzahl())
+		sounds->removeEintrag(0);
+	int anz = list->getEintragAnzahl();
+	int ausw = -1;
+	for (int i = 0; i < anz; i++)
+	{
+		if (list->z(i)->istGleich(txt))
+			ausw = i;
+		sounds->addEintrag(list->get(i));
+	}
+	if (ausw >= 0)
+		sounds->setAuswahl(ausw);
+	else
+		sounds->deSelect();
+	list->release();
+	uiFactory.initParam.bildschirm->unlock();
+}
+
+void KEDSoundSeite::setSound(GSL::GSLSoundV* b)
+{
+	if (sound)
+	{
+		sound->stopSound();
+		sound->release();
+	}
+	sound = b;
+	int vol = userOptions->wertExistiert("GUISound") ? (int)*userOptions->zWert("GUISound") : 100;
+	sound->setVolume((int)((vol / 100.0) * 0xFFFF), (int)((vol / 100.0) * 0xFFFF));
+	sound->playSound();
+}
+
+void KEDSoundSeite::setSichtbar(bool s)
+{
+	sichtbar = s;
+}
+
+bool KEDSoundSeite::tick(double tv)
+{
+	if (importDialog)
+	{
+		if (!importDialog->isRunning())
+		{
+			if (importPfad)
+				importPfad->release();
+			importPfad = importDialog->getPfad();
+			importDialog = (DateiDialogTh*)importDialog->release();
+			if (sichtbar && importPfad)
+				aktion = 3;
+		}
+	}
+	bool ret = sounds->tick(tv);
+	ret |= play->tick(tv);
+	ret |= soundLöschen->tick(tv);
+	ret |= importieren->tick(tv);
+	ret |= dateiLöschen->tick(tv);
+	ret |= neueDatei->tick(tv);
+	tickVal += tv * 150;
+	int val = 0;
+	if (tickVal > 1)
+		val = (int)tickVal;
+	else
+		return ret;
+	if (sichtbar && alpha != 255)
+	{
+		if (alpha + val > 255)
+			alpha = 255;
+		else
+			alpha += val;
+		ret = 1;
+	}
+	if (!sichtbar && alpha != 0)
+	{
+		if (alpha - val < 0)
+			alpha = 0;
+		else
+			alpha -= val;
+		ret = 1;
+	}
+	if (sichtbar && sounds->getAuswahl() >= 0 && alpha2 != 255)
+	{
+		if (alpha2 + val > 255)
+			alpha2 = 255;
+		else
+			alpha2 += val;
+		ret = 1;
+	}
+	if ((!sichtbar || sounds->getAuswahl() < 0) && alpha2 != 0)
+	{
+		if (alpha2 - val < 0)
+			alpha2 = 0;
+		else
+			alpha2 -= val;
+		ret = 1;
+	}
+	return ret;
+}
+
+void KEDSoundSeite::doPublicMausEreignis(MausEreignis& me)
+{
+	if (!sichtbar)
+		return;
+	int ausw = sounds->getAuswahl();
+	sounds->doPublicMausEreignis(me);
+	if (ausw != sounds->getAuswahl() && me.id == ME_RLinks)
+	{
+		if (sounds->getAuswahl() >= 0)
+		{
+			if (sound)
+				sound->stopSound();
+		}
+		else
+			sounds->setAuswahl(ausw);
+	}
+	bool vera = me.verarbeitet;
+	dateiLöschen->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet && me.id == ME_RLinks)
+		aktion = 4;
+	vera = me.verarbeitet;
+	neueDatei->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet && me.id == ME_RLinks)
+		aktion = 5;
+	vera = me.verarbeitet;
+	importieren->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet && me.id == ME_RLinks)
+	{
+		if (!importDialog)
+		{
+			importDialog = new DateiDialogTh();
+			importDialog->setOpen(1);
+			importDialog->setDateiTypAuswahl(4);
+			importDialog->addDateiTyp("WAV-Sound", "*.wav");
+			importDialog->addDateiTyp("Alle Dateien", "*.*");
+			importDialog->start();
+		}
+	}
+	if (sounds->getAuswahl() < 0)
+		return;
+	vera = me.verarbeitet;
+	play->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet && me.id == ME_RLinks)
+	{
+		if (sound)
+			sound->stopSound();
+		aktion = 1;
+	}
+	vera = me.verarbeitet;
+	soundLöschen->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet && me.id == ME_RLinks)
+		aktion = 2;
+}
+
+void KEDSoundSeite::render(Bild& zRObj)
+{
+	if (!alpha)
+		return;
+	zRObj.setAlpha(alpha);
+	sounds->render(zRObj);
+	neueDatei->setPosition(540, 490);
+	neueDatei->render(zRObj);
+	dateiLöschen->setPosition(540, 460);
+	dateiLöschen->render(zRObj);
+	importieren->render(zRObj);
+	zRObj.setAlpha(alpha2);
+	play->render(zRObj);
+	soundLöschen->render(zRObj);
+	zRObj.releaseAlpha();
+	zRObj.releaseAlpha();
 }
 
 // constant
-Text *KEDSoundSeite::zSoundImportPfad() const
+Text* KEDSoundSeite::zSoundImportPfad() const
 {
-    return importPfad;
+	return importPfad;
 }
 
-Text *KEDSoundSeite::zSoundAuswahl() const
+Text* KEDSoundSeite::zSoundAuswahl() const
 {
-    if( !sounds->zEintrag( sounds->getAuswahl() ) )
-        return 0;
-    return sounds->zEintrag( sounds->getAuswahl() )->zText();
+	if (!sounds->zEintrag(sounds->getAuswahl()))
+		return 0;
+	return sounds->zEintrag(sounds->getAuswahl())->zText();
 }
 
 
-bool kEDEditorNeuDateiOkME( void *p, void *obj, MausEreignis me )
+bool kEDEditorNeuDateiOkME(void* p, void* obj, MausEreignis me)
 {
-    if( p )
-        return ( (KEDEditor *)p )->neuDateiOkME( me );
-    else if( me.id == ME_RLinks )
-        ( (Fenster *)obj )->removeStyle( Fenster::Style::Sichtbar );
-    return 1;
+	if (p)
+		return ((KEDEditor*)p)->neuDateiOkME(me);
+	else if (me.id == ME_RLinks)
+		((Fenster*)obj)->removeStyle(Fenster::Style::Sichtbar);
+	return 1;
 }
 
 
 // Inhalt der KEDEditor Klasse aus KEDEditor.h
 // Konstruktor
 KEDEditor::KEDEditor()
-    : Zeichnung()
-{
-    neueDatei = initKnopf( 0, 0, 100, 20, Knopf::Style::Sichtbar, "Neue Datei" );
-    dateiLöschen = initKnopf( 0, 0, 100, 20, Knopf::Style::Sichtbar, "Datei Löschen" );
-    dateien = initAuswahlListe( 10, 10, 200, 510, AuswahlListe::Style::Normal, {} );
-    bildSeite = new KEDBildSeite( neueDatei, dateiLöschen );
-    modelSeite = new KEDModellSeite( neueDatei, dateiLöschen, dynamic_cast<AuswahlListe *>( dateien->getThis() ) );
-    soundSeite = new KEDSoundSeite( neueDatei, dateiLöschen );
-    neuDateiF = initFenster( 365, 145, 150, 120, Fenster::Style::Erlaubt | Fenster::Style::BodyHintergrund | Fenster::Style::BodyHAlpha |
-                             Fenster::Style::Rahmen | Fenster::Style::Closable | Fenster::Style::ClosingKlickBuffer | Fenster::Style::ClosingHintergrund |
-                             Fenster::Style::ClosingHAlpha | Fenster::Style::Titel | Fenster::Style::TitelHintergrund | Fenster::Style::TitelHAlpha | Fenster::Style::TitelBuffered, "Neue Datei" );
-    neuDateiF->setKBgFarbe( 0xC0000000 );
-    neuDateiF->setSBgFarbe( 0xC0000000 );
-    neuDateiF->setTBgFarbe( 0xC0000000 );
-    neuDateiF->setClosingMe( kEDEditorNeuDateiOkME );
-    neuDateiTyp = initAuswahlBox( 10, 10, 130, 20, ABSTYLE, { "Ordner", "Bild (.ltdb)", "Modell 2D (.m2)", "Sound (.gsl)" } );
-    neuDateiName = initTextFeld( 10, 40, 130, 20, TextFeld::Style::TextFeld, "Datei Name" );
-    neuDateiOk = initKnopf( 25, 70, 100, 20, Knopf::Style::Normal | Knopf::Style::Sichtbar, "Erstellen" );
-    neuDateiOk->setMausEreignisParameter( this );
-    neuDateiOk->setMausEreignis( kEDEditorNeuDateiOkME );
+	: Zeichnung()
+{
+	neueDatei = initKnopf(0, 0, 100, 20, Knopf::Style::Sichtbar, "Neue Datei");
+	dateiLöschen = initKnopf(0, 0, 100, 20, Knopf::Style::Sichtbar, "Datei Löschen");
+	dateien = initAuswahlListe(10, 10, 200, 510, AuswahlListe::Style::Normal, {});
+	bildSeite = new KEDBildSeite(neueDatei, dateiLöschen);
+	modelSeite = new KEDModellSeite(neueDatei, dateiLöschen, dynamic_cast<AuswahlListe*>(dateien->getThis()));
+	soundSeite = new KEDSoundSeite(neueDatei, dateiLöschen);
+	neuDateiF = initFenster(365, 145, 150, 120, Fenster::Style::Erlaubt | Fenster::Style::BodyHintergrund | Fenster::Style::BodyHAlpha |
+		Fenster::Style::Rahmen | Fenster::Style::Closable | Fenster::Style::ClosingKlickBuffer | Fenster::Style::ClosingHintergrund |
+		Fenster::Style::ClosingHAlpha | Fenster::Style::Titel | Fenster::Style::TitelHintergrund | Fenster::Style::TitelHAlpha | Fenster::Style::TitelBuffered, "Neue Datei");
+	neuDateiF->setKBgFarbe(0xC0000000);
+	neuDateiF->setSBgFarbe(0xC0000000);
+	neuDateiF->setTBgFarbe(0xC0000000);
+	neuDateiF->setClosingMe(kEDEditorNeuDateiOkME);
+	neuDateiTyp = initAuswahlBox(10, 10, 130, 20, ABSTYLE, { "Ordner", "Bild (.ltdb)", "Modell 2D (.m2)", "Sound (.gsl)" });
+	neuDateiName = initTextFeld(10, 40, 130, 20, TextFeld::Style::TextFeld, "Datei Name");
+	neuDateiOk = initKnopf(25, 70, 100, 20, Knopf::Style::Normal | Knopf::Style::Sichtbar, "Erstellen");
+	neuDateiOk->setMausEreignisParameter(this);
+	neuDateiOk->setMausEreignis(kEDEditorNeuDateiOkME);
 #pragma warning(push)
 #pragma warning(disable : 4436)
-    neuDateiF->addMember( dynamic_cast<Zeichnung *>( neuDateiName->getThis() ) );
-    neuDateiF->addMember( dynamic_cast<Zeichnung *>( neuDateiOk->getThis() ) );
-    neuDateiF->addMember( dynamic_cast<Zeichnung *>( neuDateiTyp->getThis() ) );
+	neuDateiF->addMember(dynamic_cast<Zeichnung*>(neuDateiName->getThis()));
+	neuDateiF->addMember(dynamic_cast<Zeichnung*>(neuDateiOk->getThis()));
+	neuDateiF->addMember(dynamic_cast<Zeichnung*>(neuDateiTyp->getThis()));
 #pragma warning(pop)
-    aktion = 0;
-    sichtbar = 0;
-    alpha = 0;
-    alpha2 = 0;
-    tickVal = 0;
+	aktion = 0;
+	sichtbar = 0;
+	alpha = 0;
+	alpha2 = 0;
+	tickVal = 0;
 }
 
 // Destruktor
 KEDEditor::~KEDEditor()
 {
-    dateien->release();
-    bildSeite->release();
-    modelSeite->release();
-    soundSeite->release();
-    neuDateiF->release();
-    neuDateiTyp->release();
-    neuDateiName->release();
-    neuDateiOk->release();
-    neueDatei->release();
-    dateiLöschen->release();
+	dateien->release();
+	bildSeite->release();
+	modelSeite->release();
+	soundSeite->release();
+	neuDateiF->release();
+	neuDateiTyp->release();
+	neuDateiName->release();
+	neuDateiOk->release();
+	neueDatei->release();
+	dateiLöschen->release();
 }
 
 // nicht constant
 int KEDEditor::getAktion()
 {
-    int ret = aktion;
-    aktion = 0;
-    return ret;
+	int ret = aktion;
+	aktion = 0;
+	return ret;
 }
 
-bool KEDEditor::neuDateiOkME( MausEreignis &me )
+bool KEDEditor::neuDateiOkME(MausEreignis& me)
 {
-    if( me.id == ME_RLinks )
-    {
-        neuDateiF->removeStyle( Fenster::Style::Sichtbar );
-        aktion = 1;
-    }
-    return 1;
+	if (me.id == ME_RLinks)
+	{
+		neuDateiF->removeStyle(Fenster::Style::Sichtbar);
+		aktion = 1;
+	}
+	return 1;
 }
 
-void KEDEditor::setDateiListe( RCArray< Text > *list )
+void KEDEditor::setDateiListe(RCArray< Text >* list)
 {
-    uiFactory.initParam.bildschirm->lock();
-    dateien->deSelect();
-    while( dateien->getEintragAnzahl() )
-        dateien->removeEintrag( 0 );
-    int anz = list->getEintragAnzahl();
-    for( int i = 0; i < anz; i++ )
-        dateien->addEintrag( list->get( i ) );
-    bildSeite->setSichtbar( 0 );
-    soundSeite->setSichtbar( 0 );
-    modelSeite->setSichtbar( 0 );
-    neuDateiF->removeStyle( Fenster::Style::Sichtbar );
-    list->release();
-    uiFactory.initParam.bildschirm->unlock();
-}
-
-void KEDEditor::setBildListe( RCArray< Text > *list )
-{
-    soundSeite->setSichtbar( 0 );
-    modelSeite->setSichtbar( 0 );
-    bildSeite->setBildListe( list );
-    bildSeite->setSichtbar( 1 );
-}
-
-void KEDEditor::setSoundListe( RCArray< Text > *list )
-{
-    modelSeite->setSichtbar( 0 );
-    bildSeite->setSichtbar( 0 );
-    soundSeite->setSoundListe( list );
-    soundSeite->setSichtbar( 1 );
-}
-
-void KEDEditor::setModel2dListe( RCArray< Text > *list )
-{
-    bildSeite->setSichtbar( 0 );
-    soundSeite->setSichtbar( 0 );
-    modelSeite->setModelListe( list );
-    modelSeite->setSichtbar( 1 );
-}
-
-void KEDEditor::setBild( Bild *b )
-{
-    bildSeite->setBild( b );
-}
-
-void KEDEditor::setSound( GSL::GSLSoundV *s )
-{
-    soundSeite->setSound( s );
-}
-
-void KEDEditor::setModel2d( Model2DData *d )
-{
-    modelSeite->setModel( d );
-}
-
-void KEDEditor::setSichtbar( bool s )
-{
-    sichtbar = s;
-}
-
-bool KEDEditor::tick( double tv )
-{
-    int ak = bildSeite->getAktion();
-    switch( ak )
-    {
-    case 1: // Bild Auswählen
-        aktion = 4;
-        break;
-    case 2: // Bild Löschen
-        aktion = 5;
-        break;
-    case 3: // Importieren
-        aktion = 6;
-        break;
-    case 4: // Datei Löschen
-        aktion = 3;
-        break;
-    case 5: // Neue Datei
-        neuDateiF->addStyle( Fenster::Style::Sichtbar );
-        break;
-    }
-    ak = modelSeite->getAktion();
-    switch( ak )
-    {
-    case 1: // Model Auswählen
-        aktion = 7;
-        break;
-    case 2: // Model Löschen
-        aktion = 8;
-        break;
-    case 3: // Model speichern
-        aktion = 9;
-        break;
-    case 4: // Neues Modell
-        aktion = 10;
-        break;
-    case 5: // Datei Löschen
-        aktion = 3;
-        break;
-    case 6: // Neue Datei
-        neuDateiF->addStyle( Fenster::Style::Sichtbar );
-        break;
-    }
-    ak = soundSeite->getAktion();
-    switch( ak )
-    {
-    case 1: // Sound Abspielen
-        aktion = 11;
-        break;
-    case 2: // Sound Löschen
-        aktion = 12;
-        break;
-    case 3: // Importieren
-        aktion = 13;
-        break;
-    case 4: // Datei Löschen
-        aktion = 3;
-        break;
-    case 5: // Neue Datei
-        neuDateiF->addStyle( Fenster::Style::Sichtbar );
-        break;
-    }
-    bool ret = dateien->tick( tv );
-    ret |= bildSeite->tick( tv );
-    ret |= soundSeite->tick( tv );
-    ret |= modelSeite->tick( tv );
-    ret |= neuDateiF->tick( tv );
-    if( dateien->getAuswahl() < 0 )
-    {
-        ret |= neueDatei->tick( tv );
-        if( dateien->getEintragAnzahl() > 0 && dateien->zEintrag( 0 )->zText()->istGleich( ".." ) )
-            ret |= dateiLöschen->tick( tv );
-    }
-    tickVal += tv * 150;
-    int val = 0;
-    if( tickVal > 1 )
-    {
-        val = (int)tickVal;
-        tickVal -= val;
-    }
-    else
-        return ret;
-    if( sichtbar && neuDateiF->hatStyle( Fenster::Style::Sichtbar ) && alpha2 > 100 )
-    {
-        if( alpha2 - val < 100 )
-            alpha2 = 100;
-        else
-            alpha2 -= val;
-        ret = 1;
-    }
-    if( sichtbar && neuDateiF->hatStyleNicht( Fenster::Style::Sichtbar ) && alpha2 < 255 )
-    {
-        if( alpha2 + val > 255 )
-            alpha2 = 255;
-        else
-            alpha2 += val;
-        ret = 1;
-    }
-    if( sichtbar && alpha != 255 )
-    {
-        if( alpha + val > 255 )
-            alpha = 255;
-        else
-            alpha += val;
-        ret = 1;
-    }
-    if( !sichtbar && alpha != 0 )
-    {
-        if( alpha - val < 0 )
-            alpha = 0;
-        else
-            alpha -= val;
-        ret = 1;
-    }
-    return ret;
-}
-
-void KEDEditor::doPublicMausEreignis( MausEreignis &me )
-{
-    if( !sichtbar )
-        return;
-    if( neuDateiF->hatStyle( Fenster::Style::Sichtbar ) )
-    {
-        neuDateiF->doPublicMausEreignis( me );
-        return;
-    }
-    int ausw = dateien->getAuswahl();
-    dateien->doPublicMausEreignis( me );
-    if( ausw != dateien->getAuswahl() && me.id == ME_RLinks )
-    {
-        if( dateien->getAuswahl() >= 0 )
-            aktion = 2;
-        else
-            dateien->setAuswahl( ausw );
-    }
-    bildSeite->doPublicMausEreignis( me );
-    soundSeite->doPublicMausEreignis( me );
-    modelSeite->doPublicMausEreignis( me );
-    if( dateien->getAuswahl() < 0 )
-    {
-        bool vera = me.verarbeitet;
-        neueDatei->doPublicMausEreignis( me );
-        if( !vera && me.verarbeitet && me.id == ME_RLinks )
-            neuDateiF->addStyle( Fenster::Style::Sichtbar );
-        if( dateien->getEintragAnzahl() > 0 && dateien->zEintrag( 0 )->zText()->istGleich( ".." ) )
-        {
-            vera = me.verarbeitet;
-            dateiLöschen->doPublicMausEreignis( me );
-            if( !vera && me.verarbeitet && me.id == ME_RLinks )
-                aktion = 3;
-        }
-    }
-}
-
-void KEDEditor::doTastaturEreignis( TastaturEreignis &te )
-{
-    if( neuDateiF->hatStyle( Fenster::Style::Sichtbar ) )
-    {
-        neuDateiF->doTastaturEreignis( te );
-        return;
-    }
-    modelSeite->doTastaturEreignis( te );
-}
-
-void KEDEditor::render( Bild &zRObj )
-{
-    zRObj.setAlpha( alpha );
-    zRObj.setAlpha( alpha2 );
-    dateien->render( zRObj );
-    bildSeite->render( zRObj );
-    modelSeite->render( zRObj );
-    soundSeite->render( zRObj );
-    if( dateien->getAuswahl() < 0 )
-    {
-        neueDatei->setPosition( 770, 440 );
-        neueDatei->render( zRObj );
-        if( dateien->getEintragAnzahl() > 0 && dateien->zEintrag( 0 )->zText()->istGleich( ".." ) )
-        {
-            dateiLöschen->setPosition( 770, 410 );
-            dateiLöschen->render( zRObj );
-        }
-    }
-    zRObj.releaseAlpha();
-    neuDateiF->render( zRObj );
-    zRObj.releaseAlpha();
+	uiFactory.initParam.bildschirm->lock();
+	dateien->deSelect();
+	while (dateien->getEintragAnzahl())
+		dateien->removeEintrag(0);
+	int anz = list->getEintragAnzahl();
+	for (int i = 0; i < anz; i++)
+		dateien->addEintrag(list->get(i));
+	bildSeite->setSichtbar(0);
+	soundSeite->setSichtbar(0);
+	modelSeite->setSichtbar(0);
+	neuDateiF->removeStyle(Fenster::Style::Sichtbar);
+	list->release();
+	uiFactory.initParam.bildschirm->unlock();
+}
+
+void KEDEditor::setBildListe(RCArray< Text >* list)
+{
+	soundSeite->setSichtbar(0);
+	modelSeite->setSichtbar(0);
+	bildSeite->setBildListe(list);
+	bildSeite->setSichtbar(1);
+}
+
+void KEDEditor::setSoundListe(RCArray< Text >* list)
+{
+	modelSeite->setSichtbar(0);
+	bildSeite->setSichtbar(0);
+	soundSeite->setSoundListe(list);
+	soundSeite->setSichtbar(1);
+}
+
+void KEDEditor::setModel2dListe(RCArray< Text >* list)
+{
+	bildSeite->setSichtbar(0);
+	soundSeite->setSichtbar(0);
+	modelSeite->setModelListe(list);
+	modelSeite->setSichtbar(1);
+}
+
+void KEDEditor::setBild(Bild* b)
+{
+	bildSeite->setBild(b);
+}
+
+void KEDEditor::setSound(GSL::GSLSoundV* s)
+{
+	soundSeite->setSound(s);
+}
+
+void KEDEditor::setModel2d(Model2DData* d)
+{
+	modelSeite->setModel(d);
+}
+
+void KEDEditor::setSichtbar(bool s)
+{
+	sichtbar = s;
+}
+
+bool KEDEditor::tick(double tv)
+{
+	int ak = bildSeite->getAktion();
+	switch (ak)
+	{
+	case 1: // Bild Auswählen
+		aktion = 4;
+		break;
+	case 2: // Bild Löschen
+		aktion = 5;
+		break;
+	case 3: // Importieren
+		aktion = 6;
+		break;
+	case 4: // Datei Löschen
+		aktion = 3;
+		break;
+	case 5: // Neue Datei
+		neuDateiF->addStyle(Fenster::Style::Sichtbar);
+		break;
+	}
+	ak = modelSeite->getAktion();
+	switch (ak)
+	{
+	case 1: // Model Auswählen
+		aktion = 7;
+		break;
+	case 2: // Model Löschen
+		aktion = 8;
+		break;
+	case 3: // Model speichern
+		aktion = 9;
+		break;
+	case 4: // Neues Modell
+		aktion = 10;
+		break;
+	case 5: // Datei Löschen
+		aktion = 3;
+		break;
+	case 6: // Neue Datei
+		neuDateiF->addStyle(Fenster::Style::Sichtbar);
+		break;
+	}
+	ak = soundSeite->getAktion();
+	switch (ak)
+	{
+	case 1: // Sound Abspielen
+		aktion = 11;
+		break;
+	case 2: // Sound Löschen
+		aktion = 12;
+		break;
+	case 3: // Importieren
+		aktion = 13;
+		break;
+	case 4: // Datei Löschen
+		aktion = 3;
+		break;
+	case 5: // Neue Datei
+		neuDateiF->addStyle(Fenster::Style::Sichtbar);
+		break;
+	}
+	bool ret = dateien->tick(tv);
+	ret |= bildSeite->tick(tv);
+	ret |= soundSeite->tick(tv);
+	ret |= modelSeite->tick(tv);
+	ret |= neuDateiF->tick(tv);
+	if (dateien->getAuswahl() < 0)
+	{
+		ret |= neueDatei->tick(tv);
+		if (dateien->getEintragAnzahl() > 0 && dateien->zEintrag(0)->zText()->istGleich(".."))
+			ret |= dateiLöschen->tick(tv);
+	}
+	tickVal += tv * 150;
+	int val = 0;
+	if (tickVal > 1)
+	{
+		val = (int)tickVal;
+		tickVal -= val;
+	}
+	else
+		return ret;
+	if (sichtbar && neuDateiF->hatStyle(Fenster::Style::Sichtbar) && alpha2 > 100)
+	{
+		if (alpha2 - val < 100)
+			alpha2 = 100;
+		else
+			alpha2 -= val;
+		ret = 1;
+	}
+	if (sichtbar && neuDateiF->hatStyleNicht(Fenster::Style::Sichtbar) && alpha2 < 255)
+	{
+		if (alpha2 + val > 255)
+			alpha2 = 255;
+		else
+			alpha2 += val;
+		ret = 1;
+	}
+	if (sichtbar && alpha != 255)
+	{
+		if (alpha + val > 255)
+			alpha = 255;
+		else
+			alpha += val;
+		ret = 1;
+	}
+	if (!sichtbar && alpha != 0)
+	{
+		if (alpha - val < 0)
+			alpha = 0;
+		else
+			alpha -= val;
+		ret = 1;
+	}
+	return ret;
+}
+
+void KEDEditor::doPublicMausEreignis(MausEreignis& me)
+{
+	if (!sichtbar)
+		return;
+	if (neuDateiF->hatStyle(Fenster::Style::Sichtbar))
+	{
+		neuDateiF->doPublicMausEreignis(me);
+		return;
+	}
+	int ausw = dateien->getAuswahl();
+	dateien->doPublicMausEreignis(me);
+	if (ausw != dateien->getAuswahl() && me.id == ME_RLinks)
+	{
+		if (dateien->getAuswahl() >= 0)
+			aktion = 2;
+		else
+			dateien->setAuswahl(ausw);
+	}
+	bildSeite->doPublicMausEreignis(me);
+	soundSeite->doPublicMausEreignis(me);
+	modelSeite->doPublicMausEreignis(me);
+	if (dateien->getAuswahl() < 0)
+	{
+		bool vera = me.verarbeitet;
+		neueDatei->doPublicMausEreignis(me);
+		if (!vera && me.verarbeitet && me.id == ME_RLinks)
+			neuDateiF->addStyle(Fenster::Style::Sichtbar);
+		if (dateien->getEintragAnzahl() > 0 && dateien->zEintrag(0)->zText()->istGleich(".."))
+		{
+			vera = me.verarbeitet;
+			dateiLöschen->doPublicMausEreignis(me);
+			if (!vera && me.verarbeitet && me.id == ME_RLinks)
+				aktion = 3;
+		}
+	}
+}
+
+void KEDEditor::doTastaturEreignis(TastaturEreignis& te)
+{
+	if (neuDateiF->hatStyle(Fenster::Style::Sichtbar))
+	{
+		neuDateiF->doTastaturEreignis(te);
+		return;
+	}
+	modelSeite->doTastaturEreignis(te);
+}
+
+void KEDEditor::render(Bild& zRObj)
+{
+	zRObj.setAlpha(alpha);
+	zRObj.setAlpha(alpha2);
+	dateien->render(zRObj);
+	bildSeite->render(zRObj);
+	modelSeite->render(zRObj);
+	soundSeite->render(zRObj);
+	if (dateien->getAuswahl() < 0)
+	{
+		neueDatei->setPosition(770, 440);
+		neueDatei->render(zRObj);
+		if (dateien->getEintragAnzahl() > 0 && dateien->zEintrag(0)->zText()->istGleich(".."))
+		{
+			dateiLöschen->setPosition(770, 410);
+			dateiLöschen->render(zRObj);
+		}
+	}
+	zRObj.releaseAlpha();
+	neuDateiF->render(zRObj);
+	zRObj.releaseAlpha();
 }
 
 // constant
-Text *KEDEditor::zBildImportPfad() const
+Text* KEDEditor::zBildImportPfad() const
 {
-    return bildSeite->zBildImportPfad();
+	return bildSeite->zBildImportPfad();
 }
 
-Text *KEDEditor::zSoundImportPfad() const
+Text* KEDEditor::zSoundImportPfad() const
 {
-    return soundSeite->zSoundImportPfad();
+	return soundSeite->zSoundImportPfad();
 }
 
-Text *KEDEditor::zDateiAuswahl() const
+Text* KEDEditor::zDateiAuswahl() const
 {
-    if( !dateien->zEintrag( dateien->getAuswahl() ) )
-        return 0;
-    return dateien->zEintrag( dateien->getAuswahl() )->zText();
+	if (!dateien->zEintrag(dateien->getAuswahl()))
+		return 0;
+	return dateien->zEintrag(dateien->getAuswahl())->zText();
 }
 
-Text *KEDEditor::zSoundAuswahl() const
+Text* KEDEditor::zSoundAuswahl() const
 {
-    return soundSeite->zSoundAuswahl();
+	return soundSeite->zSoundAuswahl();
 }
 
-Text *KEDEditor::zModel2dAuswahl() const
+Text* KEDEditor::zModel2dAuswahl() const
 {
-    return modelSeite->zModelAuswahl();
+	return modelSeite->zModelAuswahl();
 }
 
-Model2DData *KEDEditor::getModelData() const
+Model2DData* KEDEditor::getModelData() const
 {
-    return modelSeite->getModelData();
+	return modelSeite->getModelData();
 }
 
-Text *KEDEditor::zNeuModelName() const
+Text* KEDEditor::zNeuModelName() const
 {
-    return modelSeite->zNeuModelName();
+	return modelSeite->zNeuModelName();
 }
 
-Text *KEDEditor::zBildAuswahl() const
+Text* KEDEditor::zBildAuswahl() const
 {
-    return bildSeite->zBildAuswahl();
+	return bildSeite->zBildAuswahl();
 }
 
 int KEDEditor::getNeuDateiTyp() const
 {
-    return neuDateiTyp->getAuswahl();
+	return neuDateiTyp->getAuswahl();
 }
 
-Text *KEDEditor::zNeuDateiName() const
+Text* KEDEditor::zNeuDateiName() const
 {
-    return neuDateiName->zText();
+	return neuDateiName->zText();
 }
 
 bool KEDEditor::istSichtbar() const
 {
-    return sichtbar;
+	return sichtbar;
 }

+ 48 - 48
KSGClient/NachLogin/Editor/Karte/Dateien/WAVDatei.cpp

@@ -4,86 +4,86 @@
 #include <Bild.h>
 #include <DateiSystem.h>
 
-bool istGleich( char *a, char *b, int l )
+bool istGleich(char* a, char* b, int l)
 {
-    bool ret = 1;
-    for( ; l > 0; --l, ++a, ++b )
-        ret &= *a == *b;
-    return ret;
+	bool ret = 1;
+	for (; l > 0; --l, ++a, ++b)
+		ret &= *a == *b;
+	return ret;
 }
 
 // Inhalt der WAVDatei Klasse aus WAVDatei.h
 // Konstruktor
 WAVDatei::WAVDatei()
-    : ReferenceCounter()
+	: ReferenceCounter()
 {}
 
 // nicht constant
-bool WAVDatei::lade( char *pfad )
+bool WAVDatei::lade(const char* pfad)
 {
-    d.setDatei( pfad );
-    if( !d.open( Datei::Style::lesen ) )
-        return 0;
-    d.lese( (char *)&kpf, sizeof( kpf ) );
-    if( !istGleich( kpf.riff, "RIFF", 4 ) )
-        return 0;
-    if( !istGleich( kpf.wav, "WAVE", 4 ) )
-        return 0;
-    d.lese( (char *)&fmt, sizeof( fmt ) );
-    if( !istGleich( fmt.fmt, "fmt ", 4 ) )
-        return 0;
-    if( fmt.channels > 2 || fmt.channels < 1 )
-        return 0;
-    if( fmt.tag != 1 )
-        return 0;
-    if( fmt.bitsPerSample != 16 )
-        return 0;
-    if( fmt.blockAlign * fmt.sampleRate != fmt.bytesPerSec )
-        return 0;
-    d.lese( (char *)&dBeg, sizeof( dBeg ) );
-    while( !istGleich( dBeg.data, "data", 4 ) )
-    {
-        d.setLPosition( 1 + d.getLPosition() - sizeof( dBeg ), 0 );
-        d.lese( (char *)&dBeg, sizeof( dBeg ) );
-    }
-    pos = (int)d.getLPosition();
-    d.close();
-    return 1;
+	d.setDatei(pfad);
+	if (!d.open(Datei::Style::lesen))
+		return 0;
+	d.lese((char*)&kpf, sizeof(kpf));
+	if (!istGleich(kpf.riff, "RIFF", 4))
+		return 0;
+	if (!istGleich(kpf.wav, "WAVE", 4))
+		return 0;
+	d.lese((char*)&fmt, sizeof(fmt));
+	if (!istGleich(fmt.fmt, "fmt ", 4))
+		return 0;
+	if (fmt.channels > 2 || fmt.channels < 1)
+		return 0;
+	if (fmt.tag != 1)
+		return 0;
+	if (fmt.bitsPerSample != 16)
+		return 0;
+	if (fmt.blockAlign * fmt.sampleRate != fmt.bytesPerSec)
+		return 0;
+	d.lese((char*)&dBeg, sizeof(dBeg));
+	while (!istGleich(dBeg.data, "data", 4))
+	{
+		d.setLPosition(1 + d.getLPosition() - sizeof(dBeg), 0);
+		d.lese((char*)&dBeg, sizeof(dBeg));
+	}
+	pos = (int)d.getLPosition();
+	d.close();
+	return 1;
 }
 
 // zum Speichern
 void WAVDatei::open()
 {
-    d.open( Datei::Style::lesen );
-    d.setLPosition( pos, 0 );
+	d.open(Datei::Style::lesen);
+	d.setLPosition(pos, 0);
 }
 
-int WAVDatei::getDaten( char *buffer, int län )
+int WAVDatei::getDaten(char* buffer, int län)
 {
-    if( d.getLPosition() + län > d.getSize() )
-        län = (int)( d.getSize() - d.getLPosition() );
-    if( !län )
-        return -1;
-    d.lese( buffer, län );
-    return län;
+	if (d.getLPosition() + län > d.getSize())
+		län = (int)(d.getSize() - d.getLPosition());
+	if (!län)
+		return -1;
+	d.lese(buffer, län);
+	return län;
 }
 
 void WAVDatei::close()
 {
-    d.close();
+	d.close();
 }
 
 bool WAVDatei::istMono() const
 {
-    return fmt.channels == 1;
+	return fmt.channels == 1;
 }
 
 int WAVDatei::getSampleRate() const
 {
-    return fmt.sampleRate;
+	return fmt.sampleRate;
 }
 
 __int64 WAVDatei::getDatLength() const
 {
-    return d.getSize() - pos;
+	return d.getSize() - pos;
 }

+ 41 - 41
KSGClient/NachLogin/Editor/Karte/Dateien/WAVDatei.h

@@ -7,60 +7,60 @@ using namespace Framework;
 
 struct WAVKopf
 {
-    char riff[ 4 ];
-    unsigned int datGr;
-    char wav[ 4 ];
+	char riff[4];
+	unsigned int datGr;
+	char wav[4];
 };
 
 struct WAVFormat
 {
-    char fmt[ 4 ];
-    int fmtLän;
-    short tag;
-    unsigned short channels;
-    unsigned int sampleRate;
-    unsigned int bytesPerSec;
-    unsigned short blockAlign;
-    unsigned short bitsPerSample;
+	char fmt[4];
+	int fmtLän;
+	short tag;
+	unsigned short channels;
+	unsigned int sampleRate;
+	unsigned int bytesPerSec;
+	unsigned short blockAlign;
+	unsigned short bitsPerSample;
 };
 
 struct WAVDBeg
 {
-    char data[ 4 ];
-    int län;
+	char data[4];
+	int län;
 };
 
 class WAVDatei : public GSL::GSLSoundV
 {
 private:
-    WAVKopf kpf;
-    WAVFormat fmt;
-    WAVDBeg dBeg;
-    int pos;
-    Datei d;
+	WAVKopf kpf;
+	WAVFormat fmt;
+	WAVDBeg dBeg;
+	int pos;
+	Datei d;
 
 public:
-    // Konstruktor
-    WAVDatei();
-    // nicht constant
-    bool lade( char *pfad );
-    // GSL
-    void playSound() override
-    {}
-    void setPause( bool p ) override
-    {}
-    void stopSound() override
-    {}
-    void warteAufSound( int zeit ) override
-    {}
-    // Lautstärke: 0 - 0xFFFF
-    void setVolume( unsigned int links, unsigned int rechts ) override
-    {}
-    // zum Speichern
-    void open() override;
-    int getDaten( char *buffer, int län ) override;
-    void close() override;
-    bool istMono() const override;
-    int getSampleRate() const override;
-    __int64 getDatLength() const override;
+	// Konstruktor
+	WAVDatei();
+	// nicht constant
+	bool lade(const char* pfad);
+	// GSL
+	void playSound() override
+	{}
+	void setPause(bool p) override
+	{}
+	void stopSound() override
+	{}
+	void warteAufSound(int zeit) override
+	{}
+	// Lautstärke: 0 - 0xFFFF
+	void setVolume(unsigned int links, unsigned int rechts) override
+	{}
+	// zum Speichern
+	void open() override;
+	int getDaten(char* buffer, int län) override;
+	void close() override;
+	bool istMono() const override;
+	int getSampleRate() const override;
+	__int64 getDatLength() const override;
 };

+ 557 - 557
KSGClient/NachLogin/Editor/Karte/ShopSeite/KESSVorschau.cpp

@@ -4,663 +4,663 @@
 #include <DateiSystem.h>
 #include <Globals.h>
 
-void kESSVorschauKSGSAktion( void *p, RCArray< KSGSVariable > *parameter, KSGSVariable **retVal )
+void kESSVorschauKSGSAktion(void* p, RCArray< KSGSVariable >* parameter, KSGSVariable** retVal)
 {
-    if( !p )
-        return;
-    ( (KESSVorschauKarteScript *)p )->ksgsAktion( parameter, retVal );
+	if (!p)
+		return;
+	((KESSVorschauKarteScript*)p)->ksgsAktion(parameter, retVal);
 }
 
 // Inhalt der KESSVorschauKarteScript Klasse aus KESSVorschau.h
 // Konstruktor
-KESSVorschauKarteScript::KESSVorschauKarteScript( TextFeld *zLog )
-    : Thread()
+KESSVorschauKarteScript::KESSVorschauKarteScript(TextFeld* zLog)
+	: Thread()
 {
-    ksgs = Framework::getDLLRegister()->ladeDLL( "KSGScript.dll", "data/bin/KSGScript.dll" );
-    if( ksgs )
-    {
-        KSGSGetZeichnung getKSGScript = (KSGSGetZeichnung)GetProcAddress( ksgs, KSGS_START_FUNKTION );
-        if( getKSGScript )
-        {
-            fenster = getKSGScript();
-            fenster->setSchriftZ( dynamic_cast<Schrift *>( uiFactory.initParam.schrift->getThis() ) );
-            fenster->setSize( 555, 380 );
-            fenster->setCallbackParam( this );
-            fenster->setCallbackFunktion( kESSVorschauKSGSAktion );
-            fenster->setLog( dynamic_cast<TextFeld *>( zLog->getThis() ) );
-        }
-        else
-        {
-            fenster = 0;
-            nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ),
-                                                          new Text( "Der Einstiegspunkt '" KSGS_START_FUNKTION "' in der DLL-Datei "
-                                                                    "'data/bin/KSGScript.dll' konnte nicht gefunden werden." ),
-                                                          new Text( "Ok" ), 0 );
-        }
-    }
-    else
-    {
-        fenster = 0;
-        nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ),
-                                                      new Text( "Die DLL-Datei 'data/bin/KSGScript.dll' konnte nicht geladen werden." ),
-                                                      new Text( "Ok" ), 0 );
-    }
-    ram = new LRahmen();
-    ram->setSize( 555, 380 );
-    ram->setFarbe( 0xFFFFFFFF );
-    pos = Punkt( 220, 10 );
-    sichtbar = 0;
-    besitztTestVersion = 0;
-    verbleibend = 0;
-    vollversionErwerbbar = 1;
-    testversionErwerbbar = 1;
-    vvPreis = 0;
-    tvPreis = 0;
-    kupfer = 0;
-    alpha = 0;
-    aktion = 0;
-    ak = 0;
+	ksgs = Framework::getDLLRegister()->ladeDLL("KSGScript.dll", "data/bin/KSGScript.dll");
+	if (ksgs)
+	{
+		KSGSGetZeichnung getKSGScript = (KSGSGetZeichnung)GetProcAddress(ksgs, KSGS_START_FUNKTION);
+		if (getKSGScript)
+		{
+			fenster = getKSGScript();
+			fenster->setSchriftZ(dynamic_cast<Schrift*>(uiFactory.initParam.schrift->getThis()));
+			fenster->setSize(555, 380);
+			fenster->setCallbackParam(this);
+			fenster->setCallbackFunktion(kESSVorschauKSGSAktion);
+			fenster->setLog(dynamic_cast<TextFeld*>(zLog->getThis()));
+		}
+		else
+		{
+			fenster = 0;
+			nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
+				new Text("Der Einstiegspunkt '" KSGS_START_FUNKTION "' in der DLL-Datei "
+					"'data/bin/KSGScript.dll' konnte nicht gefunden werden."),
+				new Text("Ok"), 0);
+		}
+	}
+	else
+	{
+		fenster = 0;
+		nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
+			new Text("Die DLL-Datei 'data/bin/KSGScript.dll' konnte nicht geladen werden."),
+			new Text("Ok"), 0);
+	}
+	ram = new LRahmen();
+	ram->setSize(555, 380);
+	ram->setFarbe(0xFFFFFFFF);
+	pos = Punkt(220, 10);
+	sichtbar = 0;
+	besitztTestVersion = 0;
+	verbleibend = 0;
+	vollversionErwerbbar = 1;
+	testversionErwerbbar = 1;
+	vvPreis = 0;
+	tvPreis = 0;
+	kupfer = 0;
+	alpha = 0;
+	aktion = 0;
+	ak = 0;
 }
 
 // Destruktor
 KESSVorschauKarteScript::~KESSVorschauKarteScript()
 {
-    if( fenster )
-    {
-        fenster->reset();
-        fenster->release();
-    }
-    ram->release();
-    if( ksgs )
-        Framework::getDLLRegister()->releaseDLL( "KSGScript.dll" );
+	if (fenster)
+	{
+		fenster->reset();
+		fenster->release();
+	}
+	ram->release();
+	if (ksgs)
+		Framework::getDLLRegister()->releaseDLL("KSGScript.dll");
 }
 
 // nicht constant
 void KESSVorschauKarteScript::thread()
 {
-    sichtbar = 0;
-    while( alpha )
-        Sleep( 100 );
-    if( ak == 1 )
-    {
-        pfad += "/seite/seite.ksgs";
-        if( fenster )
-            fenster->setScriptDatei( pfad );
-    }
-    fenster->neuLaden();
-    sichtbar = 1;
-    ak = 0;
-    run = 0;
+	sichtbar = 0;
+	while (alpha)
+		Sleep(100);
+	if (ak == 1)
+	{
+		pfad += "/seite/seite.ksgs";
+		if (fenster)
+			fenster->setScriptDatei(pfad);
+	}
+	fenster->neuLaden();
+	sichtbar = 1;
+	ak = 0;
+	run = 0;
 }
 
-void KESSVorschauKarteScript::setScriptParams( bool hatTV, int tvVerb, bool vvEn, bool tvEn, int vvK, int tvK, int k )
+void KESSVorschauKarteScript::setScriptParams(bool hatTV, int tvVerb, bool vvEn, bool tvEn, int vvK, int tvK, int k)
 {
-    besitztTestVersion = hatTV;
-    verbleibend = tvVerb;
-    vollversionErwerbbar = vvEn;
-    testversionErwerbbar = tvEn;
-    vvPreis = vvK;
-    tvPreis = tvK;
-    kupfer = k;
-    if( sichtbar )
-    {
-        ak = 2;
-        start();
-    }
+	besitztTestVersion = hatTV;
+	verbleibend = tvVerb;
+	vollversionErwerbbar = vvEn;
+	testversionErwerbbar = tvEn;
+	vvPreis = vvK;
+	tvPreis = tvK;
+	kupfer = k;
+	if (sichtbar)
+	{
+		ak = 2;
+		start();
+	}
 }
 
-void KESSVorschauKarteScript::ladeKarteSeite( char *pfad )
+void KESSVorschauKarteScript::ladeKarteSeite(const char* pfad)
 {
-    if( run )
-        warteAufThread( 5000 );
-    if( run )
-        ende();
-    this->pfad = pfad;
-    ak = 1;
-    start();
+	if (run)
+		warteAufThread(5000);
+	if (run)
+		ende();
+	this->pfad = pfad;
+	ak = 1;
+	start();
 }
 
-void KESSVorschauKarteScript::ksgsAktion( RCArray< KSGSVariable > *parameter, KSGSVariable **retVal )
+void KESSVorschauKarteScript::ksgsAktion(RCArray< KSGSVariable >* parameter, KSGSVariable** retVal)
 {
-    KSGSVariable *befehl = parameter->z( 0 );
-    if( !befehl )
-        return;
-    Text *b = befehl->getText();
-    if( !b )
-        return;
-    if( b->istGleich( "GetBesitzStatus" ) )
-    {
-        int besitz = (int)besitztTestVersion;
-        KSGSGetVariable getKSGSVariable = (KSGSGetVariable)GetProcAddress( ksgs, KSGS_VARIABLE_FUNKTION );
-        if( getKSGSVariable )
-        {
-            KSGSVariableDef def = { KSGS_INT, 0, 3, ( Text() += besitz ).getText() };
-            *retVal = getKSGSVariable( fenster, &def );
-        }
-        else
-        {
-            nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ),
-                                                          new Text( "Der Einstiegspunkt '" KSGS_VARIABLE_FUNKTION "' in der DLL-Datei "
-                                                                    "'data/bin/KSGScript.dll' konnte nicht gefunden werden." ),
-                                                          new Text( "Ok" ), 0 );
-        }
-        b->release();
-        return;
-    }
-    if( b->istGleich( "GetPreis" ) )
-    {
-        KSGSVariable *version = parameter->z( 1 );
-        if( !version )
-        {
-            nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ),
-                                                          new Text( "Auf dieser Seite befindet sich ein Fehler im KSG-Script. "
-                                                                    "Sie könnte eventuell nicht richtig funktionieren." ),
-                                                          new Text( "Ok" ), 0 );
-        }
-        else
-        {
-            bool testVersion = !version->getInt();
-            int k = testVersion ? tvPreis : vvPreis;
-            KSGSGetVariable getKSGSVariable = (KSGSGetVariable)GetProcAddress( ksgs, KSGS_VARIABLE_FUNKTION );
-            if( getKSGSVariable )
-            {
-                KSGSVariableDef def = { KSGS_INT, 0, 3, ( Text() += k ).getText() };
-                *retVal = getKSGSVariable( fenster, &def );
-            }
-            else
-            {
-                nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ),
-                                                              new Text( "Der Einstiegspunkt '" KSGS_VARIABLE_FUNKTION "' in der DLL-Datei "
-                                                                        "'data/bin/KSGScript.dll' konnte nicht gefunden werden." ),
-                                                              new Text( "Ok" ), 0 );
-            }
-        }
-        b->release();
-        return;
-    }
-    if( b->istGleich( "GetTestVersionVerbleibend" ) )
-    {
-        KSGSGetVariable getKSGSVariable = (KSGSGetVariable)GetProcAddress( ksgs, KSGS_VARIABLE_FUNKTION );
-        if( getKSGSVariable )
-        {
-            KSGSVariableDef def = { KSGS_INT, 0, 3, ( Text() += verbleibend ).getText() };
-            *retVal = getKSGSVariable( fenster, &def );
-        }
-        else
-        {
-            nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ),
-                                                          new Text( "Der Einstiegspunkt '" KSGS_VARIABLE_FUNKTION "' in der DLL-Datei "
-                                                                    "'data/bin/KSGScript.dll' konnte nicht gefunden werden." ),
-                                                          new Text( "Ok" ), 0 );
-        }
-        b->release();
-        return;
-    }
-    if( b->istGleich( "GetErwerbbarStatus" ) )
-    {
-        int erwerbbar = ( (int)testversionErwerbbar & 0x1 ) | ( ( (int)vollversionErwerbbar << 1 ) & 0x2 );
-        KSGSGetVariable getKSGSVariable = (KSGSGetVariable)GetProcAddress( ksgs, KSGS_VARIABLE_FUNKTION );
-        if( getKSGSVariable )
-        {
-            KSGSVariableDef def = { KSGS_INT, 0, 3, ( Text() += erwerbbar ).getText() };
-            *retVal = getKSGSVariable( fenster, &def );
-        }
-        else
-        {
-            nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ),
-                                                          new Text( "Der Einstiegspunkt '" KSGS_VARIABLE_FUNKTION "' in der DLL-Datei "
-                                                                    "'data/bin/KSGScript.dll' konnte nicht gefunden werden." ),
-                                                          new Text( "Ok" ), 0 );
-        }
-        b->release();
-        return;
-    }
-    if( b->istGleich( "GetKupfer" ) )
-    {
-        KSGSGetVariable getKSGSVariable = (KSGSGetVariable)GetProcAddress( ksgs, KSGS_VARIABLE_FUNKTION );
-        if( getKSGSVariable )
-        {
-            KSGSVariableDef def = { KSGS_INT, 0, 3, ( Text() += kupfer ).getText() };
-            *retVal = getKSGSVariable( fenster, &def );
-        }
-        else
-        {
-            nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ),
-                                                          new Text( "Der Einstiegspunkt '" KSGS_VARIABLE_FUNKTION "' in der DLL-Datei "
-                                                                    "'data/bin/KSGScript.dll' konnte nicht gefunden werden." ),
-                                                          new Text( "Ok" ), 0 );
-        }
-        b->release();
-        return;
-    }
-    if( b->istGleich( "Kaufen" ) )
-    {
-        KSGSVariable *version = parameter->z( 1 );
-        if( !version )
-        {
-            nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ),
-                                                          new Text( "Auf dieser Seite befindet sich ein Fehler im KSG-Script. "
-                                                                    "Sie könnte eventuell nicht richtig funktionieren." ),
-                                                          new Text( "Ok" ), 0 );
-        }
-        b->release();
-        return;
-    }
-    if( b->istGleich( "GetBild" ) )
-    {
-        KSGSVariable *pfad = parameter->z( 1 );
-        KSGSVariable *name = parameter->z( 2 );
-        if( !pfad || !name )
-        {
-            nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ),
-                                                          new Text( "Auf dieser Seite befindet sich ein Fehler im KSG-Script. "
-                                                                    "Sie könnte eventuell nicht richtig funktionieren." ),
-                                                          new Text( "Ok" ), 0 );
-        }
-        else
-        {
-            Text *pf = pfad->getText();
-            Text *n = name->getText();
-            if( !pf || !n )
-            {
-                nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ),
-                                                              new Text( "Auf dieser Seite befindet sich ein Fehler im KSG-Script. "
-                                                                        "Sie könnte eventuell nicht richtig funktionieren." ),
-                                                              new Text( "Ok" ), 0 );
-            }
-            else
-            {
-                KSGSGetVariable getKSGSVariable = (KSGSGetVariable)GetProcAddress( ksgs, KSGS_VARIABLE_FUNKTION );
-                if( getKSGSVariable )
-                {
-                    int p = n->positionVon( ".ltdb/" );
-                    if( p < 0 )
-                        p = 0;
-                    else
-                        p += 6;
-                    Text nn = Text( pf->getText() ) + "/" + (const char *)( n->getText() + p );
-                    Bild *b = bilder->get( nn );
-                    if( b )
-                    {
-                        KSGSVariableDef def = { KSGS_BILD, 0, 3, "" };
-                        KSGSVariable *ret = getKSGSVariable( fenster, &def );
-                        KSGSSetBild setKSGSBild = (KSGSSetBild)GetProcAddress( ksgs, KSGS_SET_BILD_FUNKTION );
-                        if( !setKSGSBild )
-                        {
-                            nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ),
-                                                                          new Text( "Der Einstiegspunkt '" KSGS_SET_BILD_FUNKTION "' in der DLL-Datei "
-                                                                                    "'data/bin/KSGScript.dll' konnte nicht gefunden werden." ),
-                                                                          new Text( "Ok" ), 0 );
-                            b->release();
-                        }
-                        else
-                            setKSGSBild( ret, b );
-                        *retVal = ret;
-                    }
-                }
-                else
-                {
-                    nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ),
-                                                                  new Text( "Der Einstiegspunkt '" KSGS_VARIABLE_FUNKTION "' in der DLL-Datei "
-                                                                            "'data/bin/KSGScript.dll' konnte nicht gefunden werden." ),
-                                                                  new Text( "Ok" ), 0 );
-                }
-            }
-            if( pf )
-                pf->release();
-            if( n )
-                n->release();
-        }
-        b->release();
-        return;
-    }
+	KSGSVariable* befehl = parameter->z(0);
+	if (!befehl)
+		return;
+	Text* b = befehl->getText();
+	if (!b)
+		return;
+	if (b->istGleich("GetBesitzStatus"))
+	{
+		int besitz = (int)besitztTestVersion;
+		KSGSGetVariable getKSGSVariable = (KSGSGetVariable)GetProcAddress(ksgs, KSGS_VARIABLE_FUNKTION);
+		if (getKSGSVariable)
+		{
+			KSGSVariableDef def = { KSGS_INT, 0, 3, (Text() += besitz).getText() };
+			*retVal = getKSGSVariable(fenster, &def);
+		}
+		else
+		{
+			nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
+				new Text("Der Einstiegspunkt '" KSGS_VARIABLE_FUNKTION "' in der DLL-Datei "
+					"'data/bin/KSGScript.dll' konnte nicht gefunden werden."),
+				new Text("Ok"), 0);
+		}
+		b->release();
+		return;
+	}
+	if (b->istGleich("GetPreis"))
+	{
+		KSGSVariable* version = parameter->z(1);
+		if (!version)
+		{
+			nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
+				new Text("Auf dieser Seite befindet sich ein Fehler im KSG-Script. "
+					"Sie könnte eventuell nicht richtig funktionieren."),
+				new Text("Ok"), 0);
+		}
+		else
+		{
+			bool testVersion = !version->getInt();
+			int k = testVersion ? tvPreis : vvPreis;
+			KSGSGetVariable getKSGSVariable = (KSGSGetVariable)GetProcAddress(ksgs, KSGS_VARIABLE_FUNKTION);
+			if (getKSGSVariable)
+			{
+				KSGSVariableDef def = { KSGS_INT, 0, 3, (Text() += k).getText() };
+				*retVal = getKSGSVariable(fenster, &def);
+			}
+			else
+			{
+				nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
+					new Text("Der Einstiegspunkt '" KSGS_VARIABLE_FUNKTION "' in der DLL-Datei "
+						"'data/bin/KSGScript.dll' konnte nicht gefunden werden."),
+					new Text("Ok"), 0);
+			}
+		}
+		b->release();
+		return;
+	}
+	if (b->istGleich("GetTestVersionVerbleibend"))
+	{
+		KSGSGetVariable getKSGSVariable = (KSGSGetVariable)GetProcAddress(ksgs, KSGS_VARIABLE_FUNKTION);
+		if (getKSGSVariable)
+		{
+			KSGSVariableDef def = { KSGS_INT, 0, 3, (Text() += verbleibend).getText() };
+			*retVal = getKSGSVariable(fenster, &def);
+		}
+		else
+		{
+			nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
+				new Text("Der Einstiegspunkt '" KSGS_VARIABLE_FUNKTION "' in der DLL-Datei "
+					"'data/bin/KSGScript.dll' konnte nicht gefunden werden."),
+				new Text("Ok"), 0);
+		}
+		b->release();
+		return;
+	}
+	if (b->istGleich("GetErwerbbarStatus"))
+	{
+		int erwerbbar = ((int)testversionErwerbbar & 0x1) | (((int)vollversionErwerbbar << 1) & 0x2);
+		KSGSGetVariable getKSGSVariable = (KSGSGetVariable)GetProcAddress(ksgs, KSGS_VARIABLE_FUNKTION);
+		if (getKSGSVariable)
+		{
+			KSGSVariableDef def = { KSGS_INT, 0, 3, (Text() += erwerbbar).getText() };
+			*retVal = getKSGSVariable(fenster, &def);
+		}
+		else
+		{
+			nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
+				new Text("Der Einstiegspunkt '" KSGS_VARIABLE_FUNKTION "' in der DLL-Datei "
+					"'data/bin/KSGScript.dll' konnte nicht gefunden werden."),
+				new Text("Ok"), 0);
+		}
+		b->release();
+		return;
+	}
+	if (b->istGleich("GetKupfer"))
+	{
+		KSGSGetVariable getKSGSVariable = (KSGSGetVariable)GetProcAddress(ksgs, KSGS_VARIABLE_FUNKTION);
+		if (getKSGSVariable)
+		{
+			KSGSVariableDef def = { KSGS_INT, 0, 3, (Text() += kupfer).getText() };
+			*retVal = getKSGSVariable(fenster, &def);
+		}
+		else
+		{
+			nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
+				new Text("Der Einstiegspunkt '" KSGS_VARIABLE_FUNKTION "' in der DLL-Datei "
+					"'data/bin/KSGScript.dll' konnte nicht gefunden werden."),
+				new Text("Ok"), 0);
+		}
+		b->release();
+		return;
+	}
+	if (b->istGleich("Kaufen"))
+	{
+		KSGSVariable* version = parameter->z(1);
+		if (!version)
+		{
+			nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
+				new Text("Auf dieser Seite befindet sich ein Fehler im KSG-Script. "
+					"Sie könnte eventuell nicht richtig funktionieren."),
+				new Text("Ok"), 0);
+		}
+		b->release();
+		return;
+	}
+	if (b->istGleich("GetBild"))
+	{
+		KSGSVariable* pfad = parameter->z(1);
+		KSGSVariable* name = parameter->z(2);
+		if (!pfad || !name)
+		{
+			nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
+				new Text("Auf dieser Seite befindet sich ein Fehler im KSG-Script. "
+					"Sie könnte eventuell nicht richtig funktionieren."),
+				new Text("Ok"), 0);
+		}
+		else
+		{
+			Text* pf = pfad->getText();
+			Text* n = name->getText();
+			if (!pf || !n)
+			{
+				nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
+					new Text("Auf dieser Seite befindet sich ein Fehler im KSG-Script. "
+						"Sie könnte eventuell nicht richtig funktionieren."),
+					new Text("Ok"), 0);
+			}
+			else
+			{
+				KSGSGetVariable getKSGSVariable = (KSGSGetVariable)GetProcAddress(ksgs, KSGS_VARIABLE_FUNKTION);
+				if (getKSGSVariable)
+				{
+					int p = n->positionVon(".ltdb/");
+					if (p < 0)
+						p = 0;
+					else
+						p += 6;
+					Text nn = Text(pf->getText()) + "/" + (const char*)(n->getText() + p);
+					Bild* b = bilder->get(nn);
+					if (b)
+					{
+						KSGSVariableDef def = { KSGS_BILD, 0, 3, "" };
+						KSGSVariable* ret = getKSGSVariable(fenster, &def);
+						KSGSSetBild setKSGSBild = (KSGSSetBild)GetProcAddress(ksgs, KSGS_SET_BILD_FUNKTION);
+						if (!setKSGSBild)
+						{
+							nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
+								new Text("Der Einstiegspunkt '" KSGS_SET_BILD_FUNKTION "' in der DLL-Datei "
+									"'data/bin/KSGScript.dll' konnte nicht gefunden werden."),
+								new Text("Ok"), 0);
+							b->release();
+						}
+						else
+							setKSGSBild(ret, b);
+						*retVal = ret;
+					}
+				}
+				else
+				{
+					nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
+						new Text("Der Einstiegspunkt '" KSGS_VARIABLE_FUNKTION "' in der DLL-Datei "
+							"'data/bin/KSGScript.dll' konnte nicht gefunden werden."),
+						new Text("Ok"), 0);
+				}
+			}
+			if (pf)
+				pf->release();
+			if (n)
+				n->release();
+		}
+		b->release();
+		return;
+	}
 }
 
-void KESSVorschauKarteScript::doPublicMausEreignis( MausEreignis &me )
+void KESSVorschauKarteScript::doPublicMausEreignis(MausEreignis& me)
 {
-    me.mx -= pos.x;
-    me.my -= pos.y;
-    if( fenster )
-        fenster->doPublicMausEreignis( me );
-    me.mx += pos.x;
-    me.my += pos.y;
+	me.mx -= pos.x;
+	me.my -= pos.y;
+	if (fenster)
+		fenster->doPublicMausEreignis(me);
+	me.mx += pos.x;
+	me.my += pos.y;
 }
 
-void KESSVorschauKarteScript::doTastaturEreignis( TastaturEreignis &te )
+void KESSVorschauKarteScript::doTastaturEreignis(TastaturEreignis& te)
 {
-    if( fenster )
-        fenster->doTastaturEreignis( te );
+	if (fenster)
+		fenster->doTastaturEreignis(te);
 }
 
-bool KESSVorschauKarteScript::tick( double zeit )
+bool KESSVorschauKarteScript::tick(double zeit)
 {
-    bool rend = fenster ? fenster->tick( zeit ) : 0;
-    if( !sichtbar && alpha > 0 )
-    {
-        if( alpha - zeit * 150 < 0 )
-            alpha = 0;
-        else
-            alpha -= (unsigned char)( zeit * 150 );
-        rend = 1;
-    }
-    if( sichtbar && alpha < 255 )
-    {
-        if( alpha + zeit * 150 > 255 )
-            alpha = 255;
-        else
-            alpha += (unsigned char)( zeit * 150 );
-        rend = 1;
-    }
-    return rend;
+	bool rend = fenster ? fenster->tick(zeit) : 0;
+	if (!sichtbar && alpha > 0)
+	{
+		if (alpha - zeit * 150 < 0)
+			alpha = 0;
+		else
+			alpha -= (unsigned char)(zeit * 150);
+		rend = 1;
+	}
+	if (sichtbar && alpha < 255)
+	{
+		if (alpha + zeit * 150 > 255)
+			alpha = 255;
+		else
+			alpha += (unsigned char)(zeit * 150);
+		rend = 1;
+	}
+	return rend;
 }
 
-void KESSVorschauKarteScript::render( Bild &zRObj )
+void KESSVorschauKarteScript::render(Bild& zRObj)
 {
-    if( !zRObj.setDrawOptions( pos.x, pos.y, ram->getBreite(), ram->getHeight() ) )
-        return;
-    zRObj.setAlpha( alpha );
-    ram->render( zRObj );
-    if( fenster )
-        fenster->render( zRObj );
-    zRObj.releaseAlpha();
-    zRObj.releaseDrawOptions();
+	if (!zRObj.setDrawOptions(pos.x, pos.y, ram->getBreite(), ram->getHeight()))
+		return;
+	zRObj.setAlpha(alpha);
+	ram->render(zRObj);
+	if (fenster)
+		fenster->render(zRObj);
+	zRObj.releaseAlpha();
+	zRObj.releaseDrawOptions();
 }
 
 
 // Inhalt der KESSVorschauKarte Klasse aus KESSVorschau.h
 // Konstruktor
 KESSVorschauKarte::KESSVorschauKarte()
-    : ReferenceCounter()
+	: ReferenceCounter()
 {
-    auswählen = initKnopf( 173, 73, 22, 22, 0, "" );
-    auswählen->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Rahmen | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::KlickBuffer );
-    auswählen->setHintergrundBildZ( bilder->get( "data/client/bilder/shop.ltdb/weiter.png" ) );
-    initToolTip( auswählen, "Karte auswählen." );
-    auswählen->setRahmenBreite( 1 );
-    hintergrund = 0;
-    ausgewählt = new AlphaFeld();
-    ausgewählt->setPosition( 1, 1 );
-    ausgewählt->setSize( 198, 98 );
-    ausgewählt->setFarbe( 0x0000FF00 );
-    ausgewählt->setStrength( 10 );
-    ram = new LRahmen();
-    ram->setPosition( 10, 10 );
-    ram->setSize( 200, 100 );
-    ram->setFarbe( 0xFFFFFFFF );
-    ausw = 0;
-    rend = 0;
+	auswählen = initKnopf(173, 73, 22, 22, 0, "");
+	auswählen->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Rahmen | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::KlickBuffer);
+	auswählen->setHintergrundBildZ(bilder->get("data/client/bilder/shop.ltdb/weiter.png"));
+	initToolTip(auswählen, "Karte auswählen.");
+	auswählen->setRahmenBreite(1);
+	hintergrund = 0;
+	ausgewählt = new AlphaFeld();
+	ausgewählt->setPosition(1, 1);
+	ausgewählt->setSize(198, 98);
+	ausgewählt->setFarbe(0x0000FF00);
+	ausgewählt->setStrength(10);
+	ram = new LRahmen();
+	ram->setPosition(10, 10);
+	ram->setSize(200, 100);
+	ram->setFarbe(0xFFFFFFFF);
+	ausw = 0;
+	rend = 0;
 }
 
 // Destruktor
 KESSVorschauKarte::~KESSVorschauKarte()
 {
-    auswählen->release();
-    if( hintergrund )
-        hintergrund->release();
-    ausgewählt->release();
-    ram->release();
+	auswählen->release();
+	if (hintergrund)
+		hintergrund->release();
+	ausgewählt->release();
+	ram->release();
 }
 
 // nicht constant
-void KESSVorschauKarte::ladeKarte( char *pfad )
+void KESSVorschauKarte::ladeKarte(char* pfad)
 {
-    LTDBDatei *datei = new LTDBDatei();
-    Text *bdpf = new Text( pfad );
-    bdpf->append( "/titelbg.ltdb" );
-    datei->setDatei( bdpf );
-    hintergrund = datei->laden( 0, new Text( "auswbg.jpg" ) );
-    datei->release();
+	LTDBDatei* datei = new LTDBDatei();
+	Text* bdpf = new Text(pfad);
+	bdpf->append("/titelbg.ltdb");
+	datei->setDatei(bdpf);
+	hintergrund = datei->laden(0, new Text("auswbg.jpg"));
+	datei->release();
 }
 
-bool KESSVorschauKarte::doPublicMausEreignis( MausEreignis &me )
+bool KESSVorschauKarte::doPublicMausEreignis(MausEreignis& me)
 {
-    bool vera = me.verarbeitet;
-    auswählen->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet && me.id == ME_RLinks )
-    {
-        ausw = 1;
-        return 1;
-    }
-    return 0;
+	bool vera = me.verarbeitet;
+	auswählen->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet && me.id == ME_RLinks)
+	{
+		ausw = 1;
+		return 1;
+	}
+	return 0;
 }
 
-bool KESSVorschauKarte::tick( double zeit )
+bool KESSVorschauKarte::tick(double zeit)
 {
-    rend |= ausgewählt->tick( zeit );
-    rend |= auswählen->tick( zeit );
-    int a = ( ausgewählt->getFarbe() >> 24 ) & 0xFF;
-    if( ausw && a < 255 )
-    {
-        if( a + 150 * zeit > 255 )
-            a = 255;
-        else
-            a += (int)( zeit * 150 );
-        ausgewählt->setFarbe( ( ( a << 24 ) & 0xFF000000 ) | ( ausgewählt->getFarbe() & 0xFFFFFF ) );
-        rend = 1;
-    }
-    if( !ausw && a > 0 )
-    {
-        if( a - 150 * zeit < 0 )
-            a = 0;
-        else
-            a += (int)( zeit * 150 );
-        ausgewählt->setFarbe( ( ( a << 24 ) & 0xFF000000 ) | ( ausgewählt->getFarbe() & 0xFFFFFF ) );
-        rend = 1;
-    }
-    bool ret = rend;
-    rend = 0;
-    return ret;
+	rend |= ausgewählt->tick(zeit);
+	rend |= auswählen->tick(zeit);
+	int a = (ausgewählt->getFarbe() >> 24) & 0xFF;
+	if (ausw && a < 255)
+	{
+		if (a + 150 * zeit > 255)
+			a = 255;
+		else
+			a += (int)(zeit * 150);
+		ausgewählt->setFarbe(((a << 24) & 0xFF000000) | (ausgewählt->getFarbe() & 0xFFFFFF));
+		rend = 1;
+	}
+	if (!ausw && a > 0)
+	{
+		if (a - 150 * zeit < 0)
+			a = 0;
+		else
+			a += (int)(zeit * 150);
+		ausgewählt->setFarbe(((a << 24) & 0xFF000000) | (ausgewählt->getFarbe() & 0xFFFFFF));
+		rend = 1;
+	}
+	bool ret = rend;
+	rend = 0;
+	return ret;
 }
 
-void KESSVorschauKarte::render( Bild &zRObj )
+void KESSVorschauKarte::render(Bild& zRObj)
 {
-    ram->render( zRObj );
-    if( !zRObj.setDrawOptions( ram->getX(), ram->getY(), 200, 100 ) )
-        return;
-    if( hintergrund )
-        zRObj.drawBild( 1, 1, 198, 98, *hintergrund );
-    ausgewählt->render( zRObj );
-    auswählen->render( zRObj );
-    zRObj.releaseDrawOptions();
+	ram->render(zRObj);
+	if (!zRObj.setDrawOptions(ram->getX(), ram->getY(), 200, 100))
+		return;
+	if (hintergrund)
+		zRObj.drawBild(1, 1, 198, 98, *hintergrund);
+	ausgewählt->render(zRObj);
+	auswählen->render(zRObj);
+	zRObj.releaseDrawOptions();
 }
 
 
 // Inhalt der KESSVorschau Klasse aus KESSVorschau.h
 // Konstruktor
 KESSVorschau::KESSVorschau()
-    : Zeichnung()
+	: Zeichnung()
 {
-    tr = new TextRenderer( dynamic_cast<Schrift *>( uiFactory.initParam.schrift->getThis() ) );
-    log = initTextFeld( 10, 400, 860, 90, TextFeld::Style::TextGebiet & ~TextFeld::Style::Erlaubt, "Log:\n" );
-    script = new KESSVorschauKarteScript( log );
-    karte = new KESSVorschauKarte();
-    beenden = initKnopf( 10, 500, 100, 20, Knopf::Style::Sichtbar, "Zurück" );
-    besitztTestVersion = initAuswahlBox( 10, 120, 200, 20, ABSTYLE, { "Besitzt Testversion nicht", "Besitzt Testversion" } );
-    spieleVerbleibend = initTextFeld( 110, 150, 100, 20, TextFeld::Style::TextFeld, "0" );
-    spieleVerbleibend->setTastaturEreignis( _nurNummernTE );
-    vvErwerbbar = initAuswahlBox( 10, 180, 200, 20, ABSTYLE, { "Vollversion erwerbbar", "Vollversion nicht erwerbbar" } );
-    tvErwerbbar = initAuswahlBox( 10, 210, 200, 20, ABSTYLE, { "Testversion erwerbbar", "Testversion nicht erwerbbar" } );
-    vvPreis = initTextFeld( 110, 240, 100, 20, TextFeld::Style::TextFeld, "0" );
-    vvPreis->setTastaturEreignis( _nurNummernTE );
-    tvPreis = initTextFeld( 110, 270, 100, 20, TextFeld::Style::TextFeld, "0" );
-    tvPreis->setTastaturEreignis( _nurNummernTE );
-    kupfer = initTextFeld( 110, 300, 100, 20, TextFeld::Style::TextFeld, "0" );
-    pfad = "";
-    alpha = 0;
-    sichtbar = 0;
-    tickVal = 0;
-    aktion = 0;
-    rend = 0;
+	tr = new TextRenderer(dynamic_cast<Schrift*>(uiFactory.initParam.schrift->getThis()));
+	log = initTextFeld(10, 400, 860, 90, TextFeld::Style::TextGebiet & ~TextFeld::Style::Erlaubt, "Log:\n");
+	script = new KESSVorschauKarteScript(log);
+	karte = new KESSVorschauKarte();
+	beenden = initKnopf(10, 500, 100, 20, Knopf::Style::Sichtbar, "Zurück");
+	besitztTestVersion = initAuswahlBox(10, 120, 200, 20, ABSTYLE, { "Besitzt Testversion nicht", "Besitzt Testversion" });
+	spieleVerbleibend = initTextFeld(110, 150, 100, 20, TextFeld::Style::TextFeld, "0");
+	spieleVerbleibend->setTastaturEreignis(_nurNummernTE);
+	vvErwerbbar = initAuswahlBox(10, 180, 200, 20, ABSTYLE, { "Vollversion erwerbbar", "Vollversion nicht erwerbbar" });
+	tvErwerbbar = initAuswahlBox(10, 210, 200, 20, ABSTYLE, { "Testversion erwerbbar", "Testversion nicht erwerbbar" });
+	vvPreis = initTextFeld(110, 240, 100, 20, TextFeld::Style::TextFeld, "0");
+	vvPreis->setTastaturEreignis(_nurNummernTE);
+	tvPreis = initTextFeld(110, 270, 100, 20, TextFeld::Style::TextFeld, "0");
+	tvPreis->setTastaturEreignis(_nurNummernTE);
+	kupfer = initTextFeld(110, 300, 100, 20, TextFeld::Style::TextFeld, "0");
+	pfad = "";
+	alpha = 0;
+	sichtbar = 0;
+	tickVal = 0;
+	aktion = 0;
+	rend = 0;
 }
 
 // Destruktor
 KESSVorschau::~KESSVorschau()
 {
-    tr->release();
-    script->release();
-    karte->release();
-    beenden->release();
-    besitztTestVersion->release();
-    spieleVerbleibend->release();
-    vvErwerbbar->release();
-    tvErwerbbar->release();
-    vvPreis->release();
-    tvPreis->release();
-    kupfer->release();
-    log->release();
+	tr->release();
+	script->release();
+	karte->release();
+	beenden->release();
+	besitztTestVersion->release();
+	spieleVerbleibend->release();
+	vvErwerbbar->release();
+	tvErwerbbar->release();
+	vvPreis->release();
+	tvPreis->release();
+	kupfer->release();
+	log->release();
 }
 
 // nicht constant
 int KESSVorschau::getAktion()
 {
-    int ret = aktion;
-    aktion = 0;
-    return ret;
+	int ret = aktion;
+	aktion = 0;
+	return ret;
 }
 
-void KESSVorschau::ladeKarte( char *pfad )
+void KESSVorschau::ladeKarte(char* pfad)
 {
-    karte->ladeKarte( pfad );
-    this->pfad = pfad;
+	karte->ladeKarte(pfad);
+	this->pfad = pfad;
 }
 
-void KESSVorschau::setSichtbar( bool sicht )
+void KESSVorschau::setSichtbar(bool sicht)
 {
-    sichtbar = sicht;
+	sichtbar = sicht;
 }
 
-void KESSVorschau::doPublicMausEreignis( MausEreignis &me )
+void KESSVorschau::doPublicMausEreignis(MausEreignis& me)
 {
-    if( !sichtbar )
-        return;
-    bool paramUpdate = 0;
-    int ausw = vvErwerbbar->getAuswahl();
-    vvErwerbbar->doPublicMausEreignis( me );
-    if( ausw != vvErwerbbar->getAuswahl() && me.id == ME_RLinks )
-    {
-        vvErwerbbar->einklappen();
-        paramUpdate = 1;
-    }
-    ausw = tvErwerbbar->getAuswahl();
-    tvErwerbbar->doPublicMausEreignis( me );
-    if( ausw != tvErwerbbar->getAuswahl() && me.id == ME_RLinks )
-    {
-        tvErwerbbar->einklappen();
-        paramUpdate = 1;
-    }
-    ausw = besitztTestVersion->getAuswahl();
-    besitztTestVersion->doPublicMausEreignis( me );
-    if( ausw != besitztTestVersion->getAuswahl() && me.id == ME_RLinks )
-    {
-        besitztTestVersion->einklappen();
-        paramUpdate = 1;
-    }
-    script->doPublicMausEreignis( me );
-    if( karte->doPublicMausEreignis( me ) )
-        script->ladeKarteSeite( pfad );
-    bool vera = me.verarbeitet;
-    beenden->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet && me.id == ME_RLinks )
-        aktion = 1;
-    vvPreis->doPublicMausEreignis( me );
-    tvPreis->doPublicMausEreignis( me );
-    kupfer->doPublicMausEreignis( me );
-    spieleVerbleibend->doPublicMausEreignis( me );
-    log->doPublicMausEreignis( me );
-    if( paramUpdate )
-    {
-        script->setScriptParams( besitztTestVersion->getAuswahl() == 1, (int)*spieleVerbleibend->zText(), vvErwerbbar->getAuswahl() == 0,
-                                 tvErwerbbar->getAuswahl() == 0, (int)*vvPreis->zText(), (int)*tvPreis->zText(), (int)*kupfer->zText() );
-    }
+	if (!sichtbar)
+		return;
+	bool paramUpdate = 0;
+	int ausw = vvErwerbbar->getAuswahl();
+	vvErwerbbar->doPublicMausEreignis(me);
+	if (ausw != vvErwerbbar->getAuswahl() && me.id == ME_RLinks)
+	{
+		vvErwerbbar->einklappen();
+		paramUpdate = 1;
+	}
+	ausw = tvErwerbbar->getAuswahl();
+	tvErwerbbar->doPublicMausEreignis(me);
+	if (ausw != tvErwerbbar->getAuswahl() && me.id == ME_RLinks)
+	{
+		tvErwerbbar->einklappen();
+		paramUpdate = 1;
+	}
+	ausw = besitztTestVersion->getAuswahl();
+	besitztTestVersion->doPublicMausEreignis(me);
+	if (ausw != besitztTestVersion->getAuswahl() && me.id == ME_RLinks)
+	{
+		besitztTestVersion->einklappen();
+		paramUpdate = 1;
+	}
+	script->doPublicMausEreignis(me);
+	if (karte->doPublicMausEreignis(me))
+		script->ladeKarteSeite(pfad);
+	bool vera = me.verarbeitet;
+	beenden->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet && me.id == ME_RLinks)
+		aktion = 1;
+	vvPreis->doPublicMausEreignis(me);
+	tvPreis->doPublicMausEreignis(me);
+	kupfer->doPublicMausEreignis(me);
+	spieleVerbleibend->doPublicMausEreignis(me);
+	log->doPublicMausEreignis(me);
+	if (paramUpdate)
+	{
+		script->setScriptParams(besitztTestVersion->getAuswahl() == 1, (int)*spieleVerbleibend->zText(), vvErwerbbar->getAuswahl() == 0,
+			tvErwerbbar->getAuswahl() == 0, (int)*vvPreis->zText(), (int)*tvPreis->zText(), (int)*kupfer->zText());
+	}
 }
 
-void KESSVorschau::doTastaturEreignis( TastaturEreignis &te )
+void KESSVorschau::doTastaturEreignis(TastaturEreignis& te)
 {
-    if( !sichtbar )
-        return;
-    if( !te.verarbeitet && te.id == TE_Release && te.taste == T_Enter )
-    {
-        if( spieleVerbleibend->hatStyle( TextFeld::Style::Fokus ) || vvPreis->hatStyle( TextFeld::Style::Fokus ) || tvPreis->hatStyle( TextFeld::Style::Fokus ) || kupfer->hatStyle( TextFeld::Style::Fokus ) )
-        {
-            script->setScriptParams( besitztTestVersion->getAuswahl() == 1, (int)*spieleVerbleibend->zText(), vvErwerbbar->getAuswahl() == 0,
-                                     tvErwerbbar->getAuswahl() == 0, (int)*vvPreis->zText(), (int)*tvPreis->zText(), (int)*kupfer->zText() );
-        }
-    }
-    script->doTastaturEreignis( te );
-    spieleVerbleibend->doTastaturEreignis( te );
-    vvPreis->doTastaturEreignis( te );
-    tvPreis->doTastaturEreignis( te );
-    kupfer->doTastaturEreignis( te );
+	if (!sichtbar)
+		return;
+	if (!te.verarbeitet && te.id == TE_Release && te.taste == T_Enter)
+	{
+		if (spieleVerbleibend->hatStyle(TextFeld::Style::Fokus) || vvPreis->hatStyle(TextFeld::Style::Fokus) || tvPreis->hatStyle(TextFeld::Style::Fokus) || kupfer->hatStyle(TextFeld::Style::Fokus))
+		{
+			script->setScriptParams(besitztTestVersion->getAuswahl() == 1, (int)*spieleVerbleibend->zText(), vvErwerbbar->getAuswahl() == 0,
+				tvErwerbbar->getAuswahl() == 0, (int)*vvPreis->zText(), (int)*tvPreis->zText(), (int)*kupfer->zText());
+		}
+	}
+	script->doTastaturEreignis(te);
+	spieleVerbleibend->doTastaturEreignis(te);
+	vvPreis->doTastaturEreignis(te);
+	tvPreis->doTastaturEreignis(te);
+	kupfer->doTastaturEreignis(te);
 }
 
-bool KESSVorschau::tick( double zeit )
+bool KESSVorschau::tick(double zeit)
 {
-    bool ret = script->tick( zeit );
-    ret |= karte->tick( zeit );
-    ret |= beenden->tick( zeit );
-    ret |= spieleVerbleibend->tick( zeit );
-    ret |= vvPreis->tick( zeit );
-    ret |= tvPreis->tick( zeit );
-    ret |= kupfer->tick( zeit );
-    ret |= log->tick( zeit );
-    ret |= tvErwerbbar->tick( zeit );
-    ret |= vvErwerbbar->tick( zeit );
-    ret |= besitztTestVersion->tick( zeit );
-    tickVal += zeit * 150;
-    int val = 0;
-    if( tickVal > 1 )
-        val = (int)tickVal;
-    else
-        return ret;
-    if( sichtbar && alpha != 255 )
-    {
-        if( alpha + val > 255 )
-            alpha = 255;
-        else
-            alpha += val;
-        ret = 1;
-    }
-    if( !sichtbar && alpha != 0 )
-    {
-        if( alpha - val < 0 )
-            alpha = 0;
-        else
-            alpha -= val;
-        ret = 1;
-    }
-    return ret;
+	bool ret = script->tick(zeit);
+	ret |= karte->tick(zeit);
+	ret |= beenden->tick(zeit);
+	ret |= spieleVerbleibend->tick(zeit);
+	ret |= vvPreis->tick(zeit);
+	ret |= tvPreis->tick(zeit);
+	ret |= kupfer->tick(zeit);
+	ret |= log->tick(zeit);
+	ret |= tvErwerbbar->tick(zeit);
+	ret |= vvErwerbbar->tick(zeit);
+	ret |= besitztTestVersion->tick(zeit);
+	tickVal += zeit * 150;
+	int val = 0;
+	if (tickVal > 1)
+		val = (int)tickVal;
+	else
+		return ret;
+	if (sichtbar && alpha != 255)
+	{
+		if (alpha + val > 255)
+			alpha = 255;
+		else
+			alpha += val;
+		ret = 1;
+	}
+	if (!sichtbar && alpha != 0)
+	{
+		if (alpha - val < 0)
+			alpha = 0;
+		else
+			alpha -= val;
+		ret = 1;
+	}
+	return ret;
 }
 
-void KESSVorschau::render( Bild &zRObj )
+void KESSVorschau::render(Bild& zRObj)
 {
-    zRObj.setAlpha( alpha );
-    script->render( zRObj );
-    karte->render( zRObj );
-    beenden->render( zRObj );
-    spieleVerbleibend->render( zRObj );
-    log->render( zRObj );
-    vvPreis->render( zRObj );
-    tvPreis->render( zRObj );
-    kupfer->render( zRObj );
-    tr->setSchriftSize( 12 );
-    Text txt = "Test Spiele:";
-    tr->renderText( 10, 154, txt, zRObj, 0xFFFFFFFF );
-    txt = "Voll Preis:";
-    tr->renderText( 10, 244, txt, zRObj, 0xFFFFFFFF );
-    txt = "Test Preis:";
-    tr->renderText( 10, 274, txt, zRObj, 0xFFFFFFFF );
-    txt = "Kupfer Besitz:";
-    tr->renderText( 10, 304, txt, zRObj, 0xFFFFFFFF );
-    txt = "Diese Werte sind nur zum\nTesten und haben keinerlei\nEinfluss auf den Shop.";
-    tr->renderText( 10, 334, txt, zRObj, 0xFFFFFFFF );
-    tvErwerbbar->render( zRObj );
-    vvErwerbbar->render( zRObj );
-    besitztTestVersion->render( zRObj );
-    zRObj.releaseAlpha();
+	zRObj.setAlpha(alpha);
+	script->render(zRObj);
+	karte->render(zRObj);
+	beenden->render(zRObj);
+	spieleVerbleibend->render(zRObj);
+	log->render(zRObj);
+	vvPreis->render(zRObj);
+	tvPreis->render(zRObj);
+	kupfer->render(zRObj);
+	tr->setSchriftSize(12);
+	Text txt = "Test Spiele:";
+	tr->renderText(10, 154, txt, zRObj, 0xFFFFFFFF);
+	txt = "Voll Preis:";
+	tr->renderText(10, 244, txt, zRObj, 0xFFFFFFFF);
+	txt = "Test Preis:";
+	tr->renderText(10, 274, txt, zRObj, 0xFFFFFFFF);
+	txt = "Kupfer Besitz:";
+	tr->renderText(10, 304, txt, zRObj, 0xFFFFFFFF);
+	txt = "Diese Werte sind nur zum\nTesten und haben keinerlei\nEinfluss auf den Shop.";
+	tr->renderText(10, 334, txt, zRObj, 0xFFFFFFFF);
+	tvErwerbbar->render(zRObj);
+	vvErwerbbar->render(zRObj);
+	besitztTestVersion->render(zRObj);
+	zRObj.releaseAlpha();
 }
 
 // constant
 bool KESSVorschau::istSichtbar() const
 {
-    return sichtbar;
+	return sichtbar;
 }

+ 76 - 76
KSGClient/NachLogin/Editor/Karte/ShopSeite/KESSVorschau.h

@@ -12,98 +12,98 @@ using namespace KSGScript;
 class KESSVorschauKarteScript : public Thread
 {
 private:
-    KSGScriptObj *fenster;
-    Punkt pos;
-    LRahmen *ram;
-    HINSTANCE ksgs;
-    Text pfad;
-    bool sichtbar;
-    bool besitztTestVersion;
-    int verbleibend;
-    bool vollversionErwerbbar;
-    bool testversionErwerbbar;
-    int vvPreis;
-    int tvPreis;
-    int kupfer;
-    unsigned char alpha;
-    bool aktion;
-    int ak;
+	KSGScriptObj* fenster;
+	Punkt pos;
+	LRahmen* ram;
+	HINSTANCE ksgs;
+	Text pfad;
+	bool sichtbar;
+	bool besitztTestVersion;
+	int verbleibend;
+	bool vollversionErwerbbar;
+	bool testversionErwerbbar;
+	int vvPreis;
+	int tvPreis;
+	int kupfer;
+	unsigned char alpha;
+	bool aktion;
+	int ak;
 
 public:
-    // Konstruktor
-    KESSVorschauKarteScript( TextFeld *zLog );
-    // Destruktor
-    ~KESSVorschauKarteScript();
-    // nicht constant
-    void thread() override;
-    void setScriptParams( bool hatTV, int tvVerb, bool vvEn, bool tvEn, int vvK, int tvK, int k );
-    void ladeKarteSeite( char *pfad );
-    void ksgsAktion( RCArray< KSGSVariable > *parameter, KSGSVariable **retVal );
-    void doPublicMausEreignis( MausEreignis &me );
-    void doTastaturEreignis( TastaturEreignis &te );
-    bool tick( double zeit );
-    void render( Bild &zRObj );
+	// Konstruktor
+	KESSVorschauKarteScript(TextFeld* zLog);
+	// Destruktor
+	~KESSVorschauKarteScript();
+	// nicht constant
+	void thread() override;
+	void setScriptParams(bool hatTV, int tvVerb, bool vvEn, bool tvEn, int vvK, int tvK, int k);
+	void ladeKarteSeite(const char* pfad);
+	void ksgsAktion(RCArray< KSGSVariable >* parameter, KSGSVariable** retVal);
+	void doPublicMausEreignis(MausEreignis& me);
+	void doTastaturEreignis(TastaturEreignis& te);
+	bool tick(double zeit);
+	void render(Bild& zRObj);
 };
 
 class KESSVorschauKarte : public virtual ReferenceCounter
 {
 private:
-    Knopf *auswählen;
-    Bild *hintergrund;
-    AlphaFeld *ausgewählt;
-    LRahmen *ram;
-    bool ausw;
-    bool rend;
+	Knopf* auswählen;
+	Bild* hintergrund;
+	AlphaFeld* ausgewählt;
+	LRahmen* ram;
+	bool ausw;
+	bool rend;
 
 public:
-    // Konstruktor
-    KESSVorschauKarte();
-    // Destruktor
-    ~KESSVorschauKarte();
-    // nicht constant
-    void ladeKarte( char *pfad );
-    bool doPublicMausEreignis( MausEreignis &me );
-    bool tick( double zeit );
-    void render( Bild &zRObj );
+	// Konstruktor
+	KESSVorschauKarte();
+	// Destruktor
+	~KESSVorschauKarte();
+	// nicht constant
+	void ladeKarte(char* pfad);
+	bool doPublicMausEreignis(MausEreignis& me);
+	bool tick(double zeit);
+	void render(Bild& zRObj);
 };
 
 class KESSVorschau : public Zeichnung
 {
 private:
-    TextRenderer *tr;
-    KESSVorschauKarteScript *script;
-    KESSVorschauKarte *karte;
-    Knopf *beenden;
-    AuswahlBox *besitztTestVersion;
-    TextFeld *spieleVerbleibend;
-    AuswahlBox *vvErwerbbar;
-    AuswahlBox *tvErwerbbar;
-    TextFeld *vvPreis;
-    TextFeld *tvPreis;
-    TextFeld *kupfer;
-    Text pfad;
-    TextFeld *log;
-    unsigned char alpha;
-    bool sichtbar;
-    double tickVal;
-    int aktion;
-    bool rend;
+	TextRenderer* tr;
+	KESSVorschauKarteScript* script;
+	KESSVorschauKarte* karte;
+	Knopf* beenden;
+	AuswahlBox* besitztTestVersion;
+	TextFeld* spieleVerbleibend;
+	AuswahlBox* vvErwerbbar;
+	AuswahlBox* tvErwerbbar;
+	TextFeld* vvPreis;
+	TextFeld* tvPreis;
+	TextFeld* kupfer;
+	Text pfad;
+	TextFeld* log;
+	unsigned char alpha;
+	bool sichtbar;
+	double tickVal;
+	int aktion;
+	bool rend;
 
 public:
-    // Konstruktor
-    KESSVorschau();
-    // Destruktor
-    ~KESSVorschau();
-    // nicht constant
-    int getAktion();
-    void ladeKarte( char *pfad );
-    void setSichtbar( bool sicht );
-    void doPublicMausEreignis( MausEreignis &me );
-    void doTastaturEreignis( TastaturEreignis &te );
-    bool tick( double zeit );
-    void render( Bild &zRObj );
-    // constant
-    bool istSichtbar() const;
+	// Konstruktor
+	KESSVorschau();
+	// Destruktor
+	~KESSVorschau();
+	// nicht constant
+	int getAktion();
+	void ladeKarte(char* pfad);
+	void setSichtbar(bool sicht);
+	void doPublicMausEreignis(MausEreignis& me);
+	void doTastaturEreignis(TastaturEreignis& te);
+	bool tick(double zeit);
+	void render(Bild& zRObj);
+	// constant
+	bool istSichtbar() const;
 };
 
 #endif

+ 399 - 399
KSGClient/NachLogin/Editor/Karte/Teams/KETeams.cpp

@@ -2,453 +2,453 @@
 #include "../../../../Global/Initialisierung.h"
 #include "../../../../Global/Variablen.h"
 
-bool KETNachME( void *p, void *obj, MausEreignis me )
+bool KETNachME(void* p, void* obj, MausEreignis me)
 {
-    if( p )
-        ( (KETeams *)p )->nachME( obj, me );
-    return 1;
+	if (p)
+		((KETeams*)p)->nachME(obj, me);
+	return 1;
 }
 
-bool KETNachTE( void *p, void *obj, TastaturEreignis te )
+bool KETNachTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( p )
-        ( (KETeams *)p )->nachTE( obj, te );
-    return 1;
+	if (p)
+		((KETeams*)p)->nachTE(obj, te);
+	return 1;
 }
 
 // Inhalt der KETeams Klasse aus KETeams.h
 // Konstruktor
-KETeams::KETeams( int karte )
-    : Thread()
+KETeams::KETeams(int karte)
+	: Thread()
 {
-    Text *kName = infoClient->getKarteName( karte );
-    Text titel = kName ? kName->getText() : "<Karte>";
-    titel += " - Teams";
-    if( kName )
-        kName->release();
-    fenster = initFenster( 10, 40, 880, 550, Fenster::Style::Sichtbar | Fenster::Style::Titel | Fenster::Style::TitelBuffered | Fenster::Style::Erlaubt | Fenster::Style::Rahmen, titel );
-    teams = initAuswahlListe( 10, 10, 265, 510, AuswahlListe::Style::Normal, {} );
-    teams->setNMausEreignisParameter( this );
-    teams->setNMausEreignis( KETNachME );
-    tName = initTextFeld( 285, 10, 150, 20, TextFeld::Style::TextFeld & ~TextFeld::Style::Erlaubt, "Team Name" );
-    initToolTip( tName, "Name des Teams ändern" );
-    tName->setNTastaturEreignisParameter( this );
-    tName->setNTastaturEreignis( KETNachTE );
-    tFarbe = initTextFeld( 285, 40, 150, 20, TextFeld::Style::TextFeld & ~TextFeld::Style::Erlaubt, "Team Farbe" );
-    initToolTip( tFarbe, "Farbe des Teams ändern" );
-    tFarbe->setTastaturEreignis( _nurHexTE );
-    tFarbe->setNTastaturEreignisParameter( this );
-    tFarbe->setNTastaturEreignis( KETNachTE );
-    tFarbeV = initZeichnungHintergrund( 285, 70, 150, 20, ZeichnungHintergrund::Style::Sichtbar | ZeichnungHintergrund::Style::Hintergrund, 0 );
-    tNeu = initKnopf( 285, 100, 150, 20, Knopf::Style::Sichtbar, "Neues Team" );
-    tNeu->setNMausEreignisParameter( this );
-    tNeu->setNMausEreignis( KETNachME );
-    tLöschen = initKnopf( 285, 130, 150, 20, Knopf::Style::Sichtbar, "Team remove" );
-    tLöschen->removeStyle( Knopf::Style::Erlaubt );
-    tLöschen->setNMausEreignisParameter( this );
-    tLöschen->setNMausEreignis( KETNachME );
-    spieler = initAuswahlListe( 445, 10, 265, 510, AuswahlListe::Style::Normal & ~AuswahlListe::Style::Erlaubt, {} );
-    spieler->setNMausEreignisParameter( this );
-    spieler->setNMausEreignis( KETNachME );
-    sFarbe = initTextFeld( 720, 10, 150, 20, TextFeld::Style::TextFeld & ~TextFeld::Style::Erlaubt, "Spieler Farbe" );
-    initToolTip( sFarbe, "Farbe des Spielers ändern" );
-    sFarbe->setTastaturEreignis( _nurHexTE );
-    sFarbe->setNTastaturEreignisParameter( this );
-    sFarbe->setNTastaturEreignis( KETNachTE );
-    sFarbeV = initZeichnungHintergrund( 720, 40, 150, 20, ZeichnungHintergrund::Style::Sichtbar | ZeichnungHintergrund::Style::Hintergrund, 0 );
-    sNeu = initKnopf( 720, 70, 150, 20, Knopf::Style::Sichtbar, "Neuer Spieler" );
-    sNeu->removeStyle( Knopf::Style::Erlaubt );
-    sNeu->setNMausEreignisParameter( this );
-    sNeu->setNMausEreignis( KETNachME );
-    sLöschen = initKnopf( 720, 100, 150, 20, Knopf::Style::Sichtbar, "Spieler remove" );
-    sLöschen->removeStyle( Knopf::Style::Erlaubt );
-    sLöschen->setNMausEreignisParameter( this );
-    sLöschen->setNMausEreignis( KETNachME );
-    abbrechen = initKnopf( 720, 470, 150, 20, Knopf::Style::Sichtbar, "Abbrechen" );
-    initToolTip( abbrechen, "Verwirft alle änderungen an den Team Einstellungen" );
-    abbrechen->setNMausEreignisParameter( this );
-    abbrechen->setNMausEreignis( KETNachME );
-    speichern = initKnopf( 720, 500, 150, 20, Knopf::Style::Sichtbar, "Speichern" );
-    initToolTip( speichern, "Speichert alle Änderungen an den Team Einstellungen" );
-    speichern->setNMausEreignisParameter( this );
-    speichern->setNMausEreignis( KETNachME );
-    fenster->addMember( dynamic_cast<Zeichnung *>( teams->getThis() ) );
-    fenster->addMember( dynamic_cast<Zeichnung *>( tName->getThis() ) );
-    fenster->addMember( dynamic_cast<Zeichnung *>( tFarbe->getThis() ) );
-    fenster->addMember( dynamic_cast<Zeichnung *>( tFarbeV->getThis() ) );
-    fenster->addMember( dynamic_cast<Zeichnung *>( tNeu->getThis() ) );
-    fenster->addMember( dynamic_cast<Zeichnung *>( tLöschen->getThis() ) );
-    fenster->addMember( dynamic_cast<Zeichnung *>( spieler->getThis() ) );
-    fenster->addMember( dynamic_cast<Zeichnung *>( sFarbe->getThis() ) );
-    fenster->addMember( dynamic_cast<Zeichnung *>( sFarbeV->getThis() ) );
-    fenster->addMember( dynamic_cast<Zeichnung *>( sNeu->getThis() ) );
-    fenster->addMember( dynamic_cast<Zeichnung *>( sLöschen->getThis() ) );
-    fenster->addMember( dynamic_cast<Zeichnung *>( abbrechen->getThis() ) );
-    fenster->addMember( dynamic_cast<Zeichnung *>( speichern->getThis() ) );
-    laden = (Animation2D *)ladeAnimation->dublizieren();
-    laden->setPosition( 425, 275 );
-    laden->setSichtbar( 0 );
-    sts = new SpielerTeamStruktur();
-    animation = 0;
-    tickVal = 0;
-    sichtbar = 0;
-    rechts = 0;
-    xStart = 0;
-    breite = 0;
-    aktion = 0;
-    this->karte = karte;
-    alpha = 255;
+	Text* kName = infoClient->getKarteName(karte);
+	Text titel = kName ? kName->getText() : "<Karte>";
+	titel += " - Teams";
+	if (kName)
+		kName->release();
+	fenster = initFenster(10, 40, 880, 550, Fenster::Style::Sichtbar | Fenster::Style::Titel | Fenster::Style::TitelBuffered | Fenster::Style::Erlaubt | Fenster::Style::Rahmen, titel);
+	teams = initAuswahlListe(10, 10, 265, 510, AuswahlListe::Style::Normal, {});
+	teams->setNMausEreignisParameter(this);
+	teams->setNMausEreignis(KETNachME);
+	tName = initTextFeld(285, 10, 150, 20, TextFeld::Style::TextFeld & ~TextFeld::Style::Erlaubt, "Team Name");
+	initToolTip(tName, "Name des Teams ändern");
+	tName->setNTastaturEreignisParameter(this);
+	tName->setNTastaturEreignis(KETNachTE);
+	tFarbe = initTextFeld(285, 40, 150, 20, TextFeld::Style::TextFeld & ~TextFeld::Style::Erlaubt, "Team Farbe");
+	initToolTip(tFarbe, "Farbe des Teams ändern");
+	tFarbe->setTastaturEreignis(_nurHexTE);
+	tFarbe->setNTastaturEreignisParameter(this);
+	tFarbe->setNTastaturEreignis(KETNachTE);
+	tFarbeV = initZeichnungHintergrund(285, 70, 150, 20, ZeichnungHintergrund::Style::Sichtbar | ZeichnungHintergrund::Style::Hintergrund, 0);
+	tNeu = initKnopf(285, 100, 150, 20, Knopf::Style::Sichtbar, "Neues Team");
+	tNeu->setNMausEreignisParameter(this);
+	tNeu->setNMausEreignis(KETNachME);
+	tLöschen = initKnopf(285, 130, 150, 20, Knopf::Style::Sichtbar, "Team remove");
+	tLöschen->removeStyle(Knopf::Style::Erlaubt);
+	tLöschen->setNMausEreignisParameter(this);
+	tLöschen->setNMausEreignis(KETNachME);
+	spieler = initAuswahlListe(445, 10, 265, 510, AuswahlListe::Style::Normal & ~AuswahlListe::Style::Erlaubt, {});
+	spieler->setNMausEreignisParameter(this);
+	spieler->setNMausEreignis(KETNachME);
+	sFarbe = initTextFeld(720, 10, 150, 20, TextFeld::Style::TextFeld & ~TextFeld::Style::Erlaubt, "Spieler Farbe");
+	initToolTip(sFarbe, "Farbe des Spielers ändern");
+	sFarbe->setTastaturEreignis(_nurHexTE);
+	sFarbe->setNTastaturEreignisParameter(this);
+	sFarbe->setNTastaturEreignis(KETNachTE);
+	sFarbeV = initZeichnungHintergrund(720, 40, 150, 20, ZeichnungHintergrund::Style::Sichtbar | ZeichnungHintergrund::Style::Hintergrund, 0);
+	sNeu = initKnopf(720, 70, 150, 20, Knopf::Style::Sichtbar, "Neuer Spieler");
+	sNeu->removeStyle(Knopf::Style::Erlaubt);
+	sNeu->setNMausEreignisParameter(this);
+	sNeu->setNMausEreignis(KETNachME);
+	sLöschen = initKnopf(720, 100, 150, 20, Knopf::Style::Sichtbar, "Spieler remove");
+	sLöschen->removeStyle(Knopf::Style::Erlaubt);
+	sLöschen->setNMausEreignisParameter(this);
+	sLöschen->setNMausEreignis(KETNachME);
+	abbrechen = initKnopf(720, 470, 150, 20, Knopf::Style::Sichtbar, "Abbrechen");
+	initToolTip(abbrechen, "Verwirft alle änderungen an den Team Einstellungen");
+	abbrechen->setNMausEreignisParameter(this);
+	abbrechen->setNMausEreignis(KETNachME);
+	speichern = initKnopf(720, 500, 150, 20, Knopf::Style::Sichtbar, "Speichern");
+	initToolTip(speichern, "Speichert alle Änderungen an den Team Einstellungen");
+	speichern->setNMausEreignisParameter(this);
+	speichern->setNMausEreignis(KETNachME);
+	fenster->addMember(dynamic_cast<Zeichnung*>(teams->getThis()));
+	fenster->addMember(dynamic_cast<Zeichnung*>(tName->getThis()));
+	fenster->addMember(dynamic_cast<Zeichnung*>(tFarbe->getThis()));
+	fenster->addMember(dynamic_cast<Zeichnung*>(tFarbeV->getThis()));
+	fenster->addMember(dynamic_cast<Zeichnung*>(tNeu->getThis()));
+	fenster->addMember(dynamic_cast<Zeichnung*>(tLöschen->getThis()));
+	fenster->addMember(dynamic_cast<Zeichnung*>(spieler->getThis()));
+	fenster->addMember(dynamic_cast<Zeichnung*>(sFarbe->getThis()));
+	fenster->addMember(dynamic_cast<Zeichnung*>(sFarbeV->getThis()));
+	fenster->addMember(dynamic_cast<Zeichnung*>(sNeu->getThis()));
+	fenster->addMember(dynamic_cast<Zeichnung*>(sLöschen->getThis()));
+	fenster->addMember(dynamic_cast<Zeichnung*>(abbrechen->getThis()));
+	fenster->addMember(dynamic_cast<Zeichnung*>(speichern->getThis()));
+	laden = (Animation2D*)ladeAnimation->dublizieren();
+	laden->setPosition(425, 275);
+	laden->setSichtbar(0);
+	sts = new SpielerTeamStruktur();
+	animation = 0;
+	tickVal = 0;
+	sichtbar = 0;
+	rechts = 0;
+	xStart = 0;
+	breite = 0;
+	aktion = 0;
+	this->karte = karte;
+	alpha = 255;
 }
 
 // Destruktor
 KETeams::~KETeams()
 {
-    fenster->release();
-    laden->release();
-    teams->release();
-    tName->release();
-    tFarbe->release();
-    delete tFarbeV;
-    tNeu->release();
-    tLöschen->release();
-    spieler->release();
-    sFarbe->release();
-    delete sFarbeV;
-    sNeu->release();
-    sLöschen->release();
-    abbrechen->release();
-    speichern->release();
-    sts->release();
+	fenster->release();
+	laden->release();
+	teams->release();
+	tName->release();
+	tFarbe->release();
+	delete tFarbeV;
+	tNeu->release();
+	tLöschen->release();
+	spieler->release();
+	sFarbe->release();
+	delete sFarbeV;
+	sNeu->release();
+	sLöschen->release();
+	abbrechen->release();
+	speichern->release();
+	sts->release();
 }
 
 // privat
 void KETeams::updateGUI()
 {
-    Text *teamAusw = teams->zEintrag( teams->getAuswahl() ) ? teams->zEintrag( teams->getAuswahl() )->getText() : 0;
-    Text *spielerAusw = spieler->zEintrag( spieler->getAuswahl() ) ? spieler->zEintrag( spieler->getAuswahl() )->getText() : 0;
-    uiFactory.initParam.bildschirm->lock();
-    teams->deSelect();
-    spieler->deSelect();
-    while( teams->getEintragAnzahl() )
-        teams->removeEintrag( 0 );
-    while( spieler->getEintragAnzahl() )
-        spieler->removeEintrag( 0 );
-    for( int i = 0; i < sts->teamAnzahl; i++ )
-    {
-        teams->addEintrag( sts->teamName->z( i )->getText() );
-        if( teamAusw && teamAusw->istGleich( sts->teamName->z( i )->getText() ) )
-        {
-            teams->setAuswahl( i );
-            tName->setText( sts->teamName->z( i )->getText() );
-            Text f = "";
-            f.appendHex( sts->teamFarbe->get( i ) );
-            tFarbe->setText( f );
-            tFarbeV->setHintergrundFarbe( sts->teamFarbe->get( i ) );
-        }
-    }
-    int start = 0;
-    for( int i = 0; i < teams->getAuswahl(); i++ )
-        start += sts->teamSize->get( i );
-    bool tausw = teams->zEintrag( teams->getAuswahl() ) != 0;
-    if( tausw )
-    {
-        for( int i = 0; i < sts->teamSize->get( teams->getAuswahl() ); i++ )
-        {
-            Text n = "Spieler ";
-            n += i + 1;
-            spieler->addEintrag( n );
-            if( spielerAusw && spielerAusw->istGleich( n ) )
-            {
-                spieler->setAuswahl( i );
-                Text f = "";
-                f.appendHex( sts->spielerFarbe->get( start + i ) );
-                sFarbe->setText( f );
-                sFarbeV->setHintergrundFarbe( sts->spielerFarbe->get( start + i ) );
-            }
-        }
-    }
-    sts->spielerAnzahl = 0;
-    for( int i = 0; i < sts->teamAnzahl; i++ )
-        sts->spielerAnzahl += sts->teamSize->get( i );
-    uiFactory.initParam.bildschirm->unlock();
-    bool sAusw = spieler->zEintrag( spieler->getAuswahl() ) != 0;
-    tName->setStyle( TextFeld::Style::Erlaubt, tausw );
-    tFarbe->setStyle( TextFeld::Style::Erlaubt, tausw );
-    tLöschen->setStyle( Knopf::Style::Erlaubt, tausw );
-    spieler->setStyle( AuswahlListe::Style::Erlaubt, tausw );
-    sNeu->setStyle( Knopf::Style::Erlaubt, tausw );
-    sFarbe->setStyle( TextFeld::Style::Erlaubt, sAusw );
-    sLöschen->setStyle( Knopf::Style::Erlaubt, sAusw );
-    if( teamAusw )
-        teamAusw->release();
-    if( spielerAusw )
-        spielerAusw->release();
+	Text* teamAusw = teams->zEintrag(teams->getAuswahl()) ? teams->zEintrag(teams->getAuswahl())->getText() : 0;
+	Text* spielerAusw = spieler->zEintrag(spieler->getAuswahl()) ? spieler->zEintrag(spieler->getAuswahl())->getText() : 0;
+	uiFactory.initParam.bildschirm->lock();
+	teams->deSelect();
+	spieler->deSelect();
+	while (teams->getEintragAnzahl())
+		teams->removeEintrag(0);
+	while (spieler->getEintragAnzahl())
+		spieler->removeEintrag(0);
+	for (int i = 0; i < sts->teamAnzahl; i++)
+	{
+		teams->addEintrag(sts->teamName->z(i)->getText());
+		if (teamAusw && teamAusw->istGleich(sts->teamName->z(i)->getText()))
+		{
+			teams->setAuswahl(i);
+			tName->setText(sts->teamName->z(i)->getText());
+			Text f = "";
+			f.appendHex(sts->teamFarbe->get(i));
+			tFarbe->setText(f);
+			tFarbeV->setHintergrundFarbe(sts->teamFarbe->get(i));
+		}
+	}
+	int start = 0;
+	for (int i = 0; i < teams->getAuswahl(); i++)
+		start += sts->teamSize->get(i);
+	bool tausw = teams->zEintrag(teams->getAuswahl()) != 0;
+	if (tausw)
+	{
+		for (int i = 0; i < sts->teamSize->get(teams->getAuswahl()); i++)
+		{
+			Text n = "Spieler ";
+			n += i + 1;
+			spieler->addEintrag(n);
+			if (spielerAusw && spielerAusw->istGleich(n))
+			{
+				spieler->setAuswahl(i);
+				Text f = "";
+				f.appendHex(sts->spielerFarbe->get(start + i));
+				sFarbe->setText(f);
+				sFarbeV->setHintergrundFarbe(sts->spielerFarbe->get(start + i));
+			}
+		}
+	}
+	sts->spielerAnzahl = 0;
+	for (int i = 0; i < sts->teamAnzahl; i++)
+		sts->spielerAnzahl += sts->teamSize->get(i);
+	uiFactory.initParam.bildschirm->unlock();
+	bool sAusw = spieler->zEintrag(spieler->getAuswahl()) != 0;
+	tName->setStyle(TextFeld::Style::Erlaubt, tausw);
+	tFarbe->setStyle(TextFeld::Style::Erlaubt, tausw);
+	tLöschen->setStyle(Knopf::Style::Erlaubt, tausw);
+	spieler->setStyle(AuswahlListe::Style::Erlaubt, tausw);
+	sNeu->setStyle(Knopf::Style::Erlaubt, tausw);
+	sFarbe->setStyle(TextFeld::Style::Erlaubt, sAusw);
+	sLöschen->setStyle(Knopf::Style::Erlaubt, sAusw);
+	if (teamAusw)
+		teamAusw->release();
+	if (spielerAusw)
+		spielerAusw->release();
 }
 
 // nicht constant
-void KETeams::nachME( void *obj, MausEreignis &me )
+void KETeams::nachME(void* obj, MausEreignis& me)
 {
-    if( me.id != ME_RLinks )
-        return;
-    if( obj == speichern )
-    {
-        aktion = 1;
-        start();
-    }
-    if( obj == abbrechen )
-    {
-        aktion = 0;
-        start();
-    }
-    if( obj == tNeu )
-    {
-        sts->teamSize->set( 0, sts->teamAnzahl );
-        sts->teamFarbe->set( 0, sts->teamAnzahl );
-        Text tn = "";
-        bool ex = 1;
-        for( int i = 1; ex; i++ )
-        {
-            tn = "Team ";
-            tn += i;
-            ex = 0;
-            for( int j = 0; j < sts->teamAnzahl; j++ )
-            {
-                if( sts->teamName->z( j )->istGleich( tn ) )
-                {
-                    ex = 1;
-                    break;
-                }
-            }
-        }
-        sts->teamName->set( new Text( (char *)tn ), sts->teamAnzahl );
-        sts->teamAnzahl++;
-        updateGUI();
-    }
-    if( obj == tLöschen )
-    {
-        sts->teamSize->remove( teams->getAuswahl() );
-        sts->teamFarbe->remove( teams->getAuswahl() );
-        sts->teamName->remove( teams->getAuswahl() );
-        sts->teamAnzahl--;
-        updateGUI();
-    }
-    if( obj == sNeu )
-    {
-        int start = 0;
-        for( int i = 0; i < teams->getAuswahl(); i++ )
-            start += sts->teamSize->get( i );
-        sts->spielerFarbe->add( 0, start + sts->teamSize->get( teams->getAuswahl() ) );
-        sts->teamSize->set( sts->teamSize->get( teams->getAuswahl() ) + 1, teams->getAuswahl() );
-        updateGUI();
-    }
-    if( obj == sLöschen )
-    {
-        int start = 0;
-        for( int i = 0; i < teams->getAuswahl(); i++ )
-            start += sts->teamSize->get( i );
-        sts->spielerFarbe->remove( start + spieler->getAuswahl() );
-        sts->teamSize->set( sts->teamSize->get( teams->getAuswahl() ) - 1, teams->getAuswahl() );
-        updateGUI();
-    }
-    if( obj == teams )
-        updateGUI();
-    if( obj == spieler )
-        updateGUI();
+	if (me.id != ME_RLinks)
+		return;
+	if (obj == speichern)
+	{
+		aktion = 1;
+		start();
+	}
+	if (obj == abbrechen)
+	{
+		aktion = 0;
+		start();
+	}
+	if (obj == tNeu)
+	{
+		sts->teamSize->set(0, sts->teamAnzahl);
+		sts->teamFarbe->set(0, sts->teamAnzahl);
+		Text tn = "";
+		bool ex = 1;
+		for (int i = 1; ex; i++)
+		{
+			tn = "Team ";
+			tn += i;
+			ex = 0;
+			for (int j = 0; j < sts->teamAnzahl; j++)
+			{
+				if (sts->teamName->z(j)->istGleich(tn))
+				{
+					ex = 1;
+					break;
+				}
+			}
+		}
+		sts->teamName->set(new Text(tn), sts->teamAnzahl);
+		sts->teamAnzahl++;
+		updateGUI();
+	}
+	if (obj == tLöschen)
+	{
+		sts->teamSize->remove(teams->getAuswahl());
+		sts->teamFarbe->remove(teams->getAuswahl());
+		sts->teamName->remove(teams->getAuswahl());
+		sts->teamAnzahl--;
+		updateGUI();
+	}
+	if (obj == sNeu)
+	{
+		int start = 0;
+		for (int i = 0; i < teams->getAuswahl(); i++)
+			start += sts->teamSize->get(i);
+		sts->spielerFarbe->add(0, start + sts->teamSize->get(teams->getAuswahl()));
+		sts->teamSize->set(sts->teamSize->get(teams->getAuswahl()) + 1, teams->getAuswahl());
+		updateGUI();
+	}
+	if (obj == sLöschen)
+	{
+		int start = 0;
+		for (int i = 0; i < teams->getAuswahl(); i++)
+			start += sts->teamSize->get(i);
+		sts->spielerFarbe->remove(start + spieler->getAuswahl());
+		sts->teamSize->set(sts->teamSize->get(teams->getAuswahl()) - 1, teams->getAuswahl());
+		updateGUI();
+	}
+	if (obj == teams)
+		updateGUI();
+	if (obj == spieler)
+		updateGUI();
 }
 
-void KETeams::nachTE( void *obj, TastaturEreignis &te )
+void KETeams::nachTE(void* obj, TastaturEreignis& te)
 {
-    if( te.id != TE_Release )
-        return;
-    if( obj == tName )
-    {
-        sts->teamName->set( new Text( tName->zText()->getText() ), teams->getAuswahl() );
-        teams->zEintrag( teams->getAuswahl() )->setText( sts->teamName->z( teams->getAuswahl() )->getText() );
-    }
-    if( obj == tFarbe )
-    {
-        sts->teamFarbe->set( TextZuInt( tFarbe->zText()->getText(), 16 ), teams->getAuswahl() );
-        tFarbeV->setHintergrundFarbe( sts->teamFarbe->get( teams->getAuswahl() ) );
-    }
-    if( obj == sFarbe )
-    {
-        int start = 0;
-        for( int i = 0; i < teams->getAuswahl(); i++ )
-            start += sts->teamSize->get( i );
-        sts->spielerFarbe->set( TextZuInt( sFarbe->zText()->getText(), 16 ), start + spieler->getAuswahl() );
-        sFarbeV->setHintergrundFarbe( sts->spielerFarbe->get( start + spieler->getAuswahl() ) );
-    }
+	if (te.id != TE_Release)
+		return;
+	if (obj == tName)
+	{
+		sts->teamName->set(new Text(tName->zText()->getText()), teams->getAuswahl());
+		teams->zEintrag(teams->getAuswahl())->setText(sts->teamName->z(teams->getAuswahl())->getText());
+	}
+	if (obj == tFarbe)
+	{
+		sts->teamFarbe->set(TextZuInt(tFarbe->zText()->getText(), 16), teams->getAuswahl());
+		tFarbeV->setHintergrundFarbe(sts->teamFarbe->get(teams->getAuswahl()));
+	}
+	if (obj == sFarbe)
+	{
+		int start = 0;
+		for (int i = 0; i < teams->getAuswahl(); i++)
+			start += sts->teamSize->get(i);
+		sts->spielerFarbe->set(TextZuInt(sFarbe->zText()->getText(), 16), start + spieler->getAuswahl());
+		sFarbeV->setHintergrundFarbe(sts->spielerFarbe->get(start + spieler->getAuswahl()));
+	}
 }
 
-void KETeams::setSichtbar( bool s, bool vr )
+void KETeams::setSichtbar(bool s, bool vr)
 {
-    animation = 1;
-    sichtbar = s;
-    rechts = vr;
-    if( sichtbar )
-    {
-        if( vr )
-        {
-            xStart = 900;
-            breite = 0;
-        }
-        else
-        {
-            xStart = 0;
-            breite = 0;
-        }
-        if( !run )
-        {
-            aktion = 0;
-            start();
-        }
-    }
+	animation = 1;
+	sichtbar = s;
+	rechts = vr;
+	if (sichtbar)
+	{
+		if (vr)
+		{
+			xStart = 900;
+			breite = 0;
+		}
+		else
+		{
+			xStart = 0;
+			breite = 0;
+		}
+		if (!run)
+		{
+			aktion = 0;
+			start();
+		}
+	}
 }
 
 void KETeams::thread()
 {
-    laden->setSichtbar( 1 );
-    if( aktion == 0 )
-    { // Laden
-        if( !editorClient->ladeTeamDaten( sts ) )
-            nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( editorClient->getLetzterFehler() ), new Text( "Ok" ) );
-        else
-            updateGUI();
-    }
-    if( aktion == 1 )
-    { // Speichern
-        if( !editorClient->speicherTeamDaten( sts ) )
-            nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( editorClient->getLetzterFehler() ), new Text( "Ok" ) );
-    }
-    run = 0;
-    laden->setSichtbar( 0 );
-    return;
+	laden->setSichtbar(1);
+	if (aktion == 0)
+	{ // Laden
+		if (!editorClient->ladeTeamDaten(sts))
+			nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text(editorClient->getLetzterFehler()), new Text("Ok"));
+		else
+			updateGUI();
+	}
+	if (aktion == 1)
+	{ // Speichern
+		if (!editorClient->speicherTeamDaten(sts))
+			nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text(editorClient->getLetzterFehler()), new Text("Ok"));
+	}
+	run = 0;
+	laden->setSichtbar(0);
+	return;
 }
 
-void KETeams::doPublicMausEreignis( MausEreignis &me )
+void KETeams::doPublicMausEreignis(MausEreignis& me)
 {
-    if( !run )
-        fenster->doPublicMausEreignis( me );
+	if (!run)
+		fenster->doPublicMausEreignis(me);
 }
 
-void KETeams::doTastaturEreignis( TastaturEreignis &te )
+void KETeams::doTastaturEreignis(TastaturEreignis& te)
 {
-    if( !run )
-        fenster->doTastaturEreignis( te );
+	if (!run)
+		fenster->doTastaturEreignis(te);
 }
 
-bool KETeams::tick( double z )
+bool KETeams::tick(double z)
 {
-    bool ret = laden->tick( z );
-    tickVal += z * 150;
-    int val = (int)tickVal;
-    tickVal -= val;
-    if( val )
-    {
-        if( run && alpha > 100 )
-        {
-            if( alpha - val < 100 )
-                alpha = 100;
-            else
-                alpha -= val;
-            ret = 1;
-        }
-        if( sichtbar && !run && alpha != 255 )
-        {
-            if( alpha + val > 255 )
-                alpha = 255;
-            else
-                alpha += val;
-            ret = 1;
-        }
-        val *= 3;
-        if( sichtbar )
-        {
-            if( alpha < 100 )
-            {
-                if( alpha + val > 100 )
-                    alpha = 100;
-                else
-                    alpha += val;
-                ret = 1;
-            }
-            if( xStart != 0 || breite != 900 )
-            {
-                if( rechts )
-                {
-                    if( xStart - val <= 0 )
-                    {
-                        xStart = 0;
-                        breite = 900;
-                        animation = 0;
-                    }
-                    else
-                    {
-                        xStart -= val;
-                        breite += val;
-                    }
-                }
-                else
-                {
-                    if( breite + val >= 900 )
-                    {
-                        breite = 900;
-                        animation = 0;
-                    }
-                    else
-                        breite += val;
-                }
-                ret = 1;
-            }
-        }
-        else
-        {
-            if( breite != 0 )
-            {
-                if( rechts )
-                {
-                    if( breite - val <= 0 )
-                    {
-                        breite = 0;
-                        animation = 0;
-                    }
-                    else
-                        breite -= val;
-                }
-                else
-                {
-                    if( breite - val <= 0 )
-                    {
-                        breite = 0;
-                        xStart = 900;
-                        animation = 0;
-                    }
-                    else
-                    {
-                        breite -= val;
-                        xStart += val;
-                    }
-                }
-                ret = 1;
-            }
-        }
-    }
-    return ret || fenster->tick( z );
+	bool ret = laden->tick(z);
+	tickVal += z * 150;
+	int val = (int)tickVal;
+	tickVal -= val;
+	if (val)
+	{
+		if (run && alpha > 100)
+		{
+			if (alpha - val < 100)
+				alpha = 100;
+			else
+				alpha -= val;
+			ret = 1;
+		}
+		if (sichtbar && !run && alpha != 255)
+		{
+			if (alpha + val > 255)
+				alpha = 255;
+			else
+				alpha += val;
+			ret = 1;
+		}
+		val *= 3;
+		if (sichtbar)
+		{
+			if (alpha < 100)
+			{
+				if (alpha + val > 100)
+					alpha = 100;
+				else
+					alpha += val;
+				ret = 1;
+			}
+			if (xStart != 0 || breite != 900)
+			{
+				if (rechts)
+				{
+					if (xStart - val <= 0)
+					{
+						xStart = 0;
+						breite = 900;
+						animation = 0;
+					}
+					else
+					{
+						xStart -= val;
+						breite += val;
+					}
+				}
+				else
+				{
+					if (breite + val >= 900)
+					{
+						breite = 900;
+						animation = 0;
+					}
+					else
+						breite += val;
+				}
+				ret = 1;
+			}
+		}
+		else
+		{
+			if (breite != 0)
+			{
+				if (rechts)
+				{
+					if (breite - val <= 0)
+					{
+						breite = 0;
+						animation = 0;
+					}
+					else
+						breite -= val;
+				}
+				else
+				{
+					if (breite - val <= 0)
+					{
+						breite = 0;
+						xStart = 900;
+						animation = 0;
+					}
+					else
+					{
+						breite -= val;
+						xStart += val;
+					}
+				}
+				ret = 1;
+			}
+		}
+	}
+	return ret || fenster->tick(z);
 }
 
-void KETeams::render( Bild &zRObj )
+void KETeams::render(Bild& zRObj)
 {
-    if( !zRObj.setDrawOptions( xStart, 0, breite, 600 ) )
-        return;
-    zRObj.setAlpha( alpha );
-    fenster->render( zRObj );
-    zRObj.releaseAlpha();
-    laden->render( zRObj );
-    zRObj.releaseDrawOptions();
+	if (!zRObj.setDrawOptions(xStart, 0, breite, 600))
+		return;
+	zRObj.setAlpha(alpha);
+	fenster->render(zRObj);
+	zRObj.releaseAlpha();
+	laden->render(zRObj);
+	zRObj.releaseDrawOptions();
 }
 
 // constant
 bool KETeams::istSichtbar() const
 {
-    return sichtbar || animation;
+	return sichtbar || animation;
 }

+ 154 - 154
KSGClient/NachLogin/Einstellungen/Einstellungen.cpp

@@ -7,185 +7,185 @@
 
 // Inhalt der Einstellungen Klasse aus Einstellungen.h
 // Konstruktor
-Einstellungen::Einstellungen( Fenster *zF )
-    : ReferenceCounter()
+Einstellungen::Einstellungen(Fenster* zF)
+	: ReferenceCounter()
 {
-    f = initFenster( zF->getBreite() / 2 - 250, zF->getHeight() / 2 - 250, 500, 500,
-                     Fenster::Style::normal | Fenster::Style::BodyHAlpha | Fenster::Style::BodyHintergrund |
-                     Fenster::Style::TitelHintergrund | Fenster::Style::TitelHAlpha, "Einstellungen" );
-    f->removeStyle( Fenster::Style::Sichtbar );
-    f->setKBgFarbe( 0xe0000000 );
-    f->setTBgFarbe( 0xe0000000 );
-    f->setSBgFarbe( 0xF0000000 );
-    f->setClosingMeParam( this );
-    f->setClosingMe( einstellungenSchließenME );
-    TextFeld *gat = initTextFeld( 5, 5, 300, 20, TextFeld::Style::Text, "Grafik Engine (Neustart erforderlich)" );
-    f->addMember( gat );
-    AuswahlBox *graphicAPI = initAuswahlBox( 5, 25, 100, 20, AuswahlBox::Style::Normal | AuswahlBox::Style::Hintergrund, { "Aktuellste", "DirectX 9" } );
-    if( DirectX11::isAvailable() )
-        graphicAPI->addEintrag( "DirectX 11" );
-    if( DirectX12::isAvailable() )
-        graphicAPI->addEintrag( "DirectX 12" );
-    graphicAPI->setAuswahl( 0 );
-    if( userOptions->wertExistiert( "GraphicAPI" ) && userOptions->zWert( "GraphicAPI" )->istGleich( "DX9" ) )
-        graphicAPI->setAuswahl( 1 );
-    if( userOptions->wertExistiert( "GraphicAPI" ) && userOptions->zWert( "GraphicAPI" )->istGleich( "DX11" ) )
-        graphicAPI->setAuswahl( 2 );
-    if( userOptions->wertExistiert( "GraphicAPI" ) && userOptions->zWert( "GraphicAPI" )->istGleich( "DX12" ) )
-        graphicAPI->setAuswahl( 3 );
-    graphicAPI->setEventAktion( [this]( void *p, AuswahlBox *b, int unused, int auswahl )
-    {
-        userOptions->addWert( "GraphicAPI", "BEST" );
-        switch( auswahl )
-        {
-        case 1:
-            userOptions->setWert( "GraphicAPI", "DX9" );
-            break;
-        case 2:
-            userOptions->setWert( "GraphicAPI", "DX11" );
-            break;
-        case 3:
-            userOptions->setWert( "GraphicAPI", "DX12" );
-            break;
-        default:
-            userOptions->setWert( "GraphicAPI", "BEST" );
-            break;
-        }
-    } );
-    TextFeld *mft = initTextFeld( 5, 50, 200, 20, TextFeld::Style::Text, "Maximale FPS" );
-    f->addMember( mft );
-    maxFPS = initTextFeld( 5, 70, 50, 20, TextFeld::Style::TextFeld, userOptions->wertExistiert( "MaxFPS" ) ? userOptions->zWert( "MaxFPS" )->getText() : "30" );
-    maxFPS->setTastaturEreignis( _nurNummernTE );
-    f->addMember( dynamic_cast<Zeichnung *>( maxFPS->getThis() ) );
-    TextFeld *gst = initTextFeld( 5, 95, 200, 20, TextFeld::Style::Text, "GUI Lautstärke (0 bis 100)" );
-    f->addMember( gst );
-    guiSound = initTextFeld( 5, 115, 50, 20, TextFeld::Style::TextFeld, userOptions->wertExistiert( "GUISound" ) ? userOptions->zWert( "GUISound" )->getText() : "100" );
-    guiSound->setTastaturEreignis( _nurNummernTE );
-    f->addMember( dynamic_cast<Zeichnung *>( guiSound->getThis() ) );
-    TextFeld *mt = initTextFeld( 255, 5, 200, 20, TextFeld::Style::Text, "Monitor (Neustart erforderlich)" );
-    f->addMember( mt );
-    AuswahlBox *monitorAuswahl = initAuswahlBox( 255, 25, 200, 20, AuswahlBox::Style::Normal | AuswahlBox::Style::Hintergrund, {} );
-    Monitor m = getMonitor( 0 );
-    int index = 0;
-    do
-    {
-        monitorAuswahl->addEintrag( Text( "Monitor " ) + ++index + " (" + m.breite + "x" + m.height + ")" );
-        m = getMonitor( index );
-    } while( m.existiert );
-    if( userOptions->wertExistiert( "Monitor" ) )
-        monitorAuswahl->setAuswahl( *userOptions->zWert( "Monitor" ) );
-    monitorAuswahl->setEventAktion( [this]( void *p, AuswahlBox *b, int unused, int auswahl )
-    {
-        if( !userOptions->wertExistiert( "Monitor" ) )
-            userOptions->addWert( "Monitor", Text( auswahl ) );
-        else
-            userOptions->setWert( "Monitor", Text( auswahl ) );
-        Monitor m = getMonitor( auswahl );
-        if( !userOptions->wertExistiert( "ScreenWidth" ) )
-            userOptions->addWert( "ScreenWidth", Text( m.breite ) );
-        else
-            userOptions->setWert( "ScreenWidth", Text( m.breite ) );
-        if( !userOptions->wertExistiert( "ScreenWidth" ) )
-            userOptions->addWert( "ScreenHeight", Text( m.height ) );
-        else
-            userOptions->setWert( "ScreenHeight", Text( m.height ) );
-        breite->setText( Text( m.breite ) );
-        height->setText( Text( m.height ) );
-    } );
-    TextFeld *at = initTextFeld( 255, 50, 200, 20, TextFeld::Style::Text, "Auflösung (Neustart erforderlich)" );
-    f->addMember( at );
-    breite = initTextFeld( 255, 70, 50, 20, TextFeld::Style::TextFeld, userOptions->wertExistiert( "ScreenWidth" ) ? userOptions->zWert( "ScreenWidth" )->getText() :
-                           Text( getMonitor( userOptions->wertExistiert( "Monitor" ) ? *userOptions->zWert( "Monitor" ) : 0 ).breite ) );
-    height = initTextFeld( 312, 70, 50, 20, TextFeld::Style::TextFeld, userOptions->wertExistiert( "ScreenHeight" ) ? userOptions->zWert( "ScreenHeight" )->getText() :
-                           Text( getMonitor( userOptions->wertExistiert( "Monitor" ) ? *userOptions->zWert( "Monitor" ) : 0 ).height ) );
-    breite->setTastaturEreignis( _nurNummernTE );
-    height->setTastaturEreignis( _nurNummernTE );
-    f->addMember( dynamic_cast<Zeichnung *>( breite->getThis() ) );
-    f->addMember( initTextFeld( 305, 70, 5, 20, TextFeld::Style::Text, "x" ) );
-    f->addMember( dynamic_cast<Zeichnung *>( height->getThis() ) );
-    ok = initKnopf( 390, 450, 100, 20, Knopf::Style::Sichtbar, "Ok" );
-    ok->setMausEreignisParameter( this );
-    ok->setMausEreignis( einstellungenOkME );
-    f->addMember( dynamic_cast<Zeichnung *>( ok->getThis() ) );
+	f = initFenster(zF->getBreite() / 2 - 250, zF->getHeight() / 2 - 250, 500, 500,
+		Fenster::Style::normal | Fenster::Style::BodyHAlpha | Fenster::Style::BodyHintergrund |
+		Fenster::Style::TitelHintergrund | Fenster::Style::TitelHAlpha, "Einstellungen");
+	f->removeStyle(Fenster::Style::Sichtbar);
+	f->setKBgFarbe(0xe0000000);
+	f->setTBgFarbe(0xe0000000);
+	f->setSBgFarbe(0xF0000000);
+	f->setClosingMeParam(this);
+	f->setClosingMe(einstellungenSchließenME);
+	TextFeld* gat = initTextFeld(5, 5, 300, 20, TextFeld::Style::Text, "Grafik Engine (Neustart erforderlich)");
+	f->addMember(gat);
+	AuswahlBox* graphicAPI = initAuswahlBox(5, 25, 100, 20, AuswahlBox::Style::Normal | AuswahlBox::Style::Hintergrund, { "Aktuellste", "DirectX 9" });
+	if (DirectX11::isAvailable())
+		graphicAPI->addEintrag("DirectX 11");
+	if (DirectX12::isAvailable())
+		graphicAPI->addEintrag("DirectX 12");
+	graphicAPI->setAuswahl(0);
+	if (userOptions->wertExistiert("GraphicAPI") && userOptions->zWert("GraphicAPI")->istGleich("DX9"))
+		graphicAPI->setAuswahl(1);
+	if (userOptions->wertExistiert("GraphicAPI") && userOptions->zWert("GraphicAPI")->istGleich("DX11"))
+		graphicAPI->setAuswahl(2);
+	if (userOptions->wertExistiert("GraphicAPI") && userOptions->zWert("GraphicAPI")->istGleich("DX12"))
+		graphicAPI->setAuswahl(3);
+	graphicAPI->setEventAktion([this](void* p, AuswahlBox* b, int unused, int auswahl)
+		{
+			userOptions->addWert("GraphicAPI", "BEST");
+			switch (auswahl)
+			{
+			case 1:
+				userOptions->setWert("GraphicAPI", "DX9");
+				break;
+			case 2:
+				userOptions->setWert("GraphicAPI", "DX11");
+				break;
+			case 3:
+				userOptions->setWert("GraphicAPI", "DX12");
+				break;
+			default:
+				userOptions->setWert("GraphicAPI", "BEST");
+				break;
+			}
+		});
+	TextFeld* mft = initTextFeld(5, 50, 200, 20, TextFeld::Style::Text, "Maximale FPS");
+	f->addMember(mft);
+	maxFPS = initTextFeld(5, 70, 50, 20, TextFeld::Style::TextFeld, userOptions->wertExistiert("MaxFPS") ? userOptions->zWert("MaxFPS")->getText() : "30");
+	maxFPS->setTastaturEreignis(_nurNummernTE);
+	f->addMember(dynamic_cast<Zeichnung*>(maxFPS->getThis()));
+	TextFeld* gst = initTextFeld(5, 95, 200, 20, TextFeld::Style::Text, "GUI Lautstärke (0 bis 100)");
+	f->addMember(gst);
+	guiSound = initTextFeld(5, 115, 50, 20, TextFeld::Style::TextFeld, userOptions->wertExistiert("GUISound") ? userOptions->zWert("GUISound")->getText() : "100");
+	guiSound->setTastaturEreignis(_nurNummernTE);
+	f->addMember(dynamic_cast<Zeichnung*>(guiSound->getThis()));
+	TextFeld* mt = initTextFeld(255, 5, 200, 20, TextFeld::Style::Text, "Monitor (Neustart erforderlich)");
+	f->addMember(mt);
+	AuswahlBox* monitorAuswahl = initAuswahlBox(255, 25, 200, 20, AuswahlBox::Style::Normal | AuswahlBox::Style::Hintergrund, {});
+	Monitor m = getMonitor(0);
+	int index = 0;
+	do
+	{
+		monitorAuswahl->addEintrag(Text("Monitor ") + ++index + " (" + m.breite + "x" + m.height + ")");
+		m = getMonitor(index);
+	} while (m.existiert);
+	if (userOptions->wertExistiert("Monitor"))
+		monitorAuswahl->setAuswahl((int)*userOptions->zWert("Monitor"));
+	monitorAuswahl->setEventAktion([this](void* p, AuswahlBox* b, int unused, int auswahl)
+		{
+			if (!userOptions->wertExistiert("Monitor"))
+				userOptions->addWert("Monitor", Text(auswahl));
+			else
+				userOptions->setWert("Monitor", Text(auswahl));
+			Monitor m = getMonitor(auswahl);
+			if (!userOptions->wertExistiert("ScreenWidth"))
+				userOptions->addWert("ScreenWidth", Text(m.breite));
+			else
+				userOptions->setWert("ScreenWidth", Text(m.breite));
+			if (!userOptions->wertExistiert("ScreenWidth"))
+				userOptions->addWert("ScreenHeight", Text(m.height));
+			else
+				userOptions->setWert("ScreenHeight", Text(m.height));
+			breite->setText(Text(m.breite));
+			height->setText(Text(m.height));
+		});
+	TextFeld* at = initTextFeld(255, 50, 200, 20, TextFeld::Style::Text, "Auflösung (Neustart erforderlich)");
+	f->addMember(at);
+	breite = initTextFeld(255, 70, 50, 20, TextFeld::Style::TextFeld, userOptions->wertExistiert("ScreenWidth") ? userOptions->zWert("ScreenWidth")->getText() :
+		Text(getMonitor(userOptions->wertExistiert("Monitor") ? (int)*userOptions->zWert("Monitor") : 0).breite));
+	height = initTextFeld(312, 70, 50, 20, TextFeld::Style::TextFeld, userOptions->wertExistiert("ScreenHeight") ? userOptions->zWert("ScreenHeight")->getText() :
+		Text(getMonitor(userOptions->wertExistiert("Monitor") ? (int)*userOptions->zWert("Monitor") : 0).height));
+	breite->setTastaturEreignis(_nurNummernTE);
+	height->setTastaturEreignis(_nurNummernTE);
+	f->addMember(dynamic_cast<Zeichnung*>(breite->getThis()));
+	f->addMember(initTextFeld(305, 70, 5, 20, TextFeld::Style::Text, "x"));
+	f->addMember(dynamic_cast<Zeichnung*>(height->getThis()));
+	ok = initKnopf(390, 450, 100, 20, Knopf::Style::Sichtbar, "Ok");
+	ok->setMausEreignisParameter(this);
+	ok->setMausEreignis(einstellungenOkME);
+	f->addMember(dynamic_cast<Zeichnung*>(ok->getThis()));
 
-    // add AuswahlBoxen
-    f->addMember( graphicAPI );
-    f->addMember( monitorAuswahl );
+	// add AuswahlBoxen
+	f->addMember(graphicAPI);
+	f->addMember(monitorAuswahl);
 
-    zF->addMember( dynamic_cast<Zeichnung *>( f->getThis() ) );
+	zF->addMember(dynamic_cast<Zeichnung*>(f->getThis()));
 }
 
 // Destruktor
 Einstellungen::~Einstellungen()
 {
-    maxFPS->release();
-    guiSound->release();
-    breite->release();
-    height->release();
-    f->release();
-    ok->release();
+	maxFPS->release();
+	guiSound->release();
+	breite->release();
+	height->release();
+	f->release();
+	ok->release();
 }
 
 // nicht constant
 void Einstellungen::setSichtbar()
 {
-    f->setStyle( Fenster::Style::Sichtbar, f->hatStyleNicht( Fenster::Style::Sichtbar ) );
+	f->setStyle(Fenster::Style::Sichtbar, f->hatStyleNicht(Fenster::Style::Sichtbar));
 }
 
-bool Einstellungen::closeME( MausEreignis &me )
+bool Einstellungen::closeME(MausEreignis& me)
 {
-    if( me.id == ME_RLinks )
-        f->removeStyle( Fenster::Style::Sichtbar );
-    return 1;
+	if (me.id == ME_RLinks)
+		f->removeStyle(Fenster::Style::Sichtbar);
+	return 1;
 }
 
-bool Einstellungen::okME( MausEreignis &me )
+bool Einstellungen::okME(MausEreignis& me)
 {
-    if( me.id == ME_RLinks )
-    {
-        int fps = *maxFPS->zText();
-        int sound = *guiSound->zText();
-        int wi = *breite->zText();
-        int hi = *height->zText();
-        if( fps > 0 && sound >= 0 && sound <= 100 && wi > 0 && hi > 0 )
-        {
-            f->removeStyle( Fenster::Style::Sichtbar );
-            uiFactory.initParam.bildschirm->lock();
-            if( !userOptions->wertExistiert( "MaxFPS" ) )
-                userOptions->addWert( "MaxFPS", maxFPS->zText()->getText() );
-            else
-                userOptions->setWert( "MaxFPS", maxFPS->zText()->getText() );
-            if( !userOptions->wertExistiert( "GUISound" ) )
-                userOptions->addWert( "GUISound", guiSound->zText()->getText() );
-            else
-                userOptions->setWert( "GUISound", guiSound->zText()->getText() );
-            if( !userOptions->wertExistiert( "ScreenWidth" ) )
-                userOptions->addWert( "ScreenWidth", Text( wi ) );
-            else
-                userOptions->setWert( "ScreenWidth", Text( wi ) );
-            if( !userOptions->wertExistiert( "ScreenHeight" ) )
-                userOptions->addWert( "ScreenHeight", Text( hi ) );
-            else
-                userOptions->setWert( "ScreenHeight", Text( hi ) );
-            uiFactory.initParam.bildschirm->unlock();
-            userOptions->speichern();
-        }
-    }
-    return 1;
+	if (me.id == ME_RLinks)
+	{
+		int fps = (int)*maxFPS->zText();
+		int sound = (int)*guiSound->zText();
+		int wi = (int)*breite->zText();
+		int hi = (int)*height->zText();
+		if (fps > 0 && sound >= 0 && sound <= 100 && wi > 0 && hi > 0)
+		{
+			f->removeStyle(Fenster::Style::Sichtbar);
+			uiFactory.initParam.bildschirm->lock();
+			if (!userOptions->wertExistiert("MaxFPS"))
+				userOptions->addWert("MaxFPS", maxFPS->zText()->getText());
+			else
+				userOptions->setWert("MaxFPS", maxFPS->zText()->getText());
+			if (!userOptions->wertExistiert("GUISound"))
+				userOptions->addWert("GUISound", guiSound->zText()->getText());
+			else
+				userOptions->setWert("GUISound", guiSound->zText()->getText());
+			if (!userOptions->wertExistiert("ScreenWidth"))
+				userOptions->addWert("ScreenWidth", Text(wi));
+			else
+				userOptions->setWert("ScreenWidth", Text(wi));
+			if (!userOptions->wertExistiert("ScreenHeight"))
+				userOptions->addWert("ScreenHeight", Text(hi));
+			else
+				userOptions->setWert("ScreenHeight", Text(hi));
+			uiFactory.initParam.bildschirm->unlock();
+			userOptions->speichern();
+		}
+	}
+	return 1;
 }
 
 
 // Ereignisse
-bool einstellungenSchließenME( void *p, void *obj, MausEreignis me )
+bool einstellungenSchließenME(void* p, void* obj, MausEreignis me)
 {
-    if( !p )
-        return 1;
-    return ( (Einstellungen *)p )->closeME( me );
+	if (!p)
+		return 1;
+	return ((Einstellungen*)p)->closeME(me);
 }
 
-bool einstellungenOkME( void *p, void *obj, MausEreignis me )
+bool einstellungenOkME(void* p, void* obj, MausEreignis me)
 {
-    if( !p )
-        return 1;
-    return ( (Einstellungen *)p )->okME( me );
+	if (!p)
+		return 1;
+	return ((Einstellungen*)p)->okME(me);
 }

+ 234 - 234
KSGClient/NachLogin/MiniGames/MiniGame.cpp

@@ -7,268 +7,268 @@
 
 // Inhalt der Minigame Klasse aus MiniGame.h
 // Konstruktor
-MiniGame::MiniGame( char *name )
-    : ReferenceCounter()
+MiniGame::MiniGame(const char* name)
+	: ReferenceCounter()
 {
-    xPos = 0;
-    yPos = 0;
-    xAbs = 0;
-    yAbs = 0;
-    zXPos = 0;
-    zYPos = 0;
-    xSpeed = 0;
-    ySpeed = 0;
-    this->name = new Text( name );
-    bgBild = 0;
-    mausAlpha = new AlphaFeld();
-    mausAlpha->setSize( 248, 98 );
-    mausAlpha->setFarbe( 0xFF00FF00 );
-    mausAlpha->setStrength( 50 );
-    rahmen = new LRahmen();
-    rahmen->setSize( 250, 100 );
-    rahmen->setFarbe( 0xFFFFFFFF );
-    rahmen->setRamenBreite( 1 );
-    sichtbar = 1;
-    alpha = 0;
-    mausIn = 0;
-    ok = 1;
-    rend = 0;
-    Text *pfad = new Text( "data/Minigames/" );
-    pfad->append( name );
-    if( !DateiExistiert( pfad->getText() ) )
-    {
-        ok = 0;
-        pfad->release();
-        return;
-    }
-    pfad->append( "/mg.ini" );
-    if( !DateiExistiert( pfad->getText() ) )
-    {
-        ok = 0;
-        pfad->release();
-        return;
-    }
-    InitDatei *mgIni = new InitDatei( pfad );
-    if( !mgIni->laden() )
-    {
-        ok = 0;
-        mgIni->release();
-        return;
-    }
-    if( !mgIni->wertExistiert( "TitelBild" ) || !mgIni->wertExistiert( "TitelBildPfad" ) || !mgIni->wertExistiert( "DllPfad" ) )
-    {
-        ok = 0;
-        mgIni->release();
-        return;
-    }
-    Text *bPfad = new Text( "data/Minigames/" );
-    bPfad->append( name );
-    bPfad->append( "/" );
-    bPfad->append( mgIni->zWert( "TitelBildPfad" )->getText() );
-    if( !DateiExistiert( bPfad->getText() ) )
-    {
-        ok = 0;
-        bPfad->release();
-        mgIni->release();
-        return;
-    }
-    LTDBDatei *bDat = new LTDBDatei();
-    bDat->setDatei( bPfad );
-    bDat->leseDaten( 0 );
-    bgBild = bDat->laden( 0, mgIni->getWert( "TitelBild" ) );
-    bDat->release();
-    mgIni->release();
-    if( !bgBild )
-        ok = 0;
+	xPos = 0;
+	yPos = 0;
+	xAbs = 0;
+	yAbs = 0;
+	zXPos = 0;
+	zYPos = 0;
+	xSpeed = 0;
+	ySpeed = 0;
+	this->name = new Text(name);
+	bgBild = 0;
+	mausAlpha = new AlphaFeld();
+	mausAlpha->setSize(248, 98);
+	mausAlpha->setFarbe(0xFF00FF00);
+	mausAlpha->setStrength(50);
+	rahmen = new LRahmen();
+	rahmen->setSize(250, 100);
+	rahmen->setFarbe(0xFFFFFFFF);
+	rahmen->setRamenBreite(1);
+	sichtbar = 1;
+	alpha = 0;
+	mausIn = 0;
+	ok = 1;
+	rend = 0;
+	Text* pfad = new Text("data/Minigames/");
+	pfad->append(name);
+	if (!DateiExistiert(pfad->getText()))
+	{
+		ok = 0;
+		pfad->release();
+		return;
+	}
+	pfad->append("/mg.ini");
+	if (!DateiExistiert(pfad->getText()))
+	{
+		ok = 0;
+		pfad->release();
+		return;
+	}
+	InitDatei* mgIni = new InitDatei(pfad);
+	if (!mgIni->laden())
+	{
+		ok = 0;
+		mgIni->release();
+		return;
+	}
+	if (!mgIni->wertExistiert("TitelBild") || !mgIni->wertExistiert("TitelBildPfad") || !mgIni->wertExistiert("DllPfad"))
+	{
+		ok = 0;
+		mgIni->release();
+		return;
+	}
+	Text* bPfad = new Text("data/Minigames/");
+	bPfad->append(name);
+	bPfad->append("/");
+	bPfad->append(mgIni->zWert("TitelBildPfad")->getText());
+	if (!DateiExistiert(bPfad->getText()))
+	{
+		ok = 0;
+		bPfad->release();
+		mgIni->release();
+		return;
+	}
+	LTDBDatei* bDat = new LTDBDatei();
+	bDat->setDatei(bPfad);
+	bDat->leseDaten(0);
+	bgBild = bDat->laden(0, mgIni->getWert("TitelBild"));
+	bDat->release();
+	mgIni->release();
+	if (!bgBild)
+		ok = 0;
 }
 
 // Destruktor
 MiniGame::~MiniGame()
 {
-    name->release();
-    if( bgBild )
-        bgBild->release();
-    mausAlpha->release();
-    rahmen->release();
+	name->release();
+	if (bgBild)
+		bgBild->release();
+	mausAlpha->release();
+	rahmen->release();
 }
 
 // nicht constant
-void MiniGame::setPosition( int x, int y )
+void MiniGame::setPosition(int x, int y)
 {
-    if( !xPos && !yPos )
-    {
-        xPos = x;
-        yPos = y;
-    }
-    zXPos = x;
-    zYPos = y;
-    xAbs = (int)( zXPos - xPos );
-    yAbs = (int)( zYPos - yPos );
+	if (!xPos && !yPos)
+	{
+		xPos = x;
+		yPos = y;
+	}
+	zXPos = x;
+	zYPos = y;
+	xAbs = (int)(zXPos - xPos);
+	yAbs = (int)(zYPos - yPos);
 }
 
-void MiniGame::setSichtbar( bool sichtbar )
+void MiniGame::setSichtbar(bool sichtbar)
 {
-    this->sichtbar = sichtbar;
+	this->sichtbar = sichtbar;
 }
 
-void MiniGame::doPublicMausEreignis( MausEreignis &me )
+void MiniGame::doPublicMausEreignis(MausEreignis& me)
 {
-    if( !this->sichtbar )
-        return;
-    if( me.mx > xPos && me.mx < xPos + 250 && me.my > yPos && me.my < yPos + 100 )
-    {
-        if( !mausIn )
-        {
-            rend = 1;
-            rahmen->setFarbe( 0xFF00FF00 );
-        }
-        mausIn = 1;
-    }
-    else
-    {
-        if( mausIn )
-        {
-            rend = 1;
-            rahmen->setFarbe( 0xFFFFFFFF );
-        }
-        mausIn = 0;
-    }
-    me.verarbeitet |= mausIn;
+	if (!this->sichtbar)
+		return;
+	if (me.mx > xPos && me.mx < xPos + 250 && me.my > yPos && me.my < yPos + 100)
+	{
+		if (!mausIn)
+		{
+			rend = 1;
+			rahmen->setFarbe(0xFF00FF00);
+		}
+		mausIn = 1;
+	}
+	else
+	{
+		if (mausIn)
+		{
+			rend = 1;
+			rahmen->setFarbe(0xFFFFFFFF);
+		}
+		mausIn = 0;
+	}
+	me.verarbeitet |= mausIn;
 }
 
-bool MiniGame::tick( double z )
+bool MiniGame::tick(double z)
 {
-    bool ret = rend;
-    rend = 0;
-    int val = (int)( z * 150 );
-    if( sichtbar && alpha != 255 )
-    {
-        if( alpha + val > 255 )
-            alpha = 255;
-        else
-            alpha += val;
-        ret = 1;
-    }
-    if( !sichtbar && alpha )
-    {
-        if( alpha - val < 0 )
-            alpha = 0;
-        else
-            alpha -= val;
-        ret = 1;
-    }
-    if( xPos != zXPos || yPos != zYPos )
-    {
-        if( xPos != zXPos )
-        {
-            if( xAbs > 0 )
-            {
-                if( zXPos - xPos >= xAbs / 2 )
-                    xSpeed += xAbs * z;
-                else
-                {
-                    xSpeed -= xAbs * z;
-                    if( xSpeed < zXPos - xPos )
-                        xSpeed += xAbs * z;
-                }
-            }
-            else
-            {
-                if( zXPos - xPos <= xAbs / 2 )
-                    xSpeed += xAbs * z;
-                else
-                {
-                    xSpeed -= xAbs * z;
-                    if( xSpeed > zXPos - xPos )
-                        xSpeed += xAbs * z;
-                }
-            }
-        }
-        if( yPos != zYPos )
-        {
-            if( yAbs > 0 )
-            {
-                if( zYPos - yPos >= yAbs / 2 )
-                    ySpeed += yAbs * z;
-                else
-                {
-                    ySpeed -= yAbs * z;
-                    if( ySpeed < zYPos - yPos )
-                        ySpeed += yAbs * z;
-                }
-            }
-            else
-            {
-                if( zYPos - yPos <= yAbs / 2 )
-                    ySpeed += yAbs * z;
-                else
-                {
-                    ySpeed -= yAbs * z;
-                    if( ySpeed > zYPos - yPos )
-                        ySpeed += yAbs * z;
-                }
-            }
-        }
-        xPos += xSpeed * z;
-        yPos += ySpeed * z;
-        if( xAbs > 0 )
-        {
-            if( xPos >= zXPos )
-            {
-                xPos = zXPos;
-                xSpeed = 0;
-            }
-        }
-        else
-        {
-            if( xPos <= zXPos )
-            {
-                xPos = zXPos;
-                xSpeed = 0;
-            }
-        }
-        if( yAbs > 0 )
-        {
-            if( yPos >= zYPos )
-            {
-                yPos = zYPos;
-                ySpeed = 0;
-            }
-        }
-        else
-        {
-            if( yPos <= zYPos )
-            {
-                yPos = zYPos;
-                ySpeed = 0;
-            }
-        }
-        ret = 1;
-    }
-    return ret;
+	bool ret = rend;
+	rend = 0;
+	int val = (int)(z * 150);
+	if (sichtbar && alpha != 255)
+	{
+		if (alpha + val > 255)
+			alpha = 255;
+		else
+			alpha += val;
+		ret = 1;
+	}
+	if (!sichtbar && alpha)
+	{
+		if (alpha - val < 0)
+			alpha = 0;
+		else
+			alpha -= val;
+		ret = 1;
+	}
+	if (xPos != zXPos || yPos != zYPos)
+	{
+		if (xPos != zXPos)
+		{
+			if (xAbs > 0)
+			{
+				if (zXPos - xPos >= xAbs / 2)
+					xSpeed += xAbs * z;
+				else
+				{
+					xSpeed -= xAbs * z;
+					if (xSpeed < zXPos - xPos)
+						xSpeed += xAbs * z;
+				}
+			}
+			else
+			{
+				if (zXPos - xPos <= xAbs / 2)
+					xSpeed += xAbs * z;
+				else
+				{
+					xSpeed -= xAbs * z;
+					if (xSpeed > zXPos - xPos)
+						xSpeed += xAbs * z;
+				}
+			}
+		}
+		if (yPos != zYPos)
+		{
+			if (yAbs > 0)
+			{
+				if (zYPos - yPos >= yAbs / 2)
+					ySpeed += yAbs * z;
+				else
+				{
+					ySpeed -= yAbs * z;
+					if (ySpeed < zYPos - yPos)
+						ySpeed += yAbs * z;
+				}
+			}
+			else
+			{
+				if (zYPos - yPos <= yAbs / 2)
+					ySpeed += yAbs * z;
+				else
+				{
+					ySpeed -= yAbs * z;
+					if (ySpeed > zYPos - yPos)
+						ySpeed += yAbs * z;
+				}
+			}
+		}
+		xPos += xSpeed * z;
+		yPos += ySpeed * z;
+		if (xAbs > 0)
+		{
+			if (xPos >= zXPos)
+			{
+				xPos = zXPos;
+				xSpeed = 0;
+			}
+		}
+		else
+		{
+			if (xPos <= zXPos)
+			{
+				xPos = zXPos;
+				xSpeed = 0;
+			}
+		}
+		if (yAbs > 0)
+		{
+			if (yPos >= zYPos)
+			{
+				yPos = zYPos;
+				ySpeed = 0;
+			}
+		}
+		else
+		{
+			if (yPos <= zYPos)
+			{
+				yPos = zYPos;
+				ySpeed = 0;
+			}
+		}
+		ret = 1;
+	}
+	return ret;
 }
 
-void MiniGame::render( Bild &zRObj )
+void MiniGame::render(Bild& zRObj)
 {
-    zRObj.setAlpha( alpha );
-    zRObj.drawBild( (int)( xPos ), (int)( yPos ), 250, 100, *bgBild );
-    rahmen->setPosition( (int)xPos, (int)yPos );
-    rahmen->render( zRObj );
-    if( mausIn )
-    {
-        mausAlpha->setPosition( (int)xPos + 1, (int)yPos + 1 );
-        mausAlpha->render( zRObj );
-    }
-    zRObj.releaseAlpha();
+	zRObj.setAlpha(alpha);
+	zRObj.drawBild((int)(xPos), (int)(yPos), 250, 100, *bgBild);
+	rahmen->setPosition((int)xPos, (int)yPos);
+	rahmen->render(zRObj);
+	if (mausIn)
+	{
+		mausAlpha->setPosition((int)xPos + 1, (int)yPos + 1);
+		mausAlpha->render(zRObj);
+	}
+	zRObj.releaseAlpha();
 }
 
 // constant
-Text *MiniGame::zName()
+Text* MiniGame::zName()
 {
-    return name;
+	return name;
 }
 
 bool MiniGame::istOk() const
 {
-    return ok;
+	return ok;
 }

+ 30 - 30
KSGClient/NachLogin/MiniGames/MiniGame.h

@@ -11,38 +11,38 @@ using namespace Framework;
 class MiniGame : public virtual ReferenceCounter
 {
 private:
-    double xPos;
-    double yPos;
-    int xAbs;
-    int yAbs;
-    int zXPos;
-    int zYPos;
-    double xSpeed;
-    double ySpeed;
-    Text *name;
-    Bild *bgBild;
-    AlphaFeld *mausAlpha;
-    LRahmen *rahmen;
-    bool sichtbar;
-    unsigned char alpha;
-    bool mausIn;
-    bool ok;
-    bool rend;
+	double xPos;
+	double yPos;
+	int xAbs;
+	int yAbs;
+	int zXPos;
+	int zYPos;
+	double xSpeed;
+	double ySpeed;
+	Text* name;
+	Bild* bgBild;
+	AlphaFeld* mausAlpha;
+	LRahmen* rahmen;
+	bool sichtbar;
+	unsigned char alpha;
+	bool mausIn;
+	bool ok;
+	bool rend;
 
 public:
-    // Konstruktor
-    MiniGame( char *name );
-    // Destruktor
-    ~MiniGame();
-    // nicht constant
-    void setPosition( int x, int y );
-    void setSichtbar( bool sichtbar );
-    void doPublicMausEreignis( MausEreignis &me );
-    bool tick( double z );
-    void render( Bild &zRObj );
-    // constant
-    Text *zName();
-    bool istOk() const;
+	// Konstruktor
+	MiniGame(const char* name);
+	// Destruktor
+	~MiniGame();
+	// nicht constant
+	void setPosition(int x, int y);
+	void setSichtbar(bool sichtbar);
+	void doPublicMausEreignis(MausEreignis& me);
+	bool tick(double z);
+	void render(Bild& zRObj);
+	// constant
+	Text* zName();
+	bool istOk() const;
 };
 
 #endif

+ 488 - 488
KSGClient/NachLogin/MiniGames/Minigames.cpp

@@ -8,589 +8,589 @@
 #include <KSGTDatei.h>
 #include <Globals.h>
 
-typedef MiniGameV *( *GetMiniGame )( );
+typedef MiniGameV* (*GetMiniGame)();
 
 // Inhalt der MGLaden Klasse aus MiniGames.h
 // Konstruktor
-MGSuchen::MGSuchen( MiniGames *mGames )
+MGSuchen::MGSuchen(MiniGames* mGames)
 {
-    this->mGames = mGames;
-    start();
+	this->mGames = mGames;
+	start();
 }
 
 // Destruktor
 MGSuchen::~MGSuchen()
 {
-    mGames->release();
+	mGames->release();
 }
 
 // nicht constant
 void MGSuchen::thread()
 {
-    KSGTDatei *dgt = new KSGTDatei( "data/dg.ksgt" );
-    dgt->laden();
-    bool ak = 0;
-    int dgId = infoClient->getDateiGruppeIdVonPfad( "data/Minigames" );
-    for( int i = 0; i < dgt->getZeilenAnzahl(); i++ )
-    {
-        if( dgt->zFeld( i, 0 ) && TextZuInt( dgt->zFeld( i, 0 )->getText(), 10 ) == dgId )
-        {
-            int lv = dgt->zFeld( i, 2 ) ? TextZuInt( dgt->zFeld( i, 2 )->getText(), 10 ) : 0;
-            int ov = infoClient->getDateiGruppeVersion( dgId );
-            if( lv == ov )
-                ak = 1;
-            break;
-        }
-    }
-    dgt->release();
-    if( !ak )
-    {
-        mGames->setAktuell( 0, dgId );
-        delete this;
-        return;
-    }
-    Datei *d = new Datei();
-    d->setDatei( "data/Minigames" );
-    if( !d->existiert() )
-        DateiPfadErstellen( "data/MiniGames/" );
-    RCArray< Text > *list = d->getDateiListe();
-    if( list )
-    {
-        for( int i = 0; i < list->getEintragAnzahl(); i++ )
-        {
-            MiniGame *mg = new MiniGame( list->z( i )->getText() );
-            if( !mg->istOk() )
-            {
-                mg->release();
-                continue;
-            }
-            mGames->addMiniGame( mg );
-        }
-        list->release();
-    }
-    d->release();
-    delete this;
+	KSGTDatei* dgt = new KSGTDatei("data/dg.ksgt");
+	dgt->laden();
+	bool ak = 0;
+	int dgId = infoClient->getDateiGruppeIdVonPfad("data/Minigames");
+	for (int i = 0; i < dgt->getZeilenAnzahl(); i++)
+	{
+		if (dgt->zFeld(i, 0) && TextZuInt(dgt->zFeld(i, 0)->getText(), 10) == dgId)
+		{
+			int lv = dgt->zFeld(i, 2) ? TextZuInt(dgt->zFeld(i, 2)->getText(), 10) : 0;
+			int ov = infoClient->getDateiGruppeVersion(dgId);
+			if (lv == ov)
+				ak = 1;
+			break;
+		}
+	}
+	dgt->release();
+	if (!ak)
+	{
+		mGames->setAktuell(0, dgId);
+		delete this;
+		return;
+	}
+	Datei* d = new Datei();
+	d->setDatei("data/Minigames");
+	if (!d->existiert())
+		DateiPfadErstellen("data/MiniGames/");
+	RCArray< Text >* list = d->getDateiListe();
+	if (list)
+	{
+		for (int i = 0; i < list->getEintragAnzahl(); i++)
+		{
+			MiniGame* mg = new MiniGame(list->z(i)->getText());
+			if (!mg->istOk())
+			{
+				mg->release();
+				continue;
+			}
+			mGames->addMiniGame(mg);
+		}
+		list->release();
+	}
+	d->release();
+	delete this;
 }
 
 
 // Inhalt der MGLaden Klasse aus MiniGameV.h
 // Konstruktor
-MGLaden::MGLaden( char *name )
+MGLaden::MGLaden(const char* name)
 {
-    this->name = new Text( name );
-    game = 0;
-    start();
+	this->name = new Text(name);
+	game = 0;
+	start();
 }
 
 // Destruktor
 MGLaden::~MGLaden()
 {
-    if( game )
-    {
-        game->release();
-        Framework::getDLLRegister()->releaseDLL( name->getText() );
-    }
-    name->release();
+	if (game)
+	{
+		game->release();
+		Framework::getDLLRegister()->releaseDLL(name->getText());
+	}
+	name->release();
 }
 
 // nicht constant
 void MGLaden::thread()
 {
-    Text *pfad = new Text( "data/Minigames/" );
-    pfad->append( name->getText() );
-    if( !DateiExistiert( pfad->getText() ) )
-    {
-        pfad->release();
-        run = 0;
-        return;
-    }
-    pfad->append( "/mg.ini" );
-    if( !DateiExistiert( pfad->getText() ) )
-    {
-        pfad->release();
-        run = 0;
-        return;
-    }
-    InitDatei *mgIni = new InitDatei( pfad );
-    if( !mgIni->laden() )
-    {
-        mgIni->release();
-        run = 0;
-        return;
-    }
-    if( !mgIni->wertExistiert( "DllPfad" ) )
-    {
-        mgIni->release();
-        run = 0;
-        return;
-    }
-    Text *dllPfad = new Text( "data/Minigames/" );
-    dllPfad->append( name->getText() );
-    dllPfad->append( "/" );
-    dllPfad->append( mgIni->zWert( "DllPfad" )->getText() );
-    mgIni->release();
-    if( !DateiExistiert( dllPfad->getText() ) )
-    {
-        dllPfad->release();
-        run = 0;
-        return;
-    }
-    HMODULE dll = Framework::getDLLRegister()->ladeDLL( name->getText(), dllPfad->getText() );
-    dllPfad->release();
-    if( !dll )
-    {
-        run = 0;
-        return;
-    }
-    GetMiniGame getMiniGame = (GetMiniGame)GetProcAddress( dll, "GetMiniGame" );
-    if( !getMiniGame )
-    {
-        Framework::getDLLRegister()->releaseDLL( name->getText() );
-        run = 0;
-        return;
-    }
-    game = getMiniGame();
-    if( !game )
-    {
-        Framework::getDLLRegister()->releaseDLL( name->getText() );
-        run = 0;
-        return;
-    }
-    if( !minigameClient )
-        minigameClient = mainClient->createMinigameServerClient();
-    if( minigameClient )
-        game->setMinigameClientZ( dynamic_cast<KSGClient::MinigameServerClient *>( minigameClient->getThis() ) );
-    if( !game->laden() )
-    {
-        game = (MiniGameV *)game->release();
-        Framework::getDLLRegister()->releaseDLL( name->getText() );
-    }
-    run = 0;
+	Text* pfad = new Text("data/Minigames/");
+	pfad->append(name->getText());
+	if (!DateiExistiert(pfad->getText()))
+	{
+		pfad->release();
+		run = 0;
+		return;
+	}
+	pfad->append("/mg.ini");
+	if (!DateiExistiert(pfad->getText()))
+	{
+		pfad->release();
+		run = 0;
+		return;
+	}
+	InitDatei* mgIni = new InitDatei(pfad);
+	if (!mgIni->laden())
+	{
+		mgIni->release();
+		run = 0;
+		return;
+	}
+	if (!mgIni->wertExistiert("DllPfad"))
+	{
+		mgIni->release();
+		run = 0;
+		return;
+	}
+	Text* dllPfad = new Text("data/Minigames/");
+	dllPfad->append(name->getText());
+	dllPfad->append("/");
+	dllPfad->append(mgIni->zWert("DllPfad")->getText());
+	mgIni->release();
+	if (!DateiExistiert(dllPfad->getText()))
+	{
+		dllPfad->release();
+		run = 0;
+		return;
+	}
+	HMODULE dll = Framework::getDLLRegister()->ladeDLL(name->getText(), dllPfad->getText());
+	dllPfad->release();
+	if (!dll)
+	{
+		run = 0;
+		return;
+	}
+	GetMiniGame getMiniGame = (GetMiniGame)GetProcAddress(dll, "GetMiniGame");
+	if (!getMiniGame)
+	{
+		Framework::getDLLRegister()->releaseDLL(name->getText());
+		run = 0;
+		return;
+	}
+	game = getMiniGame();
+	if (!game)
+	{
+		Framework::getDLLRegister()->releaseDLL(name->getText());
+		run = 0;
+		return;
+	}
+	if (!minigameClient)
+		minigameClient = mainClient->createMinigameServerClient();
+	if (minigameClient)
+		game->setMinigameClientZ(dynamic_cast<KSGClient::MinigameServerClient*>(minigameClient->getThis()));
+	if (!game->laden())
+	{
+		game = (MiniGameV*)game->release();
+		Framework::getDLLRegister()->releaseDLL(name->getText());
+	}
+	run = 0;
 }
 
 // constant
 bool MGLaden::fertig() const
 {
-    return !isRunning();
+	return !isRunning();
 }
 
-MiniGameV *MGLaden::zGame() const
+MiniGameV* MGLaden::zGame() const
 {
-    return game;
+	return game;
 }
 
 
 // Inhalt der MiniGames Klasse aus MiniGames.h
 // Konstruktor
-MiniGames::MiniGames( Fenster *zNachLoginFenster, int x )
-    : Zeichnung()
+MiniGames::MiniGames(Fenster* zNachLoginFenster, int x)
+	: Zeichnung()
 {
-    bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
-    pos = Punkt( x, 67 );
-    gr = Punkt( 102, 32 );
-    rahmen = new LRahmen();
-    rahmen->setFarbe( 0xFFFFFFFF );
-    rahmen->setSize( 102, 32 );
-    alpha = 0;
-    alpha2 = 0;
-    animation = 0;
-    sichtbar = 0;
-    tickVal = 0;
-    prozent1 = 0;
-    prozent2 = 0;
-    begPos = Punkt( 0, 0 );
-    begGröße = Punkt( 0, 0 );
-    größe1 = Punkt( 102, 32 );
-    pos1 = Punkt( x, 67 );
-    größe2 = Punkt( 800, 500 );
-    pos2 = bildschirmGröße / 2 - größe2 / 2;
-    laden = (Animation2D *)ladeAnimation->dublizieren();
-    laden->setSichtbar( 0 );
-    laden->setPosition( 375, 225 );
-    games = new RCArray< MiniGame >();
-    suchFilter = initTextFeld( 10, 10, 100, 20, TextFeld::Style::Text | TextFeld::Style::VCenter, "Suchfilter:" );
-    TextRenderer tr( dynamic_cast<Schrift *>( uiFactory.initParam.schrift->getThis() ) );
-    tr.setSchriftSize( 12 );
-    suchFilter->setSize( tr.getTextBreite( suchFilter->zText()->getText() ), 20 );
-    suchName = initTextFeld( 20 + suchFilter->getBreite(), 10, 200, 20, TextFeld::Style::TextFeld, "" );
-    suchen = initKnopf( 230 + suchFilter->getBreite(), 10, 100, 20, Knopf::Style::Sichtbar, "Suchen" );
-    gefiltert = 0;
-    getThis();
-    zNachLoginFenster->addMember( this );
-    dg = 0;
-    mgl = 0;
-    mgInitialized = 0;
-    fullscreen = 0;
-    slo = 0;
-    minAlpha = 0;
-    getThis();
-    new MGSuchen( this );
+	bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
+	pos = Punkt(x, 67);
+	gr = Punkt(102, 32);
+	rahmen = new LRahmen();
+	rahmen->setFarbe(0xFFFFFFFF);
+	rahmen->setSize(102, 32);
+	alpha = 0;
+	alpha2 = 0;
+	animation = 0;
+	sichtbar = 0;
+	tickVal = 0;
+	prozent1 = 0;
+	prozent2 = 0;
+	begPos = Punkt(0, 0);
+	begGröße = Punkt(0, 0);
+	größe1 = Punkt(102, 32);
+	pos1 = Punkt(x, 67);
+	größe2 = Punkt(800, 500);
+	pos2 = bildschirmGröße / 2 - größe2 / 2;
+	laden = (Animation2D*)ladeAnimation->dublizieren();
+	laden->setSichtbar(0);
+	laden->setPosition(375, 225);
+	games = new RCArray< MiniGame >();
+	suchFilter = initTextFeld(10, 10, 100, 20, TextFeld::Style::Text | TextFeld::Style::VCenter, "Suchfilter:");
+	TextRenderer tr(dynamic_cast<Schrift*>(uiFactory.initParam.schrift->getThis()));
+	tr.setSchriftSize(12);
+	suchFilter->setSize(tr.getTextBreite(suchFilter->zText()->getText()), 20);
+	suchName = initTextFeld(20 + suchFilter->getBreite(), 10, 200, 20, TextFeld::Style::TextFeld, "");
+	suchen = initKnopf(230 + suchFilter->getBreite(), 10, 100, 20, Knopf::Style::Sichtbar, "Suchen");
+	gefiltert = 0;
+	getThis();
+	zNachLoginFenster->addMember(this);
+	dg = 0;
+	mgl = 0;
+	mgInitialized = 0;
+	fullscreen = 0;
+	slo = 0;
+	minAlpha = 0;
+	getThis();
+	new MGSuchen(this);
 }
 
 // Destruktor
 MiniGames::~MiniGames()
 {
-    rahmen->release();
-    suchName->release();
-    suchFilter->release();
-    suchen->release();
-    laden->release();
-    games->release();
-    if( mgl )
-        mgl->release();
+	rahmen->release();
+	suchName->release();
+	suchFilter->release();
+	suchen->release();
+	laden->release();
+	games->release();
+	if (mgl)
+		mgl->release();
 }
 
 // nicht constant
-void MiniGames::setSichtbar( bool sicht )
+void MiniGames::setSichtbar(bool sicht)
 {
-    begPos = pos;
-    begGröße = gr;
-    animation |= ( sicht ? 0x1 : 0x2 );
-    rend = 1;
+	begPos = pos;
+	begGröße = gr;
+	animation |= (sicht ? 0x1 : 0x2);
+	rend = 1;
 }
 
-void MiniGames::addMiniGame( MiniGame *mg )
+void MiniGames::addMiniGame(MiniGame* mg)
 {
-    games->add( mg );
-    if( gefiltert )
-        filter();
-    else
-    {
-        int i = games->getEintragAnzahl() - 1;
-        games->z( i )->setPosition( 10 + 10 * ( i % 3 ) + 250 * ( i % 3 ), 50 + 10 * ( i / 3 ) + 100 * ( i / 3 ) );
-    }
+	games->add(mg);
+	if (gefiltert)
+		filter();
+	else
+	{
+		int i = games->getEintragAnzahl() - 1;
+		games->z(i)->setPosition(10 + 10 * (i % 3) + 250 * (i % 3), 50 + 10 * (i / 3) + 100 * (i / 3));
+	}
 }
 
-void MiniGames::setAktuell( bool aktuell, int dg )
+void MiniGames::setAktuell(bool aktuell, int dg)
 {
-    this->aktuell = aktuell;
-    if( aktuell )
-        new MGSuchen( dynamic_cast<MiniGames *>( getThis() ) );
-    if( !this->dg )
-        this->dg = dg;
-    if( !aktuell && !updateH->hat( dg ) )
-    {
-        nachLogin->zNachrichtenListe()->addNachricht( new SpielUpdateNachricht( new Text( "Update" ), new Text( "Die minigames müssen aktualisiert werden." ), dg,
-                                                                                []()
-        {
-            if( nachLogin && nachLogin->zMGFenster() )
-                nachLogin->zMGFenster()->setAktuell( 1 );
-        } ) );
-    }
+	this->aktuell = aktuell;
+	if (aktuell)
+		new MGSuchen(dynamic_cast<MiniGames*>(getThis()));
+	if (!this->dg)
+		this->dg = dg;
+	if (!aktuell && !updateH->hat(dg))
+	{
+		nachLogin->zNachrichtenListe()->addNachricht(new SpielUpdateNachricht(new Text("Update"), new Text("Die minigames müssen aktualisiert werden."), dg,
+			[]()
+			{
+				if (nachLogin && nachLogin->zMGFenster())
+					nachLogin->zMGFenster()->setAktuell(1);
+			}));
+	}
 }
 
-void MiniGames::setFullScreenMode( bool enabled )
+void MiniGames::setFullScreenMode(bool enabled)
 {
-    fullscreen = enabled;
-    if( fullscreen )
-        nachLogin->hideBars();
-    else
-        nachLogin->showBars();
+	fullscreen = enabled;
+	if (fullscreen)
+		nachLogin->hideBars();
+	else
+		nachLogin->showBars();
 }
 
-void MiniGames::showLoadingOverlay( unsigned char minAlpha )
+void MiniGames::showLoadingOverlay(unsigned char minAlpha)
 {
-    slo++;
-    this->minAlpha = minAlpha;
-    if( slo )
-        laden->setSichtbar( 1 );
+	slo++;
+	this->minAlpha = minAlpha;
+	if (slo)
+		laden->setSichtbar(1);
 }
 
 void MiniGames::hideLoadingOverlay()
 {
-    slo--;
-    if( !slo )
-        laden->setSichtbar( 0 );
+	slo--;
+	if (!slo)
+		laden->setSichtbar(0);
 }
 
-Bild *MiniGames::loadBild( const char *path )
+Bild* MiniGames::loadBild(const char* path)
 {
-    return bilder->get( path );
+	return bilder->get(path);
 }
 
 void MiniGames::filter()
 {
-    Text filter = suchName->zText()->getText();
-    bool notF = 0;
-    if( !filter.getLength() )
-        notF = 1;
-    int anz = games->getEintragAnzahl();
-    bool *fertig = new bool[ anz ];
-    for( int i = 0; i < anz; i++ )
-        fertig[ i ] = 0;
-    for( int i = 0; i < anz; i++ )
-    {
-        int pos = -1;
-        int p = -1;
-        for( int j = 0; j < anz; j++ )
-        {
-            if( ( notF || ( games->z( j )->zName()->hat( filter ) && ( pos == -1 || games->z( j )->zName()->positionVon( filter ) < pos ) ) ) && !fertig[ j ] )
-            {
-                p = j;
-                pos = games->z( j )->zName()->positionVon( filter );
-                games->z( j )->setSichtbar( 1 );
-            }
-        }
-        if( p < 0 )
-            break;
-        fertig[ p ] = 1;
-        games->z( p )->setPosition( 10 + 10 * ( i % 3 ) + 250 * ( i % 3 ), 50 + 10 * ( i / 3 ) + 100 * ( i / 3 ) );
-    }
-    for( int i = 0; i < anz; i++ )
-    {
-        if( !fertig[ i ] )
-            games->z( i )->setSichtbar( 0 );
-    }
-    delete[] fertig;
+	Text filter = suchName->zText()->getText();
+	bool notF = 0;
+	if (!filter.getLength())
+		notF = 1;
+	int anz = games->getEintragAnzahl();
+	bool* fertig = new bool[anz];
+	for (int i = 0; i < anz; i++)
+		fertig[i] = 0;
+	for (int i = 0; i < anz; i++)
+	{
+		int pos = -1;
+		int p = -1;
+		for (int j = 0; j < anz; j++)
+		{
+			if ((notF || (games->z(j)->zName()->hat(filter) && (pos == -1 || games->z(j)->zName()->positionVon(filter) < pos))) && !fertig[j])
+			{
+				p = j;
+				pos = games->z(j)->zName()->positionVon(filter);
+				games->z(j)->setSichtbar(1);
+			}
+		}
+		if (p < 0)
+			break;
+		fertig[p] = 1;
+		games->z(p)->setPosition(10 + 10 * (i % 3) + 250 * (i % 3), 50 + 10 * (i / 3) + 100 * (i / 3));
+	}
+	for (int i = 0; i < anz; i++)
+	{
+		if (!fertig[i])
+			games->z(i)->setSichtbar(0);
+	}
+	delete[] fertig;
 }
 
-void MiniGames::doPublicMausEreignis( MausEreignis &me )
+void MiniGames::doPublicMausEreignis(MausEreignis& me)
 {
-    if( laden->istSichtbar() || !sichtbar )
-        return;
-    me.mx -= pos.x;
-    me.my -= pos.y;
-    if( alpha2 )
-    {
-        suchName->doPublicMausEreignis( me );
-        bool vera = me.verarbeitet;
-        suchen->doPublicMausEreignis( me );
-        if( !vera && me.verarbeitet && me.id == ME_RLinks )
-            filter();
-        int anz = games->getEintragAnzahl();
-        for( int i = 0; i < anz; i++ )
-        {
-            bool vera = me.verarbeitet;
-            games->z( i )->doPublicMausEreignis( me );
-            if( !vera && me.verarbeitet && me.id == ME_RLinks )
-            { // spiel starten
-                laden->setSichtbar( 1 );
-                if( mgl )
-                    mgl = (MGLaden *)mgl->release();
-                mgInitialized = 0;
-                mgl = new MGLaden( games->z( i )->zName()->getText() );
-            }
-        }
-    }
-    if( !slo && mgl && mgl->zGame() )
-        mgl->zGame()->doPublicMausEreignis( me );
-    me.mx += pos.x;
-    me.my += pos.y;
+	if (laden->istSichtbar() || !sichtbar)
+		return;
+	me.mx -= pos.x;
+	me.my -= pos.y;
+	if (alpha2)
+	{
+		suchName->doPublicMausEreignis(me);
+		bool vera = me.verarbeitet;
+		suchen->doPublicMausEreignis(me);
+		if (!vera && me.verarbeitet && me.id == ME_RLinks)
+			filter();
+		int anz = games->getEintragAnzahl();
+		for (int i = 0; i < anz; i++)
+		{
+			bool vera = me.verarbeitet;
+			games->z(i)->doPublicMausEreignis(me);
+			if (!vera && me.verarbeitet && me.id == ME_RLinks)
+			{ // spiel starten
+				laden->setSichtbar(1);
+				if (mgl)
+					mgl = (MGLaden*)mgl->release();
+				mgInitialized = 0;
+				mgl = new MGLaden(games->z(i)->zName()->getText());
+			}
+		}
+	}
+	if (!slo && mgl && mgl->zGame())
+		mgl->zGame()->doPublicMausEreignis(me);
+	me.mx += pos.x;
+	me.my += pos.y;
 }
 
-void MiniGames::doTastaturEreignis( TastaturEreignis &te )
+void MiniGames::doTastaturEreignis(TastaturEreignis& te)
 {
-    if( laden->istSichtbar() || !sichtbar )
-        return;
-    if( alpha2 )
-    {
-        bool vera = te.verarbeitet;
-        suchName->doTastaturEreignis( te );
-        if( !vera && te.verarbeitet && te.taste == T_Enter && te.id == TE_Release )
-            filter();
-    }
-    if( !slo && mgl && mgl->zGame() )
-        mgl->zGame()->doTastaturEreignis( te );
+	if (laden->istSichtbar() || !sichtbar)
+		return;
+	if (alpha2)
+	{
+		bool vera = te.verarbeitet;
+		suchName->doTastaturEreignis(te);
+		if (!vera && te.verarbeitet && te.taste == T_Enter && te.id == TE_Release)
+			filter();
+	}
+	if (!slo && mgl && mgl->zGame())
+		mgl->zGame()->doTastaturEreignis(te);
 }
 
-bool MiniGames::tick( double z )
+bool MiniGames::tick(double z)
 {
-    if( laden->istSichtbar() && mgl && mgl->fertig() )
-    {
-        if( !mgl->zGame() )
-        {
-            mgl = (MGLaden *)mgl->release();
-            nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( "Das Minigame konnte nicht geladen werden." ), new Text( "Ok" ) );
-            mgInitialized = 0;
-            slo = 0;
-        }
-        else if( !mgInitialized )
-        {
-            mgl->zGame()->setMinigameAPI( this );
-            mgl->zGame()->setUIFactory( uiFactory );
-            mgInitialized = 1;
-        }
-        if( !slo )
-            laden->setSichtbar( 0 );
-    }
-    if( mgl && mgl->zGame() && !alpha2 )
-    {
-        if( sichtbar && !animation )
-            rend |= mgl->zGame()->tick( z );
-        if( mgl->zGame()->istEnde() )
-        {
-            mgl = (MGLaden *)mgl->release();
-            mgInitialized = 0;
-        }
-    }
-    rend |= laden->tick( z );
-    if( alpha2 )
-    {
-        rend |= suchName->tick( z );
-        rend |= suchen->tick( z );
-        int anz = games->getEintragAnzahl();
-        for( int i = 0; i < anz; i++ )
-            rend |= games->z( i )->tick( z );
-    }
-    tickVal += z * 150;
-    int val = (int)tickVal;
-    if( val < 1 )
-    {
-        bool ret = rend;
-        rend = 0;
-        return ret;
-    }
-    tickVal -= val;
-    if( ( animation | 0x1 ) == animation ) // Einblenden
-    {
-        if( prozent1 != 100 )
-        {
-            prozent1 += val;
-            if( prozent1 >= 100 )
-                prozent1 = 100;
-            pos = begPos + (Punkt)( ( ( Vec2< double > )( pos2 - begPos ) / 100.0 ) * prozent1 );
-            gr = begGröße + (Punkt)( ( ( Vec2< double > )( größe2 - begGröße ) / 100.0 ) * prozent1 );
-        }
-        else if( alpha != 255 )
-        {
-            alpha += val * 2;
-            if( alpha >= 255 || ( animation | 0x2 ) == animation )
-            {
-                alpha = 255;
-                animation &= ~0x1;
-                sichtbar = 1;
-                prozent1 = 0;
-            }
-        }
-        else
-        {
-            animation &= ~0x1;
-            prozent1 = 0;
-            pos = pos2;
-            gr = größe2;
-        }
-        rend = 1;
-    }
-    if( ( animation | 0x2 ) == animation ) // ausblenden
-    {
-        if( alpha != 0 )
-        {
-            alpha -= val * 2;
-            if( alpha < 0 )
-                alpha = 0;
-        }
-        else
-        {
-            prozent2 += val;
-            if( prozent2 > 100 )
-                prozent2 = 100;
-            pos = begPos + (Punkt)( ( ( Vec2< double > )( pos1 - begPos ) / 100.0 ) * prozent2 );
-            gr = begGröße + (Punkt)( ( ( Vec2< double > )( größe1 - begGröße ) / 100.0 ) * prozent2 );
-            if( prozent2 == 100 )
-            {
-                prozent2 = 0;
-                animation &= ~0x2;
-                sichtbar = 0;
-            }
-        }
-        rend = 1;
-    }
-    if( !animation && sichtbar )
-    {
-        if( fullscreen )
-        {
-            if( pos != Punkt( 0, 0 ) )
-            {
-                pos -= Punkt( val, val ) * 2;
-                if( pos.x < 0 )
-                    pos.x = 0;
-                if( pos.y < 0 )
-                    pos.y = 0;
-            }
-            if( gr != bildschirmGröße )
-            {
-                gr += Punkt( val, val ) * 4;
-                if( gr.x > bildschirmGröße.x - 1 )
-                    gr.x = bildschirmGröße.x - 1;
-                if( gr.y > bildschirmGröße.y - 1 )
-                    gr.y = bildschirmGröße.y - 1;
-            }
-        }
-        else
-        {
-            if( pos != pos2 || gr != größe2 )
-            {
-                begPos = pos;
-                begGröße = gr;
-                animation |= 0x1;
-            }
-        }
-        if( slo && alpha != minAlpha )
-        {
-            alpha -= val * 2;
-            if( alpha < minAlpha )
-                alpha = minAlpha;
-        }
-        else if( !slo && alpha != 255 )
-        {
-            alpha += val * 2;
-            if( alpha > 255 )
-                alpha = 255;
-        }
-    }
-    if( mgl && alpha2 )
-    {
-        alpha2 -= val;
-        if( alpha2 < 0 )
-            alpha2 = 0;
-        rend = 1;
-    }
-    if( !mgl && alpha2 != 255 )
-    {
-        alpha2 += val;
-        if( alpha2 > 255 )
-            alpha2 = 255;
-        rend = 1;
-    }
-    bool ret = rend;
-    rend = 0;
-    return ret;
+	if (laden->istSichtbar() && mgl && mgl->fertig())
+	{
+		if (!mgl->zGame())
+		{
+			mgl = (MGLaden*)mgl->release();
+			nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text("Das Minigame konnte nicht geladen werden."), new Text("Ok"));
+			mgInitialized = 0;
+			slo = 0;
+		}
+		else if (!mgInitialized)
+		{
+			mgl->zGame()->setMinigameAPI(this);
+			mgl->zGame()->setUIFactory(uiFactory);
+			mgInitialized = 1;
+		}
+		if (!slo)
+			laden->setSichtbar(0);
+	}
+	if (mgl && mgl->zGame() && !alpha2)
+	{
+		if (sichtbar && !animation)
+			rend |= mgl->zGame()->tick(z);
+		if (mgl->zGame()->istEnde())
+		{
+			mgl = (MGLaden*)mgl->release();
+			mgInitialized = 0;
+		}
+	}
+	rend |= laden->tick(z);
+	if (alpha2)
+	{
+		rend |= suchName->tick(z);
+		rend |= suchen->tick(z);
+		int anz = games->getEintragAnzahl();
+		for (int i = 0; i < anz; i++)
+			rend |= games->z(i)->tick(z);
+	}
+	tickVal += z * 150;
+	int val = (int)tickVal;
+	if (val < 1)
+	{
+		bool ret = rend;
+		rend = 0;
+		return ret;
+	}
+	tickVal -= val;
+	if ((animation | 0x1) == animation) // Einblenden
+	{
+		if (prozent1 != 100)
+		{
+			prozent1 += val;
+			if (prozent1 >= 100)
+				prozent1 = 100;
+			pos = begPos + (Punkt)(((Vec2< double >)(pos2 - begPos) / 100.0) * prozent1);
+			gr = begGröße + (Punkt)(((Vec2< double >)(größe2 - begGröße) / 100.0) * prozent1);
+		}
+		else if (alpha != 255)
+		{
+			alpha += val * 2;
+			if (alpha >= 255 || (animation | 0x2) == animation)
+			{
+				alpha = 255;
+				animation &= ~0x1;
+				sichtbar = 1;
+				prozent1 = 0;
+			}
+		}
+		else
+		{
+			animation &= ~0x1;
+			prozent1 = 0;
+			pos = pos2;
+			gr = größe2;
+		}
+		rend = 1;
+	}
+	if ((animation | 0x2) == animation) // ausblenden
+	{
+		if (alpha != 0)
+		{
+			alpha -= val * 2;
+			if (alpha < 0)
+				alpha = 0;
+		}
+		else
+		{
+			prozent2 += val;
+			if (prozent2 > 100)
+				prozent2 = 100;
+			pos = begPos + (Punkt)(((Vec2< double >)(pos1 - begPos) / 100.0) * prozent2);
+			gr = begGröße + (Punkt)(((Vec2< double >)(größe1 - begGröße) / 100.0) * prozent2);
+			if (prozent2 == 100)
+			{
+				prozent2 = 0;
+				animation &= ~0x2;
+				sichtbar = 0;
+			}
+		}
+		rend = 1;
+	}
+	if (!animation && sichtbar)
+	{
+		if (fullscreen)
+		{
+			if (pos != Punkt(0, 0))
+			{
+				pos -= Punkt(val, val) * 2;
+				if (pos.x < 0)
+					pos.x = 0;
+				if (pos.y < 0)
+					pos.y = 0;
+			}
+			if (gr != bildschirmGröße)
+			{
+				gr += Punkt(val, val) * 4;
+				if (gr.x > bildschirmGröße.x - 1)
+					gr.x = bildschirmGröße.x - 1;
+				if (gr.y > bildschirmGröße.y - 1)
+					gr.y = bildschirmGröße.y - 1;
+			}
+		}
+		else
+		{
+			if (pos != pos2 || gr != größe2)
+			{
+				begPos = pos;
+				begGröße = gr;
+				animation |= 0x1;
+			}
+		}
+		if (slo && alpha != minAlpha)
+		{
+			alpha -= val * 2;
+			if (alpha < minAlpha)
+				alpha = minAlpha;
+		}
+		else if (!slo && alpha != 255)
+		{
+			alpha += val * 2;
+			if (alpha > 255)
+				alpha = 255;
+		}
+	}
+	if (mgl && alpha2)
+	{
+		alpha2 -= val;
+		if (alpha2 < 0)
+			alpha2 = 0;
+		rend = 1;
+	}
+	if (!mgl && alpha2 != 255)
+	{
+		alpha2 += val;
+		if (alpha2 > 255)
+			alpha2 = 255;
+		rend = 1;
+	}
+	bool ret = rend;
+	rend = 0;
+	return ret;
 }
 
-void MiniGames::render( Bild &zRObj )
+void MiniGames::render(Bild& zRObj)
 {
-    if( pos == pos1 )
-        return;
-    rahmen->setPosition( pos );
-    rahmen->setSize( gr );
-    rahmen->render( zRObj );
-    if( !zRObj.setDrawOptions( pos.x + 1, pos.y + 1, gr.x - 2, gr.y - 2 ) )
-        return;
-    int rbr = rahmen->getRBreite();
-    zRObj.setAlpha( (unsigned char)alpha );
-    zRObj.setAlpha( (unsigned char)alpha2 );
-    suchFilter->render( zRObj );
-    suchName->render( zRObj );
-    suchen->render( zRObj );
-    int anz = games->getEintragAnzahl();
-    for( int i = 0; i < anz; i++ )
-        games->z( i )->render( zRObj );
-    zRObj.releaseAlpha();
-    if( mgl && mgl->fertig() && mgl->zGame() )
-        mgl->zGame()->render( zRObj );
-    zRObj.releaseAlpha();
-    laden->setPosition( gr.x / 2 - laden->getBreite() / 2, gr.y / 2 - laden->getHeight() / 2 );
-    laden->render( zRObj );
-    zRObj.releaseDrawOptions();
+	if (pos == pos1)
+		return;
+	rahmen->setPosition(pos);
+	rahmen->setSize(gr);
+	rahmen->render(zRObj);
+	if (!zRObj.setDrawOptions(pos.x + 1, pos.y + 1, gr.x - 2, gr.y - 2))
+		return;
+	int rbr = rahmen->getRBreite();
+	zRObj.setAlpha((unsigned char)alpha);
+	zRObj.setAlpha((unsigned char)alpha2);
+	suchFilter->render(zRObj);
+	suchName->render(zRObj);
+	suchen->render(zRObj);
+	int anz = games->getEintragAnzahl();
+	for (int i = 0; i < anz; i++)
+		games->z(i)->render(zRObj);
+	zRObj.releaseAlpha();
+	if (mgl && mgl->fertig() && mgl->zGame())
+		mgl->zGame()->render(zRObj);
+	zRObj.releaseAlpha();
+	laden->setPosition(gr.x / 2 - laden->getBreite() / 2, gr.y / 2 - laden->getHeight() / 2);
+	laden->render(zRObj);
+	zRObj.releaseDrawOptions();
 }
 
 // constant
 bool MiniGames::istAnimiert() const
 {
-    return animation != 0;
+	return animation != 0;
 }
 
 bool MiniGames::istSichtbar() const
 {
-    return sichtbar || prozent1 != 0;
+	return sichtbar || prozent1 != 0;
 }

+ 66 - 66
KSGClient/NachLogin/MiniGames/Minigames.h

@@ -15,87 +15,87 @@ class MiniGames; // aus dieser Datei
 class MGSuchen : private Thread
 {
 private:
-    MiniGames *mGames;
+	MiniGames* mGames;
 public:
-    // Konstruktor
-    MGSuchen( MiniGames *mGames );
-    // Destruktor
-    ~MGSuchen();
-    // nicht constant
-    void thread() override;
+	// Konstruktor
+	MGSuchen(MiniGames* mGames);
+	// Destruktor
+	~MGSuchen();
+	// nicht constant
+	void thread() override;
 };
 
 class MGLaden : public Thread
 {
 private:
-    Text *name;
-    MiniGameV *game;
+	Text* name;
+	MiniGameV* game;
 
 public:
-    // Konstruktor
-    MGLaden( char *name );
-    // Destruktor
-    ~MGLaden();
-    // nicht constant
-    void thread();
-    // constant
-    bool fertig() const;
-    MiniGameV *zGame() const;
+	// Konstruktor
+	MGLaden(const char* name);
+	// Destruktor
+	~MGLaden();
+	// nicht constant
+	void thread();
+	// constant
+	bool fertig() const;
+	MiniGameV* zGame() const;
 };
 
 class MiniGames : public Zeichnung, MinigameAPI
 {
 private:
-    Punkt begPos;
-    Punkt begGröße;
-    Punkt pos1;
-    Punkt größe1;
-    Punkt pos2;
-    Punkt größe2;
-    Punkt bildschirmGröße;
-    LRahmen *rahmen;
-    Animation2D *laden;
-    TextFeld *suchFilter;
-    TextFeld *suchName;
-    Knopf *suchen;
-    RCArray< MiniGame > *games;
-    MGLaden *mgl;
-    bool mgInitialized;
-    int dg;
-    bool aktuell;
-    bool gefiltert;
-    int animation;
-    int alpha;
-    bool sichtbar;
-    int prozent1;
-    int prozent2;
-    double tickVal;
-    bool fullscreen;
-    int alpha2;
-    int slo;
-    unsigned char minAlpha;
+	Punkt begPos;
+	Punkt begGröße;
+	Punkt pos1;
+	Punkt größe1;
+	Punkt pos2;
+	Punkt größe2;
+	Punkt bildschirmGröße;
+	LRahmen* rahmen;
+	Animation2D* laden;
+	TextFeld* suchFilter;
+	TextFeld* suchName;
+	Knopf* suchen;
+	RCArray< MiniGame >* games;
+	MGLaden* mgl;
+	bool mgInitialized;
+	int dg;
+	bool aktuell;
+	bool gefiltert;
+	int animation;
+	int alpha;
+	bool sichtbar;
+	int prozent1;
+	int prozent2;
+	double tickVal;
+	bool fullscreen;
+	int alpha2;
+	int slo;
+	unsigned char minAlpha;
 
 public:
-    // Konstruktor
-    MiniGames( Fenster *zNachLoginFenster, int x );
-    // Destruktor
-    ~MiniGames();
-    // nicht constant
-    void setSichtbar( bool sicht );
-    void addMiniGame( MiniGame *mg );
-    void setAktuell( bool aktuell, int dg = 0 );
-    void setFullScreenMode( bool enabled ) override;
-    void showLoadingOverlay( unsigned char minAlpha ) override;
-    void hideLoadingOverlay() override;
-    Bild *loadBild( const char *path ) override;
-    void filter();
-    void doPublicMausEreignis( MausEreignis &me ) override;
-    void doTastaturEreignis( TastaturEreignis &te ) override;
-    bool tick( double z ) override;
-    void render( Bild &zRObj ) override;
-    // constant
-    bool istAnimiert() const;
-    bool istSichtbar() const;
+	// Konstruktor
+	MiniGames(Fenster* zNachLoginFenster, int x);
+	// Destruktor
+	~MiniGames();
+	// nicht constant
+	void setSichtbar(bool sicht);
+	void addMiniGame(MiniGame* mg);
+	void setAktuell(bool aktuell, int dg = 0);
+	void setFullScreenMode(bool enabled) override;
+	void showLoadingOverlay(unsigned char minAlpha) override;
+	void hideLoadingOverlay() override;
+	Bild* loadBild(const char* path) override;
+	void filter();
+	void doPublicMausEreignis(MausEreignis& me) override;
+	void doTastaturEreignis(TastaturEreignis& te) override;
+	bool tick(double z) override;
+	void render(Bild& zRObj) override;
+	// constant
+	bool istAnimiert() const;
+	bool istSichtbar() const;
 };
 
 #endif

+ 252 - 252
KSGClient/NachLogin/Neuigkeiten/Neuigkeiten.cpp

@@ -7,312 +7,312 @@
 
 // Inhalt der NewsThread Klasse aus Neuigkeiten.h
 // Konstruktor
-NewsThread::NewsThread( char *name, KSGScriptObj *obj, Neuigkeiten *n )
+NewsThread::NewsThread(const char* name, KSGScriptObj* obj, Neuigkeiten* n)
 {
-    scriptName = new Text( name );
-    this->obj = obj;
-    news = n;
-    start();
+	scriptName = new Text(name);
+	this->obj = obj;
+	news = n;
+	start();
 }
 
 // Destruktor
 NewsThread::~NewsThread()
 {
-    scriptName->release();
-    obj->release();
-    news->release();
+	scriptName->release();
+	obj->release();
+	news->release();
 }
 
 // nicht constant
 void NewsThread::thread()
 {
-    if( !newsClient )
-        newsClient = mainClient->createNewsServerClient();
-    if( !newsClient )
-    {
-        news->endLaden( mainClient->getLetzterFehler() );
-        delete this;
-        return;
-    }
-    if( !newsClient->verbinde() )
-    {
-        news->endLaden( newsClient->getLetzterFehler() );
-        run = 0;
-        delete this;
-        return;
-    }
-    if( !newsClient->ladeSeite( scriptName->getText() ) )
-    {
-        news->endLaden( newsClient->getLetzterFehler() );
-        run = 0;
-        delete this;
-        return;
-    }
-    newsClient->trenne( 0 );
-    Text *pfad = new Text( "data/tmp/news/" );
-    pfad->append( scriptName->getText() );
-    pfad->append( "/seite.ksgs" );
-    obj->setScriptDatei( pfad );
-    if( !obj->neuLaden() )
-    {
-        news->endLaden( "Fehler beim laden der Seite." );
-        run = 0;
-        delete this;
-        return;
-    }
-    news->endLaden( 0 );
-    run = 0;
-    delete this;
+	if (!newsClient)
+		newsClient = mainClient->createNewsServerClient();
+	if (!newsClient)
+	{
+		news->endLaden(mainClient->getLetzterFehler());
+		delete this;
+		return;
+	}
+	if (!newsClient->verbinde())
+	{
+		news->endLaden(newsClient->getLetzterFehler());
+		run = 0;
+		delete this;
+		return;
+	}
+	if (!newsClient->ladeSeite(scriptName->getText()))
+	{
+		news->endLaden(newsClient->getLetzterFehler());
+		run = 0;
+		delete this;
+		return;
+	}
+	newsClient->trenne(0);
+	Text* pfad = new Text("data/tmp/news/");
+	pfad->append(scriptName->getText());
+	pfad->append("/seite.ksgs");
+	obj->setScriptDatei(pfad);
+	if (!obj->neuLaden())
+	{
+		news->endLaden("Fehler beim laden der Seite.");
+		run = 0;
+		delete this;
+		return;
+	}
+	news->endLaden(0);
+	run = 0;
+	delete this;
 }
 
 
-void KSGSRückruf( void *p, RCArray< KSGSVariable > *parameter, KSGSVariable **ret )
+void KSGSRückruf(void* p, RCArray< KSGSVariable >* parameter, KSGSVariable** ret)
 {
-    if( !p )
-        return;
-    ( (Neuigkeiten *)p )->rückruf( parameter, ret );
+	if (!p)
+		return;
+	((Neuigkeiten*)p)->rückruf(parameter, ret);
 }
 
 // Inhalt der Neuigkeiten Klasse aus Neuigkeiten.h
 // Konstruktor
-Neuigkeiten::Neuigkeiten( Fenster *zNachLoginFenster, int x )
-    : Zeichnung()
+Neuigkeiten::Neuigkeiten(Fenster* zNachLoginFenster, int x)
+	: Zeichnung()
 {
-    bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
-    pos = Punkt( x, 67 );
-    gr = Punkt( 102, 32 );
-    rahmen = new LRahmen();
-    rahmen->setFarbe( 0xFFFFFFFF );
-    rahmen->setSize( 102, 32 );
-    alpha = 0;
-    animation = 0;
-    wirdGeladen = 0;
-    sichtbar = 0;
-    tickVal = 0;
-    prozent1 = 0;
-    prozent2 = 0;
-    begPos = Punkt( 0, 0 );
-    begGröße = Punkt( 0, 0 );
-    größe1 = Punkt( 102, 32 );
-    pos1 = Punkt( x, 67 );
-    größe2 = Punkt( 800, 500 );
-    pos2 = bildschirmGröße / 2 - größe2 / 2;
-    fehler = initTextFeld( 5, 5, 790, 490, TextFeld::Style::Text & ~TextFeld::Style::Sichtbar, "" );
-    laden = (Animation2D *)ladeAnimation->dublizieren();
-    laden->setSichtbar( 0 );
-    laden->setPosition( 375, 225 );
-    getThis();
-    zNachLoginFenster->addMember( this );
-    ksgsDLL = Framework::getDLLRegister()->ladeDLL( "KSGScript.dll", "data/bin/KSGScript.dll" );
-    if( !ksgsDLL )
-    {
-        fehler->setText( "Die DLL Datei 'data/bin/KSGScript.dll' konnte nicht geladen werden." );
-        fehler->addStyle( TextFeld::Style::Sichtbar );
-        script = 0;
-    }
-    else
-    {
-        KSGSGetZeichnung getKSGSZeichnung = (KSGSGetZeichnung)GetProcAddress( ksgsDLL, KSGS_START_FUNKTION );
-        if( !getKSGSZeichnung )
-        {
-            fehler->setText( "Die Funktion '" KSGS_START_FUNKTION "' konnte in der DLL Datei 'data/bin/KSGScript.dll'\nnicht gefunden werden." );
-            fehler->addStyle( TextFeld::Style::Sichtbar );
-            script = 0;
-        }
-        else
-        {
-            script = getKSGSZeichnung();
-            script->setSize( 800, 500 );
-            script->setBildschirmZ( dynamic_cast<Bildschirm *>( uiFactory.initParam.bildschirm->getThis() ) );
-            script->setSchriftZ( dynamic_cast<Schrift *>( uiFactory.initParam.schrift->getThis() ) );
-            script->setCallbackParam( this );
-            script->setCallbackFunktion( KSGSRückruf );
-            wirdGeladen = 1;
-            laden->setSichtbar( 1 );
-            getThis();
-            new NewsThread( "Client/Start", dynamic_cast<KSGScriptObj *>( script->getThis() ), this );
-        }
-    }
+	bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
+	pos = Punkt(x, 67);
+	gr = Punkt(102, 32);
+	rahmen = new LRahmen();
+	rahmen->setFarbe(0xFFFFFFFF);
+	rahmen->setSize(102, 32);
+	alpha = 0;
+	animation = 0;
+	wirdGeladen = 0;
+	sichtbar = 0;
+	tickVal = 0;
+	prozent1 = 0;
+	prozent2 = 0;
+	begPos = Punkt(0, 0);
+	begGröße = Punkt(0, 0);
+	größe1 = Punkt(102, 32);
+	pos1 = Punkt(x, 67);
+	größe2 = Punkt(800, 500);
+	pos2 = bildschirmGröße / 2 - größe2 / 2;
+	fehler = initTextFeld(5, 5, 790, 490, TextFeld::Style::Text & ~TextFeld::Style::Sichtbar, "");
+	laden = (Animation2D*)ladeAnimation->dublizieren();
+	laden->setSichtbar(0);
+	laden->setPosition(375, 225);
+	getThis();
+	zNachLoginFenster->addMember(this);
+	ksgsDLL = Framework::getDLLRegister()->ladeDLL("KSGScript.dll", "data/bin/KSGScript.dll");
+	if (!ksgsDLL)
+	{
+		fehler->setText("Die DLL Datei 'data/bin/KSGScript.dll' konnte nicht geladen werden.");
+		fehler->addStyle(TextFeld::Style::Sichtbar);
+		script = 0;
+	}
+	else
+	{
+		KSGSGetZeichnung getKSGSZeichnung = (KSGSGetZeichnung)GetProcAddress(ksgsDLL, KSGS_START_FUNKTION);
+		if (!getKSGSZeichnung)
+		{
+			fehler->setText("Die Funktion '" KSGS_START_FUNKTION "' konnte in der DLL Datei 'data/bin/KSGScript.dll'\nnicht gefunden werden.");
+			fehler->addStyle(TextFeld::Style::Sichtbar);
+			script = 0;
+		}
+		else
+		{
+			script = getKSGSZeichnung();
+			script->setSize(800, 500);
+			script->setBildschirmZ(dynamic_cast<Bildschirm*>(uiFactory.initParam.bildschirm->getThis()));
+			script->setSchriftZ(dynamic_cast<Schrift*>(uiFactory.initParam.schrift->getThis()));
+			script->setCallbackParam(this);
+			script->setCallbackFunktion(KSGSRückruf);
+			wirdGeladen = 1;
+			laden->setSichtbar(1);
+			getThis();
+			new NewsThread("Client/Start", dynamic_cast<KSGScriptObj*>(script->getThis()), this);
+		}
+	}
 }
 
 // Destruktor
 Neuigkeiten::~Neuigkeiten()
 {
-    rahmen->release();
-    if( script )
-    {
-        script->reset();
-        script->release();
-    }
-    if( ksgsDLL )
-        Framework::getDLLRegister()->releaseDLL( "KSGScript.dll" );
-    fehler->release();
-    laden->release();
+	rahmen->release();
+	if (script)
+	{
+		script->reset();
+		script->release();
+	}
+	if (ksgsDLL)
+		Framework::getDLLRegister()->releaseDLL("KSGScript.dll");
+	fehler->release();
+	laden->release();
 }
 
 // nicht constant
-void Neuigkeiten::setSichtbar( bool sicht )
+void Neuigkeiten::setSichtbar(bool sicht)
 {
-    begPos = pos;
-    begGröße = gr;
-    animation |= ( sicht ? 0x1 : 0x2 );
-    rend = 1;
+	begPos = pos;
+	begGröße = gr;
+	animation |= (sicht ? 0x1 : 0x2);
+	rend = 1;
 }
 
-void Neuigkeiten::endLaden( char *err )
+void Neuigkeiten::endLaden(const char* err)
 {
-    laden->setSichtbar( 0 );
-    wirdGeladen = 0;
-    if( err )
-    {
-        fehler->setText( err );
-        fehler->addStyle( TextFeld::Style::Sichtbar );
-    }
-    else
-    {
-        fehler->setText( "" );
-        fehler->removeStyle( TextFeld::Style::Sichtbar );
-    }
+	laden->setSichtbar(0);
+	wirdGeladen = 0;
+	if (err)
+	{
+		fehler->setText(err);
+		fehler->addStyle(TextFeld::Style::Sichtbar);
+	}
+	else
+	{
+		fehler->setText("");
+		fehler->removeStyle(TextFeld::Style::Sichtbar);
+	}
 }
 
-void Neuigkeiten::rückruf( RCArray< KSGSVariable > *parameter, KSGSVariable **ret )
+void Neuigkeiten::rückruf(RCArray< KSGSVariable >* parameter, KSGSVariable** ret)
 {
-    if( wirdGeladen )
-        return;
-    KSGSVariable *befehl = parameter->z( 0 );
-    if( !befehl )
-        return;
-    Text *b = befehl->getText();
-    if( !b || !b->getLength() )
-    {
-        if( b )
-            b->release();
-        return;
-    }
-    wirdGeladen = 1;
-    laden->setSichtbar( 1 );
-    new NewsThread( b->getText(), dynamic_cast<KSGScriptObj *>( script->getThis() ), dynamic_cast<Neuigkeiten *>( getThis() ) );
-    b->release();
+	if (wirdGeladen)
+		return;
+	KSGSVariable* befehl = parameter->z(0);
+	if (!befehl)
+		return;
+	Text* b = befehl->getText();
+	if (!b || !b->getLength())
+	{
+		if (b)
+			b->release();
+		return;
+	}
+	wirdGeladen = 1;
+	laden->setSichtbar(1);
+	new NewsThread(b->getText(), dynamic_cast<KSGScriptObj*>(script->getThis()), dynamic_cast<Neuigkeiten*>(getThis()));
+	b->release();
 }
 
-void Neuigkeiten::doPublicMausEreignis( MausEreignis &me )
+void Neuigkeiten::doPublicMausEreignis(MausEreignis& me)
 {
-    if( wirdGeladen )
-        return;
-    me.mx -= pos.x;
-    me.my -= pos.y;
-    if( script && sichtbar )
-        script->doPublicMausEreignis( me );
-    me.mx += pos.x;
-    me.my += pos.y;
+	if (wirdGeladen)
+		return;
+	me.mx -= pos.x;
+	me.my -= pos.y;
+	if (script && sichtbar)
+		script->doPublicMausEreignis(me);
+	me.mx += pos.x;
+	me.my += pos.y;
 }
 
-void Neuigkeiten::doTastaturEreignis( TastaturEreignis &te )
+void Neuigkeiten::doTastaturEreignis(TastaturEreignis& te)
 {
-    if( wirdGeladen )
-        return;
-    if( script && sichtbar )
-        script->doTastaturEreignis( te );
+	if (wirdGeladen)
+		return;
+	if (script && sichtbar)
+		script->doTastaturEreignis(te);
 }
 
-bool Neuigkeiten::tick( double z )
+bool Neuigkeiten::tick(double z)
 {
-    rend |= laden->tick( z );
-    rend |= fehler->tick( z );
-    if( wirdGeladen )
-    {
-        bool ret = rend;
-        rend = 0;
-        return ret;
-    }
-    if( script && sichtbar )
-        rend |= script->tick( z );
-    tickVal += z * 150;
-    int val = (int)tickVal;
-    if( val < 1 )
-    {
-        bool ret = rend;
-        rend = 0;
-        return ret;
-    }
-    tickVal -= val;
-    if( ( animation | 0x1 ) == animation ) // Einblenden
-    {
-        if( prozent1 != 100 )
-        {
-            prozent1 += val;
-            if( prozent1 >= 100 )
-                prozent1 = 100;
-            pos = begPos + (Punkt)( ( ( Vec2< double > )( pos2 - begPos ) / 100.0 ) * prozent1 );
-            gr = begGröße + (Punkt)( ( ( Vec2< double > )( größe2 - begGröße ) / 100.0 ) * prozent1 );
-        }
-        else if( alpha != 255 )
-        {
-            alpha += val * 2;
-            if( alpha >= 255 || ( animation | 0x2 ) == animation )
-            {
-                alpha = 255;
-                animation &= ~0x1;
-                sichtbar = 1;
-                prozent1 = 0;
-            }
-        }
-        rend = 1;
-    }
-    if( ( animation | 0x2 ) == animation ) // ausblenden
-    {
-        if( alpha != 0 )
-        {
-            alpha -= val * 2;
-            if( alpha < 0 )
-                alpha = 0;
-        }
-        else
-        {
-            prozent2 += val;
-            if( prozent2 > 100 )
-                prozent2 = 100;
-            pos = begPos + (Punkt)( ( ( Vec2< double > )( pos1 - begPos ) / 100.0 ) * prozent2 );
-            gr = begGröße + (Punkt)( ( ( Vec2< double > )( größe1 - begGröße ) / 100.0 ) * prozent2 );
-            if( prozent2 == 100 )
-            {
-                prozent2 = 0;
-                animation &= ~0x2;
-                sichtbar = 0;
-            }
-        }
-        rend = 1;
-    }
-    bool ret = rend;
-    rend = 0;
-    return ret;
+	rend |= laden->tick(z);
+	rend |= fehler->tick(z);
+	if (wirdGeladen)
+	{
+		bool ret = rend;
+		rend = 0;
+		return ret;
+	}
+	if (script && sichtbar)
+		rend |= script->tick(z);
+	tickVal += z * 150;
+	int val = (int)tickVal;
+	if (val < 1)
+	{
+		bool ret = rend;
+		rend = 0;
+		return ret;
+	}
+	tickVal -= val;
+	if ((animation | 0x1) == animation) // Einblenden
+	{
+		if (prozent1 != 100)
+		{
+			prozent1 += val;
+			if (prozent1 >= 100)
+				prozent1 = 100;
+			pos = begPos + (Punkt)(((Vec2< double >)(pos2 - begPos) / 100.0) * prozent1);
+			gr = begGröße + (Punkt)(((Vec2< double >)(größe2 - begGröße) / 100.0) * prozent1);
+		}
+		else if (alpha != 255)
+		{
+			alpha += val * 2;
+			if (alpha >= 255 || (animation | 0x2) == animation)
+			{
+				alpha = 255;
+				animation &= ~0x1;
+				sichtbar = 1;
+				prozent1 = 0;
+			}
+		}
+		rend = 1;
+	}
+	if ((animation | 0x2) == animation) // ausblenden
+	{
+		if (alpha != 0)
+		{
+			alpha -= val * 2;
+			if (alpha < 0)
+				alpha = 0;
+		}
+		else
+		{
+			prozent2 += val;
+			if (prozent2 > 100)
+				prozent2 = 100;
+			pos = begPos + (Punkt)(((Vec2< double >)(pos1 - begPos) / 100.0) * prozent2);
+			gr = begGröße + (Punkt)(((Vec2< double >)(größe1 - begGröße) / 100.0) * prozent2);
+			if (prozent2 == 100)
+			{
+				prozent2 = 0;
+				animation &= ~0x2;
+				sichtbar = 0;
+			}
+		}
+		rend = 1;
+	}
+	bool ret = rend;
+	rend = 0;
+	return ret;
 }
 
-void Neuigkeiten::render( Bild &zRObj )
+void Neuigkeiten::render(Bild& zRObj)
 {
-    if( pos == pos1 )
-        return;
-    if( !zRObj.setDrawOptions( pos.x, pos.y, gr.x, gr.y ) )
-        return;
-    rahmen->setSize( gr );
-    rahmen->render( zRObj );
-    int rbr = rahmen->getRBreite();
-    zRObj.setAlpha( (unsigned char)alpha );
-    fehler->render( zRObj );
-    if( script )
-        script->render( zRObj );
-    laden->render( zRObj );
-    zRObj.releaseAlpha();
-    zRObj.releaseDrawOptions();
+	if (pos == pos1)
+		return;
+	if (!zRObj.setDrawOptions(pos.x, pos.y, gr.x, gr.y))
+		return;
+	rahmen->setSize(gr);
+	rahmen->render(zRObj);
+	int rbr = rahmen->getRBreite();
+	zRObj.setAlpha((unsigned char)alpha);
+	fehler->render(zRObj);
+	if (script)
+		script->render(zRObj);
+	laden->render(zRObj);
+	zRObj.releaseAlpha();
+	zRObj.releaseDrawOptions();
 }
 
 // constant
 bool Neuigkeiten::istAnimiert() const
 {
-    return animation != 0;
+	return animation != 0;
 }
 
 bool Neuigkeiten::istSichtbar() const
 {
-    return sichtbar || prozent1 != 0;
+	return sichtbar || prozent1 != 0;
 }

+ 43 - 43
KSGClient/NachLogin/Neuigkeiten/Neuigkeiten.h

@@ -13,58 +13,58 @@ class Neuigkeiten; // Aus dieser Datei
 class NewsThread : private Thread
 {
 private:
-    Text *scriptName;
-    KSGScriptObj *obj;
-    Neuigkeiten *news;
+	Text* scriptName;
+	KSGScriptObj* obj;
+	Neuigkeiten* news;
 
 public:
-    // Konstruktor
-    NewsThread( char *name, KSGScriptObj *obj, Neuigkeiten *n );
-    // Destruktor
-    ~NewsThread();
-    // nicht constant
-    void thread();
+	// Konstruktor
+	NewsThread(const char* name, KSGScriptObj* obj, Neuigkeiten* n);
+	// Destruktor
+	~NewsThread();
+	// nicht constant
+	void thread();
 };
 
 class Neuigkeiten : public Zeichnung
 {
 private:
-    Punkt begPos;
-    Punkt begGröße;
-    Punkt pos1;
-    Punkt größe1;
-    Punkt pos2;
-    Punkt größe2;
-    Punkt bildschirmGröße;
-    LRahmen *rahmen;
-    HMODULE ksgsDLL;
-    KSGScriptObj *script;
-    TextFeld *fehler;
-    Animation2D *laden;
-    int animation;
-    bool wirdGeladen;
-    int alpha;
-    bool sichtbar;
-    int prozent1;
-    int prozent2;
-    double tickVal;
+	Punkt begPos;
+	Punkt begGröße;
+	Punkt pos1;
+	Punkt größe1;
+	Punkt pos2;
+	Punkt größe2;
+	Punkt bildschirmGröße;
+	LRahmen* rahmen;
+	HMODULE ksgsDLL;
+	KSGScriptObj* script;
+	TextFeld* fehler;
+	Animation2D* laden;
+	int animation;
+	bool wirdGeladen;
+	int alpha;
+	bool sichtbar;
+	int prozent1;
+	int prozent2;
+	double tickVal;
 
 public:
-    // Konstruktor
-    Neuigkeiten( Fenster *zNachLoginFenster, int x );
-    // Destruktor
-    ~Neuigkeiten();
-    // nicht constant
-    void setSichtbar( bool sicht );
-    void endLaden( char *err );
-    void rückruf( RCArray< KSGSVariable > *parameter, KSGSVariable **ret );
-    void doPublicMausEreignis( MausEreignis &me ) override;
-    void doTastaturEreignis( TastaturEreignis &te ) override;
-    bool tick( double z ) override;
-    void render( Bild &zRObj ) override;
-    // constant
-    bool istAnimiert() const;
-    bool istSichtbar() const;
+	// Konstruktor
+	Neuigkeiten(Fenster* zNachLoginFenster, int x);
+	// Destruktor
+	~Neuigkeiten();
+	// nicht constant
+	void setSichtbar(bool sicht);
+	void endLaden(const char* err);
+	void rückruf(RCArray< KSGSVariable >* parameter, KSGSVariable** ret);
+	void doPublicMausEreignis(MausEreignis& me) override;
+	void doTastaturEreignis(TastaturEreignis& te) override;
+	bool tick(double z) override;
+	void render(Bild& zRObj) override;
+	// constant
+	bool istAnimiert() const;
+	bool istSichtbar() const;
 };
 
 #endif

+ 704 - 704
KSGClient/NachLogin/Spiele/Spiele.cpp

@@ -9,824 +9,824 @@
 
 // Inhalt der Spiele Klasse aus Spiele.h
 // Konstruktor
-Spiele::Spiele( Fenster *zNachLoginFenster, int x )
-    : Zeichnung()
-{
-    bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
-    pos = Punkt( x, 67 );
-    gr = Punkt( 102, 32 );
-    LTDBDatei *spielenBilder = new LTDBDatei();
-    spielenBilder->setDatei( new Text( "data/client/bilder/spielen.ltdb" ) );
-    spielenBilder->leseDaten( 0 );
-    rahmen = new LRahmen();
-    rahmen->setFarbe( 0xFFFFFFFF );
-    rahmen->setSize( 102, 32 );
-    spielAuswahl = new SpielAuswahlFenster();
-    karteAuswahl = new KarteAuswahlFenster();
-    anmeldung = new AngemeldetFenster();
-    gruppe = new GruppeFenster();
-    teamAuswahl = new TeamAuswahl();
-    statistik = new SpielStatistik();
-    oben = initKnopf( 380, 450, 40, 15, 0, "" );
-    oben->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer );
-    oben->setHintergrundBildZ( spielenBilder->laden( 0, new Text( "oben.png" ) ) );
-    initToolTip( oben, "Nach oben umblättern." );
-    links = initKnopf( 360, 450, 15, 40, 0, "" );
-    links->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer );
-    links->setHintergrundBildZ( spielenBilder->laden( 0, new Text( "links.png" ) ) );
-    initToolTip( links, "Zurück." );
-    unten = initKnopf( 380, 475, 40, 15, 0, "" );
-    unten->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer );
-    unten->setHintergrundBildZ( spielenBilder->laden( 0, new Text( "unten.png" ) ) );
-    initToolTip( unten, "Nach unten umblättern." );
-    rechts = initKnopf( 425, 450, 15, 40, 0, "" );
-    rechts->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer );
-    rechts->setHintergrundBildZ( spielenBilder->laden( 0, new Text( "rechts.png" ) ) );
-    initToolTip( rechts, "Weiter." );
-    spielenBilder->release();
-    alpha = 0;
-    ladenAlpha = 0;
-    ladenJetzt = 0;
-    animation = 0;
-    sichtbar = 0;
-    tickVal = 0;
-    tickVal2 = 0;
-    jetzt = 0;
-    prozent1 = 0;
-    prozent2 = 0;
-    prozent3 = 0;
-    prozent4 = 0;
-    prozent5 = 0;
-    prozent6 = 0;
-    spielGefundenB = 0;
-    begPos = Punkt( 0, 0 );
-    begGröße = Punkt( 0, 0 );
-    größe1 = Punkt( 102, 32 );
-    pos1 = Punkt( x, 67 );
-    größe2 = Punkt( 800, 500 );
-    pos2 = bildschirmGröße / 2 - größe2 / 2;
-    größe3 = Punkt( 950, 550 );
-    pos3 = bildschirmGröße / 2 - größe3 / 2;
-    größe4 = Punkt( 700, 600 );
-    pos4 = bildschirmGröße / 2 - größe4 / 2;
-    getThis();
-    zNachLoginFenster->addMember( this );
+Spiele::Spiele(Fenster* zNachLoginFenster, int x)
+	: Zeichnung()
+{
+	bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
+	pos = Punkt(x, 67);
+	gr = Punkt(102, 32);
+	LTDBDatei* spielenBilder = new LTDBDatei();
+	spielenBilder->setDatei(new Text("data/client/bilder/spielen.ltdb"));
+	spielenBilder->leseDaten(0);
+	rahmen = new LRahmen();
+	rahmen->setFarbe(0xFFFFFFFF);
+	rahmen->setSize(102, 32);
+	spielAuswahl = new SpielAuswahlFenster();
+	karteAuswahl = new KarteAuswahlFenster();
+	anmeldung = new AngemeldetFenster();
+	gruppe = new GruppeFenster();
+	teamAuswahl = new TeamAuswahl();
+	statistik = new SpielStatistik();
+	oben = initKnopf(380, 450, 40, 15, 0, "");
+	oben->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer);
+	oben->setHintergrundBildZ(spielenBilder->laden(0, new Text("oben.png")));
+	initToolTip(oben, "Nach oben umblättern.");
+	links = initKnopf(360, 450, 15, 40, 0, "");
+	links->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer);
+	links->setHintergrundBildZ(spielenBilder->laden(0, new Text("links.png")));
+	initToolTip(links, "Zurück.");
+	unten = initKnopf(380, 475, 40, 15, 0, "");
+	unten->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer);
+	unten->setHintergrundBildZ(spielenBilder->laden(0, new Text("unten.png")));
+	initToolTip(unten, "Nach unten umblättern.");
+	rechts = initKnopf(425, 450, 15, 40, 0, "");
+	rechts->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer);
+	rechts->setHintergrundBildZ(spielenBilder->laden(0, new Text("rechts.png")));
+	initToolTip(rechts, "Weiter.");
+	spielenBilder->release();
+	alpha = 0;
+	ladenAlpha = 0;
+	ladenJetzt = 0;
+	animation = 0;
+	sichtbar = 0;
+	tickVal = 0;
+	tickVal2 = 0;
+	jetzt = 0;
+	prozent1 = 0;
+	prozent2 = 0;
+	prozent3 = 0;
+	prozent4 = 0;
+	prozent5 = 0;
+	prozent6 = 0;
+	spielGefundenB = 0;
+	begPos = Punkt(0, 0);
+	begGröße = Punkt(0, 0);
+	größe1 = Punkt(102, 32);
+	pos1 = Punkt(x, 67);
+	größe2 = Punkt(800, 500);
+	pos2 = bildschirmGröße / 2 - größe2 / 2;
+	größe3 = Punkt(950, 550);
+	pos3 = bildschirmGröße / 2 - größe3 / 2;
+	größe4 = Punkt(700, 600);
+	pos4 = bildschirmGröße / 2 - größe4 / 2;
+	getThis();
+	zNachLoginFenster->addMember(this);
 }
 
 // Destruktor
 Spiele::~Spiele()
 {
-    rahmen->release();
-    spielAuswahl->warteAufThread( 10000 );
-    spielAuswahl->ende();
-    spielAuswahl->release();
-    karteAuswahl->warteAufThread( 10000 );
-    karteAuswahl->ende();
-    karteAuswahl->release();
-    anmeldung->release();
-    gruppe->release();
-    teamAuswahl->release();
-    statistik->release();
-    oben->release();
-    links->release();
-    unten->release();
-    rechts->release();
+	rahmen->release();
+	spielAuswahl->warteAufThread(10000);
+	spielAuswahl->ende();
+	spielAuswahl->release();
+	karteAuswahl->warteAufThread(10000);
+	karteAuswahl->ende();
+	karteAuswahl->release();
+	anmeldung->release();
+	gruppe->release();
+	teamAuswahl->release();
+	statistik->release();
+	oben->release();
+	links->release();
+	unten->release();
+	rechts->release();
 }
 
 // nicht constant
-void Spiele::setSichtbar( bool sicht )
+void Spiele::setSichtbar(bool sicht)
 {
-    begPos = pos;
-    begGröße = gr;
-    animation |= ( sicht ? 0x1 : 0x2 );
-    updateErlaubt();
-    rend = 1;
+	begPos = pos;
+	begGröße = gr;
+	animation |= (sicht ? 0x1 : 0x2);
+	updateErlaubt();
+	rend = 1;
 }
 
 void Spiele::updateErlaubt()
 {
-    if( sichtbar )
-    {
-        if( jetzt == 1 )
-            spielAuswahl->updateListe();
-        if( jetzt == 2 )
-            karteAuswahl->updateListe();
-    }
+	if (sichtbar)
+	{
+		if (jetzt == 1)
+			spielAuswahl->updateListe();
+		if (jetzt == 2)
+			karteAuswahl->updateListe();
+	}
 }
 
-void Spiele::anmelden( int karteId )
+void Spiele::anmelden(int karteId)
 {
-    if( anmeldung->setKarteId( karteId ) )
-    {
-        karteAuswahl->setSichtbar( 0 );
-        anmeldung->setSichtbar( 1 );
-        jetzt = 3;
-    }
+	if (anmeldung->setKarteId(karteId))
+	{
+		karteAuswahl->setSichtbar(0);
+		anmeldung->setSichtbar(1);
+		jetzt = 3;
+	}
 }
 
 void Spiele::anmeldungAbbrechen()
 {
-    anmeldung->setSichtbar( 0 );
-    spielAuswahl->setSichtbar( 1 );
-    jetzt = 1;
+	anmeldung->setSichtbar(0);
+	spielAuswahl->setSichtbar(1);
+	jetzt = 1;
 }
 
-void Spiele::gruppeBetreten( int gruppeId )
+void Spiele::gruppeBetreten(int gruppeId)
 {
-    begPos = pos;
-    begGröße = gr;
-    größe2 = größe3;
-    pos2 = pos3;
-    gruppe->setGruppeId( gruppeId );
-    gruppe->neuerSpieler( loginClient->getAccountId() );
-    animation |= 0x4;
-    spielGefundenB = 0;
+	begPos = pos;
+	begGröße = gr;
+	größe2 = größe3;
+	pos2 = pos3;
+	gruppe->setGruppeId(gruppeId);
+	gruppe->neuerSpieler(loginClient->getAccountId());
+	animation |= 0x4;
+	spielGefundenB = 0;
 }
 
 void Spiele::gruppeVerlassen()
 {
-    begPos = pos;
-    begGröße = gr;
-    größe2.x = 800;
-    größe2.y = 500;
-    pos2 = bildschirmGröße / 2 - größe2 / 2;
-    animation |= 0x8;
+	begPos = pos;
+	begGröße = gr;
+	größe2.x = 800;
+	größe2.y = 500;
+	pos2 = bildschirmGröße / 2 - größe2 / 2;
+	animation |= 0x8;
 }
 
-void Spiele::spielerBetrittGruppe( int gruppeId, int accountId )
+void Spiele::spielerBetrittGruppe(int gruppeId, int accountId)
 {
-    if( gruppe->getGruppeId() == gruppeId )
-        gruppe->neuerSpieler( accountId );
+	if (gruppe->getGruppeId() == gruppeId)
+		gruppe->neuerSpieler(accountId);
 }
 
-void Spiele::spielerVerlässtGruppe( int gruppeId, int accountId )
+void Spiele::spielerVerlässtGruppe(int gruppeId, int accountId)
 {
-    if( gruppe->getGruppeId() == gruppeId )
-        gruppe->spielerVerlässt( accountId );
+	if (gruppe->getGruppeId() == gruppeId)
+		gruppe->spielerVerlässt(accountId);
 }
 
-void Spiele::gruppeNachricht( int gruppeId, char *nachricht )
+void Spiele::gruppeNachricht(int gruppeId, const char* nachricht)
 {
-    if( gruppe->getGruppeId() == gruppeId )
-        gruppe->chatNachricht( nachricht );
+	if (gruppe->getGruppeId() == gruppeId)
+		gruppe->chatNachricht(nachricht);
 }
 
-void Spiele::gruppeAnmelden( int gruppeId )
+void Spiele::gruppeAnmelden(int gruppeId)
 {
-    if( gruppe->getGruppeId() == gruppeId )
-        gruppe->setAngemeldet( 1 );
+	if (gruppe->getGruppeId() == gruppeId)
+		gruppe->setAngemeldet(1);
 }
 
-void Spiele::gruppeAbmelden( int gruppeId )
+void Spiele::gruppeAbmelden(int gruppeId)
 {
-    if( gruppe->getGruppeId() == gruppeId )
-        gruppe->setAngemeldet( 0 );
+	if (gruppe->getGruppeId() == gruppeId)
+		gruppe->setAngemeldet(0);
 }
 
-void Spiele::setGruppeSpielStarten( int gruppeId, bool spielStarten )
+void Spiele::setGruppeSpielStarten(int gruppeId, bool spielStarten)
 {
-    if( gruppe->getGruppeId() == gruppeId )
-        gruppe->setSpielerHinzufügen( !spielStarten );
+	if (gruppe->getGruppeId() == gruppeId)
+		gruppe->setSpielerHinzufügen(!spielStarten);
 }
 
-void Spiele::setGruppeAdmin( int gruppeId, int admin )
+void Spiele::setGruppeAdmin(int gruppeId, int admin)
 {
-    if( gruppe->getGruppeId() == gruppeId )
-        gruppe->setAdmin( admin );
-    nachLogin->zFreundesListe()->zeigeEinladeKnopf( admin == loginClient->getAccountId() );
+	if (gruppe->getGruppeId() == gruppeId)
+		gruppe->setAdmin(admin);
+	nachLogin->zFreundesListe()->zeigeEinladeKnopf(admin == loginClient->getAccountId());
 }
 
-void Spiele::kickAusGruppe( int gruppeId )
+void Spiele::kickAusGruppe(int gruppeId)
 {
-    if( gruppe->getGruppeId() == gruppeId )
-    {
-        gruppe->kick();
-        gruppeVerlassen();
-    }
+	if (gruppe->getGruppeId() == gruppeId)
+	{
+		gruppe->kick();
+		gruppeVerlassen();
+	}
 }
 
-void Spiele::gruppeEinladungNeu( int gruppeId, int accountId )
+void Spiele::gruppeEinladungNeu(int gruppeId, int accountId)
 {
-    if( gruppe->getGruppeId() == gruppeId )
-        gruppe->neueEinladung( accountId );
+	if (gruppe->getGruppeId() == gruppeId)
+		gruppe->neueEinladung(accountId);
 }
 
-void Spiele::gruppeEinladungAbgebrochen( int gruppeId, int accountId )
+void Spiele::gruppeEinladungAbgebrochen(int gruppeId, int accountId)
 {
-    if( gruppe->getGruppeId() == gruppeId )
-        gruppe->einladungEntfernt( accountId );
+	if (gruppe->getGruppeId() == gruppeId)
+		gruppe->einladungEntfernt(accountId);
 }
 
-void Spiele::gruppeEinadungAbgelehnt( int gruppeId, int accountId )
+void Spiele::gruppeEinadungAbgelehnt(int gruppeId, int accountId)
 {
-    if( gruppe->getGruppeId() == gruppeId )
-        gruppe->einladungAbgelehnt( accountId );
+	if (gruppe->getGruppeId() == gruppeId)
+		gruppe->einladungAbgelehnt(accountId);
 }
 
-void Spiele::spielGefunden( int karteId )
+void Spiele::spielGefunden(int karteId)
 {
-    MausEreignis me;
-    me.id = ME_RLinks;
-    uiFactory.initParam.bildschirm->lock();
-    nachLogin->zTitelLeiste()->druckSpielen( me );
-    uiFactory.initParam.bildschirm->unlock();
-    if( jetzt == 3 )
-        anmeldung->setSpielGefunden();
-    else if( jetzt == 4 )
-        gruppe->spielGefunden();
-    else
-        spielGefundenB = 1;
+	MausEreignis me;
+	me.id = ME_RLinks;
+	uiFactory.initParam.bildschirm->lock();
+	nachLogin->zTitelLeiste()->druckSpielen(me);
+	uiFactory.initParam.bildschirm->unlock();
+	if (jetzt == 3)
+		anmeldung->setSpielGefunden();
+	else if (jetzt == 4)
+		gruppe->spielGefunden();
+	else
+		spielGefundenB = 1;
 }
 
-void Spiele::spielGefundenZeitVerbleibend( int sekunden )
+void Spiele::spielGefundenZeitVerbleibend(int sekunden)
 {
-    if( jetzt == 3 )
-        anmeldung->setVerbleibendeZeit( sekunden );
-    if( jetzt == 4 )
-        gruppe->verbleibendeZeit( sekunden );
-    if( jetzt == 5 )
-        teamAuswahl->verbleibendeZeit( sekunden );
+	if (jetzt == 3)
+		anmeldung->setVerbleibendeZeit(sekunden);
+	if (jetzt == 4)
+		gruppe->verbleibendeZeit(sekunden);
+	if (jetzt == 5)
+		teamAuswahl->verbleibendeZeit(sekunden);
 }
 
 void Spiele::spielGefundenAbbruch()
 {
-    if( jetzt == 3 )
-        anmeldung->spielGefundenAbbruch();
-    if( jetzt == 4 )
-        gruppe->spielGefundenAbbruch();
+	if (jetzt == 3)
+		anmeldung->spielGefundenAbbruch();
+	if (jetzt == 4)
+		gruppe->spielGefundenAbbruch();
 }
 
-void Spiele::zurückInWarteschlange( int stunden, int minuten, int sekunden )
+void Spiele::zurückInWarteschlange(int stunden, int minuten, int sekunden)
 {
-    if( jetzt == 3 )
-        anmeldung->zurückInWarteschlange( stunden, minuten, sekunden );
-    if( jetzt == 4 )
-        gruppe->zurückInWarteschlange( stunden, minuten, sekunden );
+	if (jetzt == 3)
+		anmeldung->zurückInWarteschlange(stunden, minuten, sekunden);
+	if (jetzt == 4)
+		gruppe->zurückInWarteschlange(stunden, minuten, sekunden);
 }
 
 void Spiele::teamAuswahlBetreten()
 {
-    begPos = pos;
-    begGröße = gr;
-    größe2 = größe4;
-    pos2 = pos4;
-    animation |= 0x10;
+	begPos = pos;
+	begGröße = gr;
+	größe2 = größe4;
+	pos2 = pos4;
+	animation |= 0x10;
 }
 
-void Spiele::teamAuswahlInit( SpielerTeamStruktur *sts )
+void Spiele::teamAuswahlInit(SpielerTeamStruktur* sts)
 {
-    int karteId = 0;
-    if( jetzt == 3 )
-        karteId = anmeldung->getKarteId();
-    if( jetzt == 4 )
-        karteId = gruppe->getKarteId();
-    teamAuswahl->setKarteId( karteId );
-    teamAuswahl->initSTS( sts );
+	int karteId = 0;
+	if (jetzt == 3)
+		karteId = anmeldung->getKarteId();
+	if (jetzt == 4)
+		karteId = gruppe->getKarteId();
+	teamAuswahl->setKarteId(karteId);
+	teamAuswahl->initSTS(sts);
 }
 
-void Spiele::teamAuswahlAddSpieler( int accountId )
+void Spiele::teamAuswahlAddSpieler(int accountId)
 {
-    teamAuswahl->addSpieler( accountId );
+	teamAuswahl->addSpieler(accountId);
 }
 
-void Spiele::teamAuswahlRemoveSpieler( int accountId )
+void Spiele::teamAuswahlRemoveSpieler(int accountId)
 {
-    teamAuswahl->removeSpieler( accountId );
+	teamAuswahl->removeSpieler(accountId);
 }
 
-void Spiele::teamAuswahlSpielerWehseltTeam( int accountId, int spielerNummer )
+void Spiele::teamAuswahlSpielerWehseltTeam(int accountId, int spielerNummer)
 {
-    teamAuswahl->setSpielerNummer( accountId, spielerNummer );
+	teamAuswahl->setSpielerNummer(accountId, spielerNummer);
 }
 
-void Spiele::teamAuswahlChatNachricht( char *nachricht )
+void Spiele::teamAuswahlChatNachricht(const char* nachricht)
 {
-    teamAuswahl->addNachricht( nachricht );
+	teamAuswahl->addNachricht(nachricht);
 }
 
 void Spiele::teamAuswahlAbbrechen()
 {
-    begPos = pos;
-    begGröße = gr;
-    größe2.x = 800;
-    größe2.y = 500;
-    pos2 = bildschirmGröße / 2 - größe2 / 2;
-    animation |= 0x20;
-}
-
-void Spiele::statistikNachricht( int län, char *bytes )
-{
-    statistik->nachricht( län, bytes );
-}
-
-void Spiele::ladeSpielStatistik( int karteId )
-{
-    pos = pos1;
-    gr = größe1;
-    größe2 = Punkt( 800, 500 );
-    pos2 = bildschirmGröße / 2 - größe2 / 2;
-    teamAuswahl->setSichtbar( 0, 1 );
-    animation = 0;
-    sichtbar = 0;
-    alpha = 0;
-    jetzt = 6;
-    statistik->setSpielArt( infoClient->getSpielId( karteId ) );
-    setSichtbar( 1 );
-}
-
-bool Spiele::tick( double tickVal )
-{
-    rend |= spielAuswahl->tick( tickVal );
-    rend |= karteAuswahl->tick( tickVal );
-    rend |= anmeldung->tick( tickVal );
-    rend |= gruppe->tick( tickVal );
-    rend |= teamAuswahl->tick( tickVal );
-    rend |= statistik->tick( tickVal );
-    rend |= oben->tick( tickVal );
-    rend |= rechts->tick( tickVal );
-    rend |= unten->tick( tickVal );
-    rend |= links->tick( tickVal );
-    if( jetzt == 6 && !statistik->istSichtbar() )
-    {
-        spielAuswahl->setSichtbar( 1 );
-        jetzt = 1;
-        statistik->reset();
-    }
-    tickVal2 += tickVal;
-    if( tickVal2 >= 1 / 60.0 )
-    {
-        tickVal2 -= 1 / 60.0;
-        if( ladenAlpha && ladeAnimation->zAnimationData() )
-        {
-            rend = 1;
-            ladenJetzt++;
-            if( ladenJetzt >= ladeAnimation->zAnimationData()->getBildAnzahl() )
-                ladenJetzt = 0;
-        }
-    }
-    this->tickVal += tickVal * 150;
-    int val = (int)this->tickVal;
-    if( val < 1 )
-    {
-        bool ret = rend;
-        rend = 0;
-        return ret;
-    }
-    this->tickVal -= val;
-    if( ( animation | 0x1 ) == animation ) // Einblenden
-    {
-        if( prozent1 != 100 )
-        {
-            prozent1 += val;
-            if( prozent1 >= 100 )
-            {
-                prozent1 = 100;
-                if( !jetzt )
-                {
-                    spielAuswahl->setSichtbar( 1 );
-                    jetzt = 1;
-                }
-            }
-            pos = begPos + (Punkt)( ( ( Vec2< double > )( pos2 - begPos ) / 100.0 ) * prozent1 );
-            gr = begGröße + (Punkt)( ( ( Vec2< double > )( größe2 - begGröße ) / 100.0 ) * prozent1 );
-        }
-        else if( alpha != 255 )
-        {
-            alpha += val * 2;
-            if( alpha >= 255 || ( animation | 0x2 ) == animation )
-            {
-                alpha = 255;
-                animation &= ~0x1;
-                sichtbar = 1;
-                prozent1 = 0;
-            }
-        }
-        rend = 1;
-    }
-    if( ( animation | 0x2 ) == animation ) // ausblenden
-    {
-        if( alpha != 0 )
-        {
-            alpha -= val * 2;
-            if( alpha < 0 )
-                alpha = 0;
-        }
-        else
-        {
-            prozent2 += val;
-            if( prozent2 > 100 )
-                prozent2 = 100;
-            pos = begPos + (Punkt)( ( ( Vec2< double > )( pos1 - begPos ) / 100.0 ) * prozent2 );
-            gr = begGröße + (Punkt)( ( ( Vec2< double > )( größe1 - begGröße ) / 100.0 ) * prozent2 );
-            if( prozent2 == 100 )
-            {
-                prozent2 = 0;
-                animation &= ~0x2;
-                sichtbar = 0;
-            }
-        }
-        rend = 1;
-    }
-    if( ( animation | 0x4 ) == animation ) // Gruppe betreten
-    {
-        if( ladenAlpha < 255 && !prozent3 )
-        {
-            alpha -= val * 3;
-            if( alpha < 0 )
-                alpha = 0;
-            ladenAlpha += val * 3;
-            if( ladenAlpha >= 255 )
-            {
-                ladenAlpha = 255;
-                if( jetzt == 1 )
-                    spielAuswahl->setSichtbar( 0 );
-                if( jetzt == 2 )
-                    karteAuswahl->setSichtbar( 0 );
-                if( jetzt == 6 )
-                    statistik->verlassen();
-            }
-        }
-        else if( ladenAlpha == 255 && prozent3 != 100 )
-        {
-            prozent3 += val;
-            if( prozent3 >= 100 )
-            {
-                prozent3 = 100;
-                gruppe->setSichtbar( 1 );
-                jetzt = 4;
-                if( spielGefundenB )
-                {
-                    spielGefundenB = 0;
-                    gruppe->spielGefunden();
-                }
-            }
-            pos = begPos + (Punkt)( ( ( Vec2< double > )( pos3 - begPos ) / 100.0 ) * prozent3 );
-            gr = begGröße + (Punkt)( ( ( Vec2< double > )( größe3 - begGröße ) / 100.0 ) * prozent3 );
-        }
-        else if( prozent3 == 100 )
-        {
-            alpha += val * 3;
-            if( alpha > 255 )
-                alpha = 255;
-            ladenAlpha -= val * 3;
-            if( ladenAlpha <= 0 )
-            {
-                ladenAlpha = 0;
-                animation &= ~0x4;
-                prozent3 = 0;
-            }
-        }
-        rend = 1;
-    }
-    if( ( animation | 0x8 ) == animation ) // Gruppe Verlassen
-    {
-        if( ladenAlpha < 255 && prozent4 == 0 )
-        {
-            alpha -= val * 3;
-            if( alpha < 0 )
-                alpha = 0;
-            ladenAlpha += val * 3;
-            if( ladenAlpha >= 255 )
-            {
-                ladenAlpha = 255;
-                gruppe->setSichtbar( 0 );
-            }
-        }
-        else if( ladenAlpha == 255 && prozent4 != 100 )
-        {
-            prozent4 += val;
-            if( prozent4 >= 100 )
-            {
-                prozent4 = 100;
-                spielAuswahl->setSichtbar( 1 );
-                jetzt = 1;
-            }
-            pos = begPos + (Punkt)( ( ( Vec2< double > )( pos2 - begPos ) / 100.0 ) * prozent4 );
-            gr = begGröße + (Punkt)( ( ( Vec2< double > )( größe2 - begGröße ) / 100.0 ) * prozent4 );
-        }
-        else if( prozent4 == 100 )
-        {
-            alpha += val * 3;
-            if( alpha > 255 )
-                alpha = 255;
-            ladenAlpha -= val * 3;
-            if( ladenAlpha <= 0 )
-            {
-                ladenAlpha = 0;
-                animation &= ~0x8;
-                prozent4 = 0;
-            }
-        }
-        rend = 1;
-    }
-    if( ( animation | 0x10 ) == animation ) // Team Auswahl betreten
-    {
-        if( ladenAlpha < 255 && !prozent5 )
-        {
-            alpha -= val * 3;
-            if( alpha < 0 )
-                alpha = 0;
-            ladenAlpha += val * 3;
-            if( ladenAlpha >= 255 )
-            {
-                ladenAlpha = 255;
-                if( jetzt == 1 )
-                    spielAuswahl->setSichtbar( 0 );
-                if( jetzt == 2 )
-                    karteAuswahl->setSichtbar( 0 );
-            }
-        }
-        else if( ladenAlpha == 255 && prozent5 != 100 )
-        {
-            prozent5 += val;
-            if( prozent5 >= 100 )
-            {
-                prozent5 = 100;
-                gruppe->setSichtbar( 0 );
-                anmeldung->setSichtbar( 0 );
-                teamAuswahl->setSichtbar( 1 );
-                jetzt = 5;
-            }
-            pos = begPos + (Punkt)( ( ( Vec2< double > )( pos4 - begPos ) / 100.0 ) * prozent5 );
-            gr = begGröße + (Punkt)( ( ( Vec2< double > )( größe4 - begGröße ) / 100.0 ) * prozent5 );
-        }
-        else if( prozent5 == 100 )
-        {
-            alpha += val * 3;
-            if( alpha > 255 )
-                alpha = 255;
-            ladenAlpha -= val * 3;
-            if( ladenAlpha <= 0 )
-            {
-                ladenAlpha = 0;
-                animation &= ~0x10;
-                prozent5 = 0;
-            }
-        }
-        rend = 1;
-    }
-    if( ( animation | 0x20 ) == animation ) // Team Auswahl Verlassen
-    {
-        if( ladenAlpha < 255 && prozent6 == 0 )
-        {
-            alpha -= val * 3;
-            if( alpha < 0 )
-                alpha = 0;
-            ladenAlpha += val * 3;
-            if( ladenAlpha >= 255 )
-            {
-                ladenAlpha = 255;
-                teamAuswahl->setSichtbar( 0 );
-            }
-        }
-        else if( ladenAlpha == 255 && prozent6 != 100 )
-        {
-            prozent6 += val;
-            if( prozent6 >= 100 )
-            {
-                prozent6 = 100;
-                spielAuswahl->setSichtbar( 1 );
-                jetzt = 1;
-            }
-            pos = begPos + (Punkt)( ( ( Vec2< double > )( pos2 - begPos ) / 100.0 ) * prozent6 );
-            gr = begGröße + (Punkt)( ( ( Vec2< double > )( größe2 - begGröße ) / 100.0 ) * prozent6 );
-        }
-        else if( prozent6 == 100 )
-        {
-            alpha += val * 3;
-            if( alpha > 255 )
-                alpha = 255;
-            ladenAlpha -= val * 3;
-            if( ladenAlpha <= 0 )
-            {
-                ladenAlpha = 0;
-                animation &= ~0x20;
-                prozent6 = 0;
-            }
-        }
-        rend = 1;
-    }
-    bool ret = rend;
-    rend = 0;
-    return ret;
-}
-
-void Spiele::doPublicMausEreignis( MausEreignis &me )
-{
-    if( !sichtbar )
-        return;
-    if( animation )
-        return;
-    int mx = me.mx;
-    int my = me.my;
-    me.mx -= pos.x;
-    me.my -= pos.y;
-    int ak = 0;
-    bool tmp = me.verarbeitet;
-    oben->doPublicMausEreignis( me );
-    ak = me.verarbeitet ? 1 : 0;
-    links->doPublicMausEreignis( me );
-    ak = me.verarbeitet && !ak ? 2 : ak;
-    unten->doPublicMausEreignis( me );
-    ak = me.verarbeitet && !ak ? 3 : ak;
-    rechts->doPublicMausEreignis( me );
-    ak = me.verarbeitet && !ak ? 4 : ak;
-    if( tmp )
-        ak = 0;
-    switch( jetzt )
-    {
-    case 1: // Spiel Auswahl
-        if( spielAuswahl )
-        {
-            spielAuswahl->doPublicMausEreignis( me );
-            if( spielAuswahl->hatAuswahl() && spielAuswahl->istAuswahlErlubt() )
-                rechts->addStyle( Knopf::Style::Erlaubt );
-            else
-                rechts->removeStyle( Knopf::Style::Erlaubt );
-            if( !spielAuswahl->getSeite() )
-                oben->removeStyle( Knopf::Style::Erlaubt );
-            else
-                oben->addStyle( Knopf::Style::Erlaubt );
-            if( spielAuswahl->getSeite() < spielAuswahl->getSeiteAnzahl() - 1 )
-                unten->addStyle( Knopf::Style::Erlaubt );
-            else
-                unten->removeStyle( Knopf::Style::Erlaubt );
-            links->removeStyle( Knopf::Style::Erlaubt );
-            if( me.id != ME_RLinks )
-                break;
-            switch( ak )
-            {
-            case 1: // oben Klick
-                spielAuswahl->blättern( 1 );
-                break;
-            case 3: // unten Klick
-                spielAuswahl->blättern( 0 );
-                break;
-            case 4: // rehts Klick
-                if( rechts->hatStyle( Knopf::Style::Erlaubt ) )
-                {
-                    karteAuswahl->setSpielId( spielAuswahl->zAuswahl()->getSpielId() );
-                    spielAuswahl->setSichtbar( 0 );
-                    karteAuswahl->setSichtbar( 1 );
-                    jetzt = 2;
-                }
-                break;
-            }
-        }
-        break;
-    case 2: // Karten Auswahl
-        if( karteAuswahl )
-        {
-            karteAuswahl->doPublicMausEreignis( me );
-            rechts->removeStyle( Knopf::Style::Erlaubt );
-            if( !karteAuswahl->getSeite() )
-                oben->removeStyle( Knopf::Style::Erlaubt );
-            else
-                oben->addStyle( Knopf::Style::Erlaubt );
-            if( karteAuswahl->getSeite() < karteAuswahl->getSeiteAnzahl() - 1 )
-                unten->addStyle( Knopf::Style::Erlaubt );
-            else
-                unten->removeStyle( Knopf::Style::Erlaubt );
-            links->addStyle( Knopf::Style::Erlaubt );
-            if( me.id != ME_RLinks )
-                break;
-            switch( ak )
-            {
-            case 1: // oben Klick
-                karteAuswahl->blättern( 1 );
-                break;
-            case 2: // links Klick
-                karteAuswahl->setSichtbar( 0 );
-                spielAuswahl->setSichtbar( 1 );
-                jetzt = 1;
-                break;
-            case 3: // unten Klick
-                karteAuswahl->blättern( 0 );
-                break;
-            }
-        }
-        break;
-    case 3: // Anmeldung
-        anmeldung->doPublicMausEreignis( me );
-        break;
-    case 4: // Gruppe
-        gruppe->doPublicMausEreignis( me );
-        break;
-    case 5: // TeamAuswahl
-        teamAuswahl->doPublicMausEreignis( me );
-        break;
-    case 6:
-        statistik->doPublicMausEreignis( me );
-        break;
-    }
-    me.mx = mx;
-    me.my = my;
-}
-
-void Spiele::doTastaturEreignis( TastaturEreignis &te )
-{
-    if( !sichtbar )
-        return;
-    switch( jetzt )
-    {
-    case 1:
-
-        break;
-    case 2:
-
-        break;
-    case 3:
-
-        break;
-    case 4:
-        gruppe->doTastaturEreignis( te );
-        break;
-    case 5:
-        teamAuswahl->doTastaturEreignis( te );
-        break;
-    case 6:
-        statistik->doTastaturEreignis( te );
-    }
-}
-
-void Spiele::render( Bild &zRObj )
-{
-    if( pos == pos1 )
-        return;
-    int x = pos.x;
-    int y = pos.y;
-    int br = gr.x;
-    int hö = gr.y;
-    if( !zRObj.setDrawOptions( x, y, br, hö ) )
-        return;
-    rahmen->setSize( br, hö );
-    rahmen->render( zRObj );
-    int rbr = rahmen->getRBreite();
-    zRObj.setAlpha( (unsigned char)alpha );
-    if( jetzt == 1 || jetzt == 2 )
-    {
-        oben->render( zRObj );
-        links->render( zRObj );
-        unten->render( zRObj );
-        rechts->render( zRObj );
-    }
-    if( !zRObj.setDrawOptions( rbr, rbr, br - rbr * 2, hö - rbr * 2 ) )
-    {
-        zRObj.releaseDrawOptions();
-        zRObj.releaseAlpha();
-        return;
-    }
-    if( jetzt != 4 && jetzt != 5 )
-    {
-        spielAuswahl->render( zRObj );
-        karteAuswahl->render( zRObj );
-        anmeldung->render( zRObj );
-    }
-    if( jetzt != 5 )
-        gruppe->render( zRObj );
-    teamAuswahl->render( zRObj );
-    statistik->render( zRObj );
-    zRObj.releaseDrawOptions();
-    zRObj.releaseAlpha();
-    if( ladenAlpha && ladeAnimation->zAnimationData() )
-    {
-        zRObj.setAlpha( ladenAlpha );
-        zRObj.drawBild( br / 2 - 25, hö / 2 - 25, 50, 50, *ladeAnimation->zAnimationData()->zBild( ladenJetzt ) );
-        zRObj.releaseAlpha();
-    }
-    zRObj.releaseDrawOptions();
+	begPos = pos;
+	begGröße = gr;
+	größe2.x = 800;
+	größe2.y = 500;
+	pos2 = bildschirmGröße / 2 - größe2 / 2;
+	animation |= 0x20;
+}
+
+void Spiele::statistikNachricht(int län, const char* bytes)
+{
+	statistik->nachricht(län, bytes);
+}
+
+void Spiele::ladeSpielStatistik(int karteId)
+{
+	pos = pos1;
+	gr = größe1;
+	größe2 = Punkt(800, 500);
+	pos2 = bildschirmGröße / 2 - größe2 / 2;
+	teamAuswahl->setSichtbar(0, 1);
+	animation = 0;
+	sichtbar = 0;
+	alpha = 0;
+	jetzt = 6;
+	statistik->setSpielArt(infoClient->getSpielId(karteId));
+	setSichtbar(1);
+}
+
+bool Spiele::tick(double tickVal)
+{
+	rend |= spielAuswahl->tick(tickVal);
+	rend |= karteAuswahl->tick(tickVal);
+	rend |= anmeldung->tick(tickVal);
+	rend |= gruppe->tick(tickVal);
+	rend |= teamAuswahl->tick(tickVal);
+	rend |= statistik->tick(tickVal);
+	rend |= oben->tick(tickVal);
+	rend |= rechts->tick(tickVal);
+	rend |= unten->tick(tickVal);
+	rend |= links->tick(tickVal);
+	if (jetzt == 6 && !statistik->istSichtbar())
+	{
+		spielAuswahl->setSichtbar(1);
+		jetzt = 1;
+		statistik->reset();
+	}
+	tickVal2 += tickVal;
+	if (tickVal2 >= 1 / 60.0)
+	{
+		tickVal2 -= 1 / 60.0;
+		if (ladenAlpha && ladeAnimation->zAnimationData())
+		{
+			rend = 1;
+			ladenJetzt++;
+			if (ladenJetzt >= ladeAnimation->zAnimationData()->getBildAnzahl())
+				ladenJetzt = 0;
+		}
+	}
+	this->tickVal += tickVal * 150;
+	int val = (int)this->tickVal;
+	if (val < 1)
+	{
+		bool ret = rend;
+		rend = 0;
+		return ret;
+	}
+	this->tickVal -= val;
+	if ((animation | 0x1) == animation) // Einblenden
+	{
+		if (prozent1 != 100)
+		{
+			prozent1 += val;
+			if (prozent1 >= 100)
+			{
+				prozent1 = 100;
+				if (!jetzt)
+				{
+					spielAuswahl->setSichtbar(1);
+					jetzt = 1;
+				}
+			}
+			pos = begPos + (Punkt)(((Vec2< double >)(pos2 - begPos) / 100.0) * prozent1);
+			gr = begGröße + (Punkt)(((Vec2< double >)(größe2 - begGröße) / 100.0) * prozent1);
+		}
+		else if (alpha != 255)
+		{
+			alpha += val * 2;
+			if (alpha >= 255 || (animation | 0x2) == animation)
+			{
+				alpha = 255;
+				animation &= ~0x1;
+				sichtbar = 1;
+				prozent1 = 0;
+			}
+		}
+		rend = 1;
+	}
+	if ((animation | 0x2) == animation) // ausblenden
+	{
+		if (alpha != 0)
+		{
+			alpha -= val * 2;
+			if (alpha < 0)
+				alpha = 0;
+		}
+		else
+		{
+			prozent2 += val;
+			if (prozent2 > 100)
+				prozent2 = 100;
+			pos = begPos + (Punkt)(((Vec2< double >)(pos1 - begPos) / 100.0) * prozent2);
+			gr = begGröße + (Punkt)(((Vec2< double >)(größe1 - begGröße) / 100.0) * prozent2);
+			if (prozent2 == 100)
+			{
+				prozent2 = 0;
+				animation &= ~0x2;
+				sichtbar = 0;
+			}
+		}
+		rend = 1;
+	}
+	if ((animation | 0x4) == animation) // Gruppe betreten
+	{
+		if (ladenAlpha < 255 && !prozent3)
+		{
+			alpha -= val * 3;
+			if (alpha < 0)
+				alpha = 0;
+			ladenAlpha += val * 3;
+			if (ladenAlpha >= 255)
+			{
+				ladenAlpha = 255;
+				if (jetzt == 1)
+					spielAuswahl->setSichtbar(0);
+				if (jetzt == 2)
+					karteAuswahl->setSichtbar(0);
+				if (jetzt == 6)
+					statistik->verlassen();
+			}
+		}
+		else if (ladenAlpha == 255 && prozent3 != 100)
+		{
+			prozent3 += val;
+			if (prozent3 >= 100)
+			{
+				prozent3 = 100;
+				gruppe->setSichtbar(1);
+				jetzt = 4;
+				if (spielGefundenB)
+				{
+					spielGefundenB = 0;
+					gruppe->spielGefunden();
+				}
+			}
+			pos = begPos + (Punkt)(((Vec2< double >)(pos3 - begPos) / 100.0) * prozent3);
+			gr = begGröße + (Punkt)(((Vec2< double >)(größe3 - begGröße) / 100.0) * prozent3);
+		}
+		else if (prozent3 == 100)
+		{
+			alpha += val * 3;
+			if (alpha > 255)
+				alpha = 255;
+			ladenAlpha -= val * 3;
+			if (ladenAlpha <= 0)
+			{
+				ladenAlpha = 0;
+				animation &= ~0x4;
+				prozent3 = 0;
+			}
+		}
+		rend = 1;
+	}
+	if ((animation | 0x8) == animation) // Gruppe Verlassen
+	{
+		if (ladenAlpha < 255 && prozent4 == 0)
+		{
+			alpha -= val * 3;
+			if (alpha < 0)
+				alpha = 0;
+			ladenAlpha += val * 3;
+			if (ladenAlpha >= 255)
+			{
+				ladenAlpha = 255;
+				gruppe->setSichtbar(0);
+			}
+		}
+		else if (ladenAlpha == 255 && prozent4 != 100)
+		{
+			prozent4 += val;
+			if (prozent4 >= 100)
+			{
+				prozent4 = 100;
+				spielAuswahl->setSichtbar(1);
+				jetzt = 1;
+			}
+			pos = begPos + (Punkt)(((Vec2< double >)(pos2 - begPos) / 100.0) * prozent4);
+			gr = begGröße + (Punkt)(((Vec2< double >)(größe2 - begGröße) / 100.0) * prozent4);
+		}
+		else if (prozent4 == 100)
+		{
+			alpha += val * 3;
+			if (alpha > 255)
+				alpha = 255;
+			ladenAlpha -= val * 3;
+			if (ladenAlpha <= 0)
+			{
+				ladenAlpha = 0;
+				animation &= ~0x8;
+				prozent4 = 0;
+			}
+		}
+		rend = 1;
+	}
+	if ((animation | 0x10) == animation) // Team Auswahl betreten
+	{
+		if (ladenAlpha < 255 && !prozent5)
+		{
+			alpha -= val * 3;
+			if (alpha < 0)
+				alpha = 0;
+			ladenAlpha += val * 3;
+			if (ladenAlpha >= 255)
+			{
+				ladenAlpha = 255;
+				if (jetzt == 1)
+					spielAuswahl->setSichtbar(0);
+				if (jetzt == 2)
+					karteAuswahl->setSichtbar(0);
+			}
+		}
+		else if (ladenAlpha == 255 && prozent5 != 100)
+		{
+			prozent5 += val;
+			if (prozent5 >= 100)
+			{
+				prozent5 = 100;
+				gruppe->setSichtbar(0);
+				anmeldung->setSichtbar(0);
+				teamAuswahl->setSichtbar(1);
+				jetzt = 5;
+			}
+			pos = begPos + (Punkt)(((Vec2< double >)(pos4 - begPos) / 100.0) * prozent5);
+			gr = begGröße + (Punkt)(((Vec2< double >)(größe4 - begGröße) / 100.0) * prozent5);
+		}
+		else if (prozent5 == 100)
+		{
+			alpha += val * 3;
+			if (alpha > 255)
+				alpha = 255;
+			ladenAlpha -= val * 3;
+			if (ladenAlpha <= 0)
+			{
+				ladenAlpha = 0;
+				animation &= ~0x10;
+				prozent5 = 0;
+			}
+		}
+		rend = 1;
+	}
+	if ((animation | 0x20) == animation) // Team Auswahl Verlassen
+	{
+		if (ladenAlpha < 255 && prozent6 == 0)
+		{
+			alpha -= val * 3;
+			if (alpha < 0)
+				alpha = 0;
+			ladenAlpha += val * 3;
+			if (ladenAlpha >= 255)
+			{
+				ladenAlpha = 255;
+				teamAuswahl->setSichtbar(0);
+			}
+		}
+		else if (ladenAlpha == 255 && prozent6 != 100)
+		{
+			prozent6 += val;
+			if (prozent6 >= 100)
+			{
+				prozent6 = 100;
+				spielAuswahl->setSichtbar(1);
+				jetzt = 1;
+			}
+			pos = begPos + (Punkt)(((Vec2< double >)(pos2 - begPos) / 100.0) * prozent6);
+			gr = begGröße + (Punkt)(((Vec2< double >)(größe2 - begGröße) / 100.0) * prozent6);
+		}
+		else if (prozent6 == 100)
+		{
+			alpha += val * 3;
+			if (alpha > 255)
+				alpha = 255;
+			ladenAlpha -= val * 3;
+			if (ladenAlpha <= 0)
+			{
+				ladenAlpha = 0;
+				animation &= ~0x20;
+				prozent6 = 0;
+			}
+		}
+		rend = 1;
+	}
+	bool ret = rend;
+	rend = 0;
+	return ret;
+}
+
+void Spiele::doPublicMausEreignis(MausEreignis& me)
+{
+	if (!sichtbar)
+		return;
+	if (animation)
+		return;
+	int mx = me.mx;
+	int my = me.my;
+	me.mx -= pos.x;
+	me.my -= pos.y;
+	int ak = 0;
+	bool tmp = me.verarbeitet;
+	oben->doPublicMausEreignis(me);
+	ak = me.verarbeitet ? 1 : 0;
+	links->doPublicMausEreignis(me);
+	ak = me.verarbeitet && !ak ? 2 : ak;
+	unten->doPublicMausEreignis(me);
+	ak = me.verarbeitet && !ak ? 3 : ak;
+	rechts->doPublicMausEreignis(me);
+	ak = me.verarbeitet && !ak ? 4 : ak;
+	if (tmp)
+		ak = 0;
+	switch (jetzt)
+	{
+	case 1: // Spiel Auswahl
+		if (spielAuswahl)
+		{
+			spielAuswahl->doPublicMausEreignis(me);
+			if (spielAuswahl->hatAuswahl() && spielAuswahl->istAuswahlErlubt())
+				rechts->addStyle(Knopf::Style::Erlaubt);
+			else
+				rechts->removeStyle(Knopf::Style::Erlaubt);
+			if (!spielAuswahl->getSeite())
+				oben->removeStyle(Knopf::Style::Erlaubt);
+			else
+				oben->addStyle(Knopf::Style::Erlaubt);
+			if (spielAuswahl->getSeite() < spielAuswahl->getSeiteAnzahl() - 1)
+				unten->addStyle(Knopf::Style::Erlaubt);
+			else
+				unten->removeStyle(Knopf::Style::Erlaubt);
+			links->removeStyle(Knopf::Style::Erlaubt);
+			if (me.id != ME_RLinks)
+				break;
+			switch (ak)
+			{
+			case 1: // oben Klick
+				spielAuswahl->blättern(1);
+				break;
+			case 3: // unten Klick
+				spielAuswahl->blättern(0);
+				break;
+			case 4: // rehts Klick
+				if (rechts->hatStyle(Knopf::Style::Erlaubt))
+				{
+					karteAuswahl->setSpielId(spielAuswahl->zAuswahl()->getSpielId());
+					spielAuswahl->setSichtbar(0);
+					karteAuswahl->setSichtbar(1);
+					jetzt = 2;
+				}
+				break;
+			}
+		}
+		break;
+	case 2: // Karten Auswahl
+		if (karteAuswahl)
+		{
+			karteAuswahl->doPublicMausEreignis(me);
+			rechts->removeStyle(Knopf::Style::Erlaubt);
+			if (!karteAuswahl->getSeite())
+				oben->removeStyle(Knopf::Style::Erlaubt);
+			else
+				oben->addStyle(Knopf::Style::Erlaubt);
+			if (karteAuswahl->getSeite() < karteAuswahl->getSeiteAnzahl() - 1)
+				unten->addStyle(Knopf::Style::Erlaubt);
+			else
+				unten->removeStyle(Knopf::Style::Erlaubt);
+			links->addStyle(Knopf::Style::Erlaubt);
+			if (me.id != ME_RLinks)
+				break;
+			switch (ak)
+			{
+			case 1: // oben Klick
+				karteAuswahl->blättern(1);
+				break;
+			case 2: // links Klick
+				karteAuswahl->setSichtbar(0);
+				spielAuswahl->setSichtbar(1);
+				jetzt = 1;
+				break;
+			case 3: // unten Klick
+				karteAuswahl->blättern(0);
+				break;
+			}
+		}
+		break;
+	case 3: // Anmeldung
+		anmeldung->doPublicMausEreignis(me);
+		break;
+	case 4: // Gruppe
+		gruppe->doPublicMausEreignis(me);
+		break;
+	case 5: // TeamAuswahl
+		teamAuswahl->doPublicMausEreignis(me);
+		break;
+	case 6:
+		statistik->doPublicMausEreignis(me);
+		break;
+	}
+	me.mx = mx;
+	me.my = my;
+}
+
+void Spiele::doTastaturEreignis(TastaturEreignis& te)
+{
+	if (!sichtbar)
+		return;
+	switch (jetzt)
+	{
+	case 1:
+
+		break;
+	case 2:
+
+		break;
+	case 3:
+
+		break;
+	case 4:
+		gruppe->doTastaturEreignis(te);
+		break;
+	case 5:
+		teamAuswahl->doTastaturEreignis(te);
+		break;
+	case 6:
+		statistik->doTastaturEreignis(te);
+	}
+}
+
+void Spiele::render(Bild& zRObj)
+{
+	if (pos == pos1)
+		return;
+	int x = pos.x;
+	int y = pos.y;
+	int br = gr.x;
+	int hö = gr.y;
+	if (!zRObj.setDrawOptions(x, y, br, hö))
+		return;
+	rahmen->setSize(br, hö);
+	rahmen->render(zRObj);
+	int rbr = rahmen->getRBreite();
+	zRObj.setAlpha((unsigned char)alpha);
+	if (jetzt == 1 || jetzt == 2)
+	{
+		oben->render(zRObj);
+		links->render(zRObj);
+		unten->render(zRObj);
+		rechts->render(zRObj);
+	}
+	if (!zRObj.setDrawOptions(rbr, rbr, br - rbr * 2, hö - rbr * 2))
+	{
+		zRObj.releaseDrawOptions();
+		zRObj.releaseAlpha();
+		return;
+	}
+	if (jetzt != 4 && jetzt != 5)
+	{
+		spielAuswahl->render(zRObj);
+		karteAuswahl->render(zRObj);
+		anmeldung->render(zRObj);
+	}
+	if (jetzt != 5)
+		gruppe->render(zRObj);
+	teamAuswahl->render(zRObj);
+	statistik->render(zRObj);
+	zRObj.releaseDrawOptions();
+	zRObj.releaseAlpha();
+	if (ladenAlpha && ladeAnimation->zAnimationData())
+	{
+		zRObj.setAlpha(ladenAlpha);
+		zRObj.drawBild(br / 2 - 25, hö / 2 - 25, 50, 50, *ladeAnimation->zAnimationData()->zBild(ladenJetzt));
+		zRObj.releaseAlpha();
+	}
+	zRObj.releaseDrawOptions();
 }
 
 // constant
 bool Spiele::istAnimiert() const
 {
-    return animation != 0;
+	return animation != 0;
 }
 
 bool Spiele::istSichtbar() const
 {
-    return sichtbar || prozent1 != 0;
+	return sichtbar || prozent1 != 0;
 }
 
 int Spiele::getKarteId() const
 {
-    if( jetzt == 3 )
-        return anmeldung->getKarteId();
-    if( jetzt == 4 )
-        return gruppe->getKarteId();
-    if( jetzt == 5 )
-        return teamAuswahl->getKarteId();
-    return 0;
+	if (jetzt == 3)
+		return anmeldung->getKarteId();
+	if (jetzt == 4)
+		return gruppe->getKarteId();
+	if (jetzt == 5)
+		return teamAuswahl->getKarteId();
+	return 0;
 }
 
 int Spiele::getGruppeId() const
 {
-    return gruppe->getGruppeId();
+	return gruppe->getGruppeId();
 }
 
-SpielerTeamStruktur *Spiele::getSTS() const
+SpielerTeamStruktur* Spiele::getSTS() const
 {
-    if( jetzt == 5 )
-        return teamAuswahl->getSTS();
-    return 0;
+	if (jetzt == 5)
+		return teamAuswahl->getSTS();
+	return 0;
 }

+ 84 - 84
KSGClient/NachLogin/Spiele/Spiele.h

@@ -16,97 +16,97 @@ using namespace Framework;
 
 namespace SpieleAnimation
 {
-    const int einfahren = 1;
-    const int ausblenden = 2;
+	const int einfahren = 1;
+	const int ausblenden = 2;
 }
 
 class Spiele : public Zeichnung
 {
 private:
-    int animation;
-    Punkt begPos;
-    Punkt begGröße;
-    Punkt pos1;
-    Punkt größe1;
-    Punkt pos2;
-    Punkt größe2;
-    Punkt pos3;
-    Punkt größe3;
-    Punkt pos4;
-    Punkt größe4;
-    Punkt bildschirmGröße;
-    LRahmen *rahmen;
-    SpielAuswahlFenster *spielAuswahl;
-    KarteAuswahlFenster *karteAuswahl;
-    AngemeldetFenster *anmeldung;
-    GruppeFenster *gruppe;
-    TeamAuswahl *teamAuswahl;
-    SpielStatistik *statistik;
-    Knopf *oben;
-    Knopf *links;
-    Knopf *unten;
-    Knopf *rechts;
-    int alpha;
-    int ladenJetzt;
-    int ladenAlpha;
-    bool sichtbar;
-    int jetzt;
-    int prozent1;
-    int prozent2;
-    int prozent3;
-    int prozent4;
-    int prozent5;
-    int prozent6;
-    double tickVal;
-    double tickVal2;
-    bool spielGefundenB;
+	int animation;
+	Punkt begPos;
+	Punkt begGröße;
+	Punkt pos1;
+	Punkt größe1;
+	Punkt pos2;
+	Punkt größe2;
+	Punkt pos3;
+	Punkt größe3;
+	Punkt pos4;
+	Punkt größe4;
+	Punkt bildschirmGröße;
+	LRahmen* rahmen;
+	SpielAuswahlFenster* spielAuswahl;
+	KarteAuswahlFenster* karteAuswahl;
+	AngemeldetFenster* anmeldung;
+	GruppeFenster* gruppe;
+	TeamAuswahl* teamAuswahl;
+	SpielStatistik* statistik;
+	Knopf* oben;
+	Knopf* links;
+	Knopf* unten;
+	Knopf* rechts;
+	int alpha;
+	int ladenJetzt;
+	int ladenAlpha;
+	bool sichtbar;
+	int jetzt;
+	int prozent1;
+	int prozent2;
+	int prozent3;
+	int prozent4;
+	int prozent5;
+	int prozent6;
+	double tickVal;
+	double tickVal2;
+	bool spielGefundenB;
 
 public:
-    // Konstruktor
-    Spiele( Fenster *zNachLoginFenster, int x );
-    // Destruktor
-    ~Spiele();
-    // nicht constant
-    void setSichtbar( bool sicht );
-    void updateErlaubt();
-    void anmelden( int karteId );
-    void anmeldungAbbrechen();
-    void gruppeBetreten( int gruppeId );
-    void gruppeVerlassen();
-    void spielerBetrittGruppe( int gruppeId, int accountId );
-    void spielerVerlässtGruppe( int gruppeId, int accountId );
-    void gruppeNachricht( int gruppeId, char *nachricht );
-    void gruppeAnmelden( int gruppeId );
-    void gruppeAbmelden( int gruppeId );
-    void setGruppeSpielStarten( int gruppeId, bool spielStarten );
-    void setGruppeAdmin( int gruppeId, int admin );
-    void kickAusGruppe( int gruppeId );
-    void gruppeEinladungNeu( int gruppeId, int accountId );
-    void gruppeEinadungAbgelehnt( int gruppeId, int accountId );
-    void gruppeEinladungAbgebrochen( int gruppeId, int accountId );
-    void spielGefunden( int karteId );
-    void spielGefundenZeitVerbleibend( int sekunden );
-    void spielGefundenAbbruch();
-    void zurückInWarteschlange( int stunden, int minuten, int sekunden );
-    void teamAuswahlBetreten();
-    void teamAuswahlInit( SpielerTeamStruktur *sts );
-    void teamAuswahlAddSpieler( int accountId );
-    void teamAuswahlRemoveSpieler( int accountId );
-    void teamAuswahlSpielerWehseltTeam( int accountId, int spielerNummer );
-    void teamAuswahlChatNachricht( char *nachricht );
-    void teamAuswahlAbbrechen();
-    void statistikNachricht( int län, char *bytes );
-    void ladeSpielStatistik( int karteId );
-    bool tick( double tickVal ) override;
-    void doPublicMausEreignis( MausEreignis &me ) override;
-    void doTastaturEreignis( TastaturEreignis &te ) override;
-    void render( Bild &zRObj ) override;
-    // constant
-    bool istAnimiert() const;
-    bool istSichtbar() const;
-    int getKarteId() const;
-    int getGruppeId() const;
-    SpielerTeamStruktur *getSTS() const;
+	// Konstruktor
+	Spiele(Fenster* zNachLoginFenster, int x);
+	// Destruktor
+	~Spiele();
+	// nicht constant
+	void setSichtbar(bool sicht);
+	void updateErlaubt();
+	void anmelden(int karteId);
+	void anmeldungAbbrechen();
+	void gruppeBetreten(int gruppeId);
+	void gruppeVerlassen();
+	void spielerBetrittGruppe(int gruppeId, int accountId);
+	void spielerVerlässtGruppe(int gruppeId, int accountId);
+	void gruppeNachricht(int gruppeId, const char* nachricht);
+	void gruppeAnmelden(int gruppeId);
+	void gruppeAbmelden(int gruppeId);
+	void setGruppeSpielStarten(int gruppeId, bool spielStarten);
+	void setGruppeAdmin(int gruppeId, int admin);
+	void kickAusGruppe(int gruppeId);
+	void gruppeEinladungNeu(int gruppeId, int accountId);
+	void gruppeEinadungAbgelehnt(int gruppeId, int accountId);
+	void gruppeEinladungAbgebrochen(int gruppeId, int accountId);
+	void spielGefunden(int karteId);
+	void spielGefundenZeitVerbleibend(int sekunden);
+	void spielGefundenAbbruch();
+	void zurückInWarteschlange(int stunden, int minuten, int sekunden);
+	void teamAuswahlBetreten();
+	void teamAuswahlInit(SpielerTeamStruktur* sts);
+	void teamAuswahlAddSpieler(int accountId);
+	void teamAuswahlRemoveSpieler(int accountId);
+	void teamAuswahlSpielerWehseltTeam(int accountId, int spielerNummer);
+	void teamAuswahlChatNachricht(const char* nachricht);
+	void teamAuswahlAbbrechen();
+	void statistikNachricht(int län, const char* bytes);
+	void ladeSpielStatistik(int karteId);
+	bool tick(double tickVal) override;
+	void doPublicMausEreignis(MausEreignis& me) override;
+	void doTastaturEreignis(TastaturEreignis& te) override;
+	void render(Bild& zRObj) override;
+	// constant
+	bool istAnimiert() const;
+	bool istSichtbar() const;
+	int getKarteId() const;
+	int getGruppeId() const;
+	SpielerTeamStruktur* getSTS() const;
 };
 
 #endif

+ 178 - 178
KSGClient/NachLogin/Spiele/Statistik/SpielStatistik.cpp

@@ -2,250 +2,250 @@
 #include <Punkt.h>
 #include "../../../Global/Variablen.h"
 
-typedef SpielStatistikV *( *GetStatistikKlasse )( void );
+typedef SpielStatistikV* (*GetStatistikKlasse)(void);
 
 // Inhalt der SpielStatistik Klasse aus SpielStatistik.h
 // Konstruktor
 SpielStatistik::SpielStatistik()
-    : ReferenceCounter(),
-    pos( 10, 10 ),
-    gr( 780, 480 )
-{
-    stat = 0;
-    spielDll = 0;
-    la = (Animation2D *)ladeAnimation->dublizieren();
-    la->setPosition( 365, 215 );
-    la->setSichtbar( 0 );
-    tickVal = 0;
-    sichtbar = 0;
-    alpha = 0;
-    spielArt = 0;
-    rend = 0;
+	: ReferenceCounter(),
+	pos(10, 10),
+	gr(780, 480)
+{
+	stat = 0;
+	spielDll = 0;
+	la = (Animation2D*)ladeAnimation->dublizieren();
+	la->setPosition(365, 215);
+	la->setSichtbar(0);
+	tickVal = 0;
+	sichtbar = 0;
+	alpha = 0;
+	spielArt = 0;
+	rend = 0;
 }
 
 // Destruktor
 SpielStatistik::~SpielStatistik()
 {
-    if( stat )
-        stat->release();
-    if( spielDll )
-        FreeLibrary( spielDll );
-    la->release();
+	if (stat)
+		stat->release();
+	if (spielDll)
+		FreeLibrary(spielDll);
+	la->release();
 }
 
 // nicht constant
-void SpielStatistik::setSpielArt( int spielArt )
-{
-    if( this->spielArt )
-        return;
-    this->spielArt = spielArt;
-    la->setSichtbar( 1 );
-    Text *name = infoClient->getSpielName( spielArt );
-    if( !name )
-    {
-        this->spielArt = 0;
-        la->setSichtbar( 0 );
-        nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( "Die Spiel Statistik konnte nicht geladen werden." ), new Text( "Ok" ) );
-        return;
-    }
-    Text *pfad = new Text( "data/spiele/" );
-    pfad->append( name->getText() );
-    pfad->append( "/bin/" );
-    pfad->append( name );
-    pfad->append( ".dll" );
-    spielDll = LoadLibrary( pfad->getText() );
-    pfad->release();
-    if( !spielDll )
-    {
-        this->spielArt = 0;
-        la->setSichtbar( 0 );
-        nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( "Die Spiel Statistik konnte nicht geladen werden." ), new Text( "Ok" ) );
-        return;
-    }
-    GetStatistikKlasse gsk = (GetStatistikKlasse)GetProcAddress( spielDll, "GetStatistikKlasse" );
-    if( !gsk )
-    {
-        FreeLibrary( spielDll );
-        this->spielArt = 0;
-        la->setSichtbar( 0 );
-        nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( "Die Spiel Statistik konnte nicht geladen werden." ), new Text( "Ok" ) );
-        return;
-    }
-    stat = gsk();
-    if( !stat )
-    {
-        FreeLibrary( spielDll );
-        this->spielArt = 0;
-        la->setSichtbar( 0 );
-        nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( "Die Spiel Statistik konnte nicht geladen werden." ), new Text( "Ok" ) );
-        return;
-    }
-    stat->setAccountId( loginClient->getAccountId() );
-    stat->setBilder( bilder );
-    stat->setRückrufFunktionen( spielStatistikAddNachrichtF, spielStatistikAddChatF, spielStatistikAddFreundF, spielStatistikAccountAnsehenF, spielStatistikIstFreundF, this );
-    stat->setUIFactory( uiFactory );
-    stat->setKlients( dynamic_cast<KSGClient::InformationServerClient *>( infoClient->getThis() ), dynamic_cast<KSGClient::SpielServerClient *>( spielClient->getThis() ) );
-    stat->bereit();
-}
-
-void SpielStatistik::nachricht( int län, char *bytes )
-{
-    if( stat )
-        stat->nachricht( län, bytes );
+void SpielStatistik::setSpielArt(int spielArt)
+{
+	if (this->spielArt)
+		return;
+	this->spielArt = spielArt;
+	la->setSichtbar(1);
+	Text* name = infoClient->getSpielName(spielArt);
+	if (!name)
+	{
+		this->spielArt = 0;
+		la->setSichtbar(0);
+		nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text("Die Spiel Statistik konnte nicht geladen werden."), new Text("Ok"));
+		return;
+	}
+	Text* pfad = new Text("data/spiele/");
+	pfad->append(name->getText());
+	pfad->append("/bin/");
+	pfad->append(name);
+	pfad->append(".dll");
+	spielDll = LoadLibrary(pfad->getText());
+	pfad->release();
+	if (!spielDll)
+	{
+		this->spielArt = 0;
+		la->setSichtbar(0);
+		nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text("Die Spiel Statistik konnte nicht geladen werden."), new Text("Ok"));
+		return;
+	}
+	GetStatistikKlasse gsk = (GetStatistikKlasse)GetProcAddress(spielDll, "GetStatistikKlasse");
+	if (!gsk)
+	{
+		FreeLibrary(spielDll);
+		this->spielArt = 0;
+		la->setSichtbar(0);
+		nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text("Die Spiel Statistik konnte nicht geladen werden."), new Text("Ok"));
+		return;
+	}
+	stat = gsk();
+	if (!stat)
+	{
+		FreeLibrary(spielDll);
+		this->spielArt = 0;
+		la->setSichtbar(0);
+		nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text("Die Spiel Statistik konnte nicht geladen werden."), new Text("Ok"));
+		return;
+	}
+	stat->setAccountId(loginClient->getAccountId());
+	stat->setBilder(bilder);
+	stat->setRückrufFunktionen(spielStatistikAddNachrichtF, spielStatistikAddChatF, spielStatistikAddFreundF, spielStatistikAccountAnsehenF, spielStatistikIstFreundF, this);
+	stat->setUIFactory(uiFactory);
+	stat->setKlients(dynamic_cast<KSGClient::InformationServerClient*>(infoClient->getThis()), dynamic_cast<KSGClient::SpielServerClient*>(spielClient->getThis()));
+	stat->bereit();
+}
+
+void SpielStatistik::nachricht(int län, const char* bytes)
+{
+	if (stat)
+		stat->nachricht(län, bytes);
 }
 
 void SpielStatistik::reset()
 {
-    spielArt = 0;
-    la->setSichtbar( 0 );
-    sichtbar = 0;
-    alpha = 0;
-    stat = (SpielStatistikV *)stat->release();
-    FreeLibrary( spielDll );
-    spielDll = 0;
+	spielArt = 0;
+	la->setSichtbar(0);
+	sichtbar = 0;
+	alpha = 0;
+	stat = (SpielStatistikV*)stat->release();
+	FreeLibrary(spielDll);
+	spielDll = 0;
 }
 
-void SpielStatistik::doPublicMausEreignis( MausEreignis &me )
+void SpielStatistik::doPublicMausEreignis(MausEreignis& me)
 {
-    me.mx -= pos.x;
-    me.my -= pos.y;
-    if( stat )
-        stat->doPublicMausEreignis( me );
-    me.mx += pos.x;
-    me.my += pos.y;
+	me.mx -= pos.x;
+	me.my -= pos.y;
+	if (stat)
+		stat->doPublicMausEreignis(me);
+	me.mx += pos.x;
+	me.my += pos.y;
 }
 
-void SpielStatistik::doTastaturEreignis( TastaturEreignis &te )
+void SpielStatistik::doTastaturEreignis(TastaturEreignis& te)
 {
-    if( stat )
-        stat->doTastaturEreignis( te );
+	if (stat)
+		stat->doTastaturEreignis(te);
 }
 
-bool SpielStatistik::tick( double zeit )
+bool SpielStatistik::tick(double zeit)
 {
-    if( stat && stat->getStatus() == 1 )
-    {
-        sichtbar = 1;
-        la->setSichtbar( 0 );
-    }
-    else
-        sichtbar = 0;
-    tickVal += zeit * 250;
-    int val = (int)tickVal;
-    if( val > 10 )
-        val = 10;
-    tickVal -= val;
-    if( val )
-    {
-        if( sichtbar && alpha != 255 )
-        {
-            if( alpha + val > 255 )
-                alpha = 255;
-            else
-                alpha += val;
-            rend = 1;
-        }
-        if( !sichtbar && alpha != 0 )
-        {
-            if( alpha - val < 0 )
-                alpha = 0;
-            else
-                alpha -= val;
-            rend = 1;
-        }
-    }
-    if( stat && sichtbar )
-        rend |= stat->tick( zeit );
-    rend |= la->tick( zeit );
-    bool ret = rend;
-    rend = 0;
-    return ret;
+	if (stat && stat->getStatus() == 1)
+	{
+		sichtbar = 1;
+		la->setSichtbar(0);
+	}
+	else
+		sichtbar = 0;
+	tickVal += zeit * 250;
+	int val = (int)tickVal;
+	if (val > 10)
+		val = 10;
+	tickVal -= val;
+	if (val)
+	{
+		if (sichtbar && alpha != 255)
+		{
+			if (alpha + val > 255)
+				alpha = 255;
+			else
+				alpha += val;
+			rend = 1;
+		}
+		if (!sichtbar && alpha != 0)
+		{
+			if (alpha - val < 0)
+				alpha = 0;
+			else
+				alpha -= val;
+			rend = 1;
+		}
+	}
+	if (stat && sichtbar)
+		rend |= stat->tick(zeit);
+	rend |= la->tick(zeit);
+	bool ret = rend;
+	rend = 0;
+	return ret;
 }
 
-void SpielStatistik::render( Bild &zRObj )
+void SpielStatistik::render(Bild& zRObj)
 {
-    if( !zRObj.setDrawOptions( pos, gr ) )
-        return;
-    la->render( zRObj );
-    zRObj.setAlpha( alpha );
-    if( stat )
-        stat->render( zRObj );
-    zRObj.releaseAlpha();
-    zRObj.releaseDrawOptions();
+	if (!zRObj.setDrawOptions(pos, gr))
+		return;
+	la->render(zRObj);
+	zRObj.setAlpha(alpha);
+	if (stat)
+		stat->render(zRObj);
+	zRObj.releaseAlpha();
+	zRObj.releaseDrawOptions();
 }
 
-void SpielStatistik::addNachrichtF( Text *t, Text *n, Text *rp, Text *rn )
+void SpielStatistik::addNachrichtF(Text* t, Text* n, Text* rp, Text* rn)
 {
-    nachLogin->zNachrichtenListe()->addNachricht( t, n, rp, rn );
+	nachLogin->zNachrichtenListe()->addNachricht(t, n, rp, rn);
 }
 
-void SpielStatistik::addChatF( int acc )
+void SpielStatistik::addChatF(int acc)
 {
-    nachLogin->zChatLeiste()->addChat( acc, 0 );
+	nachLogin->zChatLeiste()->addChat(acc, 0);
 }
 
-void SpielStatistik::addFreundF( int acc )
+void SpielStatistik::addFreundF(int acc)
 {
-    if( !chatClient->freundesAnfrage( acc ) )
-        nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( "Die Freundesanfrage konnte nicht gesendet werden." ), new Text( "Ok" ) );
-    else
-        nachLogin->zNachrichtenListe()->addNachricht( new Text( "Freundesanfrage" ), new Text( "Es wurde eine Freundesanfrage an den Spieler gesendet." ), new Text( "Ok" ) );
+	if (!chatClient->freundesAnfrage(acc))
+		nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text("Die Freundesanfrage konnte nicht gesendet werden."), new Text("Ok"));
+	else
+		nachLogin->zNachrichtenListe()->addNachricht(new Text("Freundesanfrage"), new Text("Es wurde eine Freundesanfrage an den Spieler gesendet."), new Text("Ok"));
 }
 
-void SpielStatistik::accountAnsehenF( int acc )
+void SpielStatistik::accountAnsehenF(int acc)
 {
-    if( nachLogin->zAccountAnsehenFenster()->setSpielerDetails( acc, 2 ) )
-    {
-        MausEreignis me = { ME_RLinks, 0, 0, 0, 1 };
-        nachLogin->zTitelLeiste()->druckAccountAnsehen( me );
-    }
+	if (nachLogin->zAccountAnsehenFenster()->setSpielerDetails(acc, 2))
+	{
+		MausEreignis me = { ME_RLinks, 0, 0, 0, 1 };
+		nachLogin->zTitelLeiste()->druckAccountAnsehen(me);
+	}
 }
 
-bool SpielStatistik::istFreundF( int acc )
+bool SpielStatistik::istFreundF(int acc)
 {
-    return nachLogin->zFreundesListe()->istFreund( acc );
+	return nachLogin->zFreundesListe()->istFreund(acc);
 }
 
 void SpielStatistik::verlassen()
 {
-    if( stat )
-        stat->verlassen();
+	if (stat)
+		stat->verlassen();
 }
 
 // constant
 bool SpielStatistik::istSichtbar()
 {
-    return sichtbar || alpha || la->istSichtbar();
+	return sichtbar || alpha || la->istSichtbar();
 }
 
 // Rückruf Funktionen
-void spielStatistikAddNachrichtF( void *p, Text *t, Text *n, Text *rp, Text *rn )
+void spielStatistikAddNachrichtF(void* p, Text* t, Text* n, Text* rp, Text* rn)
 {
-    if( p )
-        ( (SpielStatistik *)p )->addNachrichtF( t, n, rp, rn );
+	if (p)
+		((SpielStatistik*)p)->addNachrichtF(t, n, rp, rn);
 }
 
-void spielStatistikAddChatF( void *p, int acc )
+void spielStatistikAddChatF(void* p, int acc)
 {
-    if( p )
-        ( (SpielStatistik *)p )->addChatF( acc );
+	if (p)
+		((SpielStatistik*)p)->addChatF(acc);
 }
 
-void spielStatistikAddFreundF( void *p, int acc )
+void spielStatistikAddFreundF(void* p, int acc)
 {
-    if( p )
-        ( (SpielStatistik *)p )->addFreundF( acc );
+	if (p)
+		((SpielStatistik*)p)->addFreundF(acc);
 }
 
-void spielStatistikAccountAnsehenF( void *p, int acc )
+void spielStatistikAccountAnsehenF(void* p, int acc)
 {
-    if( p )
-        ( (SpielStatistik *)p )->accountAnsehenF( acc );
+	if (p)
+		((SpielStatistik*)p)->accountAnsehenF(acc);
 }
 
-bool spielStatistikIstFreundF( void *p, int acc )
+bool spielStatistikIstFreundF(void* p, int acc)
 {
-    if( p )
-        return ( (SpielStatistik *)p )->istFreundF( acc );
-    return 0;
+	if (p)
+		return ((SpielStatistik*)p)->istFreundF(acc);
+	return 0;
 }

+ 35 - 35
KSGClient/NachLogin/Spiele/Statistik/SpielStatistik.h

@@ -7,45 +7,45 @@
 class SpielStatistik : public virtual ReferenceCounter
 {
 private:
-    SpielStatistikV *stat;
-    Punkt pos;
-    Punkt gr;
-    HINSTANCE spielDll;
-    Animation2D *la;
-    double tickVal;
-    bool sichtbar;
-    unsigned char alpha;
-    int spielArt;
-    bool rend;
+	SpielStatistikV* stat;
+	Punkt pos;
+	Punkt gr;
+	HINSTANCE spielDll;
+	Animation2D* la;
+	double tickVal;
+	bool sichtbar;
+	unsigned char alpha;
+	int spielArt;
+	bool rend;
 
 public:
-    // Konstruktor
-    SpielStatistik();
-    // Destruktor
-    ~SpielStatistik();
-    // nicht constant
-    void setSpielArt( int spielArt );
-    void nachricht( int län, char *bytes );
-    void reset();
-    void doPublicMausEreignis( MausEreignis &me );
-    void doTastaturEreignis( TastaturEreignis &te );
-    bool tick( double zeit );
-    void render( Bild &zRObj );
-    void addNachrichtF( Text *t, Text *n, Text *rp, Text *rn );
-    void addChatF( int acc );
-    void addFreundF( int acc );
-    void accountAnsehenF( int acc );
-    bool istFreundF( int acc );
-    void verlassen();
-    // constant
-    bool istSichtbar();
+	// Konstruktor
+	SpielStatistik();
+	// Destruktor
+	~SpielStatistik();
+	// nicht constant
+	void setSpielArt(int spielArt);
+	void nachricht(int län, const char* bytes);
+	void reset();
+	void doPublicMausEreignis(MausEreignis& me);
+	void doTastaturEreignis(TastaturEreignis& te);
+	bool tick(double zeit);
+	void render(Bild& zRObj);
+	void addNachrichtF(Text* t, Text* n, Text* rp, Text* rn);
+	void addChatF(int acc);
+	void addFreundF(int acc);
+	void accountAnsehenF(int acc);
+	bool istFreundF(int acc);
+	void verlassen();
+	// constant
+	bool istSichtbar();
 };
 
 // Rückruf Funktionen
-void spielStatistikAddNachrichtF( void *p, Text *t, Text *n, Text *rp, Text *rn );
-void spielStatistikAddChatF( void *p, int acc );
-void spielStatistikAddFreundF( void *p, int acc );
-void spielStatistikAccountAnsehenF( void *p, int acc );
-bool spielStatistikIstFreundF( void *p, int acc );
+void spielStatistikAddNachrichtF(void* p, Text* t, Text* n, Text* rp, Text* rn);
+void spielStatistikAddChatF(void* p, int acc);
+void spielStatistikAddFreundF(void* p, int acc);
+void spielStatistikAccountAnsehenF(void* p, int acc);
+bool spielStatistikIstFreundF(void* p, int acc);
 
 #endif

+ 865 - 865
KSGClient/NachLogin/Spiele/Team Auswahl/TeamAuswahl.cpp

@@ -8,1014 +8,1014 @@
 
 // Inhalt der TeamAuswahlListeSpieler Klasse aus TeamAuswahl.h
 // Konstruktor
-TeamAuswahlListeSpieler::TeamAuswahlListeSpieler( SpielerTeamStruktur *sts, int accountId, int karteId )
-    : ReferenceCounter()
-{
-    this->accountId = accountId;
-    Text *n = infoClient->getSpielerName( accountId );
-    name = initTextFeld( 1, 1, 99, 20, TextFeld::Style::Text | TextFeld::Style::Center, n->getText() );
-    n->release();
-    if( accountId == loginClient->getAccountId() )
-    {
-        teamAuswahl = uiFactory.createAuswahlBox( uiFactory.initParam );
-        teamAuswahl->setStyle( AuswahlBox::Style::Sichtbar | AuswahlBox::Style::Erlaubt | AuswahlBox::Style::Rahmen | AuswahlBox::Style::MultiStyled | AuswahlBox::Style::MaxHeight | AuswahlBox::Style::VScroll | AuswahlBox::Style::Hintergrund );
-        teamAuswahl->setPosition( 100, 1 );
-        teamAuswahl->setSize( 150, 20 );
-        teamAuswahl->setEventParam( this );
-        teamAuswahl->setEventAktion( TeamAuswahlListeSpielerTeamAuswahlE );
-    }
-    else
-        team = initTextFeld( 100, 1, 150, 20, TextFeld::Style::Text | TextFeld::Style::Center, "" );
-    Array< int > *statistik = new Array< int >();
-    infoClient->getSpielStatistik( accountId, infoClient->getSpielId( karteId ), statistik );
-    punkte = initTextFeld( 250, 1, 80, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Punkte: " );
-    punkte->zText()->append( statistik->hat( 3 ) ? statistik->get( 3 ) : 0 );
-    spiele = initTextFeld( 330, 1, 80, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Spiele: " );
-    spiele->zText()->append( statistik->hat( 0 ) ? statistik->get( 0 ) : 0 );
-    gewonnen = initTextFeld( 410, 1, 90, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Gewonnen: " );
-    gewonnen->zText()->append( statistik->hat( 1 ) ? statistik->get( 1 ) : 0 );
-    statistik->release();
-    farbe = initTextFeld( 500, 1, 50, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Farbe:" );
-    spielerFarbe = 0;
-    rahmen = new LRahmen();
-    rahmen->setSize( 581, 22 );
-    rahmen->setFarbe( 0xFFFFFFFF );
-    rahmen->setRamenBreite( 1 );
-    teamName = new Text( "" );
-    this->sts = sts;
-    rend = 0;
+TeamAuswahlListeSpieler::TeamAuswahlListeSpieler(SpielerTeamStruktur* sts, int accountId, int karteId)
+	: ReferenceCounter()
+{
+	this->accountId = accountId;
+	Text* n = infoClient->getSpielerName(accountId);
+	name = initTextFeld(1, 1, 99, 20, TextFeld::Style::Text | TextFeld::Style::Center, n->getText());
+	n->release();
+	if (accountId == loginClient->getAccountId())
+	{
+		teamAuswahl = uiFactory.createAuswahlBox(uiFactory.initParam);
+		teamAuswahl->setStyle(AuswahlBox::Style::Sichtbar | AuswahlBox::Style::Erlaubt | AuswahlBox::Style::Rahmen | AuswahlBox::Style::MultiStyled | AuswahlBox::Style::MaxHeight | AuswahlBox::Style::VScroll | AuswahlBox::Style::Hintergrund);
+		teamAuswahl->setPosition(100, 1);
+		teamAuswahl->setSize(150, 20);
+		teamAuswahl->setEventParam(this);
+		teamAuswahl->setEventAktion(TeamAuswahlListeSpielerTeamAuswahlE);
+	}
+	else
+		team = initTextFeld(100, 1, 150, 20, TextFeld::Style::Text | TextFeld::Style::Center, "");
+	Array< int >* statistik = new Array< int >();
+	infoClient->getSpielStatistik(accountId, infoClient->getSpielId(karteId), statistik);
+	punkte = initTextFeld(250, 1, 80, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Punkte: ");
+	punkte->zText()->append(statistik->hat(3) ? statistik->get(3) : 0);
+	spiele = initTextFeld(330, 1, 80, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Spiele: ");
+	spiele->zText()->append(statistik->hat(0) ? statistik->get(0) : 0);
+	gewonnen = initTextFeld(410, 1, 90, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Gewonnen: ");
+	gewonnen->zText()->append(statistik->hat(1) ? statistik->get(1) : 0);
+	statistik->release();
+	farbe = initTextFeld(500, 1, 50, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Farbe:");
+	spielerFarbe = 0;
+	rahmen = new LRahmen();
+	rahmen->setSize(581, 22);
+	rahmen->setFarbe(0xFFFFFFFF);
+	rahmen->setRamenBreite(1);
+	teamName = new Text("");
+	this->sts = sts;
+	rend = 0;
 }
 
 // Destruktor
 TeamAuswahlListeSpieler::~TeamAuswahlListeSpieler()
 {
-    name->release();
-    if( accountId == loginClient->getAccountId() )
-        teamAuswahl->release();
-    else
-        team->release();
-    punkte->release();
-    spiele->release();
-    gewonnen->release();
-    farbe->release();
-    rahmen->release();
-    teamName->release();
-    sts->release();
+	name->release();
+	if (accountId == loginClient->getAccountId())
+		teamAuswahl->release();
+	else
+		team->release();
+	punkte->release();
+	spiele->release();
+	gewonnen->release();
+	farbe->release();
+	rahmen->release();
+	teamName->release();
+	sts->release();
 }
 
 // nicht constant
 void TeamAuswahlListeSpieler::disable()
 {
-    if( accountId == loginClient->getAccountId() )
-        teamAuswahl->removeStyle( AuswahlBox::Style::Erlaubt );
-}
-
-void TeamAuswahlListeSpieler::spielerTeamAuswahlE( AuswahlBox *obj, int p1, int p2 )
-{
-    Text *tmpTeamName = obj->zEintragText( p2 );
-    if( !tmpTeamName->istGleich( teamName->getText() ) )
-    {
-        if( tmpTeamName->istGleich( "Zufällig" ) )
-        {
-            if( !spielClient->spielErstelltTeamWechseln( 0 ) )
-                obj->setAuswahl( obj->getEintragPos( teamName->getText() ) );
-        }
-        else
-        {
-            int neuTeam = 0;
-            for( int i = 0; i < sts->teamAnzahl; i++ )
-            {
-                if( sts->teamName->z( i )->istGleich( tmpTeamName->getText() ) )
-                {
-                    neuTeam = i + 1;
-                    break;
-                }
-            }
-            if( !spielClient->spielErstelltTeamWechseln( neuTeam ) )
-                obj->setAuswahl( obj->getEintragPos( teamName->getText() ) );
-        }
-        obj->einklappen();
-    }
-}
-
-void TeamAuswahlListeSpieler::setFarbe( int farbe )
-{
-    this->spielerFarbe = farbe;
-    if( farbe )
-        rahmen->setFarbe( farbe );
-    else
-        rahmen->setFarbe( 0xFFFFFFFF );
-    rend = 1;
-}
-
-void TeamAuswahlListeSpieler::setTeam( Text *zName )
-{
-    teamName->setText( zName->getText() );
-    rend = 1;
-}
-
-void TeamAuswahlListeSpieler::setTeamErlaubt( Text *zName, bool erlaubt, int teamFarbe )
-{
-    if( accountId != loginClient->getAccountId() )
-        return;
-    if( erlaubt )
-    {
-        if( teamAuswahl->getEintragPos( zName->getText() ) < 0 )
-        {
-            int p = teamAuswahl->getEintragAnzahl();
-            teamAuswahl->addEintrag( zName->getText() );
-            teamAuswahl->setMsStyle( p, AuswahlBox::Style::FeldRahmen | AuswahlBox::Style::MausBuffer | AuswahlBox::Style::AuswahlBuffer | AuswahlBox::Style::FeldBuffer );
-            if( teamFarbe )
-                teamAuswahl->zEintrag( p )->setRahmenFarbe( teamFarbe );
-            teamAuswahl->setMsAuswAlphaFeldFarbe( p, 0x50000000 | ( teamFarbe & 0x00FFFFFF ) );
-            teamAuswahl->setMsAuswAlphaFeldStrength( p, -15 );
-            teamAuswahl->setMsMausAlphaFeldFarbe( p, 0x10000000 | ( teamFarbe & 0x00FFFFFF ) );
-            teamAuswahl->setMsMausAlphaFeldStrength( p, -15 );
-        }
-    }
-    else
-    {
-        if( zName->istGleich( teamName->getText() ) )
-            return;
-        if( teamAuswahl->getEintragPos( zName->getText() ) >= 0 )
-            teamAuswahl->removeEintrag( teamAuswahl->getEintragPos( zName->getText() ) );
-    }
-}
-
-bool TeamAuswahlListeSpieler::tick( double tickVal )
-{
-    if( accountId == loginClient->getAccountId() )
-        rend |= teamAuswahl->tick( tickVal );
-    else if( !team->zText()->istGleich( teamName->getText() ) )
-    {
-        team->setText( "" );
-        team->zText()->append( teamName->getText() );
-    }
-    bool ret = rend;
-    rend = 0;
-    return ret;
-}
-
-void TeamAuswahlListeSpieler::doPublicMausEreignis( MausEreignis &me )
-{
-    if( accountId == loginClient->getAccountId() )
-        teamAuswahl->doPublicMausEreignis( me );
-}
-
-void TeamAuswahlListeSpieler::render( int yOff, Bild &zRObj )
-{
-    if( !zRObj.setDrawOptions( 0, yOff, 581, 22 ) )
-        return;
-    rahmen->render( zRObj );
-    name->render( zRObj );
-    if( loginClient->getAccountId() == accountId )
-        teamAuswahl->render( zRObj );
-    else
-        team->render( zRObj );
-    punkte->render( zRObj );
-    spiele->render( zRObj );
-    gewonnen->render( zRObj );
-    farbe->render( zRObj );
-    zRObj.alphaRegion( 550, 2, 18, 18, spielerFarbe );
-    zRObj.releaseDrawOptions();
+	if (accountId == loginClient->getAccountId())
+		teamAuswahl->removeStyle(AuswahlBox::Style::Erlaubt);
+}
+
+void TeamAuswahlListeSpieler::spielerTeamAuswahlE(AuswahlBox* obj, int p1, int p2)
+{
+	Text* tmpTeamName = obj->zEintragText(p2);
+	if (!tmpTeamName->istGleich(teamName->getText()))
+	{
+		if (tmpTeamName->istGleich("Zufällig"))
+		{
+			if (!spielClient->spielErstelltTeamWechseln(0))
+				obj->setAuswahl(obj->getEintragPos(teamName->getText()));
+		}
+		else
+		{
+			int neuTeam = 0;
+			for (int i = 0; i < sts->teamAnzahl; i++)
+			{
+				if (sts->teamName->z(i)->istGleich(tmpTeamName->getText()))
+				{
+					neuTeam = i + 1;
+					break;
+				}
+			}
+			if (!spielClient->spielErstelltTeamWechseln(neuTeam))
+				obj->setAuswahl(obj->getEintragPos(teamName->getText()));
+		}
+		obj->einklappen();
+	}
+}
+
+void TeamAuswahlListeSpieler::setFarbe(int farbe)
+{
+	this->spielerFarbe = farbe;
+	if (farbe)
+		rahmen->setFarbe(farbe);
+	else
+		rahmen->setFarbe(0xFFFFFFFF);
+	rend = 1;
+}
+
+void TeamAuswahlListeSpieler::setTeam(Text* zName)
+{
+	teamName->setText(zName->getText());
+	rend = 1;
+}
+
+void TeamAuswahlListeSpieler::setTeamErlaubt(Text* zName, bool erlaubt, int teamFarbe)
+{
+	if (accountId != loginClient->getAccountId())
+		return;
+	if (erlaubt)
+	{
+		if (teamAuswahl->getEintragPos(zName->getText()) < 0)
+		{
+			int p = teamAuswahl->getEintragAnzahl();
+			teamAuswahl->addEintrag(zName->getText());
+			teamAuswahl->setMsStyle(p, AuswahlBox::Style::FeldRahmen | AuswahlBox::Style::MausBuffer | AuswahlBox::Style::AuswahlBuffer | AuswahlBox::Style::FeldBuffer);
+			if (teamFarbe)
+				teamAuswahl->zEintrag(p)->setRahmenFarbe(teamFarbe);
+			teamAuswahl->setMsAuswAlphaFeldFarbe(p, 0x50000000 | (teamFarbe & 0x00FFFFFF));
+			teamAuswahl->setMsAuswAlphaFeldStrength(p, -15);
+			teamAuswahl->setMsMausAlphaFeldFarbe(p, 0x10000000 | (teamFarbe & 0x00FFFFFF));
+			teamAuswahl->setMsMausAlphaFeldStrength(p, -15);
+		}
+	}
+	else
+	{
+		if (zName->istGleich(teamName->getText()))
+			return;
+		if (teamAuswahl->getEintragPos(zName->getText()) >= 0)
+			teamAuswahl->removeEintrag(teamAuswahl->getEintragPos(zName->getText()));
+	}
+}
+
+bool TeamAuswahlListeSpieler::tick(double tickVal)
+{
+	if (accountId == loginClient->getAccountId())
+		rend |= teamAuswahl->tick(tickVal);
+	else if (!team->zText()->istGleich(teamName->getText()))
+	{
+		team->setText("");
+		team->zText()->append(teamName->getText());
+	}
+	bool ret = rend;
+	rend = 0;
+	return ret;
+}
+
+void TeamAuswahlListeSpieler::doPublicMausEreignis(MausEreignis& me)
+{
+	if (accountId == loginClient->getAccountId())
+		teamAuswahl->doPublicMausEreignis(me);
+}
+
+void TeamAuswahlListeSpieler::render(int yOff, Bild& zRObj)
+{
+	if (!zRObj.setDrawOptions(0, yOff, 581, 22))
+		return;
+	rahmen->render(zRObj);
+	name->render(zRObj);
+	if (loginClient->getAccountId() == accountId)
+		teamAuswahl->render(zRObj);
+	else
+		team->render(zRObj);
+	punkte->render(zRObj);
+	spiele->render(zRObj);
+	gewonnen->render(zRObj);
+	farbe->render(zRObj);
+	zRObj.alphaRegion(550, 2, 18, 18, spielerFarbe);
+	zRObj.releaseDrawOptions();
 }
 
 // constant
 int TeamAuswahlListeSpieler::getAccountId() const
 {
-    return accountId;
+	return accountId;
 }
 
 // Inhalt der TeamAuswahlListeTeam Klasse aus TeamAuswahl.h
 // Konstruktor
 TeamAuswahlListeTeam::TeamAuswahlListeTeam()
-    : ReferenceCounter()
-{
-    maxSpieler = 0;
-    jetztSpieler = 0;
-    team = 0;
-    name = initTextFeld( 0, 0, 300, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Team: " );
-    mjSpieler = initTextFeld( 300, 0, 150, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Spieler: 0/0" );
-    farbe = initTextFeld( 450, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Team Farbe:" );
-    teamFarbe = 0;
-    spieler = new RCArray< TeamAuswahlListeSpieler >();
-    rahmen = new LRahmen();
-    rahmen->setSize( 583, 22 );
-    rahmen->setFarbe( 0xFFFFFFFF );
-    rahmen->setRamenBreite( 1 );
-    titelAf = new AlphaFeld();
-    titelAf->setPosition( 1, 1 );
-    titelAf->setSize( 581, 20 );
-    titelAf->setFarbe( 0x1000FF00 );
-    titelAf->setStrength( -15 );
-    teamName = new Text( "" );
-    tickVal = 0;
-    höhe = 22;
-    rend = 0;
+	: ReferenceCounter()
+{
+	maxSpieler = 0;
+	jetztSpieler = 0;
+	team = 0;
+	name = initTextFeld(0, 0, 300, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Team: ");
+	mjSpieler = initTextFeld(300, 0, 150, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Spieler: 0/0");
+	farbe = initTextFeld(450, 0, 100, 20, TextFeld::Style::Text | TextFeld::Style::Center, "Team Farbe:");
+	teamFarbe = 0;
+	spieler = new RCArray< TeamAuswahlListeSpieler >();
+	rahmen = new LRahmen();
+	rahmen->setSize(583, 22);
+	rahmen->setFarbe(0xFFFFFFFF);
+	rahmen->setRamenBreite(1);
+	titelAf = new AlphaFeld();
+	titelAf->setPosition(1, 1);
+	titelAf->setSize(581, 20);
+	titelAf->setFarbe(0x1000FF00);
+	titelAf->setStrength(-15);
+	teamName = new Text("");
+	tickVal = 0;
+	höhe = 22;
+	rend = 0;
 }
 
 // Destruktor
 TeamAuswahlListeTeam::~TeamAuswahlListeTeam()
 {
-    name->release();
-    mjSpieler->release();
-    farbe->release();
-    spieler->release();
-    rahmen->release();
-    titelAf->release();
-    teamName->release();
+	name->release();
+	mjSpieler->release();
+	farbe->release();
+	spieler->release();
+	rahmen->release();
+	titelAf->release();
+	teamName->release();
 }
 
 // nicht constant
 void TeamAuswahlListeTeam::disable()
 {
-    for( int i = 0; i < jetztSpieler; i++ )
-        spieler->z( i )->disable();
+	for (int i = 0; i < jetztSpieler; i++)
+		spieler->z(i)->disable();
 }
 
-void TeamAuswahlListeTeam::setMaxSpieler( int maxSpieler )
+void TeamAuswahlListeTeam::setMaxSpieler(int maxSpieler)
 {
-    this->maxSpieler = maxSpieler;
-    rend = 1;
+	this->maxSpieler = maxSpieler;
+	rend = 1;
 }
 
-void TeamAuswahlListeTeam::setName( Text *name )
+void TeamAuswahlListeTeam::setName(Text* name)
 {
-    teamName->setText( name->getText() );
-    name->release();
-    rend = 1;
+	teamName->setText(name->getText());
+	name->release();
+	rend = 1;
 }
 
-void TeamAuswahlListeTeam::setFarbe( int farbe )
+void TeamAuswahlListeTeam::setFarbe(int farbe)
 {
-    teamFarbe = farbe;
-    rahmen->setFarbe( teamFarbe );
-    rend = 1;
+	teamFarbe = farbe;
+	rahmen->setFarbe(teamFarbe);
+	rend = 1;
 }
 
-void TeamAuswahlListeTeam::setTeam( int team )
+void TeamAuswahlListeTeam::setTeam(int team)
 {
-    this->team = team;
-    rend = 1;
-}
-
-void TeamAuswahlListeTeam::addSpieler( TeamAuswahlListeSpieler *spieler )
-{
-    if( !jetztSpieler )
-        höhe++;
-    spieler->setTeam( teamName );
-    höhe += 22;
-    this->spieler->set( spieler, jetztSpieler );
-    jetztSpieler++;
-    rend = 1;
-}
-
-void TeamAuswahlListeTeam::removeSpieler( int accountId )
-{
-    höhe -= 22;
-    for( int i = 0; i < jetztSpieler; i++ )
-    {
-        if( spieler->z( i )->getAccountId() == accountId )
-        {
-            jetztSpieler--;
-            spieler->remove( i );
-            rend = 1;
-            break;
-        }
-    }
-    if( !jetztSpieler )
-        höhe = 22;
-}
-
-void TeamAuswahlListeTeam::setTeamErlaubt( Text *zName, bool erlaubt, int teamFarbe )
-{
-    for( int i = 0; i < jetztSpieler; i++ )
-        spieler->z( i )->setTeamErlaubt( zName, erlaubt, teamFarbe );
-}
-
-bool TeamAuswahlListeTeam::tick( double tickVal )
-{
-    this->tickVal += tickVal * 50;
-    int val = (int)this->tickVal;
-    if( val > 2 )
-        val = 2;
-    this->tickVal -= val;
-    if( val )
-    {
-        if( rahmen->getHeight() > höhe )
-        {
-            rahmen->setSize( rahmen->getBreite(), rahmen->getHeight() - val );
-            if( rahmen->getHeight() < höhe )
-                rahmen->setSize( rahmen->getBreite(), höhe );
-            rend = 1;
-        }
-        if( rahmen->getHeight() < höhe )
-        {
-            rahmen->setSize( rahmen->getBreite(), rahmen->getHeight() + val );
-            if( rahmen->getHeight() > höhe )
-                rahmen->setSize( rahmen->getBreite(), höhe );
-            rend = 1;
-        }
-    }
-    name->setText( "Team: " );
-    name->zText()->append( teamName->getText() );
-    mjSpieler->setText( "Spieler: " );
-    mjSpieler->zText()->append( jetztSpieler );
-    mjSpieler->zText()->append( "/" );
-    mjSpieler->zText()->append( maxSpieler );
-    for( int i = 0; i < jetztSpieler; i++ )
-        rend |= spieler->z( i )->tick( tickVal );
-    bool ret = rend;
-    rend = 0;
-    return ret;
-}
-
-void TeamAuswahlListeTeam::doPublicMausEreignis( MausEreignis &me )
-{
-    int tmpX = me.mx;
-    int tmpY = me.my;
-    me.mx--;
-    me.my -= 22;
-    for( int i = 0; i < jetztSpieler; i++ )
-    {
-        spieler->z( i )->doPublicMausEreignis( me );
-        me.my -= 22;
-    }
-    me.mx = tmpX;
-    me.my = tmpY;
-}
-
-void TeamAuswahlListeTeam::render( int yOff, Bild &zRObj )
-{
-    if( !zRObj.setDrawOptions( 50, yOff, 583, rahmen->getHeight() + 1 ) )
-        return;
-    rahmen->render( zRObj );
-    titelAf->setPosition( 1, 1 );
-    titelAf->render( zRObj );
-    name->render( zRObj );
-    mjSpieler->render( zRObj );
-    farbe->render( zRObj );
-    zRObj.alphaRegion( 550, 2, 18, 18, teamFarbe );
-    zRObj.drawLinieH( 1, 21, 581, rahmen->getFarbe() );
-    if( !zRObj.setDrawOptions( 1, 22, 582, rahmen->getHeight() ) )
-    {
-        zRObj.releaseDrawOptions();
-        return;
-    }
-    int y = 22 * ( jetztSpieler - 1 );
-    for( int i = jetztSpieler - 1; i >= 0; i-- )
-    {
-        spieler->z( i )->render( y, zRObj );
-        y -= 22;
-    }
-    zRObj.releaseDrawOptions();
-    zRObj.releaseDrawOptions();
+	this->team = team;
+	rend = 1;
+}
+
+void TeamAuswahlListeTeam::addSpieler(TeamAuswahlListeSpieler* spieler)
+{
+	if (!jetztSpieler)
+		höhe++;
+	spieler->setTeam(teamName);
+	höhe += 22;
+	this->spieler->set(spieler, jetztSpieler);
+	jetztSpieler++;
+	rend = 1;
+}
+
+void TeamAuswahlListeTeam::removeSpieler(int accountId)
+{
+	höhe -= 22;
+	for (int i = 0; i < jetztSpieler; i++)
+	{
+		if (spieler->z(i)->getAccountId() == accountId)
+		{
+			jetztSpieler--;
+			spieler->remove(i);
+			rend = 1;
+			break;
+		}
+	}
+	if (!jetztSpieler)
+		höhe = 22;
+}
+
+void TeamAuswahlListeTeam::setTeamErlaubt(Text* zName, bool erlaubt, int teamFarbe)
+{
+	for (int i = 0; i < jetztSpieler; i++)
+		spieler->z(i)->setTeamErlaubt(zName, erlaubt, teamFarbe);
+}
+
+bool TeamAuswahlListeTeam::tick(double tickVal)
+{
+	this->tickVal += tickVal * 50;
+	int val = (int)this->tickVal;
+	if (val > 2)
+		val = 2;
+	this->tickVal -= val;
+	if (val)
+	{
+		if (rahmen->getHeight() > höhe)
+		{
+			rahmen->setSize(rahmen->getBreite(), rahmen->getHeight() - val);
+			if (rahmen->getHeight() < höhe)
+				rahmen->setSize(rahmen->getBreite(), höhe);
+			rend = 1;
+		}
+		if (rahmen->getHeight() < höhe)
+		{
+			rahmen->setSize(rahmen->getBreite(), rahmen->getHeight() + val);
+			if (rahmen->getHeight() > höhe)
+				rahmen->setSize(rahmen->getBreite(), höhe);
+			rend = 1;
+		}
+	}
+	name->setText("Team: ");
+	name->zText()->append(teamName->getText());
+	mjSpieler->setText("Spieler: ");
+	mjSpieler->zText()->append(jetztSpieler);
+	mjSpieler->zText()->append("/");
+	mjSpieler->zText()->append(maxSpieler);
+	for (int i = 0; i < jetztSpieler; i++)
+		rend |= spieler->z(i)->tick(tickVal);
+	bool ret = rend;
+	rend = 0;
+	return ret;
+}
+
+void TeamAuswahlListeTeam::doPublicMausEreignis(MausEreignis& me)
+{
+	int tmpX = me.mx;
+	int tmpY = me.my;
+	me.mx--;
+	me.my -= 22;
+	for (int i = 0; i < jetztSpieler; i++)
+	{
+		spieler->z(i)->doPublicMausEreignis(me);
+		me.my -= 22;
+	}
+	me.mx = tmpX;
+	me.my = tmpY;
+}
+
+void TeamAuswahlListeTeam::render(int yOff, Bild& zRObj)
+{
+	if (!zRObj.setDrawOptions(50, yOff, 583, rahmen->getHeight() + 1))
+		return;
+	rahmen->render(zRObj);
+	titelAf->setPosition(1, 1);
+	titelAf->render(zRObj);
+	name->render(zRObj);
+	mjSpieler->render(zRObj);
+	farbe->render(zRObj);
+	zRObj.alphaRegion(550, 2, 18, 18, teamFarbe);
+	zRObj.drawLinieH(1, 21, 581, rahmen->getFarbe());
+	if (!zRObj.setDrawOptions(1, 22, 582, rahmen->getHeight()))
+	{
+		zRObj.releaseDrawOptions();
+		return;
+	}
+	int y = 22 * (jetztSpieler - 1);
+	for (int i = jetztSpieler - 1; i >= 0; i--)
+	{
+		spieler->z(i)->render(y, zRObj);
+		y -= 22;
+	}
+	zRObj.releaseDrawOptions();
+	zRObj.releaseDrawOptions();
 }
 
 // constant
 int TeamAuswahlListeTeam::getTeamNummer() const
 {
-    return team;
+	return team;
 }
 
 int TeamAuswahlListeTeam::getHeight() const
 {
-    return rahmen->getHeight() + 1;
+	return rahmen->getHeight() + 1;
 }
 
 bool TeamAuswahlListeTeam::istPlatzFrei() const
 {
-    return jetztSpieler < maxSpieler;
+	return jetztSpieler < maxSpieler;
 }
 
 int TeamAuswahlListeTeam::getMaxSpieler() const
 {
-    return maxSpieler;
+	return maxSpieler;
 }
 
-Text *TeamAuswahlListeTeam::zName() const
+Text* TeamAuswahlListeTeam::zName() const
 {
-    return teamName;
+	return teamName;
 }
 
-TeamAuswahlListeSpieler *TeamAuswahlListeTeam::getSpielerDaten( int accountId ) const
+TeamAuswahlListeSpieler* TeamAuswahlListeTeam::getSpielerDaten(int accountId) const
 {
-    for( int i = 0; i < jetztSpieler; i++ )
-    {
-        if( spieler->z( i )->getAccountId() == accountId )
-            return spieler->get( i );
-    }
-    return 0;
+	for (int i = 0; i < jetztSpieler; i++)
+	{
+		if (spieler->z(i)->getAccountId() == accountId)
+			return spieler->get(i);
+	}
+	return 0;
 }
 
-TeamAuswahlListeSpieler *TeamAuswahlListeTeam::zSpielerDaten( int accountId ) const
+TeamAuswahlListeSpieler* TeamAuswahlListeTeam::zSpielerDaten(int accountId) const
 {
-    for( int i = 0; i < jetztSpieler; i++ )
-    {
-        if( spieler->z( i )->getAccountId() == accountId )
-            return spieler->z( i );
-    }
-    return 0;
+	for (int i = 0; i < jetztSpieler; i++)
+	{
+		if (spieler->z(i)->getAccountId() == accountId)
+			return spieler->z(i);
+	}
+	return 0;
 }
 
 // Inhalt der TeamAuswahlListe Klasse aus TeamAuswahl.h
 // Konstruktor
-TeamAuswahlListe::TeamAuswahlListe( SpielerTeamStruktur *sts, int karteId )
-    : ReferenceCounter()
-{
-    rahmen = new LRahmen();
-    rahmen->setSize( 698, 398 );
-    rahmen->setFarbe( 0xFFFFFFFF );
-    rahmen->setRamenBreite( 1 );
-    scroll = new VScrollBar();
-    scroll->update( 0, 396 );
-    scroll->setKlickScroll( 7 );
-    teams = new RCArray< TeamAuswahlListeTeam >();
-    TeamAuswahlListeTeam *zufall = new TeamAuswahlListeTeam();
-    zufall->setTeam( 0 );
-    zufall->setName( new Text( "Zufällig" ) );
-    zufall->setMaxSpieler( sts->spielerAnzahl );
-    teams->set( zufall, 0 );
-    for( int i = 0; i < sts->teamAnzahl; i++ )
-    {
-        TeamAuswahlListeTeam *tmp = new TeamAuswahlListeTeam();
-        tmp->setTeam( i );
-        tmp->setName( sts->teamName->get( i ) );
-        tmp->setFarbe( sts->teamFarbe->hat( i ) ? sts->teamFarbe->get( i ) : 0 );
-        tmp->setMaxSpieler( sts->teamSize->hat( i ) ? sts->teamSize->get( i ) : 0 );
-        teams->set( tmp, i + 1 );
-    }
-    teamAnzahl = 1 + sts->teamAnzahl;
-    this->karteId = karteId;
-    this->sts = sts;
-    rend = 0;
+TeamAuswahlListe::TeamAuswahlListe(SpielerTeamStruktur* sts, int karteId)
+	: ReferenceCounter()
+{
+	rahmen = new LRahmen();
+	rahmen->setSize(698, 398);
+	rahmen->setFarbe(0xFFFFFFFF);
+	rahmen->setRamenBreite(1);
+	scroll = new VScrollBar();
+	scroll->update(0, 396);
+	scroll->setKlickScroll(7);
+	teams = new RCArray< TeamAuswahlListeTeam >();
+	TeamAuswahlListeTeam* zufall = new TeamAuswahlListeTeam();
+	zufall->setTeam(0);
+	zufall->setName(new Text("Zufällig"));
+	zufall->setMaxSpieler(sts->spielerAnzahl);
+	teams->set(zufall, 0);
+	for (int i = 0; i < sts->teamAnzahl; i++)
+	{
+		TeamAuswahlListeTeam* tmp = new TeamAuswahlListeTeam();
+		tmp->setTeam(i);
+		tmp->setName(sts->teamName->get(i));
+		tmp->setFarbe(sts->teamFarbe->hat(i) ? sts->teamFarbe->get(i) : 0);
+		tmp->setMaxSpieler(sts->teamSize->hat(i) ? sts->teamSize->get(i) : 0);
+		teams->set(tmp, i + 1);
+	}
+	teamAnzahl = 1 + sts->teamAnzahl;
+	this->karteId = karteId;
+	this->sts = sts;
+	rend = 0;
 }
 
 // Destruktor
 TeamAuswahlListe::~TeamAuswahlListe()
 {
-    rahmen->release();
-    scroll->release();
-    teams->release();
-    sts->release();
+	rahmen->release();
+	scroll->release();
+	teams->release();
+	sts->release();
 }
 
 // nicht constant
 void TeamAuswahlListe::disable()
 {
-    for( int i = 0; i < teamAnzahl; i++ )
-        teams->z( i )->disable();
-}
-
-void TeamAuswahlListe::setTeamVonSpieler( int accountId, int spielerNummer )
-{
-    if( spielerNummer == 0 )
-    {
-        int neuTeam = 0;
-        int altTeam = 0;
-        for( int j = 0; j < teamAnzahl; j++ )
-        {
-            if( teams->z( j )->zSpielerDaten( accountId ) )
-            {
-                altTeam = j;
-                break;
-            }
-        }
-        TeamAuswahlListeSpieler *tmp = teams->z( altTeam )->getSpielerDaten( accountId );
-        teams->z( altTeam )->removeSpieler( accountId );
-        tmp->setFarbe( 0 );
-        teams->z( neuTeam )->addSpieler( tmp );
-    }
-    else
-    {
-        int team = 0;
-        int max = 0;
-        int min = 0;
-        for( int i = 0; i < sts->teamAnzahl; i++ )
-        {
-            min = max;
-            max += sts->teamSize->get( i );
-            if( spielerNummer - 1 >= min && spielerNummer - 1 < max )
-            {
-                int neuTeam = i + 1;
-                int altTeam = 0;
-                for( int j = 0; j < teamAnzahl; j++ )
-                {
-                    if( teams->z( j )->zSpielerDaten( accountId ) )
-                    {
-                        altTeam = j;
-                        break;
-                    }
-                }
-                TeamAuswahlListeSpieler *tmp = teams->z( altTeam )->getSpielerDaten( accountId );
-                teams->z( altTeam )->removeSpieler( accountId );
-                tmp->setFarbe( sts->spielerFarbe->hat( spielerNummer - 1 ) ? sts->spielerFarbe->get( spielerNummer - 1 ) : 0 );
-                teams->z( neuTeam )->addSpieler( tmp );
-                break;
-            }
-        }
-    }
-    for( int i = 0; i < teamAnzahl; i++ )
-    {
-        for( int j = 0; j < teamAnzahl; j++ )
-        {
-            if( i == 0 )
-                teams->z( j )->setTeamErlaubt( teams->z( i )->zName(), teams->z( i )->istPlatzFrei(), 0 );
-            else
-                teams->z( j )->setTeamErlaubt( teams->z( i )->zName(), teams->z( i )->istPlatzFrei(), sts->teamFarbe->hat( i - 1 ) ? sts->teamFarbe->get( i - 1 ) : 0 );
-        }
-    }
-    rend = 1;
-}
-
-void TeamAuswahlListe::addSpieler( int accountId )
-{
-    TeamAuswahlListeSpieler *tmp = new TeamAuswahlListeSpieler( sts->getThis(), accountId, karteId );
-    for( int i = 0; i < teamAnzahl; i++ )
-    {
-        if( teams->z( i )->istPlatzFrei() )
-        {
-            if( i == 0 )
-                tmp->setTeamErlaubt( teams->z( i )->zName(), 1, 0 );
-            else
-                tmp->setTeamErlaubt( teams->z( i )->zName(), 1, sts->teamFarbe->hat( i - 1 ) ? sts->teamFarbe->get( i - 1 ) : 0 );
-        }
-    }
-    teams->z( 0 )->addSpieler( tmp );
-    for( int i = 0; i < teamAnzahl; i++ )
-        teams->z( i )->setTeamErlaubt( teams->z( 0 )->zName(), teams->z( 0 )->istPlatzFrei(), 0 );
-    rend = 1;
-}
-
-void TeamAuswahlListe::removeSpieler( int accountId )
-{
-    for( int i = 0; i < teamAnzahl; i++ )
-    {
-        if( teams->z( i )->zSpielerDaten( accountId ) )
-            teams->z( i )->removeSpieler( accountId );
-    }
-    for( int i = 0; i < teamAnzahl; i++ )
-    {
-        for( int j = 0; j < teamAnzahl; j++ )
-        {
-            if( i == 0 )
-                teams->z( j )->setTeamErlaubt( teams->z( i )->zName(), teams->z( i )->istPlatzFrei(), 0 );
-            else
-                teams->z( j )->setTeamErlaubt( teams->z( i )->zName(), teams->z( i )->istPlatzFrei(), sts->teamFarbe->hat( i - 1 ) ? sts->teamFarbe->get( i - 1 ) : 0 );
-        }
-    }
-    rend = 1;
-}
-
-bool TeamAuswahlListe::tick( double tickVal )
-{
-    for( int i = 0; i < teamAnzahl; i++ )
-        rend |= teams->z( i )->tick( tickVal );
-    rend |= scroll->getRend();
-    bool ret = rend;
-    rend = 0;
-    return ret;
-}
-
-void TeamAuswahlListe::doPublicMausEreignis( MausEreignis &me )
-{
-    int tmpX = me.mx;
-    int tmpY = me.my;
-    me.mx -= 50;
-    me.my -= 50 - scroll->getScroll();
-    for( int i = 0; i < teamAnzahl; i++ )
-    {
-        teams->z( i )->doPublicMausEreignis( me );
-        me.my -= 20 + teams->z( i )->getHeight();
-    }
-    me.mx = tmpX;
-    me.my = tmpY;
-    if( me.mx > 1 && me.mx < 698 && me.my > 1 && me.my < 397 )
-    {
-        scroll->doMausMessage( 683, 1, 15, 396, me );
-        me.verarbeitet = 1;
-    }
-}
-
-void TeamAuswahlListe::render( Bild &zRObj )
-{
-    if( !zRObj.setDrawOptions( 0, 0, 698, 398 ) )
-        return;
-    rahmen->render( zRObj );
-    int maxHöhe = 50;
-    for( int i = 0; i < teamAnzahl; i++ )
-        maxHöhe += 20 + teams->z( i )->getHeight();
-    maxHöhe += 30;
-    scroll->update( maxHöhe, 396 );
-    scroll->render( 683, 1, 15, 396, zRObj );
-    if( !zRObj.setDrawOptions( 1, 1, 682, 395 ) )
-    {
-        zRObj.releaseDrawOptions();
-        return;
-    }
-    int y = 50 - scroll->getScroll();
-    for( int i = 0; i < teamAnzahl - 1; i++ )
-        y += 20 + teams->z( i )->getHeight();
-    for( int i = teamAnzahl - 1; i >= 0; i-- )
-    {
-        teams->z( i )->render( y, zRObj );
-        if( i > 0 )
-            y -= 20 + teams->z( i - 1 )->getHeight();
-    }
-    zRObj.releaseDrawOptions();
-    zRObj.releaseDrawOptions();
+	for (int i = 0; i < teamAnzahl; i++)
+		teams->z(i)->disable();
+}
+
+void TeamAuswahlListe::setTeamVonSpieler(int accountId, int spielerNummer)
+{
+	if (spielerNummer == 0)
+	{
+		int neuTeam = 0;
+		int altTeam = 0;
+		for (int j = 0; j < teamAnzahl; j++)
+		{
+			if (teams->z(j)->zSpielerDaten(accountId))
+			{
+				altTeam = j;
+				break;
+			}
+		}
+		TeamAuswahlListeSpieler* tmp = teams->z(altTeam)->getSpielerDaten(accountId);
+		teams->z(altTeam)->removeSpieler(accountId);
+		tmp->setFarbe(0);
+		teams->z(neuTeam)->addSpieler(tmp);
+	}
+	else
+	{
+		int team = 0;
+		int max = 0;
+		int min = 0;
+		for (int i = 0; i < sts->teamAnzahl; i++)
+		{
+			min = max;
+			max += sts->teamSize->get(i);
+			if (spielerNummer - 1 >= min && spielerNummer - 1 < max)
+			{
+				int neuTeam = i + 1;
+				int altTeam = 0;
+				for (int j = 0; j < teamAnzahl; j++)
+				{
+					if (teams->z(j)->zSpielerDaten(accountId))
+					{
+						altTeam = j;
+						break;
+					}
+				}
+				TeamAuswahlListeSpieler* tmp = teams->z(altTeam)->getSpielerDaten(accountId);
+				teams->z(altTeam)->removeSpieler(accountId);
+				tmp->setFarbe(sts->spielerFarbe->hat(spielerNummer - 1) ? sts->spielerFarbe->get(spielerNummer - 1) : 0);
+				teams->z(neuTeam)->addSpieler(tmp);
+				break;
+			}
+		}
+	}
+	for (int i = 0; i < teamAnzahl; i++)
+	{
+		for (int j = 0; j < teamAnzahl; j++)
+		{
+			if (i == 0)
+				teams->z(j)->setTeamErlaubt(teams->z(i)->zName(), teams->z(i)->istPlatzFrei(), 0);
+			else
+				teams->z(j)->setTeamErlaubt(teams->z(i)->zName(), teams->z(i)->istPlatzFrei(), sts->teamFarbe->hat(i - 1) ? sts->teamFarbe->get(i - 1) : 0);
+		}
+	}
+	rend = 1;
+}
+
+void TeamAuswahlListe::addSpieler(int accountId)
+{
+	TeamAuswahlListeSpieler* tmp = new TeamAuswahlListeSpieler(sts->getThis(), accountId, karteId);
+	for (int i = 0; i < teamAnzahl; i++)
+	{
+		if (teams->z(i)->istPlatzFrei())
+		{
+			if (i == 0)
+				tmp->setTeamErlaubt(teams->z(i)->zName(), 1, 0);
+			else
+				tmp->setTeamErlaubt(teams->z(i)->zName(), 1, sts->teamFarbe->hat(i - 1) ? sts->teamFarbe->get(i - 1) : 0);
+		}
+	}
+	teams->z(0)->addSpieler(tmp);
+	for (int i = 0; i < teamAnzahl; i++)
+		teams->z(i)->setTeamErlaubt(teams->z(0)->zName(), teams->z(0)->istPlatzFrei(), 0);
+	rend = 1;
+}
+
+void TeamAuswahlListe::removeSpieler(int accountId)
+{
+	for (int i = 0; i < teamAnzahl; i++)
+	{
+		if (teams->z(i)->zSpielerDaten(accountId))
+			teams->z(i)->removeSpieler(accountId);
+	}
+	for (int i = 0; i < teamAnzahl; i++)
+	{
+		for (int j = 0; j < teamAnzahl; j++)
+		{
+			if (i == 0)
+				teams->z(j)->setTeamErlaubt(teams->z(i)->zName(), teams->z(i)->istPlatzFrei(), 0);
+			else
+				teams->z(j)->setTeamErlaubt(teams->z(i)->zName(), teams->z(i)->istPlatzFrei(), sts->teamFarbe->hat(i - 1) ? sts->teamFarbe->get(i - 1) : 0);
+		}
+	}
+	rend = 1;
+}
+
+bool TeamAuswahlListe::tick(double tickVal)
+{
+	for (int i = 0; i < teamAnzahl; i++)
+		rend |= teams->z(i)->tick(tickVal);
+	rend |= scroll->getRend();
+	bool ret = rend;
+	rend = 0;
+	return ret;
+}
+
+void TeamAuswahlListe::doPublicMausEreignis(MausEreignis& me)
+{
+	int tmpX = me.mx;
+	int tmpY = me.my;
+	me.mx -= 50;
+	me.my -= 50 - scroll->getScroll();
+	for (int i = 0; i < teamAnzahl; i++)
+	{
+		teams->z(i)->doPublicMausEreignis(me);
+		me.my -= 20 + teams->z(i)->getHeight();
+	}
+	me.mx = tmpX;
+	me.my = tmpY;
+	if (me.mx > 1 && me.mx < 698 && me.my > 1 && me.my < 397)
+	{
+		scroll->doMausMessage(683, 1, 15, 396, me);
+		me.verarbeitet = 1;
+	}
+}
+
+void TeamAuswahlListe::render(Bild& zRObj)
+{
+	if (!zRObj.setDrawOptions(0, 0, 698, 398))
+		return;
+	rahmen->render(zRObj);
+	int maxHöhe = 50;
+	for (int i = 0; i < teamAnzahl; i++)
+		maxHöhe += 20 + teams->z(i)->getHeight();
+	maxHöhe += 30;
+	scroll->update(maxHöhe, 396);
+	scroll->render(683, 1, 15, 396, zRObj);
+	if (!zRObj.setDrawOptions(1, 1, 682, 395))
+	{
+		zRObj.releaseDrawOptions();
+		return;
+	}
+	int y = 50 - scroll->getScroll();
+	for (int i = 0; i < teamAnzahl - 1; i++)
+		y += 20 + teams->z(i)->getHeight();
+	for (int i = teamAnzahl - 1; i >= 0; i--)
+	{
+		teams->z(i)->render(y, zRObj);
+		if (i > 0)
+			y -= 20 + teams->z(i - 1)->getHeight();
+	}
+	zRObj.releaseDrawOptions();
+	zRObj.releaseDrawOptions();
 }
 
 // Inhalt der TeamAuswahlTimer Klasse aus TeamAuswahl.h
 // Konstruktor
 TeamAuswahlTimer::TeamAuswahlTimer()
-    : ReferenceCounter()
+	: ReferenceCounter()
 {
-    zeit = initTextFeld( 0, 0, 200, 200, TextFeld::Style::Text | TextFeld::Style::Center, "" );
-    bestätigen = initKnopf( 65, 170, 70, 20, Knopf::Style::Sichtbar, "Fertig" );
-    time = 0;
-    maxTime = 0;
-    grad = 0;
-    rend = 0;
+	zeit = initTextFeld(0, 0, 200, 200, TextFeld::Style::Text | TextFeld::Style::Center, "");
+	bestätigen = initKnopf(65, 170, 70, 20, Knopf::Style::Sichtbar, "Fertig");
+	time = 0;
+	maxTime = 0;
+	grad = 0;
+	rend = 0;
 }
 
 // Destruktor
 TeamAuswahlTimer::~TeamAuswahlTimer()
 {
-    zeit->release();
-    bestätigen->release();
+	zeit->release();
+	bestätigen->release();
 }
 
 // nicht constant
-void TeamAuswahlTimer::setVerbleibendeZeit( int sekunden )
-{
-    if( !maxTime )
-        maxTime = sekunden;
-    if( time != sekunden )
-        rend = 1;
-    time = sekunden;
-}
-
-bool TeamAuswahlTimer::doPublicMausEreignis( MausEreignis &me )
-{
-    bool vera = me.verarbeitet;
-    bestätigen->doPublicMausEreignis( me );
-    if( !vera && me.verarbeitet && me.id == ME_RLinks )
-    {
-        if( spielClient->spielErstelltTeamFertig() )
-        {
-            bestätigen->removeStyle( Knopf::Style::Erlaubt );
-            return 1;
-        }
-    }
-    return 0;
-}
-
-bool TeamAuswahlTimer::tick( double tickVal )
-{
-    zeit->setText( "" );
-    zeit->zText()->append( time );
-    grad += ( tickVal * 2 );
-    rend = 1;
-    if( grad > 360 )
-        grad -= 360;
-    bool ret = rend;
-    rend = 0;
-    return ret;
-}
-
-void TeamAuswahlTimer::render( Bild &zRObj )
-{
-    if( !zRObj.setDrawOptions( 498, 398, 200, 200 ) )
-        return;
-    zeit->render( zRObj );
-    int r = ( maxTime && time ) ? 90 - (int)( 75.0 / ( (double)maxTime / ( maxTime - time ) ) + 0.5 ) : 15;
-    zRObj.drawKreis( 100, 100, 15, 0xFFFF0000 );
-    zRObj.drawKreis( 100, 100, r, 0xFF00FF00 );
-    int x1 = 100 + (int)( sin( grad ) * 15 );
-    int y1 = 100 + (int)( cos( grad ) * 15 );
-    int x2 = 100 + (int)( sin( grad ) * r );
-    int y2 = 100 + (int)( cos( grad ) * r );
-    zRObj.drawLinie( Punkt( x1, y1 ), Punkt( x2, y2 ), 0xFFFFFF00 );
-    bestätigen->render( zRObj );
-    zRObj.releaseDrawOptions();
+void TeamAuswahlTimer::setVerbleibendeZeit(int sekunden)
+{
+	if (!maxTime)
+		maxTime = sekunden;
+	if (time != sekunden)
+		rend = 1;
+	time = sekunden;
+}
+
+bool TeamAuswahlTimer::doPublicMausEreignis(MausEreignis& me)
+{
+	bool vera = me.verarbeitet;
+	bestätigen->doPublicMausEreignis(me);
+	if (!vera && me.verarbeitet && me.id == ME_RLinks)
+	{
+		if (spielClient->spielErstelltTeamFertig())
+		{
+			bestätigen->removeStyle(Knopf::Style::Erlaubt);
+			return 1;
+		}
+	}
+	return 0;
+}
+
+bool TeamAuswahlTimer::tick(double tickVal)
+{
+	zeit->setText("");
+	zeit->zText()->append(time);
+	grad += (tickVal * 2);
+	rend = 1;
+	if (grad > 360)
+		grad -= 360;
+	bool ret = rend;
+	rend = 0;
+	return ret;
+}
+
+void TeamAuswahlTimer::render(Bild& zRObj)
+{
+	if (!zRObj.setDrawOptions(498, 398, 200, 200))
+		return;
+	zeit->render(zRObj);
+	int r = (maxTime && time) ? 90 - (int)(75.0 / ((double)maxTime / (maxTime - time)) + 0.5) : 15;
+	zRObj.drawKreis(100, 100, 15, 0xFFFF0000);
+	zRObj.drawKreis(100, 100, r, 0xFF00FF00);
+	int x1 = 100 + (int)(sin(grad) * 15);
+	int y1 = 100 + (int)(cos(grad) * 15);
+	int x2 = 100 + (int)(sin(grad) * r);
+	int y2 = 100 + (int)(cos(grad) * r);
+	zRObj.drawLinie(Punkt(x1, y1), Punkt(x2, y2), 0xFFFFFF00);
+	bestätigen->render(zRObj);
+	zRObj.releaseDrawOptions();
 }
 
 // constant
 int TeamAuswahlTimer::getZeit() const
 {
-    return time;
+	return time;
 }
 
 // Inhalt der TeamAuswahlChat Klasse aus TeamAuswahl.h
 // Konstruktor
 TeamAuswahlChat::TeamAuswahlChat()
-    : ReferenceCounter()
-{
-    nachricht = initTextFeld( 2, 178, 472, 20, TextFeld::Style::TextFeld, "" );
-    Bild *sendenBild = bilder->get( "data/client/bilder/chat.ltdb/senden.png" );
-    senden = initKnopf( 476, 178, 20, 20, 0, "" );
-    senden->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer );
-    senden->setHintergrundBildZ( sendenBild );
-    verlauf = initTextFeld( 2, 2, 494, 174, TextFeld::Style::TextGebiet & ~TextFeld::Style::Erlaubt, "" );
-    verlauf->updateVScroll();
-    verlauf->setVertikalKlickScroll( 5 );
-    rahmen = new LRahmen();
-    rahmen->setSize( 498, 200 );
-    rahmen->setFarbe( 0xFFFFFFFF );
-    rahmen->setRamenBreite( 1 );
-    rend = 0;
+	: ReferenceCounter()
+{
+	nachricht = initTextFeld(2, 178, 472, 20, TextFeld::Style::TextFeld, "");
+	Bild* sendenBild = bilder->get("data/client/bilder/chat.ltdb/senden.png");
+	senden = initKnopf(476, 178, 20, 20, 0, "");
+	senden->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HAlpha | Knopf::Style::HBild | Knopf::Style::KlickBuffer);
+	senden->setHintergrundBildZ(sendenBild);
+	verlauf = initTextFeld(2, 2, 494, 174, TextFeld::Style::TextGebiet & ~TextFeld::Style::Erlaubt, "");
+	verlauf->updateVScroll();
+	verlauf->setVertikalKlickScroll(5);
+	rahmen = new LRahmen();
+	rahmen->setSize(498, 200);
+	rahmen->setFarbe(0xFFFFFFFF);
+	rahmen->setRamenBreite(1);
+	rend = 0;
 }
 
 // Destruktor
 TeamAuswahlChat::~TeamAuswahlChat()
 {
-    nachricht->release();
-    senden->release();
-    verlauf->release();
-    rahmen->release();
+	nachricht->release();
+	senden->release();
+	verlauf->release();
+	rahmen->release();
 }
 
 // nicht constant
-void TeamAuswahlChat::addNachricht( char *nachricht )
-{
-    verlauf->addZeile( nachricht );
-    verlauf->updateVScroll();
-    rend = 1;
-}
-
-bool TeamAuswahlChat::tick( double tickVal )
-{
-    rend |= verlauf->tick( tickVal );
-    rend |= nachricht->tick( tickVal );
-    rend |= senden->tick( tickVal );
-    bool ret = rend;
-    rend = 0;
-    return ret;
-}
-
-void TeamAuswahlChat::doPublicMausEreignis( MausEreignis &me )
-{
-    verlauf->doPublicMausEreignis( me );
-    nachricht->doPublicMausEreignis( me );
-    bool ver = !me.verarbeitet;
-    senden->doPublicMausEreignis( me );
-    int aktion = ( ver && me.verarbeitet && me.id == ME_RLinks ) ? 1 : 0;
-    if( aktion == 1 )
-    { // Nachricht senden
-        if( spielClient->spielErstelltChatNachricht( nachricht->zText()->getText() ) )
-        {
-            nachricht->setText( "" );
-            nachricht->setAuswahl( 0, 0 );
-            rend = 1;
-        }
-        else
-            nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( spielClient->getLetzterFehler() ), new Text( "Ok" ), 0 );
-    }
-}
-
-void TeamAuswahlChat::doTastaturEreignis( TastaturEreignis &te )
-{
-    bool ver = !te.verarbeitet;
-    nachricht->doTastaturEreignis( te );
-    int aktion = ( ver && te.verarbeitet && te.id == TE_Release && te.taste == T_Enter ) ? 1 : 0;
-    if( aktion == 1 )
-    { // Nachricht senden
-        if( spielClient->spielErstelltChatNachricht( nachricht->zText()->getText() ) )
-        {
-            nachricht->setText( "" );
-            nachricht->setAuswahl( 0, 0 );
-            rend = 1;
-        }
-        else
-            nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( spielClient->getLetzterFehler() ), new Text( "Ok" ), 0 );
-    }
-}
-
-void TeamAuswahlChat::render( Bild &zRObj )
-{
-    if( !zRObj.setDrawOptions( 0, 398, 498, 200 ) )
-        return;
-    rahmen->render( zRObj );
-    verlauf->render( zRObj );
-    nachricht->render( zRObj );
-    senden->render( zRObj );
-    zRObj.releaseDrawOptions();
+void TeamAuswahlChat::addNachricht(const char* nachricht)
+{
+	verlauf->addZeile(nachricht);
+	verlauf->updateVScroll();
+	rend = 1;
+}
+
+bool TeamAuswahlChat::tick(double tickVal)
+{
+	rend |= verlauf->tick(tickVal);
+	rend |= nachricht->tick(tickVal);
+	rend |= senden->tick(tickVal);
+	bool ret = rend;
+	rend = 0;
+	return ret;
+}
+
+void TeamAuswahlChat::doPublicMausEreignis(MausEreignis& me)
+{
+	verlauf->doPublicMausEreignis(me);
+	nachricht->doPublicMausEreignis(me);
+	bool ver = !me.verarbeitet;
+	senden->doPublicMausEreignis(me);
+	int aktion = (ver && me.verarbeitet && me.id == ME_RLinks) ? 1 : 0;
+	if (aktion == 1)
+	{ // Nachricht senden
+		if (spielClient->spielErstelltChatNachricht(nachricht->zText()->getText()))
+		{
+			nachricht->setText("");
+			nachricht->setAuswahl(0, 0);
+			rend = 1;
+		}
+		else
+			nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text(spielClient->getLetzterFehler()), new Text("Ok"), 0);
+	}
+}
+
+void TeamAuswahlChat::doTastaturEreignis(TastaturEreignis& te)
+{
+	bool ver = !te.verarbeitet;
+	nachricht->doTastaturEreignis(te);
+	int aktion = (ver && te.verarbeitet && te.id == TE_Release && te.taste == T_Enter) ? 1 : 0;
+	if (aktion == 1)
+	{ // Nachricht senden
+		if (spielClient->spielErstelltChatNachricht(nachricht->zText()->getText()))
+		{
+			nachricht->setText("");
+			nachricht->setAuswahl(0, 0);
+			rend = 1;
+		}
+		else
+			nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"), new Text(spielClient->getLetzterFehler()), new Text("Ok"), 0);
+	}
+}
+
+void TeamAuswahlChat::render(Bild& zRObj)
+{
+	if (!zRObj.setDrawOptions(0, 398, 498, 200))
+		return;
+	rahmen->render(zRObj);
+	verlauf->render(zRObj);
+	nachricht->render(zRObj);
+	senden->render(zRObj);
+	zRObj.releaseDrawOptions();
 }
 
 // Inhalt der TeamAuswahl Klasse aus TeamAuswahl.h
 // Konstruktor
 TeamAuswahl::TeamAuswahl()
-    : ReferenceCounter()
+	: ReferenceCounter()
 {
-    tickVal = 0;
-    animation = 0;
-    sichtbar = 0;
-    alpha = 0;
-    karteId = 0;
-    sts = 0;
-    chat = 0;
-    timer = 0;
-    liste = 0;
-    rend = 0;
+	tickVal = 0;
+	animation = 0;
+	sichtbar = 0;
+	alpha = 0;
+	karteId = 0;
+	sts = 0;
+	chat = 0;
+	timer = 0;
+	liste = 0;
+	rend = 0;
 }
 
 // Destruktor
 TeamAuswahl::~TeamAuswahl()
 {
-    if( sichtbar )
-        setSichtbar( 0 );
-    if( chat )
-        chat->release();
-    if( timer )
-        timer->release();
-    if( liste )
-        liste->release();
-    if( sts )
-        sts->release();
+	if (sichtbar)
+		setSichtbar(0);
+	if (chat)
+		chat->release();
+	if (timer)
+		timer->release();
+	if (liste)
+		liste->release();
+	if (sts)
+		sts->release();
 }
 
 // nicht constant
-void TeamAuswahl::setKarteId( int karteId )
+void TeamAuswahl::setKarteId(int karteId)
 {
-    this->karteId = karteId;
-}
-
-void TeamAuswahl::setSichtbar( bool sichtbar, bool sofort )
-{
-    this->sichtbar = sichtbar;
-    if( sichtbar )
-        animation |= 0x1;
-    else
-    {
-        if( sofort )
-            alpha = 0;
-        else
-            animation &= ~0x1;
-    }
-    rend = 1;
-}
-
-void TeamAuswahl::initSTS( SpielerTeamStruktur *sts )
-{
-    uiFactory.initParam.bildschirm->lock();
-    if( this->sts )
-        this->sts->release();
-    this->sts = sts;
-    if( chat )
-        chat = (TeamAuswahlChat *)chat->release();
-    if( timer )
-        timer = (TeamAuswahlTimer *)timer->release();
-    if( liste )
-        liste = (TeamAuswahlListe *)liste->release();
-    chat = new TeamAuswahlChat();
-    timer = new TeamAuswahlTimer();
-    liste = new TeamAuswahlListe( sts->getThis(), karteId );
-    uiFactory.initParam.bildschirm->unlock();
-    rend = 1;
-}
-
-void TeamAuswahl::addSpieler( int accountId )
-{
-    if( liste )
-        liste->addSpieler( accountId );
-}
-
-void TeamAuswahl::setSpielerNummer( int accountId, int sNummer )
-{
-    if( liste )
-        liste->setTeamVonSpieler( accountId, sNummer );
-}
-
-void TeamAuswahl::removeSpieler( int accountId )
-{
-    if( liste )
-        liste->removeSpieler( accountId );
-}
-
-void TeamAuswahl::verbleibendeZeit( int sekunden )
-{
-    if( timer )
-        timer->setVerbleibendeZeit( sekunden );
-}
-
-void TeamAuswahl::addNachricht( char *nachricht )
-{
-    if( chat )
-        chat->addNachricht( nachricht );
-}
-
-bool TeamAuswahl::tick( double tickVal )
-{
-    if( !sichtbar && !alpha )
-        return 0;
-    if( chat )
-        rend |= chat->tick( tickVal );
-    if( timer )
-        rend |= timer->tick( tickVal );
-    if( liste )
-        rend |= liste->tick( tickVal );
-    this->tickVal += tickVal * 150;
-    int val = (int)this->tickVal;
-    if( !val )
-    {
-        bool ret = rend;
-        rend = 0;
-        return ret;
-    }
-    if( val > 5 )
-        val = 5;
-    this->tickVal -= val;
-    if( ( animation | 0x1 ) == animation ) // sichtbar werden
-    {
-        if( alpha != 255 )
-        {
-            if( alpha + val < 255 )
-                alpha += val;
-            else
-                alpha = 255;
-            rend = 1;
-        }
-    }
-    else // unsichtbar werden
-    {
-        if( alpha != 0 )
-        {
-            if( alpha - val >= 0 )
-                alpha -= val;
-            else
-                alpha = 0;
-            rend = 1;
-        }
-    }
-    bool ret = rend;
-    rend = 0;
-    return ret;
-}
-
-void TeamAuswahl::doPublicMausEreignis( MausEreignis &me )
-{
-    if( !alpha )
-        return;
-    if( liste )
-        liste->doPublicMausEreignis( me );
-    if( chat )
-    {
-        me.my -= 398;
-        chat->doPublicMausEreignis( me );
-        me.mx -= 498;
-        if( timer->doPublicMausEreignis( me ) )
-            liste->disable();
-        me.my += 398;
-        me.mx += 498;
-    }
-}
-
-void TeamAuswahl::doTastaturEreignis( TastaturEreignis &te )
-{
-    if( !alpha )
-        return;
-    if( chat )
-        chat->doTastaturEreignis( te );
-}
-
-void TeamAuswahl::render( Bild &zRObj )
-{
-    if( !alpha )
-        return;
-    if( !zRObj.setDrawOptions( 0, 0, 700, 600 ) )
-        return;
-    zRObj.setAlpha( alpha );
-    if( timer )
-        timer->render( zRObj );
-    if( chat )
-        chat->render( zRObj );
-    if( liste )
-        liste->render( zRObj );
-    zRObj.releaseAlpha();
-    zRObj.releaseDrawOptions();
+	this->karteId = karteId;
+}
+
+void TeamAuswahl::setSichtbar(bool sichtbar, bool sofort)
+{
+	this->sichtbar = sichtbar;
+	if (sichtbar)
+		animation |= 0x1;
+	else
+	{
+		if (sofort)
+			alpha = 0;
+		else
+			animation &= ~0x1;
+	}
+	rend = 1;
+}
+
+void TeamAuswahl::initSTS(SpielerTeamStruktur* sts)
+{
+	uiFactory.initParam.bildschirm->lock();
+	if (this->sts)
+		this->sts->release();
+	this->sts = sts;
+	if (chat)
+		chat = (TeamAuswahlChat*)chat->release();
+	if (timer)
+		timer = (TeamAuswahlTimer*)timer->release();
+	if (liste)
+		liste = (TeamAuswahlListe*)liste->release();
+	chat = new TeamAuswahlChat();
+	timer = new TeamAuswahlTimer();
+	liste = new TeamAuswahlListe(sts->getThis(), karteId);
+	uiFactory.initParam.bildschirm->unlock();
+	rend = 1;
+}
+
+void TeamAuswahl::addSpieler(int accountId)
+{
+	if (liste)
+		liste->addSpieler(accountId);
+}
+
+void TeamAuswahl::setSpielerNummer(int accountId, int sNummer)
+{
+	if (liste)
+		liste->setTeamVonSpieler(accountId, sNummer);
+}
+
+void TeamAuswahl::removeSpieler(int accountId)
+{
+	if (liste)
+		liste->removeSpieler(accountId);
+}
+
+void TeamAuswahl::verbleibendeZeit(int sekunden)
+{
+	if (timer)
+		timer->setVerbleibendeZeit(sekunden);
+}
+
+void TeamAuswahl::addNachricht(const char* nachricht)
+{
+	if (chat)
+		chat->addNachricht(nachricht);
+}
+
+bool TeamAuswahl::tick(double tickVal)
+{
+	if (!sichtbar && !alpha)
+		return 0;
+	if (chat)
+		rend |= chat->tick(tickVal);
+	if (timer)
+		rend |= timer->tick(tickVal);
+	if (liste)
+		rend |= liste->tick(tickVal);
+	this->tickVal += tickVal * 150;
+	int val = (int)this->tickVal;
+	if (!val)
+	{
+		bool ret = rend;
+		rend = 0;
+		return ret;
+	}
+	if (val > 5)
+		val = 5;
+	this->tickVal -= val;
+	if ((animation | 0x1) == animation) // sichtbar werden
+	{
+		if (alpha != 255)
+		{
+			if (alpha + val < 255)
+				alpha += val;
+			else
+				alpha = 255;
+			rend = 1;
+		}
+	}
+	else // unsichtbar werden
+	{
+		if (alpha != 0)
+		{
+			if (alpha - val >= 0)
+				alpha -= val;
+			else
+				alpha = 0;
+			rend = 1;
+		}
+	}
+	bool ret = rend;
+	rend = 0;
+	return ret;
+}
+
+void TeamAuswahl::doPublicMausEreignis(MausEreignis& me)
+{
+	if (!alpha)
+		return;
+	if (liste)
+		liste->doPublicMausEreignis(me);
+	if (chat)
+	{
+		me.my -= 398;
+		chat->doPublicMausEreignis(me);
+		me.mx -= 498;
+		if (timer->doPublicMausEreignis(me))
+			liste->disable();
+		me.my += 398;
+		me.mx += 498;
+	}
+}
+
+void TeamAuswahl::doTastaturEreignis(TastaturEreignis& te)
+{
+	if (!alpha)
+		return;
+	if (chat)
+		chat->doTastaturEreignis(te);
+}
+
+void TeamAuswahl::render(Bild& zRObj)
+{
+	if (!alpha)
+		return;
+	if (!zRObj.setDrawOptions(0, 0, 700, 600))
+		return;
+	zRObj.setAlpha(alpha);
+	if (timer)
+		timer->render(zRObj);
+	if (chat)
+		chat->render(zRObj);
+	if (liste)
+		liste->render(zRObj);
+	zRObj.releaseAlpha();
+	zRObj.releaseDrawOptions();
 }
 
 // constant
 bool TeamAuswahl::istSichtbar() const
 {
-    return sichtbar;
+	return sichtbar;
 }
 
 int TeamAuswahl::getKarteId() const
 {
-    return karteId;
+	return karteId;
 }
 
-SpielerTeamStruktur *TeamAuswahl::getSTS() const
+SpielerTeamStruktur* TeamAuswahl::getSTS() const
 {
-    return sts->getThis();
+	return sts->getThis();
 }
 
 // Event Aktionen
-void TeamAuswahlListeSpielerTeamAuswahlE( void *p, AuswahlBox *obj, int p1, int p2 )
+void TeamAuswahlListeSpielerTeamAuswahlE(void* p, AuswahlBox* obj, int p1, int p2)
 {
-    if( !p )
-        return;
-    ( (TeamAuswahlListeSpieler *)p )->spielerTeamAuswahlE( obj, p1, p2 );
+	if (!p)
+		return;
+	((TeamAuswahlListeSpieler*)p)->spielerTeamAuswahlE(obj, p1, p2);
 }

+ 149 - 149
KSGClient/NachLogin/Spiele/Team Auswahl/TeamAuswahl.h

@@ -16,194 +16,194 @@ using namespace Framework;
 class TeamAuswahlListeSpieler : public virtual ReferenceCounter
 {
 private:
-    int accountId;
-    TextFeld *name;
-    AuswahlBox *teamAuswahl;
-    TextFeld *team;
-    TextFeld *punkte;
-    TextFeld *spiele;
-    TextFeld *gewonnen;
-    TextFeld *farbe;
-    int spielerFarbe;
-    LRahmen *rahmen;
-    Text *teamName;
-    SpielerTeamStruktur *sts;
-    bool rend;
+	int accountId;
+	TextFeld* name;
+	AuswahlBox* teamAuswahl;
+	TextFeld* team;
+	TextFeld* punkte;
+	TextFeld* spiele;
+	TextFeld* gewonnen;
+	TextFeld* farbe;
+	int spielerFarbe;
+	LRahmen* rahmen;
+	Text* teamName;
+	SpielerTeamStruktur* sts;
+	bool rend;
 
 public:
-    // Konstruktor
-    TeamAuswahlListeSpieler( SpielerTeamStruktur *sts, int accountId, int karteId );
-    // Destruktor
-    ~TeamAuswahlListeSpieler();
-    // nicht constant
-    void disable();
-    void spielerTeamAuswahlE( AuswahlBox *obj, int p1, int p2 );
-    void setFarbe( int farbe );
-    void setTeam( Text *zName );
-    void setTeamErlaubt( Text *zName, bool erlaubt, int teamFarbe );
-    bool tick( double tickVal );
-    void doPublicMausEreignis( MausEreignis &me );
-    void render( int yOff, Bild &zRObj );
-    // constant
-    int getAccountId() const;
+	// Konstruktor
+	TeamAuswahlListeSpieler(SpielerTeamStruktur* sts, int accountId, int karteId);
+	// Destruktor
+	~TeamAuswahlListeSpieler();
+	// nicht constant
+	void disable();
+	void spielerTeamAuswahlE(AuswahlBox* obj, int p1, int p2);
+	void setFarbe(int farbe);
+	void setTeam(Text* zName);
+	void setTeamErlaubt(Text* zName, bool erlaubt, int teamFarbe);
+	bool tick(double tickVal);
+	void doPublicMausEreignis(MausEreignis& me);
+	void render(int yOff, Bild& zRObj);
+	// constant
+	int getAccountId() const;
 };
 
 class TeamAuswahlListeTeam : public virtual ReferenceCounter
 {
 private:
-    int maxSpieler;
-    int jetztSpieler;
-    int team;
-    TextFeld *name;
-    TextFeld *mjSpieler;
-    TextFeld *farbe;
-    int teamFarbe;
-    RCArray< TeamAuswahlListeSpieler > *spieler;
-    LRahmen *rahmen;
-    AlphaFeld *titelAf;
-    Text *teamName;
-    double tickVal;
-    int höhe;
-    bool rend;
+	int maxSpieler;
+	int jetztSpieler;
+	int team;
+	TextFeld* name;
+	TextFeld* mjSpieler;
+	TextFeld* farbe;
+	int teamFarbe;
+	RCArray< TeamAuswahlListeSpieler >* spieler;
+	LRahmen* rahmen;
+	AlphaFeld* titelAf;
+	Text* teamName;
+	double tickVal;
+	int höhe;
+	bool rend;
 
 public:
-    // Konstruktor
-    TeamAuswahlListeTeam();
-    // Destruktor
-    ~TeamAuswahlListeTeam();
-    // nicht constant
-    void disable();
-    void setMaxSpieler( int maxSpieler );
-    void setName( Text *name );
-    void setFarbe( int farbe );
-    void setTeam( int team );
-    void addSpieler( TeamAuswahlListeSpieler *spieler );
-    void removeSpieler( int accountId );
-    void setTeamErlaubt( Text *zName, bool erlaubt, int teamFarbe );
-    bool tick( double tickVal );
-    void doPublicMausEreignis( MausEreignis &me );
-    void render( int yOff, Bild &zRObj );
-    // constant
-    int getTeamNummer() const;
-    int getHeight() const;
-    bool istPlatzFrei() const;
-    int getMaxSpieler() const;
-    Text *zName() const;
-    TeamAuswahlListeSpieler *getSpielerDaten( int accountId ) const;
-    TeamAuswahlListeSpieler *zSpielerDaten( int accountId ) const;
+	// Konstruktor
+	TeamAuswahlListeTeam();
+	// Destruktor
+	~TeamAuswahlListeTeam();
+	// nicht constant
+	void disable();
+	void setMaxSpieler(int maxSpieler);
+	void setName(Text* name);
+	void setFarbe(int farbe);
+	void setTeam(int team);
+	void addSpieler(TeamAuswahlListeSpieler* spieler);
+	void removeSpieler(int accountId);
+	void setTeamErlaubt(Text* zName, bool erlaubt, int teamFarbe);
+	bool tick(double tickVal);
+	void doPublicMausEreignis(MausEreignis& me);
+	void render(int yOff, Bild& zRObj);
+	// constant
+	int getTeamNummer() const;
+	int getHeight() const;
+	bool istPlatzFrei() const;
+	int getMaxSpieler() const;
+	Text* zName() const;
+	TeamAuswahlListeSpieler* getSpielerDaten(int accountId) const;
+	TeamAuswahlListeSpieler* zSpielerDaten(int accountId) const;
 };
 
 class TeamAuswahlListe : public virtual ReferenceCounter
 {
 private:
-    LRahmen *rahmen;
-    VScrollBar *scroll;
-    RCArray< TeamAuswahlListeTeam > *teams;
-    SpielerTeamStruktur *sts;
-    int teamAnzahl;
-    int karteId;
-    bool rend;
+	LRahmen* rahmen;
+	VScrollBar* scroll;
+	RCArray< TeamAuswahlListeTeam >* teams;
+	SpielerTeamStruktur* sts;
+	int teamAnzahl;
+	int karteId;
+	bool rend;
 
 public:
-    // Konstruktor
-    TeamAuswahlListe( SpielerTeamStruktur *sts, int karteId );
-    // Destruktor
-    ~TeamAuswahlListe();
-    // nicht constant
-    void disable();
-    void setTeamVonSpieler( int accountId, int spielerNummer );
-    void addSpieler( int accountId );
-    void removeSpieler( int accountId );
-    bool tick( double tickVal );
-    void doPublicMausEreignis( MausEreignis &me );
-    void render( Bild &zRObj );
+	// Konstruktor
+	TeamAuswahlListe(SpielerTeamStruktur* sts, int karteId);
+	// Destruktor
+	~TeamAuswahlListe();
+	// nicht constant
+	void disable();
+	void setTeamVonSpieler(int accountId, int spielerNummer);
+	void addSpieler(int accountId);
+	void removeSpieler(int accountId);
+	bool tick(double tickVal);
+	void doPublicMausEreignis(MausEreignis& me);
+	void render(Bild& zRObj);
 };
 
 class TeamAuswahlTimer : public virtual ReferenceCounter
 {
 private:
-    TextFeld *zeit;
-    Knopf *bestätigen;
-    int time;
-    int maxTime;
-    double grad;
-    bool rend;
+	TextFeld* zeit;
+	Knopf* bestätigen;
+	int time;
+	int maxTime;
+	double grad;
+	bool rend;
 
 public:
-    // Konstruktor
-    TeamAuswahlTimer();
-    // Destruktor
-    ~TeamAuswahlTimer();
-    // nicht constant
-    void setVerbleibendeZeit( int sekunden );
-    bool doPublicMausEreignis( MausEreignis &me );
-    bool tick( double tickVal );
-    void render( Bild &zRObj );
-    // constant
-    int getZeit() const;
+	// Konstruktor
+	TeamAuswahlTimer();
+	// Destruktor
+	~TeamAuswahlTimer();
+	// nicht constant
+	void setVerbleibendeZeit(int sekunden);
+	bool doPublicMausEreignis(MausEreignis& me);
+	bool tick(double tickVal);
+	void render(Bild& zRObj);
+	// constant
+	int getZeit() const;
 };
 
 class TeamAuswahlChat : public virtual ReferenceCounter
 {
 private:
-    TextFeld *nachricht;
-    Knopf *senden;
-    TextFeld *verlauf;
-    LRahmen *rahmen;
-    bool rend;
+	TextFeld* nachricht;
+	Knopf* senden;
+	TextFeld* verlauf;
+	LRahmen* rahmen;
+	bool rend;
 
 public:
-    // Konstruktor
-    TeamAuswahlChat();
-    // Destruktor
-    ~TeamAuswahlChat();
-    // nicht constant
-    void addNachricht( char *nachricht );
-    bool tick( double tickVal );
-    void doPublicMausEreignis( MausEreignis &me );
-    void doTastaturEreignis( TastaturEreignis &te );
-    void render( Bild &zRObj );
+	// Konstruktor
+	TeamAuswahlChat();
+	// Destruktor
+	~TeamAuswahlChat();
+	// nicht constant
+	void addNachricht(const char* nachricht);
+	bool tick(double tickVal);
+	void doPublicMausEreignis(MausEreignis& me);
+	void doTastaturEreignis(TastaturEreignis& te);
+	void render(Bild& zRObj);
 };
 
 class TeamAuswahl : public virtual ReferenceCounter
 {
 private:
-    double tickVal;
-    int animation;
-    bool sichtbar;
-    int karteId;
-    unsigned char alpha;
-    SpielerTeamStruktur *sts;
-    TeamAuswahlChat *chat;
-    TeamAuswahlTimer *timer;
-    TeamAuswahlListe *liste;
-    bool rend;
+	double tickVal;
+	int animation;
+	bool sichtbar;
+	int karteId;
+	unsigned char alpha;
+	SpielerTeamStruktur* sts;
+	TeamAuswahlChat* chat;
+	TeamAuswahlTimer* timer;
+	TeamAuswahlListe* liste;
+	bool rend;
 
 public:
-    // Konstruktor
-    TeamAuswahl();
-    // Destruktor
-    ~TeamAuswahl();
-    // nicht constant
-    void setKarteId( int karteId );
-    void setSichtbar( bool sichtbar, bool sofort = 0 );
-    void initSTS( SpielerTeamStruktur *sts );
-    void addSpieler( int accountId );
-    void setSpielerNummer( int accountId, int sNummer );
-    void removeSpieler( int accountId );
-    void verbleibendeZeit( int sekunden );
-    void addNachricht( char *nachricht );
-    bool tick( double tickVal );
-    void doPublicMausEreignis( MausEreignis &me );
-    void doTastaturEreignis( TastaturEreignis &te );
-    void render( Bild &zRObj );
-    // constant
-    bool istSichtbar() const;
-    int getKarteId() const;
-    SpielerTeamStruktur *getSTS() const;
+	// Konstruktor
+	TeamAuswahl();
+	// Destruktor
+	~TeamAuswahl();
+	// nicht constant
+	void setKarteId(int karteId);
+	void setSichtbar(bool sichtbar, bool sofort = 0);
+	void initSTS(SpielerTeamStruktur* sts);
+	void addSpieler(int accountId);
+	void setSpielerNummer(int accountId, int sNummer);
+	void removeSpieler(int accountId);
+	void verbleibendeZeit(int sekunden);
+	void addNachricht(const char* nachricht);
+	bool tick(double tickVal);
+	void doPublicMausEreignis(MausEreignis& me);
+	void doTastaturEreignis(TastaturEreignis& te);
+	void render(Bild& zRObj);
+	// constant
+	bool istSichtbar() const;
+	int getKarteId() const;
+	SpielerTeamStruktur* getSTS() const;
 };
 
 // Event Aktionen
-void TeamAuswahlListeSpielerTeamAuswahlE( void *p, AuswahlBox *obj, int p1, int p2 );
+void TeamAuswahlListeSpielerTeamAuswahlE(void* p, AuswahlBox* obj, int p1, int p2);
 
 #endif

+ 104 - 104
KSGClient/Start/Start.cpp

@@ -18,118 +18,118 @@
 #include <TexturList.h>
 #include <GraphicsApi.h>
 
-void fensterVS( void *p, void *f )
+void fensterVS(void* p, void* f)
 {
-    PostQuitMessage( 0 );
+	PostQuitMessage(0);
 }
 
-bool fensterME( void *p, void *f, MausEreignis me )
+bool fensterME(void* p, void* f, MausEreignis me)
 {
-    return 1;
+	return 1;
 }
 
-bool fensterTE( void *p, void *f, TastaturEreignis te )
+bool fensterTE(void* p, void* f, TastaturEreignis te)
 {
-    return 1;
+	return 1;
 }
 
-int KSGStart Framework::Start( Startparam p )
+int KSGStart Framework::Start(Startparam p)
 {
-    Network::Start( 50 );
-
-    if( !DateiExistiert( "data/user_options.ini" ) )
-    {
-        userOptions = new InitDatei( "data/default_options.ini" );
-        userOptions->laden();
-        userOptions->setPfad( "data/user_options.ini" );
-        userOptions->speichern();
-    }
-    else
-    {
-        userOptions = new InitDatei( "data/user_options.ini" );
-        userOptions->laden();
-    }
-
-    InitDatei init( "data/optionen.ini" );
-    init.laden();
-    if( init.wertExistiert( "Log" ) )
-        Framework::setLogEnabled( init.zWert( "Log" )->istGleich( "1" ) );
-    Framework::logLine( "Anwendung wird gestartet..." );
-
-    WNDCLASS wc = F_Normal( p.hinst );
-    wc.lpszClassName = "Game Client";
-
-    Framework::logLine( "Grafische Benutzeroberflaeche wird erstellt..." );
-    Monitor m = getMonitor( 0 );
-    if( userOptions->wertExistiert( "Monitor" ) )
-    {
-        Monitor tmp = getMonitor( *userOptions->zWert( "Monitor" ) );
-        if( tmp.existiert )
-            m = tmp;
-    }
-    WFenster *fenster = new WFenster();
-    fenster->erstellen( WS_POPUP, wc );
-    fenster->setPosition( Punkt( m.x, m.y ) );
-    fenster->setSize( Punkt( m.breite, m.height ) );
-    fenster->setMausAktion( fensterME );
-    fenster->setTastaturAktion( fensterTE );
-    fenster->setVSchließAktion( fensterVS );
-    Bildschirm *bildschirm = 0;
-    if( userOptions->wertExistiert( "GraphicAPI" ) && userOptions->zWert( "GraphicAPI" )->istGleich( "DX9" ) )
-        bildschirm = new Bildschirm3D( dynamic_cast<WFenster *>( fenster->getThis() ), DIRECTX9 );
-    else if( userOptions->wertExistiert( "GraphicAPI" ) && userOptions->zWert( "GraphicAPI" )->istGleich( "DX11" ) )
-        bildschirm = new Bildschirm3D( dynamic_cast<WFenster *>( fenster->getThis() ), DIRECTX11 );
-    else if( userOptions->wertExistiert( "GraphicAPI" ) && userOptions->zWert( "GraphicAPI" )->istGleich( "DX12" ) )
-        bildschirm = new Bildschirm3D( dynamic_cast<WFenster *>( fenster->getThis() ), DIRECTX12 );
-    else
-        bildschirm = new Bildschirm3D( dynamic_cast<WFenster *>( fenster->getThis() ) );
-    if( userOptions->wertExistiert( "ScreenWidth" ) && userOptions->wertExistiert( "ScreenHeight" ) )
-        bildschirm->setBackBufferSize( *userOptions->zWert( "ScreenWidth" ), *userOptions->zWert( "ScreenHeight" ) );
-    fenster->setBildschirm( dynamic_cast<Bildschirm *>( bildschirm->getThis() ) );
-    fenster->setAnzeigeModus( 1 );
-    fenster->setFokus();
-    bildschirm->update();
-    bildschirm->render();
-
-    Framework::logLine( "Schrift wird geladen..." );
-    LTDSDatei *schriftDatei = new LTDSDatei();
-    schriftDatei->setPfad( new Text( "data/schriften/normal.ltds" ) );
-    schriftDatei->leseDaten();
-    Schrift *schrift = schriftDatei->ladeSchrift();
-    schriftDatei = (LTDSDatei *)schriftDatei->release();
-
-    Framework::logLine( "Globale Variablen werden initialisiert..." );
-    initVariables( schrift, bildschirm );
-
-    Render *render = new Render();
-
-    Framework::logLine( "Zeichen Thread wird gestartet..." );
-    render->start();
-
-    Framework::logLine( "Nachrichtenschleife wird ausgefuehrt..." );
-    StartNachrichtenSchleife();
-
-    Framework::logLine( "Zeichen Thread wird beendet..." );
-    render->beenden();
-    render = (Render *)render->release();
-
-    bildschirm->removeMember( vorLogin->zFenster() );
-    bildschirm->removeMember( nachLogin );
-
-    Framework::logLine( "Speicher wird freigegeben..." );
-    releaseVariables();
-    schrift = (Schrift *)schrift->release();
-
-    bildschirm = (Bildschirm *)bildschirm->release();
-    fenster->setBildschirm( 0 );
-    fenster->zerstören();
-    fenster = (WFenster *)fenster->release();
-
-    Network::Exit();
-
-    DateiPfadErstellen( new Text( "data/tmp/keinabsturz" ) );
-
-    Framework::logLine( "Programm wurde ordnungsgemaess beendet." );
-
-    return 0;
+	Network::Start(50);
+
+	if (!DateiExistiert("data/user_options.ini"))
+	{
+		userOptions = new InitDatei("data/default_options.ini");
+		userOptions->laden();
+		userOptions->setPfad("data/user_options.ini");
+		userOptions->speichern();
+	}
+	else
+	{
+		userOptions = new InitDatei("data/user_options.ini");
+		userOptions->laden();
+	}
+
+	InitDatei init("data/optionen.ini");
+	init.laden();
+	if (init.wertExistiert("Log"))
+		Framework::setLogEnabled(init.zWert("Log")->istGleich("1"));
+	Framework::logLine("Anwendung wird gestartet...");
+
+	WNDCLASS wc = F_Normal(p.hinst);
+	wc.lpszClassName = "Game Client";
+
+	Framework::logLine("Grafische Benutzeroberflaeche wird erstellt...");
+	Monitor m = getMonitor(0);
+	if (userOptions->wertExistiert("Monitor"))
+	{
+		Monitor tmp = getMonitor((int)*userOptions->zWert("Monitor"));
+		if (tmp.existiert)
+			m = tmp;
+	}
+	WFenster* fenster = new WFenster();
+	fenster->erstellen(WS_POPUP, wc);
+	fenster->setPosition(Punkt(m.x, m.y));
+	fenster->setSize(Punkt(m.breite, m.height));
+	fenster->setMausAktion(fensterME);
+	fenster->setTastaturAktion(fensterTE);
+	fenster->setVSchließAktion(fensterVS);
+	Bildschirm* bildschirm = 0;
+	if (userOptions->wertExistiert("GraphicAPI") && userOptions->zWert("GraphicAPI")->istGleich("DX9"))
+		bildschirm = new Bildschirm3D(dynamic_cast<WFenster*>(fenster->getThis()), DIRECTX9);
+	else if (userOptions->wertExistiert("GraphicAPI") && userOptions->zWert("GraphicAPI")->istGleich("DX11"))
+		bildschirm = new Bildschirm3D(dynamic_cast<WFenster*>(fenster->getThis()), DIRECTX11);
+	else if (userOptions->wertExistiert("GraphicAPI") && userOptions->zWert("GraphicAPI")->istGleich("DX12"))
+		bildschirm = new Bildschirm3D(dynamic_cast<WFenster*>(fenster->getThis()), DIRECTX12);
+	else
+		bildschirm = new Bildschirm3D(dynamic_cast<WFenster*>(fenster->getThis()));
+	if (userOptions->wertExistiert("ScreenWidth") && userOptions->wertExistiert("ScreenHeight"))
+		bildschirm->setBackBufferSize((int)*userOptions->zWert("ScreenWidth"), (int)*userOptions->zWert("ScreenHeight"));
+	fenster->setBildschirm(dynamic_cast<Bildschirm*>(bildschirm->getThis()));
+	fenster->setAnzeigeModus(1);
+	fenster->setFokus();
+	bildschirm->update();
+	bildschirm->render();
+
+	Framework::logLine("Schrift wird geladen...");
+	LTDSDatei* schriftDatei = new LTDSDatei();
+	schriftDatei->setPfad(new Text("data/schriften/normal.ltds"));
+	schriftDatei->leseDaten();
+	Schrift* schrift = schriftDatei->ladeSchrift();
+	schriftDatei = (LTDSDatei*)schriftDatei->release();
+
+	Framework::logLine("Globale Variablen werden initialisiert...");
+	initVariables(schrift, bildschirm);
+
+	Render* render = new Render();
+
+	Framework::logLine("Zeichen Thread wird gestartet...");
+	render->start();
+
+	Framework::logLine("Nachrichtenschleife wird ausgefuehrt...");
+	StartNachrichtenSchleife();
+
+	Framework::logLine("Zeichen Thread wird beendet...");
+	render->beenden();
+	render = (Render*)render->release();
+
+	bildschirm->removeMember(vorLogin->zFenster());
+	bildschirm->removeMember(nachLogin);
+
+	Framework::logLine("Speicher wird freigegeben...");
+	releaseVariables();
+	schrift = (Schrift*)schrift->release();
+
+	bildschirm = (Bildschirm*)bildschirm->release();
+	fenster->setBildschirm(0);
+	fenster->zerstören();
+	fenster = (WFenster*)fenster->release();
+
+	Network::Exit();
+
+	DateiPfadErstellen(new Text("data/tmp/keinabsturz"));
+
+	Framework::logLine("Programm wurde ordnungsgemaess beendet.");
+
+	return 0;
 }

+ 483 - 483
KSGClient/VorLogin/Account verwalten/EMail.cpp

@@ -7,581 +7,581 @@
 
 // Inhalt der EMailÄndern Klasse aus EMail.h
 // Konstruktor
-EMailÄndern::EMailÄndern( Fenster *zVorLoginFenster )
-    : ReferenceCounter()
-{
-    Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-    eMailÄndern = initKnopf( 10, 210, 130, 30, Knopf::Style::Sichtbar, "E-Mail ändern" );
-    eMailÄndern->setMausEreignisParameter( this );
-    eMailÄndern->setMausEreignis( eMailÄndernEMailÄndernME );
-    initToolTip( eMailÄndern, "Account E-Mail Adresse ändern." );
-    zVorLoginFenster->addMember( dynamic_cast<Zeichnung *>( eMailÄndern->getThis() ) );
-    fenster = initFenster( bildschirmmitte.x - 125, bildschirmmitte.y - 100, 250, 200, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "E-Mail ändern" );
-    name = initTextFeld( 20, 20, 208, 20, TextFeld::Style::TextFeld, "Name" );
-    name->setTastaturEreignisParameter( this );
-    name->setTastaturEreignis( eMailÄndernNameTE );
-    initToolTip( name, "Account Name." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( name->getThis() ) );
-    passwort = initTextFeld( 20, 50, 208, 20, TextFeld::Style::TextFeld, "Passwort" );
-    passwort->setTastaturEreignisParameter( this );
-    passwort->setTastaturEreignis( eMailÄndernPasswortTE );
-    initToolTip( passwort, "Account Passwort." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( passwort->getThis() ) );
-    geheimnis = initTextFeld( 20, 80, 208, 20, TextFeld::Style::TextFeld, "Geheimis" );
-    geheimnis->setTastaturEreignisParameter( this );
-    geheimnis->setTastaturEreignis( eMailÄndernGeheimnisTE );
-    initToolTip( geheimnis, "Account Geheimnis." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( geheimnis->getThis() ) );
-    nEMail = initTextFeld( 20, 110, 208, 20, TextFeld::Style::TextFeld, "neue E-Mail Adresse" );
-    nEMail->setTastaturEreignisParameter( this );
-    nEMail->setTastaturEreignis( eMailÄndernNEMailTE );
-    initToolTip( nEMail, "Neue E-Mail Adresse." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( nEMail->getThis() ) );
-    weiter = initKnopf( 74, 140, 100, 20, Knopf::Style::Sichtbar, "weiter" );
-    weiter->setMausEreignisParameter( this );
-    weiter->setMausEreignis( eMailÄndernWeiterME );
-    nachricht = initTextFeld( 0, 5, 255, 150, TextFeld::Style::HCenter | TextFeld::Style::Mehrzeilig, "" );
-    fenster->addMember( dynamic_cast<Zeichnung *>( nachricht->getThis() ) );
-    fenster->addMember( dynamic_cast<Zeichnung *>( weiter->getThis() ) );
-    zVorLoginFenster->addMember( dynamic_cast<Zeichnung *>( fenster->getThis() ) );
+EMailÄndern::EMailÄndern(Fenster* zVorLoginFenster)
+	: ReferenceCounter()
+{
+	Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+	eMailÄndern = initKnopf(10, 210, 130, 30, Knopf::Style::Sichtbar, "E-Mail ändern");
+	eMailÄndern->setMausEreignisParameter(this);
+	eMailÄndern->setMausEreignis(eMailÄndernEMailÄndernME);
+	initToolTip(eMailÄndern, "Account E-Mail Adresse ändern.");
+	zVorLoginFenster->addMember(dynamic_cast<Zeichnung*>(eMailÄndern->getThis()));
+	fenster = initFenster(bildschirmmitte.x - 125, bildschirmmitte.y - 100, 250, 200, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "E-Mail ändern");
+	name = initTextFeld(20, 20, 208, 20, TextFeld::Style::TextFeld, "Name");
+	name->setTastaturEreignisParameter(this);
+	name->setTastaturEreignis(eMailÄndernNameTE);
+	initToolTip(name, "Account Name.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(name->getThis()));
+	passwort = initTextFeld(20, 50, 208, 20, TextFeld::Style::TextFeld, "Passwort");
+	passwort->setTastaturEreignisParameter(this);
+	passwort->setTastaturEreignis(eMailÄndernPasswortTE);
+	initToolTip(passwort, "Account Passwort.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(passwort->getThis()));
+	geheimnis = initTextFeld(20, 80, 208, 20, TextFeld::Style::TextFeld, "Geheimis");
+	geheimnis->setTastaturEreignisParameter(this);
+	geheimnis->setTastaturEreignis(eMailÄndernGeheimnisTE);
+	initToolTip(geheimnis, "Account Geheimnis.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(geheimnis->getThis()));
+	nEMail = initTextFeld(20, 110, 208, 20, TextFeld::Style::TextFeld, "neue E-Mail Adresse");
+	nEMail->setTastaturEreignisParameter(this);
+	nEMail->setTastaturEreignis(eMailÄndernNEMailTE);
+	initToolTip(nEMail, "Neue E-Mail Adresse.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(nEMail->getThis()));
+	weiter = initKnopf(74, 140, 100, 20, Knopf::Style::Sichtbar, "weiter");
+	weiter->setMausEreignisParameter(this);
+	weiter->setMausEreignis(eMailÄndernWeiterME);
+	nachricht = initTextFeld(0, 5, 255, 150, TextFeld::Style::HCenter | TextFeld::Style::Mehrzeilig, "");
+	fenster->addMember(dynamic_cast<Zeichnung*>(nachricht->getThis()));
+	fenster->addMember(dynamic_cast<Zeichnung*>(weiter->getThis()));
+	zVorLoginFenster->addMember(dynamic_cast<Zeichnung*>(fenster->getThis()));
 }
 
 // Destruktor
 EMailÄndern::~EMailÄndern()
 {
-    if( eMailÄndern )
-        eMailÄndern = (Knopf *)eMailÄndern->release();
-    if( fenster )
-        fenster = (Fenster *)fenster->release();
-    if( name )
-        name = (TextFeld *)name->release();
-    if( passwort )
-        passwort = (TextFeld *)passwort->release();
-    if( geheimnis )
-        geheimnis = (TextFeld *)geheimnis->release();
-    if( nEMail )
-        nEMail = (TextFeld *)nEMail->release();
-    if( weiter )
-        weiter = (Knopf *)weiter->release();
-    if( nachricht )
-        nachricht = (TextFeld *)nachricht->release();
+	if (eMailÄndern)
+		eMailÄndern = (Knopf*)eMailÄndern->release();
+	if (fenster)
+		fenster = (Fenster*)fenster->release();
+	if (name)
+		name = (TextFeld*)name->release();
+	if (passwort)
+		passwort = (TextFeld*)passwort->release();
+	if (geheimnis)
+		geheimnis = (TextFeld*)geheimnis->release();
+	if (nEMail)
+		nEMail = (TextFeld*)nEMail->release();
+	if (weiter)
+		weiter = (Knopf*)weiter->release();
+	if (nachricht)
+		nachricht = (TextFeld*)nachricht->release();
 }
 
 // Privat
-void EMailÄndern::zeigeNachricht( const char *txt )
-{
-    Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-    name->removeStyle( TextFeld::Style::Sichtbar );
-    passwort->removeStyle( TextFeld::Style::Sichtbar );
-    geheimnis->removeStyle( TextFeld::Style::Sichtbar );
-    nEMail->removeStyle( TextFeld::Style::Sichtbar );
-    fenster->setSize( 250, 150 );
-    fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 75 );
-    weiter->setPosition( 139, 100 );
-    weiter->setText( "Ok" );
-    nachricht->setText( txt );
-    if( nachricht->zText()->getLength() > 30 )
-    {
-        int pos = -1;
-        bool set = 0;
-        int lastp = 0;
-        for( int i = 20; i < nachricht->zText()->getLength(); )
-        {
-            char *tmp = &nachricht->zText()->getText()[ i ];
-            while( *tmp != ' ' && i < nachricht->zText()->getLength() )
-            {
-                tmp++;
-                i++;
-                if( i - 30 >= lastp )
-                {
-                    if( set )
-                    {
-                        lastp = pos;
-                        set = 0;
-                        nachricht->zText()->getText()[ pos ] = '\n';
-                    }
-                    else
-                        lastp += 5;
-                }
-            }
-            if( i < nachricht->zText()->getLength() )
-            {
-                pos = i;
-                set = 1;
-                tmp++;
-                i++;
-            }
-        }
-    }
-    nachricht->addStyle( TextFeld::Style::Sichtbar );
+void EMailÄndern::zeigeNachricht(const char* txt)
+{
+	Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+	name->removeStyle(TextFeld::Style::Sichtbar);
+	passwort->removeStyle(TextFeld::Style::Sichtbar);
+	geheimnis->removeStyle(TextFeld::Style::Sichtbar);
+	nEMail->removeStyle(TextFeld::Style::Sichtbar);
+	fenster->setSize(250, 150);
+	fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 75);
+	weiter->setPosition(139, 100);
+	weiter->setText("Ok");
+	nachricht->setText(txt);
+	if (nachricht->zText()->getLength() > 30)
+	{
+		int pos = -1;
+		bool set = 0;
+		int lastp = 0;
+		for (int i = 20; i < nachricht->zText()->getLength(); )
+		{
+			const char* tmp = &nachricht->zText()->getText()[i];
+			while (*tmp != ' ' && i < nachricht->zText()->getLength())
+			{
+				tmp++;
+				i++;
+				if (i - 30 >= lastp)
+				{
+					if (set)
+					{
+						lastp = pos;
+						set = 0;
+						((char*)nachricht->zText()->getText())[pos] = '\n';
+					}
+					else
+						lastp += 5;
+				}
+			}
+			if (i < nachricht->zText()->getLength())
+			{
+				pos = i;
+				set = 1;
+				tmp++;
+				i++;
+			}
+		}
+	}
+	nachricht->addStyle(TextFeld::Style::Sichtbar);
 }
 
 // Knopfdruck
 void EMailÄndern::druckFremdKnopf() // Ein anderer Knopf wurde gedrückt
 {
-    fenster->removeStyle( Fenster::Style::Sichtbar );
-    eMailÄndern->setRahmenBreite( 2 );
-    eMailÄndern->setAlphaFeldFarbe( 0x5500FF00 );
-    eMailÄndern->setAlphaFeldStrength( -5 );
+	fenster->removeStyle(Fenster::Style::Sichtbar);
+	eMailÄndern->setRahmenBreite(2);
+	eMailÄndern->setAlphaFeldFarbe(0x5500FF00);
+	eMailÄndern->setAlphaFeldStrength(-5);
 }
 
-bool EMailÄndern::eMailÄndernME( void *obj, MausEreignis me ) // MausEreignis im Knopf eMailÄndern
-{
-    if( me.id == ME_RLinks )
-    {
-        vorLogin->setEMailÄndern();
-
-        eMailÄndern->setRahmenBreite( 3 );
-        eMailÄndern->setAlphaFeldFarbe( 0xFF000000 );
-        eMailÄndern->setAlphaFeldStrength( 20 );
-        Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-        fenster->setSize( 255, 200 );
-        fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 100 );
-        fenster->addStyle( Fenster::Style::Sichtbar );
-        nachricht->removeStyle( TextFeld::Style::Sichtbar );
-        weiter->setText( "weiter" );
-        weiter->setPosition( 75, 140 );
-        name->addStyle( TextFeld::Style::Sichtbar );
-        passwort->addStyle( TextFeld::Style::Sichtbar );
-        geheimnis->addStyle( TextFeld::Style::Sichtbar );
-        nEMail->addStyle( TextFeld::Style::Sichtbar );
-        name->addStyle( TextFeld::Style::Fokus );
-        name->setAuswahl( 0, name->zText()->getLength() );
-    }
-    return 1;
+bool EMailÄndern::eMailÄndernME(void* obj, MausEreignis me) // MausEreignis im Knopf eMailÄndern
+{
+	if (me.id == ME_RLinks)
+	{
+		vorLogin->setEMailÄndern();
+
+		eMailÄndern->setRahmenBreite(3);
+		eMailÄndern->setAlphaFeldFarbe(0xFF000000);
+		eMailÄndern->setAlphaFeldStrength(20);
+		Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+		fenster->setSize(255, 200);
+		fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 100);
+		fenster->addStyle(Fenster::Style::Sichtbar);
+		nachricht->removeStyle(TextFeld::Style::Sichtbar);
+		weiter->setText("weiter");
+		weiter->setPosition(75, 140);
+		name->addStyle(TextFeld::Style::Sichtbar);
+		passwort->addStyle(TextFeld::Style::Sichtbar);
+		geheimnis->addStyle(TextFeld::Style::Sichtbar);
+		nEMail->addStyle(TextFeld::Style::Sichtbar);
+		name->addStyle(TextFeld::Style::Fokus);
+		name->setAuswahl(0, name->zText()->getLength());
+	}
+	return 1;
 }
 
-bool EMailÄndern::nameTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld name
-{
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
-    {
-        name->removeStyle( TextFeld::Style::Fokus );
-        passwort->addStyle( TextFeld::Style::Fokus );
-        passwort->setAuswahl( 0, passwort->zText()->getLength() );
-    }
-    if( name->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+bool EMailÄndern::nameTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld name
+{
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
+	{
+		name->removeStyle(TextFeld::Style::Fokus);
+		passwort->addStyle(TextFeld::Style::Fokus);
+		passwort->setAuswahl(0, passwort->zText()->getLength());
+	}
+	if (name->zText()->getLength() >= 25 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool EMailÄndern::passwortTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld passwort
-{
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Press )
-        passwort->setSchowChar( '*' );
-    if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
-    {
-        passwort->removeStyle( TextFeld::Style::Fokus );
-        geheimnis->addStyle( TextFeld::Style::Fokus );
-        geheimnis->setAuswahl( 0, geheimnis->zText()->getLength() );
-    }
-    if( passwort->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+bool EMailÄndern::passwortTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld passwort
+{
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Press)
+		passwort->setSchowChar('*');
+	if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
+	{
+		passwort->removeStyle(TextFeld::Style::Fokus);
+		geheimnis->addStyle(TextFeld::Style::Fokus);
+		geheimnis->setAuswahl(0, geheimnis->zText()->getLength());
+	}
+	if (passwort->zText()->getLength() >= 25 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool EMailÄndern::geheimnisTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld geheimnis
-{
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Press )
-        geheimnis->setSchowChar( '*' );
-    if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
-    {
-        geheimnis->removeStyle( TextFeld::Style::Fokus );
-        nEMail->addStyle( TextFeld::Style::Fokus );
-        nEMail->setAuswahl( 0, nEMail->zText()->getLength() );
-    }
-    if( geheimnis->zText()->getLength() >= 50 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+bool EMailÄndern::geheimnisTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld geheimnis
+{
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Press)
+		geheimnis->setSchowChar('*');
+	if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
+	{
+		geheimnis->removeStyle(TextFeld::Style::Fokus);
+		nEMail->addStyle(TextFeld::Style::Fokus);
+		nEMail->setAuswahl(0, nEMail->zText()->getLength());
+	}
+	if (geheimnis->zText()->getLength() >= 50 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool EMailÄndern::nEMailTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld nEMail
-{
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Press )
-        nEMail->setSchowChar( '*' );
-    if( te.id == TE_Release && te.taste == T_Enter )
-    {
-        nEMail->removeStyle( TextFeld::Style::Fokus );
-        MausEreignis me;
-        me.id = ME_RLinks;
-        weiterME( 0, me );
-    }
-    if( nEMail->zText()->getLength() >= 50 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+bool EMailÄndern::nEMailTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld nEMail
+{
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Press)
+		nEMail->setSchowChar('*');
+	if (te.id == TE_Release && te.taste == T_Enter)
+	{
+		nEMail->removeStyle(TextFeld::Style::Fokus);
+		MausEreignis me;
+		me.id = ME_RLinks;
+		weiterME(0, me);
+	}
+	if (nEMail->zText()->getLength() >= 50 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool EMailÄndern::weiterME( void *obj, MausEreignis me ) // MausEreignis im Knopf weiter
-{
-    if( me.id == ME_RLinks )
-    {
-        if( weiter->zText()->istGleich( "weiter" ) )
-        {
-            if( name->zText()->getLength() == 0 )
-                zeigeNachricht( "Bitte gebe deinen Accountnamen ein." );
-            if( passwort->zText()->getLength() == 0 )
-                zeigeNachricht( "Bitte gebe dein Accountpasswort ein." );
-            if( geheimnis->zText()->getLength() == 0 )
-                zeigeNachricht( "Bitte gebe dein Accountgeheimnis ein." );
-            if( nEMail->zText()->getLength() == 0 )
-                zeigeNachricht( "Bitte gebe eine neue E-Mail Addresse ein." );
-            if( weiter->zText()->istGleich( "Ok" ) )
-                return 1;
-            new AktionsThread( 8, name->zText()->getText(), passwort->zText()->getText(), geheimnis->zText()->getText(), nEMail->zText()->getText(), 0 );
-        }
-        else
-        {
-            Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-            fenster->setSize( 255, 200 );
-            fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 100 );
-            fenster->addStyle( Fenster::Style::Sichtbar );
-            nachricht->removeStyle( TextFeld::Style::Sichtbar );
-            weiter->setText( "weiter" );
-            weiter->setPosition( 75, 140 );
-            name->addStyle( TextFeld::Style::Sichtbar );
-            passwort->addStyle( TextFeld::Style::Sichtbar );
-            geheimnis->addStyle( TextFeld::Style::Sichtbar );
-            nEMail->addStyle( TextFeld::Style::Sichtbar );
-            name->addStyle( TextFeld::Style::Fokus );
-            name->setAuswahl( 0, name->zText()->getLength() );
-        }
-    }
-    return 1;
+bool EMailÄndern::weiterME(void* obj, MausEreignis me) // MausEreignis im Knopf weiter
+{
+	if (me.id == ME_RLinks)
+	{
+		if (weiter->zText()->istGleich("weiter"))
+		{
+			if (name->zText()->getLength() == 0)
+				zeigeNachricht("Bitte gebe deinen Accountnamen ein.");
+			if (passwort->zText()->getLength() == 0)
+				zeigeNachricht("Bitte gebe dein Accountpasswort ein.");
+			if (geheimnis->zText()->getLength() == 0)
+				zeigeNachricht("Bitte gebe dein Accountgeheimnis ein.");
+			if (nEMail->zText()->getLength() == 0)
+				zeigeNachricht("Bitte gebe eine neue E-Mail Addresse ein.");
+			if (weiter->zText()->istGleich("Ok"))
+				return 1;
+			new AktionsThread(8, name->zText()->getText(), passwort->zText()->getText(), geheimnis->zText()->getText(), nEMail->zText()->getText(), 0);
+		}
+		else
+		{
+			Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+			fenster->setSize(255, 200);
+			fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 100);
+			fenster->addStyle(Fenster::Style::Sichtbar);
+			nachricht->removeStyle(TextFeld::Style::Sichtbar);
+			weiter->setText("weiter");
+			weiter->setPosition(75, 140);
+			name->addStyle(TextFeld::Style::Sichtbar);
+			passwort->addStyle(TextFeld::Style::Sichtbar);
+			geheimnis->addStyle(TextFeld::Style::Sichtbar);
+			nEMail->addStyle(TextFeld::Style::Sichtbar);
+			name->addStyle(TextFeld::Style::Fokus);
+			name->setAuswahl(0, name->zText()->getLength());
+		}
+	}
+	return 1;
 }
 
-void EMailÄndern::setReturn( bool ret ) // Setzt den Returnwert
+void EMailÄndern::setReturn(bool ret) // Setzt den Returnwert
 {
-    if( ret )
-        zeigeNachricht( "E-Mail erfolgreich geändert." );
-    else if( lastError.getLength() )
-        zeigeNachricht( lastError );
-    else
-        zeigeNachricht( "Es ist ein Unbekannter Fehler aufgetreten." );
+	if (ret)
+		zeigeNachricht("E-Mail erfolgreich geändert.");
+	else if (lastError.getLength())
+		zeigeNachricht(lastError);
+	else
+		zeigeNachricht("Es ist ein Unbekannter Fehler aufgetreten.");
 }
 
 
 // Inhalt der EMailVergessen Klasse aus EMail.h
 // Konstruktor
-EMailVergessen::EMailVergessen( Fenster *zVorLoginFenster )
-    : ReferenceCounter()
-{
-    Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-    eMailVergessen = initKnopf( 10, 410, 130, 30, Knopf::Style::Sichtbar, "E-Mail vergessen" );
-    eMailVergessen->setMausEreignisParameter( this );
-    eMailVergessen->setMausEreignis( eMailVergessenEMailVergessenME );
-    initToolTip( eMailVergessen, "Account E-Mail Adresse anzeigen." );
-    zVorLoginFenster->addMember( dynamic_cast<Zeichnung *>( eMailVergessen->getThis() ) );
-    fenster = initFenster( bildschirmmitte.x - 125, bildschirmmitte.y - 85, 250, 170, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "E-Mail vergessen" );
-    name = initTextFeld( 20, 20, 208, 20, TextFeld::Style::TextFeld, "Name" );
-    name->setTastaturEreignisParameter( this );
-    name->setTastaturEreignis( eMailVergessenNameTE );
-    initToolTip( name, "Account Name." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( name->getThis() ) );
-    passwort = initTextFeld( 20, 50, 208, 20, TextFeld::Style::TextFeld, "Passwort" );
-    passwort->setTastaturEreignisParameter( this );
-    passwort->setTastaturEreignis( eMailVergessenPasswortTE );
-    initToolTip( passwort, "Account Passwort." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( passwort->getThis() ) );
-    geheimnis = initTextFeld( 20, 80, 208, 20, TextFeld::Style::TextFeld, "Geheimis" );
-    geheimnis->setTastaturEreignisParameter( this );
-    geheimnis->setTastaturEreignis( eMailVergessenGeheimnisTE );
-    initToolTip( geheimnis, "Account Geheimnis." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( geheimnis->getThis() ) );
-    weiter = initKnopf( 74, 110, 100, 20, Knopf::Style::Sichtbar, "weiter" );
-    weiter->setMausEreignisParameter( this );
-    weiter->setMausEreignis( eMailVergessenWeiterME );
-    nachricht = initTextFeld( 0, 5, 255, 150, TextFeld::Style::HCenter | TextFeld::Style::Mehrzeilig, "" );
-    fenster->addMember( dynamic_cast<Zeichnung *>( nachricht->getThis() ) );
-    fenster->addMember( dynamic_cast<Zeichnung *>( weiter->getThis() ) );
-    zVorLoginFenster->addMember( dynamic_cast<Zeichnung *>( fenster->getThis() ) );
+EMailVergessen::EMailVergessen(Fenster* zVorLoginFenster)
+	: ReferenceCounter()
+{
+	Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+	eMailVergessen = initKnopf(10, 410, 130, 30, Knopf::Style::Sichtbar, "E-Mail vergessen");
+	eMailVergessen->setMausEreignisParameter(this);
+	eMailVergessen->setMausEreignis(eMailVergessenEMailVergessenME);
+	initToolTip(eMailVergessen, "Account E-Mail Adresse anzeigen.");
+	zVorLoginFenster->addMember(dynamic_cast<Zeichnung*>(eMailVergessen->getThis()));
+	fenster = initFenster(bildschirmmitte.x - 125, bildschirmmitte.y - 85, 250, 170, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "E-Mail vergessen");
+	name = initTextFeld(20, 20, 208, 20, TextFeld::Style::TextFeld, "Name");
+	name->setTastaturEreignisParameter(this);
+	name->setTastaturEreignis(eMailVergessenNameTE);
+	initToolTip(name, "Account Name.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(name->getThis()));
+	passwort = initTextFeld(20, 50, 208, 20, TextFeld::Style::TextFeld, "Passwort");
+	passwort->setTastaturEreignisParameter(this);
+	passwort->setTastaturEreignis(eMailVergessenPasswortTE);
+	initToolTip(passwort, "Account Passwort.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(passwort->getThis()));
+	geheimnis = initTextFeld(20, 80, 208, 20, TextFeld::Style::TextFeld, "Geheimis");
+	geheimnis->setTastaturEreignisParameter(this);
+	geheimnis->setTastaturEreignis(eMailVergessenGeheimnisTE);
+	initToolTip(geheimnis, "Account Geheimnis.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(geheimnis->getThis()));
+	weiter = initKnopf(74, 110, 100, 20, Knopf::Style::Sichtbar, "weiter");
+	weiter->setMausEreignisParameter(this);
+	weiter->setMausEreignis(eMailVergessenWeiterME);
+	nachricht = initTextFeld(0, 5, 255, 150, TextFeld::Style::HCenter | TextFeld::Style::Mehrzeilig, "");
+	fenster->addMember(dynamic_cast<Zeichnung*>(nachricht->getThis()));
+	fenster->addMember(dynamic_cast<Zeichnung*>(weiter->getThis()));
+	zVorLoginFenster->addMember(dynamic_cast<Zeichnung*>(fenster->getThis()));
 }
 
 // Destruktor
 EMailVergessen::~EMailVergessen()
 {
-    if( eMailVergessen )
-        eMailVergessen = (Knopf *)eMailVergessen->release();
-    if( fenster )
-        fenster = (Fenster *)fenster->release();
-    if( name )
-        name = (TextFeld *)name->release();
-    if( passwort )
-        passwort = (TextFeld *)passwort->release();
-    if( geheimnis )
-        geheimnis = (TextFeld *)geheimnis->release();
-    if( weiter )
-        weiter = (Knopf *)weiter->release();
-    if( nachricht )
-        nachricht = (TextFeld *)nachricht->release();
+	if (eMailVergessen)
+		eMailVergessen = (Knopf*)eMailVergessen->release();
+	if (fenster)
+		fenster = (Fenster*)fenster->release();
+	if (name)
+		name = (TextFeld*)name->release();
+	if (passwort)
+		passwort = (TextFeld*)passwort->release();
+	if (geheimnis)
+		geheimnis = (TextFeld*)geheimnis->release();
+	if (weiter)
+		weiter = (Knopf*)weiter->release();
+	if (nachricht)
+		nachricht = (TextFeld*)nachricht->release();
 }
 
 // Privat
-void EMailVergessen::zeigeNachricht( const char *txt )
-{
-    Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-    name->removeStyle( TextFeld::Style::Sichtbar );
-    passwort->removeStyle( TextFeld::Style::Sichtbar );
-    geheimnis->removeStyle( TextFeld::Style::Sichtbar );
-    fenster->setSize( 250, 150 );
-    fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 75 );
-    weiter->setPosition( 139, 100 );
-    weiter->setText( "Ok" );
-    nachricht->setText( txt );
-    if( nachricht->zText()->getLength() > 30 )
-    {
-        int pos = -1;
-        bool set = 0;
-        int lastp = 0;
-        for( int i = 20; i < nachricht->zText()->getLength(); )
-        {
-            char *tmp = &nachricht->zText()->getText()[ i ];
-            while( *tmp != ' ' && i < nachricht->zText()->getLength() )
-            {
-                tmp++;
-                i++;
-                if( i - 30 >= lastp )
-                {
-                    if( set )
-                    {
-                        lastp = pos;
-                        set = 0;
-                        nachricht->zText()->getText()[ pos ] = '\n';
-                    }
-                    else
-                        lastp += 5;
-                }
-            }
-            if( i < nachricht->zText()->getLength() )
-            {
-                pos = i;
-                set = 1;
-                tmp++;
-                i++;
-            }
-        }
-    }
-    nachricht->addStyle( TextFeld::Style::Sichtbar );
+void EMailVergessen::zeigeNachricht(const char* txt)
+{
+	Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+	name->removeStyle(TextFeld::Style::Sichtbar);
+	passwort->removeStyle(TextFeld::Style::Sichtbar);
+	geheimnis->removeStyle(TextFeld::Style::Sichtbar);
+	fenster->setSize(250, 150);
+	fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 75);
+	weiter->setPosition(139, 100);
+	weiter->setText("Ok");
+	nachricht->setText(txt);
+	if (nachricht->zText()->getLength() > 30)
+	{
+		int pos = -1;
+		bool set = 0;
+		int lastp = 0;
+		for (int i = 20; i < nachricht->zText()->getLength(); )
+		{
+			const char* tmp = &nachricht->zText()->getText()[i];
+			while (*tmp != ' ' && i < nachricht->zText()->getLength())
+			{
+				tmp++;
+				i++;
+				if (i - 30 >= lastp)
+				{
+					if (set)
+					{
+						lastp = pos;
+						set = 0;
+						((char*)nachricht->zText()->getText())[pos] = '\n';
+					}
+					else
+						lastp += 5;
+				}
+			}
+			if (i < nachricht->zText()->getLength())
+			{
+				pos = i;
+				set = 1;
+				tmp++;
+				i++;
+			}
+		}
+	}
+	nachricht->addStyle(TextFeld::Style::Sichtbar);
 }
 
 // Knopfdruck
 void EMailVergessen::druckFremdKnopf() // Ein anderer Knopf wurde gedrückt
 {
-    fenster->removeStyle( Fenster::Style::Sichtbar );
-    eMailVergessen->setRahmenBreite( 2 );
-    eMailVergessen->setAlphaFeldFarbe( 0x5500FF00 );
-    eMailVergessen->setAlphaFeldStrength( -5 );
+	fenster->removeStyle(Fenster::Style::Sichtbar);
+	eMailVergessen->setRahmenBreite(2);
+	eMailVergessen->setAlphaFeldFarbe(0x5500FF00);
+	eMailVergessen->setAlphaFeldStrength(-5);
 }
 
-bool EMailVergessen::eMailVergessenME( void *obj, MausEreignis me ) // MausEreignis im Knopf eMailVergessen
-{
-    if( me.id == ME_RLinks )
-    {
-        vorLogin->setEMailVergessen();
-
-        eMailVergessen->setRahmenBreite( 3 );
-        eMailVergessen->setAlphaFeldFarbe( 0xFF000000 );
-        eMailVergessen->setAlphaFeldStrength( 20 );
-        Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-        fenster->setSize( 255, 170 );
-        fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 85 );
-        fenster->addStyle( Fenster::Style::Sichtbar );
-        nachricht->removeStyle( TextFeld::Style::Sichtbar );
-        weiter->setText( "weiter" );
-        weiter->setPosition( 75, 110 );
-        name->addStyle( TextFeld::Style::Sichtbar );
-        passwort->addStyle( TextFeld::Style::Sichtbar );
-        geheimnis->addStyle( TextFeld::Style::Sichtbar );
-        name->addStyle( TextFeld::Style::Fokus );
-        name->setAuswahl( 0, name->zText()->getLength() );
-    }
-    return 1;
+bool EMailVergessen::eMailVergessenME(void* obj, MausEreignis me) // MausEreignis im Knopf eMailVergessen
+{
+	if (me.id == ME_RLinks)
+	{
+		vorLogin->setEMailVergessen();
+
+		eMailVergessen->setRahmenBreite(3);
+		eMailVergessen->setAlphaFeldFarbe(0xFF000000);
+		eMailVergessen->setAlphaFeldStrength(20);
+		Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+		fenster->setSize(255, 170);
+		fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 85);
+		fenster->addStyle(Fenster::Style::Sichtbar);
+		nachricht->removeStyle(TextFeld::Style::Sichtbar);
+		weiter->setText("weiter");
+		weiter->setPosition(75, 110);
+		name->addStyle(TextFeld::Style::Sichtbar);
+		passwort->addStyle(TextFeld::Style::Sichtbar);
+		geheimnis->addStyle(TextFeld::Style::Sichtbar);
+		name->addStyle(TextFeld::Style::Fokus);
+		name->setAuswahl(0, name->zText()->getLength());
+	}
+	return 1;
 }
 
-bool EMailVergessen::nameTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld name
-{
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
-    {
-        name->removeStyle( TextFeld::Style::Fokus );
-        passwort->addStyle( TextFeld::Style::Fokus );
-        passwort->setAuswahl( 0, passwort->zText()->getLength() );
-    }
-    if( name->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+bool EMailVergessen::nameTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld name
+{
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
+	{
+		name->removeStyle(TextFeld::Style::Fokus);
+		passwort->addStyle(TextFeld::Style::Fokus);
+		passwort->setAuswahl(0, passwort->zText()->getLength());
+	}
+	if (name->zText()->getLength() >= 25 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool EMailVergessen::passwortTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld passwort
-{
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Press )
-        passwort->setSchowChar( '*' );
-    if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
-    {
-        passwort->removeStyle( TextFeld::Style::Fokus );
-        geheimnis->addStyle( TextFeld::Style::Fokus );
-        geheimnis->setAuswahl( 0, geheimnis->zText()->getLength() );
-    }
-    if( passwort->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+bool EMailVergessen::passwortTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld passwort
+{
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Press)
+		passwort->setSchowChar('*');
+	if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
+	{
+		passwort->removeStyle(TextFeld::Style::Fokus);
+		geheimnis->addStyle(TextFeld::Style::Fokus);
+		geheimnis->setAuswahl(0, geheimnis->zText()->getLength());
+	}
+	if (passwort->zText()->getLength() >= 25 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool EMailVergessen::geheimnisTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld geheimnis
-{
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Press )
-        geheimnis->setSchowChar( '*' );
-    if( te.id == TE_Release && te.taste == T_Enter )
-    {
-        geheimnis->removeStyle( TextFeld::Style::Fokus );
-        MausEreignis me;
-        me.id = ME_RLinks;
-        weiterME( 0, me );
-    }
-    if( geheimnis->zText()->getLength() >= 50 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+bool EMailVergessen::geheimnisTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld geheimnis
+{
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Press)
+		geheimnis->setSchowChar('*');
+	if (te.id == TE_Release && te.taste == T_Enter)
+	{
+		geheimnis->removeStyle(TextFeld::Style::Fokus);
+		MausEreignis me;
+		me.id = ME_RLinks;
+		weiterME(0, me);
+	}
+	if (geheimnis->zText()->getLength() >= 50 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool EMailVergessen::weiterME( void *obj, MausEreignis me ) // MausEreignis im Knopf weiter
-{
-    if( me.id == ME_RLinks )
-    {
-        if( weiter->zText()->istGleich( "weiter" ) )
-        {
-            if( name->zText()->getLength() == 0 )
-                zeigeNachricht( "Bitte gebe deinen Accountnamen ein." );
-            if( passwort->zText()->getLength() == 0 )
-                zeigeNachricht( "Bitte gebe dein Accountpasswort ein." );
-            if( geheimnis->zText()->getLength() == 0 )
-                zeigeNachricht( "Bitte gebe dein Accountgeheimnis ein." );
-            if( weiter->zText()->istGleich( "Ok" ) )
-                return 1;
-            new AktionsThread( 9, name->zText()->getText(), passwort->zText()->getText(), geheimnis->zText()->getText(), 0, 0 );
-        }
-        else
-        {
-            Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-            fenster->setSize( 255, 170 );
-            fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 85 );
-            fenster->addStyle( Fenster::Style::Sichtbar );
-            nachricht->removeStyle( TextFeld::Style::Sichtbar );
-            weiter->setText( "weiter" );
-            weiter->setPosition( 75, 110 );
-            name->addStyle( TextFeld::Style::Sichtbar );
-            passwort->addStyle( TextFeld::Style::Sichtbar );
-            geheimnis->addStyle( TextFeld::Style::Sichtbar );
-            name->addStyle( TextFeld::Style::Fokus );
-            name->setAuswahl( 0, name->zText()->getLength() );
-        }
-    }
-    return 1;
+bool EMailVergessen::weiterME(void* obj, MausEreignis me) // MausEreignis im Knopf weiter
+{
+	if (me.id == ME_RLinks)
+	{
+		if (weiter->zText()->istGleich("weiter"))
+		{
+			if (name->zText()->getLength() == 0)
+				zeigeNachricht("Bitte gebe deinen Accountnamen ein.");
+			if (passwort->zText()->getLength() == 0)
+				zeigeNachricht("Bitte gebe dein Accountpasswort ein.");
+			if (geheimnis->zText()->getLength() == 0)
+				zeigeNachricht("Bitte gebe dein Accountgeheimnis ein.");
+			if (weiter->zText()->istGleich("Ok"))
+				return 1;
+			new AktionsThread(9, name->zText()->getText(), passwort->zText()->getText(), geheimnis->zText()->getText(), 0, 0);
+		}
+		else
+		{
+			Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+			fenster->setSize(255, 170);
+			fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 85);
+			fenster->addStyle(Fenster::Style::Sichtbar);
+			nachricht->removeStyle(TextFeld::Style::Sichtbar);
+			weiter->setText("weiter");
+			weiter->setPosition(75, 110);
+			name->addStyle(TextFeld::Style::Sichtbar);
+			passwort->addStyle(TextFeld::Style::Sichtbar);
+			geheimnis->addStyle(TextFeld::Style::Sichtbar);
+			name->addStyle(TextFeld::Style::Fokus);
+			name->setAuswahl(0, name->zText()->getLength());
+		}
+	}
+	return 1;
 }
 
-void EMailVergessen::setReturn( bool ret, char *eMail ) // Setzt den Returnwert
-{
-    if( ret )
-    {
-        Text *nachricht = new Text( "Deine E-Mail Addresse lautet:'" );
-        nachricht->append( eMail );
-        nachricht->append( "'." );
-        zeigeNachricht( nachricht->getText() );
-        nachricht = (Text *)nachricht->release();
-    }
-    else if( lastError.getLength() )
-        zeigeNachricht( lastError );
-    else
-        zeigeNachricht( "Es ist ein Unbekannter Fehler aufgetreten." );
-    delete eMail;
+void EMailVergessen::setReturn(bool ret, char* eMail) // Setzt den Returnwert
+{
+	if (ret)
+	{
+		Text* nachricht = new Text("Deine E-Mail Addresse lautet:'");
+		nachricht->append(eMail);
+		nachricht->append("'.");
+		zeigeNachricht(nachricht->getText());
+		nachricht = (Text*)nachricht->release();
+	}
+	else if (lastError.getLength())
+		zeigeNachricht(lastError);
+	else
+		zeigeNachricht("Es ist ein Unbekannter Fehler aufgetreten.");
+	delete eMail;
 }
 
 
 // messages
-bool eMailÄndernEMailÄndernME( void *p, void *obj, MausEreignis me )
+bool eMailÄndernEMailÄndernME(void* p, void* obj, MausEreignis me)
 {
-    if( !p )
-        return 0;
-    return ( (EMailÄndern *)p )->eMailÄndernME( obj, me );
+	if (!p)
+		return 0;
+	return ((EMailÄndern*)p)->eMailÄndernME(obj, me);
 }
 
-bool eMailÄndernNameTE( void *p, void *obj, TastaturEreignis te )
+bool eMailÄndernNameTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (EMailÄndern *)p )->nameTE( obj, te );
+	if (!p)
+		return 0;
+	return ((EMailÄndern*)p)->nameTE(obj, te);
 }
 
-bool eMailÄndernPasswortTE( void *p, void *obj, TastaturEreignis te )
+bool eMailÄndernPasswortTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (EMailÄndern *)p )->passwortTE( obj, te );
+	if (!p)
+		return 0;
+	return ((EMailÄndern*)p)->passwortTE(obj, te);
 }
 
-bool eMailÄndernGeheimnisTE( void *p, void *obj, TastaturEreignis te )
+bool eMailÄndernGeheimnisTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (EMailÄndern *)p )->geheimnisTE( obj, te );
+	if (!p)
+		return 0;
+	return ((EMailÄndern*)p)->geheimnisTE(obj, te);
 }
 
-bool eMailÄndernNEMailTE( void *p, void *obj, TastaturEreignis te )
+bool eMailÄndernNEMailTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (EMailÄndern *)p )->nEMailTE( obj, te );
+	if (!p)
+		return 0;
+	return ((EMailÄndern*)p)->nEMailTE(obj, te);
 }
 
-bool eMailÄndernWeiterME( void *p, void *obj, MausEreignis me )
+bool eMailÄndernWeiterME(void* p, void* obj, MausEreignis me)
 {
-    if( !p )
-        return 0;
-    return ( (EMailÄndern *)p )->weiterME( obj, me );
+	if (!p)
+		return 0;
+	return ((EMailÄndern*)p)->weiterME(obj, me);
 }
 
 
-bool eMailVergessenEMailVergessenME( void *p, void *obj, MausEreignis me )
+bool eMailVergessenEMailVergessenME(void* p, void* obj, MausEreignis me)
 {
-    if( !p )
-        return 0;
-    return ( (EMailVergessen *)p )->eMailVergessenME( obj, me );
+	if (!p)
+		return 0;
+	return ((EMailVergessen*)p)->eMailVergessenME(obj, me);
 }
 
-bool eMailVergessenNameTE( void *p, void *obj, TastaturEreignis te )
+bool eMailVergessenNameTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (EMailVergessen *)p )->nameTE( obj, te );
+	if (!p)
+		return 0;
+	return ((EMailVergessen*)p)->nameTE(obj, te);
 }
 
-bool eMailVergessenPasswortTE( void *p, void *obj, TastaturEreignis te )
+bool eMailVergessenPasswortTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (EMailVergessen *)p )->passwortTE( obj, te );
+	if (!p)
+		return 0;
+	return ((EMailVergessen*)p)->passwortTE(obj, te);
 }
 
-bool eMailVergessenGeheimnisTE( void *p, void *obj, TastaturEreignis te )
+bool eMailVergessenGeheimnisTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (EMailVergessen *)p )->geheimnisTE( obj, te );
+	if (!p)
+		return 0;
+	return ((EMailVergessen*)p)->geheimnisTE(obj, te);
 }
 
-bool eMailVergessenWeiterME( void *p, void *obj, MausEreignis me )
+bool eMailVergessenWeiterME(void* p, void* obj, MausEreignis me)
 {
-    if( !p )
-        return 0;
-    return ( (EMailVergessen *)p )->weiterME( obj, me );
+	if (!p)
+		return 0;
+	return ((EMailVergessen*)p)->weiterME(obj, me);
 }

+ 428 - 428
KSGClient/VorLogin/Account verwalten/Geheimnis.cpp

@@ -7,536 +7,536 @@
 
 // Inhalt der GeheimnisÄndern Klasse aus Geheimnis.h
 // Konstruktor
-GeheimnisÄndern::GeheimnisÄndern( Fenster *zVorLoginFenster )
-    : ReferenceCounter()
+GeheimnisÄndern::GeheimnisÄndern(Fenster* zVorLoginFenster)
+	: ReferenceCounter()
 {
-    Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-    geheimnisÄndern = initKnopf( 10, 250, 130, 30, Knopf::Style::Sichtbar, "Geheimnis ändern" );
-    geheimnisÄndern->setMausEreignisParameter( this );
-    geheimnisÄndern->setMausEreignis( geheimnisÄndernGeheimnisÄndernME );
-    initToolTip( geheimnisÄndern, "Account Geheimnis ändern." );
-    zVorLoginFenster->addMember( dynamic_cast<Zeichnung *>( geheimnisÄndern->getThis() ) );
-    fenster = initFenster( bildschirmmitte.x - 125, bildschirmmitte.y - 100, 250, 200, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Geheimnis ändern" );
-    name = initTextFeld( 20, 20, 208, 20, TextFeld::Style::TextFeld, "Name" );
-    name->setTastaturEreignisParameter( this );
-    name->setTastaturEreignis( geheimnisÄndernNameTE );
-    initToolTip( name, "Account Name." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( name->getThis() ) );
-    passwort = initTextFeld( 20, 50, 208, 20, TextFeld::Style::TextFeld, "Passwort" );
-    passwort->setTastaturEreignisParameter( this );
-    passwort->setTastaturEreignis( geheimnisÄndernPasswortTE );
-    initToolTip( passwort, "Account Passwort." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( passwort->getThis() ) );
-    geheimnis = initTextFeld( 20, 80, 208, 20, TextFeld::Style::TextFeld, "Geheimis" );
-    geheimnis->setTastaturEreignisParameter( this );
-    geheimnis->setTastaturEreignis( geheimnisÄndernGeheimnisTE );
-    initToolTip( geheimnis, "Account Geheimni." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( geheimnis->getThis() ) );
-    nGeheimnis = initTextFeld( 20, 110, 208, 20, TextFeld::Style::TextFeld, "neues Geheimnis" );
-    nGeheimnis->setTastaturEreignisParameter( this );
-    nGeheimnis->setTastaturEreignis( geheimnisÄndernNGeheimnisTE );
-    initToolTip( nGeheimnis, "Neues Account Geheimnis." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( nGeheimnis->getThis() ) );
-    weiter = initKnopf( 74, 140, 100, 20, Knopf::Style::Sichtbar, "weiter" );
-    weiter->setMausEreignisParameter( this );
-    weiter->setMausEreignis( geheimnisÄndernWeiterME );
-    nachricht = initTextFeld( 0, 5, 255, 150, TextFeld::Style::HCenter | TextFeld::Style::Mehrzeilig, "" );
-    fenster->addMember( dynamic_cast<Zeichnung *>( nachricht->getThis() ) );
-    fenster->addMember( dynamic_cast<Zeichnung *>( weiter->getThis() ) );
-    zVorLoginFenster->addMember( dynamic_cast<Zeichnung *>( fenster->getThis() ) );
+	Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+	geheimnisÄndern = initKnopf(10, 250, 130, 30, Knopf::Style::Sichtbar, "Geheimnis ändern");
+	geheimnisÄndern->setMausEreignisParameter(this);
+	geheimnisÄndern->setMausEreignis(geheimnisÄndernGeheimnisÄndernME);
+	initToolTip(geheimnisÄndern, "Account Geheimnis ändern.");
+	zVorLoginFenster->addMember(dynamic_cast<Zeichnung*>(geheimnisÄndern->getThis()));
+	fenster = initFenster(bildschirmmitte.x - 125, bildschirmmitte.y - 100, 250, 200, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Geheimnis ändern");
+	name = initTextFeld(20, 20, 208, 20, TextFeld::Style::TextFeld, "Name");
+	name->setTastaturEreignisParameter(this);
+	name->setTastaturEreignis(geheimnisÄndernNameTE);
+	initToolTip(name, "Account Name.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(name->getThis()));
+	passwort = initTextFeld(20, 50, 208, 20, TextFeld::Style::TextFeld, "Passwort");
+	passwort->setTastaturEreignisParameter(this);
+	passwort->setTastaturEreignis(geheimnisÄndernPasswortTE);
+	initToolTip(passwort, "Account Passwort.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(passwort->getThis()));
+	geheimnis = initTextFeld(20, 80, 208, 20, TextFeld::Style::TextFeld, "Geheimis");
+	geheimnis->setTastaturEreignisParameter(this);
+	geheimnis->setTastaturEreignis(geheimnisÄndernGeheimnisTE);
+	initToolTip(geheimnis, "Account Geheimni.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(geheimnis->getThis()));
+	nGeheimnis = initTextFeld(20, 110, 208, 20, TextFeld::Style::TextFeld, "neues Geheimnis");
+	nGeheimnis->setTastaturEreignisParameter(this);
+	nGeheimnis->setTastaturEreignis(geheimnisÄndernNGeheimnisTE);
+	initToolTip(nGeheimnis, "Neues Account Geheimnis.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(nGeheimnis->getThis()));
+	weiter = initKnopf(74, 140, 100, 20, Knopf::Style::Sichtbar, "weiter");
+	weiter->setMausEreignisParameter(this);
+	weiter->setMausEreignis(geheimnisÄndernWeiterME);
+	nachricht = initTextFeld(0, 5, 255, 150, TextFeld::Style::HCenter | TextFeld::Style::Mehrzeilig, "");
+	fenster->addMember(dynamic_cast<Zeichnung*>(nachricht->getThis()));
+	fenster->addMember(dynamic_cast<Zeichnung*>(weiter->getThis()));
+	zVorLoginFenster->addMember(dynamic_cast<Zeichnung*>(fenster->getThis()));
 }
 
 // Destruktor
 GeheimnisÄndern::~GeheimnisÄndern()
 {
-    if( geheimnisÄndern )
-        geheimnisÄndern = (Knopf *)geheimnisÄndern->release();
-    if( fenster )
-        fenster = (Fenster *)fenster->release();
-    if( name )
-        name = (TextFeld *)name->release();
-    if( passwort )
-        passwort = (TextFeld *)passwort->release();
-    if( geheimnis )
-        geheimnis = (TextFeld *)geheimnis->release();
-    if( nGeheimnis )
-        nGeheimnis = (TextFeld *)nGeheimnis->release();
-    if( weiter )
-        weiter = (Knopf *)weiter->release();
-    if( nachricht )
-        nachricht = (TextFeld *)nachricht->release();
+	if (geheimnisÄndern)
+		geheimnisÄndern = (Knopf*)geheimnisÄndern->release();
+	if (fenster)
+		fenster = (Fenster*)fenster->release();
+	if (name)
+		name = (TextFeld*)name->release();
+	if (passwort)
+		passwort = (TextFeld*)passwort->release();
+	if (geheimnis)
+		geheimnis = (TextFeld*)geheimnis->release();
+	if (nGeheimnis)
+		nGeheimnis = (TextFeld*)nGeheimnis->release();
+	if (weiter)
+		weiter = (Knopf*)weiter->release();
+	if (nachricht)
+		nachricht = (TextFeld*)nachricht->release();
 }
 
 // Privat
-void GeheimnisÄndern::zeigeNachricht( const char *txt )
+void GeheimnisÄndern::zeigeNachricht(const char* txt)
 {
-    Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-    name->removeStyle( TextFeld::Style::Sichtbar );
-    passwort->removeStyle( TextFeld::Style::Sichtbar );
-    geheimnis->removeStyle( TextFeld::Style::Sichtbar );
-    nGeheimnis->removeStyle( TextFeld::Style::Sichtbar );
-    fenster->setSize( 250, 150 );
-    fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 75 );
-    weiter->setPosition( 139, 100 );
-    weiter->setText( "Ok" );
-    nachricht->setText( txt );
-    if( nachricht->zText()->getLength() > 30 )
-    {
-        int pos = -1;
-        bool set = 0;
-        int lastp = 0;
-        for( int i = 20; i < nachricht->zText()->getLength(); )
-        {
-            char *tmp = &nachricht->zText()->getText()[ i ];
-            while( *tmp != ' ' && i < nachricht->zText()->getLength() )
-            {
-                tmp++;
-                i++;
-                if( i - 30 >= lastp )
-                {
-                    if( set )
-                    {
-                        lastp = pos;
-                        set = 0;
-                        nachricht->zText()->getText()[ pos ] = '\n';
-                    }
-                    else
-                        lastp += 5;
-                }
-            }
-            if( i < nachricht->zText()->getLength() )
-            {
-                pos = i;
-                set = 1;
-                tmp++;
-                i++;
-            }
-        }
-    }
-    nachricht->addStyle( TextFeld::Style::Sichtbar );
+	Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+	name->removeStyle(TextFeld::Style::Sichtbar);
+	passwort->removeStyle(TextFeld::Style::Sichtbar);
+	geheimnis->removeStyle(TextFeld::Style::Sichtbar);
+	nGeheimnis->removeStyle(TextFeld::Style::Sichtbar);
+	fenster->setSize(250, 150);
+	fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 75);
+	weiter->setPosition(139, 100);
+	weiter->setText("Ok");
+	nachricht->setText(txt);
+	if (nachricht->zText()->getLength() > 30)
+	{
+		int pos = -1;
+		bool set = 0;
+		int lastp = 0;
+		for (int i = 20; i < nachricht->zText()->getLength(); )
+		{
+			const char* tmp = &nachricht->zText()->getText()[i];
+			while (*tmp != ' ' && i < nachricht->zText()->getLength())
+			{
+				tmp++;
+				i++;
+				if (i - 30 >= lastp)
+				{
+					if (set)
+					{
+						lastp = pos;
+						set = 0;
+						((char*)nachricht->zText()->getText())[pos] = '\n';
+					}
+					else
+						lastp += 5;
+				}
+			}
+			if (i < nachricht->zText()->getLength())
+			{
+				pos = i;
+				set = 1;
+				tmp++;
+				i++;
+			}
+		}
+	}
+	nachricht->addStyle(TextFeld::Style::Sichtbar);
 }
 
 // Knopfdruck
 void GeheimnisÄndern::druckFremdKnopf() // Ein anderer Knopf wurde gedrückt
 {
-    fenster->removeStyle( Fenster::Style::Sichtbar );
-    geheimnisÄndern->setRahmenBreite( 2 );
-    geheimnisÄndern->setAlphaFeldFarbe( 0x5500FF00 );
-    geheimnisÄndern->setAlphaFeldStrength( -5 );
+	fenster->removeStyle(Fenster::Style::Sichtbar);
+	geheimnisÄndern->setRahmenBreite(2);
+	geheimnisÄndern->setAlphaFeldFarbe(0x5500FF00);
+	geheimnisÄndern->setAlphaFeldStrength(-5);
 }
 
-bool GeheimnisÄndern::geheimnisÄndernME( void *obj, MausEreignis me ) // MausEreignis im Knopf geheimnisÄndern
+bool GeheimnisÄndern::geheimnisÄndernME(void* obj, MausEreignis me) // MausEreignis im Knopf geheimnisÄndern
 {
-    if( me.id == ME_RLinks )
-    {
-        vorLogin->setGeheimnisÄndern();
-
-        geheimnisÄndern->setRahmenBreite( 3 );
-        geheimnisÄndern->setAlphaFeldFarbe( 0xFF000000 );
-        geheimnisÄndern->setAlphaFeldStrength( 20 );
-        Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-        fenster->setSize( 255, 200 );
-        fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 100 );
-        fenster->addStyle( Fenster::Style::Sichtbar );
-        nachricht->removeStyle( TextFeld::Style::Sichtbar );
-        weiter->setText( "weiter" );
-        weiter->setPosition( 75, 140 );
-        name->addStyle( TextFeld::Style::Sichtbar );
-        passwort->addStyle( TextFeld::Style::Sichtbar );
-        geheimnis->addStyle( TextFeld::Style::Sichtbar );
-        nGeheimnis->addStyle( TextFeld::Style::Sichtbar );
-        name->addStyle( TextFeld::Style::Fokus );
-        name->setAuswahl( 0, name->zText()->getLength() );
-    }
-    return 1;
+	if (me.id == ME_RLinks)
+	{
+		vorLogin->setGeheimnisÄndern();
+
+		geheimnisÄndern->setRahmenBreite(3);
+		geheimnisÄndern->setAlphaFeldFarbe(0xFF000000);
+		geheimnisÄndern->setAlphaFeldStrength(20);
+		Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+		fenster->setSize(255, 200);
+		fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 100);
+		fenster->addStyle(Fenster::Style::Sichtbar);
+		nachricht->removeStyle(TextFeld::Style::Sichtbar);
+		weiter->setText("weiter");
+		weiter->setPosition(75, 140);
+		name->addStyle(TextFeld::Style::Sichtbar);
+		passwort->addStyle(TextFeld::Style::Sichtbar);
+		geheimnis->addStyle(TextFeld::Style::Sichtbar);
+		nGeheimnis->addStyle(TextFeld::Style::Sichtbar);
+		name->addStyle(TextFeld::Style::Fokus);
+		name->setAuswahl(0, name->zText()->getLength());
+	}
+	return 1;
 }
 
-bool GeheimnisÄndern::nameTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld name
+bool GeheimnisÄndern::nameTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld name
 {
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
-    {
-        name->removeStyle( TextFeld::Style::Fokus );
-        passwort->addStyle( TextFeld::Style::Fokus );
-        passwort->setAuswahl( 0, passwort->zText()->getLength() );
-    }
-    if( name->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
+	{
+		name->removeStyle(TextFeld::Style::Fokus);
+		passwort->addStyle(TextFeld::Style::Fokus);
+		passwort->setAuswahl(0, passwort->zText()->getLength());
+	}
+	if (name->zText()->getLength() >= 25 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool GeheimnisÄndern::passwortTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld passwort
+bool GeheimnisÄndern::passwortTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld passwort
 {
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Press )
-        passwort->setSchowChar( '*' );
-    if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
-    {
-        passwort->removeStyle( TextFeld::Style::Fokus );
-        geheimnis->addStyle( TextFeld::Style::Fokus );
-        geheimnis->setAuswahl( 0, geheimnis->zText()->getLength() );
-    }
-    if( passwort->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Press)
+		passwort->setSchowChar('*');
+	if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
+	{
+		passwort->removeStyle(TextFeld::Style::Fokus);
+		geheimnis->addStyle(TextFeld::Style::Fokus);
+		geheimnis->setAuswahl(0, geheimnis->zText()->getLength());
+	}
+	if (passwort->zText()->getLength() >= 25 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool GeheimnisÄndern::geheimnisTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld geheimnis
+bool GeheimnisÄndern::geheimnisTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld geheimnis
 {
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Press )
-        geheimnis->setSchowChar( '*' );
-    if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
-    {
-        geheimnis->removeStyle( TextFeld::Style::Fokus );
-        nGeheimnis->addStyle( TextFeld::Style::Fokus );
-        nGeheimnis->setAuswahl( 0, nGeheimnis->zText()->getLength() );
-    }
-    if( geheimnis->zText()->getLength() >= 50 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Press)
+		geheimnis->setSchowChar('*');
+	if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
+	{
+		geheimnis->removeStyle(TextFeld::Style::Fokus);
+		nGeheimnis->addStyle(TextFeld::Style::Fokus);
+		nGeheimnis->setAuswahl(0, nGeheimnis->zText()->getLength());
+	}
+	if (geheimnis->zText()->getLength() >= 50 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool GeheimnisÄndern::nGeheimnisTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld nGeheimnis
+bool GeheimnisÄndern::nGeheimnisTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld nGeheimnis
 {
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Release && te.taste == T_Enter )
-    {
-        nGeheimnis->removeStyle( TextFeld::Style::Fokus );
-        MausEreignis me;
-        me.id = ME_RLinks;
-        weiterME( 0, me );
-    }
-    if( nGeheimnis->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Release && te.taste == T_Enter)
+	{
+		nGeheimnis->removeStyle(TextFeld::Style::Fokus);
+		MausEreignis me;
+		me.id = ME_RLinks;
+		weiterME(0, me);
+	}
+	if (nGeheimnis->zText()->getLength() >= 25 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool GeheimnisÄndern::weiterME( void *obj, MausEreignis me ) // MausEreignis im Knopf weiter
+bool GeheimnisÄndern::weiterME(void* obj, MausEreignis me) // MausEreignis im Knopf weiter
 {
-    if( me.id == ME_RLinks )
-    {
-        if( weiter->zText()->istGleich( "weiter" ) )
-        {
-            if( name->zText()->getLength() == 0 )
-                zeigeNachricht( "Bitte gebe deinen Accountnamen ein." );
-            if( passwort->zText()->getLength() == 0 )
-                zeigeNachricht( "Bitte gebe dein Accountpasswort ein." );
-            if( geheimnis->zText()->getLength() == 0 )
-                zeigeNachricht( "Bitte gebe dein Accountgeheimnis ein." );
-            if( nGeheimnis->zText()->getLength() == 0 )
-                zeigeNachricht( "Bitte gebe ein neues Accountgeheimnis ein." );
-            if( weiter->zText()->istGleich( "Ok" ) )
-                return 1;
-            new AktionsThread( 10, name->zText()->getText(), passwort->zText()->getText(), geheimnis->zText()->getText(), nGeheimnis->zText()->getText(), 0 );
-        }
-        else
-        {
-            Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-            fenster->setSize( 255, 200 );
-            fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 100 );
-            fenster->addStyle( Fenster::Style::Sichtbar );
-            nachricht->removeStyle( TextFeld::Style::Sichtbar );
-            weiter->setText( "weiter" );
-            weiter->setPosition( 75, 140 );
-            name->addStyle( TextFeld::Style::Sichtbar );
-            passwort->addStyle( TextFeld::Style::Sichtbar );
-            geheimnis->addStyle( TextFeld::Style::Sichtbar );
-            nGeheimnis->addStyle( TextFeld::Style::Sichtbar );
-            name->addStyle( TextFeld::Style::Fokus );
-            name->setAuswahl( 0, name->zText()->getLength() );
-        }
-    }
-    return 1;
+	if (me.id == ME_RLinks)
+	{
+		if (weiter->zText()->istGleich("weiter"))
+		{
+			if (name->zText()->getLength() == 0)
+				zeigeNachricht("Bitte gebe deinen Accountnamen ein.");
+			if (passwort->zText()->getLength() == 0)
+				zeigeNachricht("Bitte gebe dein Accountpasswort ein.");
+			if (geheimnis->zText()->getLength() == 0)
+				zeigeNachricht("Bitte gebe dein Accountgeheimnis ein.");
+			if (nGeheimnis->zText()->getLength() == 0)
+				zeigeNachricht("Bitte gebe ein neues Accountgeheimnis ein.");
+			if (weiter->zText()->istGleich("Ok"))
+				return 1;
+			new AktionsThread(10, name->zText()->getText(), passwort->zText()->getText(), geheimnis->zText()->getText(), nGeheimnis->zText()->getText(), 0);
+		}
+		else
+		{
+			Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+			fenster->setSize(255, 200);
+			fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 100);
+			fenster->addStyle(Fenster::Style::Sichtbar);
+			nachricht->removeStyle(TextFeld::Style::Sichtbar);
+			weiter->setText("weiter");
+			weiter->setPosition(75, 140);
+			name->addStyle(TextFeld::Style::Sichtbar);
+			passwort->addStyle(TextFeld::Style::Sichtbar);
+			geheimnis->addStyle(TextFeld::Style::Sichtbar);
+			nGeheimnis->addStyle(TextFeld::Style::Sichtbar);
+			name->addStyle(TextFeld::Style::Fokus);
+			name->setAuswahl(0, name->zText()->getLength());
+		}
+	}
+	return 1;
 }
 
-void GeheimnisÄndern::setResult( bool ret ) // Setzt den Returnwert
+void GeheimnisÄndern::setResult(bool ret) // Setzt den Returnwert
 {
-    if( ret )
-        zeigeNachricht( "Geheimnis erfolgreich geändert." );
-    else if( lastError.getLength() )
-        zeigeNachricht( lastError );
-    else
-        zeigeNachricht( "Es ist ein Unbekannter Fehler aufgetreten." );
+	if (ret)
+		zeigeNachricht("Geheimnis erfolgreich geändert.");
+	else if (lastError.getLength())
+		zeigeNachricht(lastError);
+	else
+		zeigeNachricht("Es ist ein Unbekannter Fehler aufgetreten.");
 }
 
 
 // Inhalt der GeheimnisVergessen Klasse aus Geheimnis.h
 // Konstruktor
-GeheimnisVergessen::GeheimnisVergessen( Fenster *zVorLoginFenster )
-    : ReferenceCounter()
+GeheimnisVergessen::GeheimnisVergessen(Fenster* zVorLoginFenster)
+	: ReferenceCounter()
 {
-    Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-    geheimnisVergessen = initKnopf( 10, 370, 130, 30, Knopf::Style::Sichtbar, "Geheimnis vergessen" );
-    geheimnisVergessen->setMausEreignisParameter( this );
-    geheimnisVergessen->setMausEreignis( geheimnisVergessenGeheimnisVergessenME );
-    initToolTip( geheimnisVergessen, "Account Geheimnis per E-Mail senden." );
-    zVorLoginFenster->addMember( dynamic_cast<Zeichnung *>( geheimnisVergessen->getThis() ) );
-    fenster = initFenster( bildschirmmitte.x - 125, bildschirmmitte.y - 70, 250, 140, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Geheimnis vergessen" );
-    name = initTextFeld( 20, 20, 208, 20, TextFeld::Style::TextFeld, "Name" );
-    name->setTastaturEreignisParameter( this );
-    name->setTastaturEreignis( geheimnisVergessenNameTE );
-    initToolTip( name, "Account Name." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( name->getThis() ) );
-    passwort = initTextFeld( 20, 50, 208, 20, TextFeld::Style::TextFeld, "Passwort" );
-    passwort->setTastaturEreignisParameter( this );
-    passwort->setTastaturEreignis( geheimnisVergessenPasswortTE );
-    initToolTip( passwort, "Account Passwort." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( passwort->getThis() ) );
-    weiter = initKnopf( 74, 80, 100, 20, Knopf::Style::Sichtbar, "weiter" );
-    weiter->setMausEreignisParameter( this );
-    weiter->setMausEreignis( geheimnisVergessenWeiterME );
-    nachricht = initTextFeld( 0, 5, 255, 150, TextFeld::Style::HCenter | TextFeld::Style::Mehrzeilig, "" );
-    fenster->addMember( dynamic_cast<Zeichnung *>( nachricht->getThis() ) );
-    fenster->addMember( dynamic_cast<Zeichnung *>( weiter->getThis() ) );
-    zVorLoginFenster->addMember( dynamic_cast<Zeichnung *>( fenster->getThis() ) );
+	Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+	geheimnisVergessen = initKnopf(10, 370, 130, 30, Knopf::Style::Sichtbar, "Geheimnis vergessen");
+	geheimnisVergessen->setMausEreignisParameter(this);
+	geheimnisVergessen->setMausEreignis(geheimnisVergessenGeheimnisVergessenME);
+	initToolTip(geheimnisVergessen, "Account Geheimnis per E-Mail senden.");
+	zVorLoginFenster->addMember(dynamic_cast<Zeichnung*>(geheimnisVergessen->getThis()));
+	fenster = initFenster(bildschirmmitte.x - 125, bildschirmmitte.y - 70, 250, 140, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Geheimnis vergessen");
+	name = initTextFeld(20, 20, 208, 20, TextFeld::Style::TextFeld, "Name");
+	name->setTastaturEreignisParameter(this);
+	name->setTastaturEreignis(geheimnisVergessenNameTE);
+	initToolTip(name, "Account Name.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(name->getThis()));
+	passwort = initTextFeld(20, 50, 208, 20, TextFeld::Style::TextFeld, "Passwort");
+	passwort->setTastaturEreignisParameter(this);
+	passwort->setTastaturEreignis(geheimnisVergessenPasswortTE);
+	initToolTip(passwort, "Account Passwort.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(passwort->getThis()));
+	weiter = initKnopf(74, 80, 100, 20, Knopf::Style::Sichtbar, "weiter");
+	weiter->setMausEreignisParameter(this);
+	weiter->setMausEreignis(geheimnisVergessenWeiterME);
+	nachricht = initTextFeld(0, 5, 255, 150, TextFeld::Style::HCenter | TextFeld::Style::Mehrzeilig, "");
+	fenster->addMember(dynamic_cast<Zeichnung*>(nachricht->getThis()));
+	fenster->addMember(dynamic_cast<Zeichnung*>(weiter->getThis()));
+	zVorLoginFenster->addMember(dynamic_cast<Zeichnung*>(fenster->getThis()));
 }
 
 // Destruktor
 GeheimnisVergessen::~GeheimnisVergessen()
 {
-    if( geheimnisVergessen )
-        geheimnisVergessen = (Knopf *)geheimnisVergessen->release();
-    if( fenster )
-        fenster = (Fenster *)fenster->release();
-    if( name )
-        name = (TextFeld *)name->release();
-    if( passwort )
-        passwort = (TextFeld *)passwort->release();
-    if( weiter )
-        weiter = (Knopf *)weiter->release();
-    if( nachricht )
-        nachricht = (TextFeld *)nachricht->release();
+	if (geheimnisVergessen)
+		geheimnisVergessen = (Knopf*)geheimnisVergessen->release();
+	if (fenster)
+		fenster = (Fenster*)fenster->release();
+	if (name)
+		name = (TextFeld*)name->release();
+	if (passwort)
+		passwort = (TextFeld*)passwort->release();
+	if (weiter)
+		weiter = (Knopf*)weiter->release();
+	if (nachricht)
+		nachricht = (TextFeld*)nachricht->release();
 }
 
 // Privat
-void GeheimnisVergessen::zeigeNachricht( const char *txt )
+void GeheimnisVergessen::zeigeNachricht(const char* txt)
 {
-    Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-    name->removeStyle( TextFeld::Style::Sichtbar );
-    passwort->removeStyle( TextFeld::Style::Sichtbar );
-    fenster->setSize( 250, 150 );
-    fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 75 );
-    weiter->setPosition( 139, 100 );
-    weiter->setText( "Ok" );
-    nachricht->setText( txt );
-    if( nachricht->zText()->getLength() > 30 )
-    {
-        int pos = -1;
-        bool set = 0;
-        int lastp = 0;
-        for( int i = 20; i < nachricht->zText()->getLength(); )
-        {
-            char *tmp = &nachricht->zText()->getText()[ i ];
-            while( *tmp != ' ' && i < nachricht->zText()->getLength() )
-            {
-                tmp++;
-                i++;
-                if( i - 30 >= lastp )
-                {
-                    if( set )
-                    {
-                        lastp = pos;
-                        set = 0;
-                        nachricht->zText()->getText()[ pos ] = '\n';
-                    }
-                    else
-                        lastp += 5;
-                }
-            }
-            if( i < nachricht->zText()->getLength() )
-            {
-                pos = i;
-                set = 1;
-                tmp++;
-                i++;
-            }
-        }
-    }
-    nachricht->addStyle( TextFeld::Style::Sichtbar );
+	Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+	name->removeStyle(TextFeld::Style::Sichtbar);
+	passwort->removeStyle(TextFeld::Style::Sichtbar);
+	fenster->setSize(250, 150);
+	fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 75);
+	weiter->setPosition(139, 100);
+	weiter->setText("Ok");
+	nachricht->setText(txt);
+	if (nachricht->zText()->getLength() > 30)
+	{
+		int pos = -1;
+		bool set = 0;
+		int lastp = 0;
+		for (int i = 20; i < nachricht->zText()->getLength(); )
+		{
+			const char* tmp = &nachricht->zText()->getText()[i];
+			while (*tmp != ' ' && i < nachricht->zText()->getLength())
+			{
+				tmp++;
+				i++;
+				if (i - 30 >= lastp)
+				{
+					if (set)
+					{
+						lastp = pos;
+						set = 0;
+						((char*)nachricht->zText()->getText())[pos] = '\n';
+					}
+					else
+						lastp += 5;
+				}
+			}
+			if (i < nachricht->zText()->getLength())
+			{
+				pos = i;
+				set = 1;
+				tmp++;
+				i++;
+			}
+		}
+	}
+	nachricht->addStyle(TextFeld::Style::Sichtbar);
 }
 
 // Knopfdruck
 void GeheimnisVergessen::druckFremdKnopf() // Ein anderer Knopf wurde gedrückt
 {
-    fenster->removeStyle( Fenster::Style::Sichtbar );
-    geheimnisVergessen->setRahmenBreite( 2 );
-    geheimnisVergessen->setAlphaFeldFarbe( 0x5500FF00 );
-    geheimnisVergessen->setAlphaFeldStrength( -5 );
+	fenster->removeStyle(Fenster::Style::Sichtbar);
+	geheimnisVergessen->setRahmenBreite(2);
+	geheimnisVergessen->setAlphaFeldFarbe(0x5500FF00);
+	geheimnisVergessen->setAlphaFeldStrength(-5);
 }
 
-bool GeheimnisVergessen::geheimnisVergessenME( void *obj, MausEreignis me ) // MausEreignis im Knopf geheimnisVergessen
+bool GeheimnisVergessen::geheimnisVergessenME(void* obj, MausEreignis me) // MausEreignis im Knopf geheimnisVergessen
 {
-    if( me.id == ME_RLinks )
-    {
-        vorLogin->setGeheilnisVergessen();
-
-        geheimnisVergessen->setRahmenBreite( 3 );
-        geheimnisVergessen->setAlphaFeldFarbe( 0xFF000000 );
-        geheimnisVergessen->setAlphaFeldStrength( 20 );
-        Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-        fenster->setSize( 255, 140 );
-        fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 70 );
-        fenster->addStyle( Fenster::Style::Sichtbar );
-        nachricht->removeStyle( TextFeld::Style::Sichtbar );
-        weiter->setText( "weiter" );
-        weiter->setPosition( 75, 80 );
-        name->addStyle( TextFeld::Style::Sichtbar );
-        passwort->addStyle( TextFeld::Style::Sichtbar );
-        name->addStyle( TextFeld::Style::Fokus );
-        name->setAuswahl( 0, name->zText()->getLength() );
-    }
-    return 1;
+	if (me.id == ME_RLinks)
+	{
+		vorLogin->setGeheilnisVergessen();
+
+		geheimnisVergessen->setRahmenBreite(3);
+		geheimnisVergessen->setAlphaFeldFarbe(0xFF000000);
+		geheimnisVergessen->setAlphaFeldStrength(20);
+		Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+		fenster->setSize(255, 140);
+		fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 70);
+		fenster->addStyle(Fenster::Style::Sichtbar);
+		nachricht->removeStyle(TextFeld::Style::Sichtbar);
+		weiter->setText("weiter");
+		weiter->setPosition(75, 80);
+		name->addStyle(TextFeld::Style::Sichtbar);
+		passwort->addStyle(TextFeld::Style::Sichtbar);
+		name->addStyle(TextFeld::Style::Fokus);
+		name->setAuswahl(0, name->zText()->getLength());
+	}
+	return 1;
 }
 
-bool GeheimnisVergessen::nameTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld name
+bool GeheimnisVergessen::nameTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld name
 {
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
-    {
-        name->removeStyle( TextFeld::Style::Fokus );
-        passwort->addStyle( TextFeld::Style::Fokus );
-        passwort->setAuswahl( 0, passwort->zText()->getLength() );
-    }
-    if( name->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
+	{
+		name->removeStyle(TextFeld::Style::Fokus);
+		passwort->addStyle(TextFeld::Style::Fokus);
+		passwort->setAuswahl(0, passwort->zText()->getLength());
+	}
+	if (name->zText()->getLength() >= 25 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool GeheimnisVergessen::passwortTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld passwort
+bool GeheimnisVergessen::passwortTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld passwort
 {
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Press )
-        passwort->setSchowChar( '*' );
-    if( te.id == TE_Release && te.taste == T_Enter )
-    {
-        passwort->removeStyle( TextFeld::Style::Fokus );
-        MausEreignis me;
-        me.id = ME_RLinks;
-        weiterME( 0, me );
-    }
-    if( passwort->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Press)
+		passwort->setSchowChar('*');
+	if (te.id == TE_Release && te.taste == T_Enter)
+	{
+		passwort->removeStyle(TextFeld::Style::Fokus);
+		MausEreignis me;
+		me.id = ME_RLinks;
+		weiterME(0, me);
+	}
+	if (passwort->zText()->getLength() >= 25 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool GeheimnisVergessen::weiterME( void *obj, MausEreignis me ) // MausEreignis im Knopf weiter
+bool GeheimnisVergessen::weiterME(void* obj, MausEreignis me) // MausEreignis im Knopf weiter
 {
-    if( me.id == ME_RLinks )
-    {
-        if( weiter->zText()->istGleich( "weiter" ) )
-        {
-            if( name->zText()->getLength() == 0 )
-                zeigeNachricht( "Bitte gebe deinen Accountnamen ein." );
-            if( passwort->zText()->getLength() == 0 )
-                zeigeNachricht( "Bitte gebe dein Accountpasswort ein." );
-            if( weiter->zText()->istGleich( "Ok" ) )
-                return 1;
-            new AktionsThread( 11, name->zText()->getText(), passwort->zText()->getText(), 0, 0, 0 );
-        }
-        else
-        {
-            Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-            fenster->setSize( 255, 140 );
-            fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 70 );
-            fenster->addStyle( Fenster::Style::Sichtbar );
-            nachricht->removeStyle( TextFeld::Style::Sichtbar );
-            weiter->setText( "weiter" );
-            weiter->setPosition( 75, 80 );
-            name->addStyle( TextFeld::Style::Sichtbar );
-            passwort->addStyle( TextFeld::Style::Sichtbar );
-            name->addStyle( TextFeld::Style::Fokus );
-            name->setAuswahl( 0, name->zText()->getLength() );
-        }
-    }
-    return 1;
+	if (me.id == ME_RLinks)
+	{
+		if (weiter->zText()->istGleich("weiter"))
+		{
+			if (name->zText()->getLength() == 0)
+				zeigeNachricht("Bitte gebe deinen Accountnamen ein.");
+			if (passwort->zText()->getLength() == 0)
+				zeigeNachricht("Bitte gebe dein Accountpasswort ein.");
+			if (weiter->zText()->istGleich("Ok"))
+				return 1;
+			new AktionsThread(11, name->zText()->getText(), passwort->zText()->getText(), 0, 0, 0);
+		}
+		else
+		{
+			Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+			fenster->setSize(255, 140);
+			fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 70);
+			fenster->addStyle(Fenster::Style::Sichtbar);
+			nachricht->removeStyle(TextFeld::Style::Sichtbar);
+			weiter->setText("weiter");
+			weiter->setPosition(75, 80);
+			name->addStyle(TextFeld::Style::Sichtbar);
+			passwort->addStyle(TextFeld::Style::Sichtbar);
+			name->addStyle(TextFeld::Style::Fokus);
+			name->setAuswahl(0, name->zText()->getLength());
+		}
+	}
+	return 1;
 }
 
-void GeheimnisVergessen::setResult( bool ret ) // Setzt den Returnwert
+void GeheimnisVergessen::setResult(bool ret) // Setzt den Returnwert
 {
-    if( ret )
-        zeigeNachricht( "Dir wurde eine E-Mail mit deinem Accountgeheimnis gesendet." );
-    else if( lastError.getLength() )
-        zeigeNachricht( lastError );
-    else
-        zeigeNachricht( "Es ist ein Unbekannter Fehler aufgetreten." );
+	if (ret)
+		zeigeNachricht("Dir wurde eine E-Mail mit deinem Accountgeheimnis gesendet.");
+	else if (lastError.getLength())
+		zeigeNachricht(lastError);
+	else
+		zeigeNachricht("Es ist ein Unbekannter Fehler aufgetreten.");
 }
 
 
 // messages
-bool geheimnisÄndernGeheimnisÄndernME( void *p, void *obj, MausEreignis me )
+bool geheimnisÄndernGeheimnisÄndernME(void* p, void* obj, MausEreignis me)
 {
-    if( !p )
-        return 0;
-    return ( (GeheimnisÄndern *)p )->geheimnisÄndernME( obj, me );
+	if (!p)
+		return 0;
+	return ((GeheimnisÄndern*)p)->geheimnisÄndernME(obj, me);
 }
 
-bool geheimnisÄndernNameTE( void *p, void *obj, TastaturEreignis te )
+bool geheimnisÄndernNameTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (GeheimnisÄndern *)p )->nameTE( obj, te );
+	if (!p)
+		return 0;
+	return ((GeheimnisÄndern*)p)->nameTE(obj, te);
 }
 
-bool geheimnisÄndernPasswortTE( void *p, void *obj, TastaturEreignis te )
+bool geheimnisÄndernPasswortTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (GeheimnisÄndern *)p )->passwortTE( obj, te );
+	if (!p)
+		return 0;
+	return ((GeheimnisÄndern*)p)->passwortTE(obj, te);
 }
 
-bool geheimnisÄndernGeheimnisTE( void *p, void *obj, TastaturEreignis te )
+bool geheimnisÄndernGeheimnisTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (GeheimnisÄndern *)p )->geheimnisTE( obj, te );
+	if (!p)
+		return 0;
+	return ((GeheimnisÄndern*)p)->geheimnisTE(obj, te);
 }
 
-bool geheimnisÄndernNGeheimnisTE( void *p, void *obj, TastaturEreignis te )
+bool geheimnisÄndernNGeheimnisTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (GeheimnisÄndern *)p )->nGeheimnisTE( obj, te );
+	if (!p)
+		return 0;
+	return ((GeheimnisÄndern*)p)->nGeheimnisTE(obj, te);
 }
 
-bool geheimnisÄndernWeiterME( void *p, void *obj, MausEreignis me )
+bool geheimnisÄndernWeiterME(void* p, void* obj, MausEreignis me)
 {
-    if( !p )
-        return 0;
-    return ( (GeheimnisÄndern *)p )->weiterME( obj, me );
+	if (!p)
+		return 0;
+	return ((GeheimnisÄndern*)p)->weiterME(obj, me);
 }
 
 
-bool geheimnisVergessenGeheimnisVergessenME( void *p, void *obj, MausEreignis me )
+bool geheimnisVergessenGeheimnisVergessenME(void* p, void* obj, MausEreignis me)
 {
-    if( !p )
-        return 0;
-    return ( (GeheimnisVergessen *)p )->geheimnisVergessenME( obj, me );
+	if (!p)
+		return 0;
+	return ((GeheimnisVergessen*)p)->geheimnisVergessenME(obj, me);
 }
 
-bool geheimnisVergessenNameTE( void *p, void *obj, TastaturEreignis te )
+bool geheimnisVergessenNameTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (GeheimnisVergessen *)p )->nameTE( obj, te );
+	if (!p)
+		return 0;
+	return ((GeheimnisVergessen*)p)->nameTE(obj, te);
 }
 
-bool geheimnisVergessenPasswortTE( void *p, void *obj, TastaturEreignis te )
+bool geheimnisVergessenPasswortTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (GeheimnisVergessen *)p )->passwortTE( obj, te );
+	if (!p)
+		return 0;
+	return ((GeheimnisVergessen*)p)->passwortTE(obj, te);
 }
 
-bool geheimnisVergessenWeiterME( void *p, void *obj, MausEreignis me )
+bool geheimnisVergessenWeiterME(void* p, void* obj, MausEreignis me)
 {
-    if( !p )
-        return 0;
-    return ( (GeheimnisVergessen *)p )->weiterME( obj, me );
+	if (!p)
+		return 0;
+	return ((GeheimnisVergessen*)p)->weiterME(obj, me);
 }

+ 184 - 184
KSGClient/VorLogin/Account verwalten/Name.cpp

@@ -7,233 +7,233 @@
 
 // Inhalt der NameVergessen Klasse aus Name.h
 // Konstruktor
-NameVergessen::NameVergessen( Fenster *zVorLoginFenster )
-    : ReferenceCounter()
+NameVergessen::NameVergessen(Fenster* zVorLoginFenster)
+	: ReferenceCounter()
 {
-    Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-    nameVergessen = initKnopf( 10, 290, 130, 30, Knopf::Style::Sichtbar, "Name vergessen" );
-    nameVergessen->setMausEreignisParameter( this );
-    nameVergessen->setMausEreignis( nameVergessenNameVergessenME );
-    initToolTip( nameVergessen, "Accoutnt Name per E-MAil senden." );
-    zVorLoginFenster->addMember( dynamic_cast<Zeichnung *>( nameVergessen->getThis() ) );
-    fenster = initFenster( bildschirmmitte.x - 125, bildschirmmitte.y - 70, 250, 140, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Name vergessen" );
-    passwort = initTextFeld( 20, 20, 208, 20, TextFeld::Style::TextFeld, "Passwort" );
-    passwort->setTastaturEreignisParameter( this );
-    passwort->setTastaturEreignis( nameVergessenPasswortTE );
-    initToolTip( passwort, "Accoutnt Passwort." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( passwort->getThis() ) );
-    geheimnis = initTextFeld( 20, 50, 208, 20, TextFeld::Style::TextFeld, "Geheimis" );
-    geheimnis->setTastaturEreignisParameter( this );
-    geheimnis->setTastaturEreignis( nameVergessenGeheimnisTE );
-    initToolTip( geheimnis, "Account Geheimnis." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( geheimnis->getThis() ) );
-    weiter = initKnopf( 74, 80, 100, 20, Knopf::Style::Sichtbar, "weiter" );
-    weiter->setMausEreignisParameter( this );
-    weiter->setMausEreignis( nameVergessenWeiterME );
-    nachricht = initTextFeld( 0, 5, 255, 150, TextFeld::Style::HCenter | TextFeld::Style::Mehrzeilig, "" );
-    fenster->addMember( dynamic_cast<Zeichnung *>( nachricht->getThis() ) );
-    fenster->addMember( dynamic_cast<Zeichnung *>( weiter->getThis() ) );
-    zVorLoginFenster->addMember( dynamic_cast<Zeichnung *>( fenster->getThis() ) );
+	Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+	nameVergessen = initKnopf(10, 290, 130, 30, Knopf::Style::Sichtbar, "Name vergessen");
+	nameVergessen->setMausEreignisParameter(this);
+	nameVergessen->setMausEreignis(nameVergessenNameVergessenME);
+	initToolTip(nameVergessen, "Accoutnt Name per E-MAil senden.");
+	zVorLoginFenster->addMember(dynamic_cast<Zeichnung*>(nameVergessen->getThis()));
+	fenster = initFenster(bildschirmmitte.x - 125, bildschirmmitte.y - 70, 250, 140, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Name vergessen");
+	passwort = initTextFeld(20, 20, 208, 20, TextFeld::Style::TextFeld, "Passwort");
+	passwort->setTastaturEreignisParameter(this);
+	passwort->setTastaturEreignis(nameVergessenPasswortTE);
+	initToolTip(passwort, "Accoutnt Passwort.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(passwort->getThis()));
+	geheimnis = initTextFeld(20, 50, 208, 20, TextFeld::Style::TextFeld, "Geheimis");
+	geheimnis->setTastaturEreignisParameter(this);
+	geheimnis->setTastaturEreignis(nameVergessenGeheimnisTE);
+	initToolTip(geheimnis, "Account Geheimnis.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(geheimnis->getThis()));
+	weiter = initKnopf(74, 80, 100, 20, Knopf::Style::Sichtbar, "weiter");
+	weiter->setMausEreignisParameter(this);
+	weiter->setMausEreignis(nameVergessenWeiterME);
+	nachricht = initTextFeld(0, 5, 255, 150, TextFeld::Style::HCenter | TextFeld::Style::Mehrzeilig, "");
+	fenster->addMember(dynamic_cast<Zeichnung*>(nachricht->getThis()));
+	fenster->addMember(dynamic_cast<Zeichnung*>(weiter->getThis()));
+	zVorLoginFenster->addMember(dynamic_cast<Zeichnung*>(fenster->getThis()));
 }
 
 // Destruktor
 NameVergessen::~NameVergessen()
 {
-    if( nameVergessen )
-        nameVergessen = (Knopf *)nameVergessen->release();
-    if( fenster )
-        fenster = (Fenster *)fenster->release();
-    if( passwort )
-        passwort = (TextFeld *)passwort->release();
-    if( geheimnis )
-        geheimnis = (TextFeld *)geheimnis->release();
-    if( weiter )
-        weiter = (Knopf *)weiter->release();
-    if( nachricht )
-        nachricht = (TextFeld *)nachricht->release();
+	if (nameVergessen)
+		nameVergessen = (Knopf*)nameVergessen->release();
+	if (fenster)
+		fenster = (Fenster*)fenster->release();
+	if (passwort)
+		passwort = (TextFeld*)passwort->release();
+	if (geheimnis)
+		geheimnis = (TextFeld*)geheimnis->release();
+	if (weiter)
+		weiter = (Knopf*)weiter->release();
+	if (nachricht)
+		nachricht = (TextFeld*)nachricht->release();
 }
 
 // Privat
-void NameVergessen::zeigeNachricht( const char *txt )
+void NameVergessen::zeigeNachricht(const char* txt)
 {
-    Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-    passwort->removeStyle( TextFeld::Style::Sichtbar );
-    geheimnis->removeStyle( TextFeld::Style::Sichtbar );
-    fenster->setSize( 250, 150 );
-    fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 75 );
-    weiter->setPosition( 139, 100 );
-    weiter->setText( "Ok" );
-    nachricht->setText( txt );
-    if( nachricht->zText()->getLength() > 30 )
-    {
-        int pos = -1;
-        bool set = 0;
-        int lastp = 0;
-        for( int i = 20; i < nachricht->zText()->getLength(); )
-        {
-            char *tmp = &nachricht->zText()->getText()[ i ];
-            while( *tmp != ' ' && i < nachricht->zText()->getLength() )
-            {
-                tmp++;
-                i++;
-                if( i - 30 >= lastp )
-                {
-                    if( set )
-                    {
-                        lastp = pos;
-                        set = 0;
-                        nachricht->zText()->getText()[ pos ] = '\n';
-                    }
-                    else
-                        lastp += 5;
-                }
-            }
-            if( i < nachricht->zText()->getLength() )
-            {
-                pos = i;
-                set = 1;
-                tmp++;
-                i++;
-            }
-        }
-    }
-    nachricht->addStyle( TextFeld::Style::Sichtbar );
+	Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+	passwort->removeStyle(TextFeld::Style::Sichtbar);
+	geheimnis->removeStyle(TextFeld::Style::Sichtbar);
+	fenster->setSize(250, 150);
+	fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 75);
+	weiter->setPosition(139, 100);
+	weiter->setText("Ok");
+	nachricht->setText(txt);
+	if (nachricht->zText()->getLength() > 30)
+	{
+		int pos = -1;
+		bool set = 0;
+		int lastp = 0;
+		for (int i = 20; i < nachricht->zText()->getLength(); )
+		{
+			const char* tmp = &nachricht->zText()->getText()[i];
+			while (*tmp != ' ' && i < nachricht->zText()->getLength())
+			{
+				tmp++;
+				i++;
+				if (i - 30 >= lastp)
+				{
+					if (set)
+					{
+						lastp = pos;
+						set = 0;
+						((char*)nachricht->zText()->getText())[pos] = '\n';
+					}
+					else
+						lastp += 5;
+				}
+			}
+			if (i < nachricht->zText()->getLength())
+			{
+				pos = i;
+				set = 1;
+				tmp++;
+				i++;
+			}
+		}
+	}
+	nachricht->addStyle(TextFeld::Style::Sichtbar);
 }
 
 // Knopfdruck
 void NameVergessen::druckFremdKnopf() // Ein anderer Knopf wurde gedrückt
 {
-    fenster->removeStyle( Fenster::Style::Sichtbar );
-    nameVergessen->setRahmenBreite( 2 );
-    nameVergessen->setAlphaFeldFarbe( 0x5500FF00 );
-    nameVergessen->setAlphaFeldStrength( -5 );
+	fenster->removeStyle(Fenster::Style::Sichtbar);
+	nameVergessen->setRahmenBreite(2);
+	nameVergessen->setAlphaFeldFarbe(0x5500FF00);
+	nameVergessen->setAlphaFeldStrength(-5);
 }
 
-bool NameVergessen::nameVergessenME( void *obj, MausEreignis me ) // MausEreignis im Knopf nameVergessen
+bool NameVergessen::nameVergessenME(void* obj, MausEreignis me) // MausEreignis im Knopf nameVergessen
 {
-    if( me.id == ME_RLinks )
-    {
-        vorLogin->setNameVergessen();
+	if (me.id == ME_RLinks)
+	{
+		vorLogin->setNameVergessen();
 
-        nameVergessen->setRahmenBreite( 3 );
-        nameVergessen->setAlphaFeldFarbe( 0xFF000000 );
-        nameVergessen->setAlphaFeldStrength( 20 );
-        Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-        fenster->setSize( 255, 140 );
-        fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 70 );
-        fenster->addStyle( Fenster::Style::Sichtbar );
-        nachricht->removeStyle( TextFeld::Style::Sichtbar );
-        weiter->setText( "weiter" );
-        weiter->setPosition( 75, 80 );
-        passwort->addStyle( TextFeld::Style::Sichtbar );
-        geheimnis->addStyle( TextFeld::Style::Sichtbar );
-        passwort->addStyle( TextFeld::Style::Fokus );
-        passwort->setAuswahl( 0, passwort->zText()->getLength() );
-    }
-    return 1;
+		nameVergessen->setRahmenBreite(3);
+		nameVergessen->setAlphaFeldFarbe(0xFF000000);
+		nameVergessen->setAlphaFeldStrength(20);
+		Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+		fenster->setSize(255, 140);
+		fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 70);
+		fenster->addStyle(Fenster::Style::Sichtbar);
+		nachricht->removeStyle(TextFeld::Style::Sichtbar);
+		weiter->setText("weiter");
+		weiter->setPosition(75, 80);
+		passwort->addStyle(TextFeld::Style::Sichtbar);
+		geheimnis->addStyle(TextFeld::Style::Sichtbar);
+		passwort->addStyle(TextFeld::Style::Fokus);
+		passwort->setAuswahl(0, passwort->zText()->getLength());
+	}
+	return 1;
 }
 
-bool NameVergessen::passwortTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld passwort
+bool NameVergessen::passwortTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld passwort
 {
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Press )
-        passwort->setSchowChar( '*' );
-    if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
-    {
-        passwort->removeStyle( TextFeld::Style::Fokus );
-        geheimnis->addStyle( TextFeld::Style::Fokus );
-        geheimnis->setAuswahl( 0, geheimnis->zText()->getLength() );
-    }
-    if( passwort->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Press)
+		passwort->setSchowChar('*');
+	if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
+	{
+		passwort->removeStyle(TextFeld::Style::Fokus);
+		geheimnis->addStyle(TextFeld::Style::Fokus);
+		geheimnis->setAuswahl(0, geheimnis->zText()->getLength());
+	}
+	if (passwort->zText()->getLength() >= 25 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool NameVergessen::geheimnisTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld geheimnis
+bool NameVergessen::geheimnisTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld geheimnis
 {
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Release && te.taste == T_Enter )
-    {
-        passwort->removeStyle( TextFeld::Style::Fokus );
-        MausEreignis me;
-        me.id = ME_RLinks;
-        weiterME( 0, me );
-    }
-    if( passwort->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Release && te.taste == T_Enter)
+	{
+		passwort->removeStyle(TextFeld::Style::Fokus);
+		MausEreignis me;
+		me.id = ME_RLinks;
+		weiterME(0, me);
+	}
+	if (passwort->zText()->getLength() >= 25 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool NameVergessen::weiterME( void *obj, MausEreignis me ) // MausEreignis im Knopf weiter
+bool NameVergessen::weiterME(void* obj, MausEreignis me) // MausEreignis im Knopf weiter
 {
-    if( me.id == ME_RLinks )
-    {
-        if( weiter->zText()->istGleich( "weiter" ) )
-        {
-            if( passwort->zText()->getLength() == 0 )
-                zeigeNachricht( "Bitte gebe dein Accountpasswort ein." );
-            if( geheimnis->zText()->getLength() == 0 )
-                zeigeNachricht( "Bitte gebe dein Accountgeheimnis ein." );
-            if( weiter->zText()->istGleich( "Ok" ) )
-                return 1;
-            new AktionsThread( 12, passwort->zText()->getText(), geheimnis->zText()->getText(), 0, 0, 0 );
-        }
-        else
-        {
-            Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-            fenster->setSize( 255, 140 );
-            fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 70 );
-            fenster->addStyle( Fenster::Style::Sichtbar );
-            nachricht->removeStyle( TextFeld::Style::Sichtbar );
-            weiter->setText( "weiter" );
-            weiter->setPosition( 75, 80 );
-            passwort->addStyle( TextFeld::Style::Sichtbar );
-            geheimnis->addStyle( TextFeld::Style::Sichtbar );
-            passwort->addStyle( TextFeld::Style::Fokus );
-            passwort->setAuswahl( 0, passwort->zText()->getLength() );
-        }
-    }
-    return 1;
+	if (me.id == ME_RLinks)
+	{
+		if (weiter->zText()->istGleich("weiter"))
+		{
+			if (passwort->zText()->getLength() == 0)
+				zeigeNachricht("Bitte gebe dein Accountpasswort ein.");
+			if (geheimnis->zText()->getLength() == 0)
+				zeigeNachricht("Bitte gebe dein Accountgeheimnis ein.");
+			if (weiter->zText()->istGleich("Ok"))
+				return 1;
+			new AktionsThread(12, passwort->zText()->getText(), geheimnis->zText()->getText(), 0, 0, 0);
+		}
+		else
+		{
+			Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+			fenster->setSize(255, 140);
+			fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 70);
+			fenster->addStyle(Fenster::Style::Sichtbar);
+			nachricht->removeStyle(TextFeld::Style::Sichtbar);
+			weiter->setText("weiter");
+			weiter->setPosition(75, 80);
+			passwort->addStyle(TextFeld::Style::Sichtbar);
+			geheimnis->addStyle(TextFeld::Style::Sichtbar);
+			passwort->addStyle(TextFeld::Style::Fokus);
+			passwort->setAuswahl(0, passwort->zText()->getLength());
+		}
+	}
+	return 1;
 }
 
-void NameVergessen::setResult( bool ret ) // Setzt den Returnwert
+void NameVergessen::setResult(bool ret) // Setzt den Returnwert
 {
-    if( ret )
-        zeigeNachricht( "Dir wurde eine E-Mail mit deinem Accountnamen geschickt." );
-    else if( lastError.getLength() )
-        zeigeNachricht( lastError );
-    else
-        zeigeNachricht( "Es ist ein Unbekannter Fehler aufgetreten." );
+	if (ret)
+		zeigeNachricht("Dir wurde eine E-Mail mit deinem Accountnamen geschickt.");
+	else if (lastError.getLength())
+		zeigeNachricht(lastError);
+	else
+		zeigeNachricht("Es ist ein Unbekannter Fehler aufgetreten.");
 }
 
 
 // messages
-bool nameVergessenNameVergessenME( void *p, void *obj, MausEreignis me )
+bool nameVergessenNameVergessenME(void* p, void* obj, MausEreignis me)
 {
-    if( !p )
-        return 0;
-    return ( (NameVergessen *)p )->nameVergessenME( obj, me );
+	if (!p)
+		return 0;
+	return ((NameVergessen*)p)->nameVergessenME(obj, me);
 }
 
-bool nameVergessenPasswortTE( void *p, void *obj, TastaturEreignis te )
+bool nameVergessenPasswortTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (NameVergessen *)p )->passwortTE( obj, te );
+	if (!p)
+		return 0;
+	return ((NameVergessen*)p)->passwortTE(obj, te);
 }
 
-bool nameVergessenGeheimnisTE( void *p, void *obj, TastaturEreignis te )
+bool nameVergessenGeheimnisTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (NameVergessen *)p )->geheimnisTE( obj, te );
+	if (!p)
+		return 0;
+	return ((NameVergessen*)p)->geheimnisTE(obj, te);
 }
 
-bool nameVergessenWeiterME( void *p, void *obj, MausEreignis me )
+bool nameVergessenWeiterME(void* p, void* obj, MausEreignis me)
 {
-    if( !p )
-        return 0;
-    return ( (NameVergessen *)p )->weiterME( obj, me );
+	if (!p)
+		return 0;
+	return ((NameVergessen*)p)->weiterME(obj, me);
 }

+ 475 - 475
KSGClient/VorLogin/Account verwalten/Passwort.cpp

@@ -7,573 +7,573 @@
 
 // Inhalt der PasswortÄndern Klasse aus Passwort.h
 // Konstruktor
-PasswortÄndern::PasswortÄndern( Fenster *zVorLoginFenster )
-    : ReferenceCounter()
-{
-    Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-    passwortÄndern = initKnopf( 10, 170, 130, 30, Knopf::Style::Sichtbar, "Passwort ändern" );
-    passwortÄndern->setMausEreignisParameter( this );
-    passwortÄndern->setMausEreignis( passwortÄndernPasswortÄndernME );
-    initToolTip( passwortÄndern, "Account Passwort ändern." );
-    zVorLoginFenster->addMember( dynamic_cast<Zeichnung *>( passwortÄndern->getThis() ) );
-    fenster = initFenster( bildschirmmitte.x - 125, bildschirmmitte.y - 115, 250, 230, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Passwort ändern" );
-    name = initTextFeld( 20, 20, 208, 20, TextFeld::Style::TextFeld, "Name" );
-    name->setTastaturEreignisParameter( this );
-    name->setTastaturEreignis( passwortÄndernNameTE );
-    initToolTip( name, "Account Name." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( name->getThis() ) );
-    passwort = initTextFeld( 20, 50, 208, 20, TextFeld::Style::TextFeld, "Passwort" );
-    passwort->setTastaturEreignisParameter( this );
-    passwort->setTastaturEreignis( passwortÄndernPasswortTE );
-    initToolTip( passwort, "Account Passwort." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( passwort->getThis() ) );
-    neuPasswort = initTextFeld( 20, 80, 208, 20, TextFeld::Style::TextFeld, "neues Passwort" );
-    neuPasswort->setTastaturEreignisParameter( this );
-    neuPasswort->setTastaturEreignis( passwortÄndernNeuPasswortTE );
-    initToolTip( neuPasswort, "Neues Account Passwort." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( neuPasswort->getThis() ) );
-    neuPasswort2 = initTextFeld( 20, 110, 208, 20, TextFeld::Style::TextFeld, "Passwort wiederholen" );
-    neuPasswort2->setTastaturEreignisParameter( this );
-    neuPasswort2->setTastaturEreignis( passwortÄndernNeuPasswort2TE );
-    initToolTip( neuPasswort2, "Neues Passwort Wiederhohlen." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( neuPasswort2->getThis() ) );
-    geheimnis = initTextFeld( 20, 140, 208, 20, TextFeld::Style::TextFeld, "Geheimis" );
-    geheimnis->setTastaturEreignisParameter( this );
-    geheimnis->setTastaturEreignis( passwortÄndernGeheimnisTE );
-    initToolTip( geheimnis, "Account Geheimnis." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( geheimnis->getThis() ) );
-    weiter = initKnopf( 74, 170, 100, 20, Knopf::Style::Sichtbar, "weiter" );
-    weiter->setMausEreignisParameter( this );
-    weiter->setMausEreignis( passwortÄndernWeiterME );
-    nachricht = initTextFeld( 0, 5, 255, 150, TextFeld::Style::HCenter | TextFeld::Style::Mehrzeilig, "" );
-    fenster->addMember( dynamic_cast<Zeichnung *>( nachricht->getThis() ) );
-    fenster->addMember( dynamic_cast<Zeichnung *>( weiter->getThis() ) );
-    zVorLoginFenster->addMember( dynamic_cast<Zeichnung *>( fenster->getThis() ) );
+PasswortÄndern::PasswortÄndern(Fenster* zVorLoginFenster)
+	: ReferenceCounter()
+{
+	Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+	passwortÄndern = initKnopf(10, 170, 130, 30, Knopf::Style::Sichtbar, "Passwort ändern");
+	passwortÄndern->setMausEreignisParameter(this);
+	passwortÄndern->setMausEreignis(passwortÄndernPasswortÄndernME);
+	initToolTip(passwortÄndern, "Account Passwort ändern.");
+	zVorLoginFenster->addMember(dynamic_cast<Zeichnung*>(passwortÄndern->getThis()));
+	fenster = initFenster(bildschirmmitte.x - 125, bildschirmmitte.y - 115, 250, 230, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Passwort ändern");
+	name = initTextFeld(20, 20, 208, 20, TextFeld::Style::TextFeld, "Name");
+	name->setTastaturEreignisParameter(this);
+	name->setTastaturEreignis(passwortÄndernNameTE);
+	initToolTip(name, "Account Name.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(name->getThis()));
+	passwort = initTextFeld(20, 50, 208, 20, TextFeld::Style::TextFeld, "Passwort");
+	passwort->setTastaturEreignisParameter(this);
+	passwort->setTastaturEreignis(passwortÄndernPasswortTE);
+	initToolTip(passwort, "Account Passwort.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(passwort->getThis()));
+	neuPasswort = initTextFeld(20, 80, 208, 20, TextFeld::Style::TextFeld, "neues Passwort");
+	neuPasswort->setTastaturEreignisParameter(this);
+	neuPasswort->setTastaturEreignis(passwortÄndernNeuPasswortTE);
+	initToolTip(neuPasswort, "Neues Account Passwort.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(neuPasswort->getThis()));
+	neuPasswort2 = initTextFeld(20, 110, 208, 20, TextFeld::Style::TextFeld, "Passwort wiederholen");
+	neuPasswort2->setTastaturEreignisParameter(this);
+	neuPasswort2->setTastaturEreignis(passwortÄndernNeuPasswort2TE);
+	initToolTip(neuPasswort2, "Neues Passwort Wiederhohlen.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(neuPasswort2->getThis()));
+	geheimnis = initTextFeld(20, 140, 208, 20, TextFeld::Style::TextFeld, "Geheimis");
+	geheimnis->setTastaturEreignisParameter(this);
+	geheimnis->setTastaturEreignis(passwortÄndernGeheimnisTE);
+	initToolTip(geheimnis, "Account Geheimnis.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(geheimnis->getThis()));
+	weiter = initKnopf(74, 170, 100, 20, Knopf::Style::Sichtbar, "weiter");
+	weiter->setMausEreignisParameter(this);
+	weiter->setMausEreignis(passwortÄndernWeiterME);
+	nachricht = initTextFeld(0, 5, 255, 150, TextFeld::Style::HCenter | TextFeld::Style::Mehrzeilig, "");
+	fenster->addMember(dynamic_cast<Zeichnung*>(nachricht->getThis()));
+	fenster->addMember(dynamic_cast<Zeichnung*>(weiter->getThis()));
+	zVorLoginFenster->addMember(dynamic_cast<Zeichnung*>(fenster->getThis()));
 }
 
 // Destruktor
 PasswortÄndern::~PasswortÄndern()
 {
-    if( passwortÄndern )
-        passwortÄndern = (Knopf *)passwortÄndern->release();
-    if( fenster )
-        fenster = (Fenster *)fenster->release();
-    if( name )
-        name = (TextFeld *)name->release();
-    if( passwort )
-        passwort = (TextFeld *)passwort->release();
-    if( neuPasswort )
-        neuPasswort = (TextFeld *)neuPasswort->release();
-    if( neuPasswort2 )
-        neuPasswort2 = (TextFeld *)neuPasswort2->release();
-    if( geheimnis )
-        geheimnis = (TextFeld *)geheimnis->release();
-    if( weiter )
-        weiter = (Knopf *)weiter->release();
-    if( nachricht )
-        nachricht = (TextFeld *)nachricht->release();
+	if (passwortÄndern)
+		passwortÄndern = (Knopf*)passwortÄndern->release();
+	if (fenster)
+		fenster = (Fenster*)fenster->release();
+	if (name)
+		name = (TextFeld*)name->release();
+	if (passwort)
+		passwort = (TextFeld*)passwort->release();
+	if (neuPasswort)
+		neuPasswort = (TextFeld*)neuPasswort->release();
+	if (neuPasswort2)
+		neuPasswort2 = (TextFeld*)neuPasswort2->release();
+	if (geheimnis)
+		geheimnis = (TextFeld*)geheimnis->release();
+	if (weiter)
+		weiter = (Knopf*)weiter->release();
+	if (nachricht)
+		nachricht = (TextFeld*)nachricht->release();
 }
 
 // Privat
-void PasswortÄndern::zeigeNachricht( const char *txt )
-{
-    Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-    name->removeStyle( TextFeld::Style::Sichtbar );
-    passwort->removeStyle( TextFeld::Style::Sichtbar );
-    neuPasswort->removeStyle( TextFeld::Style::Sichtbar );
-    neuPasswort2->removeStyle( TextFeld::Style::Sichtbar );
-    geheimnis->removeStyle( TextFeld::Style::Sichtbar );
-    fenster->setSize( 250, 150 );
-    fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 75 );
-    weiter->setPosition( 139, 100 );
-    weiter->setText( "Ok" );
-    nachricht->setText( txt );
-    if( nachricht->zText()->getLength() > 30 )
-    {
-        int pos = -1;
-        bool set = 0;
-        int lastp = 0;
-        for( int i = 20; i < nachricht->zText()->getLength(); )
-        {
-            char *tmp = &nachricht->zText()->getText()[ i ];
-            while( *tmp != ' ' && i < nachricht->zText()->getLength() )
-            {
-                tmp++;
-                i++;
-                if( i - 30 >= lastp )
-                {
-                    if( set )
-                    {
-                        lastp = pos;
-                        set = 0;
-                        nachricht->zText()->getText()[ pos ] = '\n';
-                    }
-                    else
-                        lastp += 5;
-                }
-            }
-            if( i < nachricht->zText()->getLength() )
-            {
-                pos = i;
-                set = 1;
-                tmp++;
-                i++;
-            }
-        }
-    }
-    nachricht->addStyle( TextFeld::Style::Sichtbar );
+void PasswortÄndern::zeigeNachricht(const char* txt)
+{
+	Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+	name->removeStyle(TextFeld::Style::Sichtbar);
+	passwort->removeStyle(TextFeld::Style::Sichtbar);
+	neuPasswort->removeStyle(TextFeld::Style::Sichtbar);
+	neuPasswort2->removeStyle(TextFeld::Style::Sichtbar);
+	geheimnis->removeStyle(TextFeld::Style::Sichtbar);
+	fenster->setSize(250, 150);
+	fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 75);
+	weiter->setPosition(139, 100);
+	weiter->setText("Ok");
+	nachricht->setText(txt);
+	if (nachricht->zText()->getLength() > 30)
+	{
+		int pos = -1;
+		bool set = 0;
+		int lastp = 0;
+		for (int i = 20; i < nachricht->zText()->getLength(); )
+		{
+			const char* tmp = &nachricht->zText()->getText()[i];
+			while (*tmp != ' ' && i < nachricht->zText()->getLength())
+			{
+				tmp++;
+				i++;
+				if (i - 30 >= lastp)
+				{
+					if (set)
+					{
+						lastp = pos;
+						set = 0;
+						((char*)nachricht->zText()->getText())[pos] = '\n';
+					}
+					else
+						lastp += 5;
+				}
+			}
+			if (i < nachricht->zText()->getLength())
+			{
+				pos = i;
+				set = 1;
+				tmp++;
+				i++;
+			}
+		}
+	}
+	nachricht->addStyle(TextFeld::Style::Sichtbar);
 }
 
 // Knopfdruck
 void PasswortÄndern::druckFremdKnopf() // Ein anderer Knopf wurde gedrückt
 {
-    fenster->removeStyle( Fenster::Style::Sichtbar );
-    passwortÄndern->setRahmenBreite( 2 );
-    passwortÄndern->setAlphaFeldFarbe( 0x5500FF00 );
-    passwortÄndern->setAlphaFeldStrength( -5 );
+	fenster->removeStyle(Fenster::Style::Sichtbar);
+	passwortÄndern->setRahmenBreite(2);
+	passwortÄndern->setAlphaFeldFarbe(0x5500FF00);
+	passwortÄndern->setAlphaFeldStrength(-5);
 }
 
-bool PasswortÄndern::passwortÄndernME( void *obj, MausEreignis me ) // MausEreignis im Knopf passwortVergessen
-{
-    if( me.id == ME_RLinks )
-    {
-        vorLogin->setPasswortÄndern();
-
-        passwortÄndern->setRahmenBreite( 3 );
-        passwortÄndern->setAlphaFeldFarbe( 0xFF000000 );
-        passwortÄndern->setAlphaFeldStrength( 20 );
-        Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-        fenster->setSize( 255, 230 );
-        fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 115 );
-        fenster->addStyle( Fenster::Style::Sichtbar );
-        nachricht->removeStyle( TextFeld::Style::Sichtbar );
-        weiter->setText( "weiter" );
-        weiter->setPosition( 75, 170 );
-        name->addStyle( TextFeld::Style::Sichtbar );
-        passwort->addStyle( TextFeld::Style::Sichtbar );
-        neuPasswort->addStyle( TextFeld::Style::Sichtbar );
-        neuPasswort2->addStyle( TextFeld::Style::Sichtbar );
-        geheimnis->addStyle( TextFeld::Style::Sichtbar );
-        name->addStyle( TextFeld::Style::Fokus );
-        name->setAuswahl( 0, name->zText()->getLength() );
-    }
-    return 1;
+bool PasswortÄndern::passwortÄndernME(void* obj, MausEreignis me) // MausEreignis im Knopf passwortVergessen
+{
+	if (me.id == ME_RLinks)
+	{
+		vorLogin->setPasswortÄndern();
+
+		passwortÄndern->setRahmenBreite(3);
+		passwortÄndern->setAlphaFeldFarbe(0xFF000000);
+		passwortÄndern->setAlphaFeldStrength(20);
+		Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+		fenster->setSize(255, 230);
+		fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 115);
+		fenster->addStyle(Fenster::Style::Sichtbar);
+		nachricht->removeStyle(TextFeld::Style::Sichtbar);
+		weiter->setText("weiter");
+		weiter->setPosition(75, 170);
+		name->addStyle(TextFeld::Style::Sichtbar);
+		passwort->addStyle(TextFeld::Style::Sichtbar);
+		neuPasswort->addStyle(TextFeld::Style::Sichtbar);
+		neuPasswort2->addStyle(TextFeld::Style::Sichtbar);
+		geheimnis->addStyle(TextFeld::Style::Sichtbar);
+		name->addStyle(TextFeld::Style::Fokus);
+		name->setAuswahl(0, name->zText()->getLength());
+	}
+	return 1;
 }
 
-bool PasswortÄndern::nameTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld name
-{
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
-    {
-        name->removeStyle( TextFeld::Style::Fokus );
-        passwort->addStyle( TextFeld::Style::Fokus );
-        passwort->setAuswahl( 0, passwort->zText()->getLength() );
-    }
-    if( name->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+bool PasswortÄndern::nameTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld name
+{
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
+	{
+		name->removeStyle(TextFeld::Style::Fokus);
+		passwort->addStyle(TextFeld::Style::Fokus);
+		passwort->setAuswahl(0, passwort->zText()->getLength());
+	}
+	if (name->zText()->getLength() >= 25 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool PasswortÄndern::passwortTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld passwort
-{
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Press )
-        passwort->setSchowChar( '*' );
-    if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
-    {
-        passwort->removeStyle( TextFeld::Style::Fokus );
-        neuPasswort->addStyle( TextFeld::Style::Fokus );
-        neuPasswort->setAuswahl( 0, neuPasswort->zText()->getLength() );
-    }
-    if( passwort->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+bool PasswortÄndern::passwortTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld passwort
+{
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Press)
+		passwort->setSchowChar('*');
+	if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
+	{
+		passwort->removeStyle(TextFeld::Style::Fokus);
+		neuPasswort->addStyle(TextFeld::Style::Fokus);
+		neuPasswort->setAuswahl(0, neuPasswort->zText()->getLength());
+	}
+	if (passwort->zText()->getLength() >= 25 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool PasswortÄndern::neuPasswortTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld neuPasswort
-{
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Press )
-        neuPasswort->setSchowChar( '*' );
-    if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
-    {
-        neuPasswort->removeStyle( TextFeld::Style::Fokus );
-        neuPasswort2->addStyle( TextFeld::Style::Fokus );
-        neuPasswort2->setAuswahl( 0, neuPasswort2->zText()->getLength() );
-    }
-    if( neuPasswort->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+bool PasswortÄndern::neuPasswortTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld neuPasswort
+{
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Press)
+		neuPasswort->setSchowChar('*');
+	if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
+	{
+		neuPasswort->removeStyle(TextFeld::Style::Fokus);
+		neuPasswort2->addStyle(TextFeld::Style::Fokus);
+		neuPasswort2->setAuswahl(0, neuPasswort2->zText()->getLength());
+	}
+	if (neuPasswort->zText()->getLength() >= 25 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool PasswortÄndern::neuPasswort2TE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld neuPasswort2
-{
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Press )
-        neuPasswort2->setSchowChar( '*' );
-    if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
-    {
-        neuPasswort2->removeStyle( TextFeld::Style::Fokus );
-        geheimnis->addStyle( TextFeld::Style::Fokus );
-        geheimnis->setAuswahl( 0, geheimnis->zText()->getLength() );
-    }
-    if( neuPasswort2->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+bool PasswortÄndern::neuPasswort2TE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld neuPasswort2
+{
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Press)
+		neuPasswort2->setSchowChar('*');
+	if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
+	{
+		neuPasswort2->removeStyle(TextFeld::Style::Fokus);
+		geheimnis->addStyle(TextFeld::Style::Fokus);
+		geheimnis->setAuswahl(0, geheimnis->zText()->getLength());
+	}
+	if (neuPasswort2->zText()->getLength() >= 25 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool PasswortÄndern::geheimnisTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld geheimnis
-{
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Press )
-        geheimnis->setSchowChar( '*' );
-    if( te.id == TE_Release && te.taste == T_Enter )
-    {
-        geheimnis->removeStyle( TextFeld::Style::Fokus );
-        MausEreignis me;
-        me.id = ME_RLinks;
-        weiterME( 0, me );
-    }
-    if( geheimnis->zText()->getLength() >= 50 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+bool PasswortÄndern::geheimnisTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld geheimnis
+{
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Press)
+		geheimnis->setSchowChar('*');
+	if (te.id == TE_Release && te.taste == T_Enter)
+	{
+		geheimnis->removeStyle(TextFeld::Style::Fokus);
+		MausEreignis me;
+		me.id = ME_RLinks;
+		weiterME(0, me);
+	}
+	if (geheimnis->zText()->getLength() >= 50 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool PasswortÄndern::weiterME( void *obj, MausEreignis me ) // MausEreignis im Knopf weiter
-{
-    if( me.id == ME_RLinks )
-    {
-        if( weiter->zText()->istGleich( "weiter" ) )
-        {
-            if( name->zText()->getLength() == 0 )
-                zeigeNachricht( "Bitte gebe deinen Accountnamen ein." );
-            if( passwort->zText()->getLength() == 0 )
-                zeigeNachricht( "Bitte gebe dein Accountpasswort ein." );
-            if( neuPasswort->zText()->getLength() == 0 )
-                zeigeNachricht( "Bitte gebe ein neues Passwort ein." );
-            if( geheimnis->zText()->getLength() == 0 )
-                zeigeNachricht( "Bitte gebe dein Accountgeheimnis ein." );
-            if( !neuPasswort2->zText()->istGleich( neuPasswort->zText()->getText() ) )
-                zeigeNachricht( "Das wiederhohlte Passwort stimmt nicht mit dem neuen Passwort überein." );
-            if( weiter->zText()->istGleich( "Ok" ) )
-                return 1;
-            new AktionsThread( 13, name->zText()->getText(), passwort->zText()->getText(), geheimnis->zText()->getText(), neuPasswort->zText()->getText(), 0 );
-        }
-        else
-        {
-            Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-            fenster->setSize( 255, 230 );
-            fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 115 );
-            fenster->addStyle( Fenster::Style::Sichtbar );
-            nachricht->removeStyle( TextFeld::Style::Sichtbar );
-            weiter->setText( "weiter" );
-            weiter->setPosition( 75, 170 );
-            name->addStyle( TextFeld::Style::Sichtbar );
-            passwort->addStyle( TextFeld::Style::Sichtbar );
-            neuPasswort->addStyle( TextFeld::Style::Sichtbar );
-            neuPasswort2->addStyle( TextFeld::Style::Sichtbar );
-            geheimnis->addStyle( TextFeld::Style::Sichtbar );
-            name->addStyle( TextFeld::Style::Fokus );
-            name->setAuswahl( 0, name->zText()->getLength() );
-        }
-    }
-    return 1;
+bool PasswortÄndern::weiterME(void* obj, MausEreignis me) // MausEreignis im Knopf weiter
+{
+	if (me.id == ME_RLinks)
+	{
+		if (weiter->zText()->istGleich("weiter"))
+		{
+			if (name->zText()->getLength() == 0)
+				zeigeNachricht("Bitte gebe deinen Accountnamen ein.");
+			if (passwort->zText()->getLength() == 0)
+				zeigeNachricht("Bitte gebe dein Accountpasswort ein.");
+			if (neuPasswort->zText()->getLength() == 0)
+				zeigeNachricht("Bitte gebe ein neues Passwort ein.");
+			if (geheimnis->zText()->getLength() == 0)
+				zeigeNachricht("Bitte gebe dein Accountgeheimnis ein.");
+			if (!neuPasswort2->zText()->istGleich(neuPasswort->zText()->getText()))
+				zeigeNachricht("Das wiederhohlte Passwort stimmt nicht mit dem neuen Passwort überein.");
+			if (weiter->zText()->istGleich("Ok"))
+				return 1;
+			new AktionsThread(13, name->zText()->getText(), passwort->zText()->getText(), geheimnis->zText()->getText(), neuPasswort->zText()->getText(), 0);
+		}
+		else
+		{
+			Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+			fenster->setSize(255, 230);
+			fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 115);
+			fenster->addStyle(Fenster::Style::Sichtbar);
+			nachricht->removeStyle(TextFeld::Style::Sichtbar);
+			weiter->setText("weiter");
+			weiter->setPosition(75, 170);
+			name->addStyle(TextFeld::Style::Sichtbar);
+			passwort->addStyle(TextFeld::Style::Sichtbar);
+			neuPasswort->addStyle(TextFeld::Style::Sichtbar);
+			neuPasswort2->addStyle(TextFeld::Style::Sichtbar);
+			geheimnis->addStyle(TextFeld::Style::Sichtbar);
+			name->addStyle(TextFeld::Style::Fokus);
+			name->setAuswahl(0, name->zText()->getLength());
+		}
+	}
+	return 1;
 }
 
-void PasswortÄndern::setResult( bool ret ) // Setzt den Returnwert
+void PasswortÄndern::setResult(bool ret) // Setzt den Returnwert
 {
-    if( ret )
-        zeigeNachricht( "Passwort erfolgreich geändert." );
-    else if( lastError.getLength() )
-        zeigeNachricht( lastError );
-    else
-        zeigeNachricht( "Es ist ein Unbekannter Fehler aufgetreten." );
+	if (ret)
+		zeigeNachricht("Passwort erfolgreich geändert.");
+	else if (lastError.getLength())
+		zeigeNachricht(lastError);
+	else
+		zeigeNachricht("Es ist ein Unbekannter Fehler aufgetreten.");
 }
 
 
 // Inhalt der PasswortVergessen Klasse aus Passwort.h
 // Konstruktor
-PasswortVergessen::PasswortVergessen( Fenster *zVorLoginFenster )
-    : ReferenceCounter()
-{
-    Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-    passwortVergessen = initKnopf( 10, 330, 130, 30, Knopf::Style::Sichtbar, "Passwort vergessen" );
-    passwortVergessen->setMausEreignisParameter( this );
-    passwortVergessen->setMausEreignis( passwortVergessenPasswortVergessenME );
-    initToolTip( passwortVergessen, "Account Passwort per E-Mail senden." );
-    zVorLoginFenster->addMember( dynamic_cast<Zeichnung *>( passwortVergessen->getThis() ) );
-    fenster = initFenster( bildschirmmitte.x - 125, bildschirmmitte.y - 70, 250, 140, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Passwort vergessen" );
-    name = initTextFeld( 20, 20, 208, 20, TextFeld::Style::TextFeld, "Name" );
-    name->setTastaturEreignisParameter( this );
-    name->setTastaturEreignis( passwortVergessenNameTE );
-    initToolTip( name, "Account Name." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( name->getThis() ) );
-    geheimnis = initTextFeld( 20, 50, 208, 20, TextFeld::Style::TextFeld, "Geheimis" );
-    geheimnis->setTastaturEreignisParameter( this );
-    geheimnis->setTastaturEreignis( passwortVergessenGeheimnisTE );
-    initToolTip( geheimnis, "Account geheimnis." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( geheimnis->getThis() ) );
-    weiter = initKnopf( 74, 80, 100, 20, Knopf::Style::Sichtbar, "weiter" );
-    weiter->setMausEreignisParameter( this );
-    weiter->setMausEreignis( passwortVergessenWeiterME );
-    nachricht = initTextFeld( 0, 5, 255, 150, TextFeld::Style::HCenter | TextFeld::Style::Mehrzeilig, "" );
-    fenster->addMember( dynamic_cast<Zeichnung *>( nachricht->getThis() ) );
-    fenster->addMember( dynamic_cast<Zeichnung *>( weiter->getThis() ) );
-    zVorLoginFenster->addMember( dynamic_cast<Zeichnung *>( fenster->getThis() ) );
+PasswortVergessen::PasswortVergessen(Fenster* zVorLoginFenster)
+	: ReferenceCounter()
+{
+	Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+	passwortVergessen = initKnopf(10, 330, 130, 30, Knopf::Style::Sichtbar, "Passwort vergessen");
+	passwortVergessen->setMausEreignisParameter(this);
+	passwortVergessen->setMausEreignis(passwortVergessenPasswortVergessenME);
+	initToolTip(passwortVergessen, "Account Passwort per E-Mail senden.");
+	zVorLoginFenster->addMember(dynamic_cast<Zeichnung*>(passwortVergessen->getThis()));
+	fenster = initFenster(bildschirmmitte.x - 125, bildschirmmitte.y - 70, 250, 140, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Passwort vergessen");
+	name = initTextFeld(20, 20, 208, 20, TextFeld::Style::TextFeld, "Name");
+	name->setTastaturEreignisParameter(this);
+	name->setTastaturEreignis(passwortVergessenNameTE);
+	initToolTip(name, "Account Name.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(name->getThis()));
+	geheimnis = initTextFeld(20, 50, 208, 20, TextFeld::Style::TextFeld, "Geheimis");
+	geheimnis->setTastaturEreignisParameter(this);
+	geheimnis->setTastaturEreignis(passwortVergessenGeheimnisTE);
+	initToolTip(geheimnis, "Account geheimnis.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(geheimnis->getThis()));
+	weiter = initKnopf(74, 80, 100, 20, Knopf::Style::Sichtbar, "weiter");
+	weiter->setMausEreignisParameter(this);
+	weiter->setMausEreignis(passwortVergessenWeiterME);
+	nachricht = initTextFeld(0, 5, 255, 150, TextFeld::Style::HCenter | TextFeld::Style::Mehrzeilig, "");
+	fenster->addMember(dynamic_cast<Zeichnung*>(nachricht->getThis()));
+	fenster->addMember(dynamic_cast<Zeichnung*>(weiter->getThis()));
+	zVorLoginFenster->addMember(dynamic_cast<Zeichnung*>(fenster->getThis()));
 }
 
 // Destruktor
 PasswortVergessen::~PasswortVergessen()
 {
-    if( passwortVergessen )
-        passwortVergessen = (Knopf *)passwortVergessen->release();
-    if( fenster )
-        fenster = (Fenster *)fenster->release();
-    if( name )
-        name = (TextFeld *)name->release();
-    if( geheimnis )
-        geheimnis = (TextFeld *)geheimnis->release();
-    if( weiter )
-        weiter = (Knopf *)weiter->release();
-    if( nachricht )
-        nachricht = (TextFeld *)nachricht->release();
+	if (passwortVergessen)
+		passwortVergessen = (Knopf*)passwortVergessen->release();
+	if (fenster)
+		fenster = (Fenster*)fenster->release();
+	if (name)
+		name = (TextFeld*)name->release();
+	if (geheimnis)
+		geheimnis = (TextFeld*)geheimnis->release();
+	if (weiter)
+		weiter = (Knopf*)weiter->release();
+	if (nachricht)
+		nachricht = (TextFeld*)nachricht->release();
 }
 
 // Privat
-void PasswortVergessen::zeigeNachricht( const char *txt )
-{
-    Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-    name->removeStyle( TextFeld::Style::Sichtbar );
-    geheimnis->removeStyle( TextFeld::Style::Sichtbar );
-    fenster->setSize( 250, 150 );
-    fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 75 );
-    weiter->setPosition( 139, 100 );
-    weiter->setText( "Ok" );
-    nachricht->setText( txt );
-    if( nachricht->zText()->getLength() > 30 )
-    {
-        int pos = -1;
-        bool set = 0;
-        int lastp = 0;
-        for( int i = 20; i < nachricht->zText()->getLength(); )
-        {
-            char *tmp = &nachricht->zText()->getText()[ i ];
-            while( *tmp != ' ' && i < nachricht->zText()->getLength() )
-            {
-                tmp++;
-                i++;
-                if( i - 30 >= lastp )
-                {
-                    if( set )
-                    {
-                        lastp = pos;
-                        set = 0;
-                        nachricht->zText()->getText()[ pos ] = '\n';
-                    }
-                    else
-                        lastp += 5;
-                }
-            }
-            if( i < nachricht->zText()->getLength() )
-            {
-                pos = i;
-                set = 1;
-                tmp++;
-                i++;
-            }
-        }
-    }
-    nachricht->addStyle( TextFeld::Style::Sichtbar );
+void PasswortVergessen::zeigeNachricht(const char* txt)
+{
+	Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+	name->removeStyle(TextFeld::Style::Sichtbar);
+	geheimnis->removeStyle(TextFeld::Style::Sichtbar);
+	fenster->setSize(250, 150);
+	fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 75);
+	weiter->setPosition(139, 100);
+	weiter->setText("Ok");
+	nachricht->setText(txt);
+	if (nachricht->zText()->getLength() > 30)
+	{
+		int pos = -1;
+		bool set = 0;
+		int lastp = 0;
+		for (int i = 20; i < nachricht->zText()->getLength(); )
+		{
+			const char* tmp = &nachricht->zText()->getText()[i];
+			while (*tmp != ' ' && i < nachricht->zText()->getLength())
+			{
+				tmp++;
+				i++;
+				if (i - 30 >= lastp)
+				{
+					if (set)
+					{
+						lastp = pos;
+						set = 0;
+						((char*)nachricht->zText()->getText())[pos] = '\n';
+					}
+					else
+						lastp += 5;
+				}
+			}
+			if (i < nachricht->zText()->getLength())
+			{
+				pos = i;
+				set = 1;
+				tmp++;
+				i++;
+			}
+		}
+	}
+	nachricht->addStyle(TextFeld::Style::Sichtbar);
 }
 
 // Knopfdruck
 void PasswortVergessen::druckFremdKnopf() // Ein anderer Knopf wurde gedrückt
 {
-    fenster->removeStyle( Fenster::Style::Sichtbar );
-    passwortVergessen->setRahmenBreite( 2 );
-    passwortVergessen->setAlphaFeldFarbe( 0x5500FF00 );
-    passwortVergessen->setAlphaFeldStrength( -5 );
+	fenster->removeStyle(Fenster::Style::Sichtbar);
+	passwortVergessen->setRahmenBreite(2);
+	passwortVergessen->setAlphaFeldFarbe(0x5500FF00);
+	passwortVergessen->setAlphaFeldStrength(-5);
 }
 
-bool PasswortVergessen::passwortVergessenME( void *obj, MausEreignis me ) // MausEreignis im Knopf passwortVergessen
-{
-    if( me.id == ME_RLinks )
-    {
-        vorLogin->setPasswortVergessen();
-
-        passwortVergessen->setRahmenBreite( 3 );
-        passwortVergessen->setAlphaFeldFarbe( 0xFF000000 );
-        passwortVergessen->setAlphaFeldStrength( 20 );
-        Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-        fenster->setSize( 255, 140 );
-        fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 70 );
-        fenster->addStyle( Fenster::Style::Sichtbar );
-        nachricht->removeStyle( TextFeld::Style::Sichtbar );
-        weiter->setText( "weiter" );
-        weiter->setPosition( 75, 80 );
-        name->addStyle( TextFeld::Style::Sichtbar );
-        geheimnis->addStyle( TextFeld::Style::Sichtbar );
-        name->addStyle( TextFeld::Style::Fokus );
-        name->setAuswahl( 0, name->zText()->getLength() );
-    }
-    return 1;
+bool PasswortVergessen::passwortVergessenME(void* obj, MausEreignis me) // MausEreignis im Knopf passwortVergessen
+{
+	if (me.id == ME_RLinks)
+	{
+		vorLogin->setPasswortVergessen();
+
+		passwortVergessen->setRahmenBreite(3);
+		passwortVergessen->setAlphaFeldFarbe(0xFF000000);
+		passwortVergessen->setAlphaFeldStrength(20);
+		Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+		fenster->setSize(255, 140);
+		fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 70);
+		fenster->addStyle(Fenster::Style::Sichtbar);
+		nachricht->removeStyle(TextFeld::Style::Sichtbar);
+		weiter->setText("weiter");
+		weiter->setPosition(75, 80);
+		name->addStyle(TextFeld::Style::Sichtbar);
+		geheimnis->addStyle(TextFeld::Style::Sichtbar);
+		name->addStyle(TextFeld::Style::Fokus);
+		name->setAuswahl(0, name->zText()->getLength());
+	}
+	return 1;
 }
 
-bool PasswortVergessen::nameTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld name
-{
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
-    {
-        name->removeStyle( TextFeld::Style::Fokus );
-        geheimnis->addStyle( TextFeld::Style::Fokus );
-        geheimnis->setAuswahl( 0, geheimnis->zText()->getLength() );
-    }
-    if( name->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+bool PasswortVergessen::nameTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld name
+{
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
+	{
+		name->removeStyle(TextFeld::Style::Fokus);
+		geheimnis->addStyle(TextFeld::Style::Fokus);
+		geheimnis->setAuswahl(0, geheimnis->zText()->getLength());
+	}
+	if (name->zText()->getLength() >= 25 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool PasswortVergessen::geheimnisTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld geheimnis
-{
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Press )
-        geheimnis->setSchowChar( '*' );
-    if( te.id == TE_Release && te.taste == T_Enter )
-    {
-        geheimnis->removeStyle( TextFeld::Style::Fokus );
-        MausEreignis me;
-        me.id = ME_RLinks;
-        weiterME( 0, me );
-    }
-    if( geheimnis->zText()->getLength() >= 50 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+bool PasswortVergessen::geheimnisTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld geheimnis
+{
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Press)
+		geheimnis->setSchowChar('*');
+	if (te.id == TE_Release && te.taste == T_Enter)
+	{
+		geheimnis->removeStyle(TextFeld::Style::Fokus);
+		MausEreignis me;
+		me.id = ME_RLinks;
+		weiterME(0, me);
+	}
+	if (geheimnis->zText()->getLength() >= 50 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool PasswortVergessen::weiterME( void *obj, MausEreignis me ) // MausEreignis im Knopf weiter
-{
-    if( me.id == ME_RLinks )
-    {
-        if( weiter->zText()->istGleich( "weiter" ) )
-        {
-            if( name->zText()->getLength() == 0 )
-                zeigeNachricht( "Bitte gebe deinen Accountnamen ein." );
-            if( geheimnis->zText()->getLength() == 0 )
-                zeigeNachricht( "Bitte gebe dein Accountgeheimnis ein." );
-            if( weiter->zText()->istGleich( "Ok" ) )
-                return 1;
-            new AktionsThread( 14, name->zText()->getText(), geheimnis->zText()->getText(), 0, 0, 0 );
-        }
-        else
-        {
-            Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-            fenster->setSize( 255, 140 );
-            fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 70 );
-            fenster->addStyle( Fenster::Style::Sichtbar );
-            nachricht->removeStyle( TextFeld::Style::Sichtbar );
-            weiter->setText( "weiter" );
-            weiter->setPosition( 75, 80 );
-            name->addStyle( TextFeld::Style::Sichtbar );
-            geheimnis->addStyle( TextFeld::Style::Sichtbar );
-            name->addStyle( TextFeld::Style::Fokus );
-            name->setAuswahl( 0, name->zText()->getLength() );
-        }
-    }
-    return 1;
+bool PasswortVergessen::weiterME(void* obj, MausEreignis me) // MausEreignis im Knopf weiter
+{
+	if (me.id == ME_RLinks)
+	{
+		if (weiter->zText()->istGleich("weiter"))
+		{
+			if (name->zText()->getLength() == 0)
+				zeigeNachricht("Bitte gebe deinen Accountnamen ein.");
+			if (geheimnis->zText()->getLength() == 0)
+				zeigeNachricht("Bitte gebe dein Accountgeheimnis ein.");
+			if (weiter->zText()->istGleich("Ok"))
+				return 1;
+			new AktionsThread(14, name->zText()->getText(), geheimnis->zText()->getText(), 0, 0, 0);
+		}
+		else
+		{
+			Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+			fenster->setSize(255, 140);
+			fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 70);
+			fenster->addStyle(Fenster::Style::Sichtbar);
+			nachricht->removeStyle(TextFeld::Style::Sichtbar);
+			weiter->setText("weiter");
+			weiter->setPosition(75, 80);
+			name->addStyle(TextFeld::Style::Sichtbar);
+			geheimnis->addStyle(TextFeld::Style::Sichtbar);
+			name->addStyle(TextFeld::Style::Fokus);
+			name->setAuswahl(0, name->zText()->getLength());
+		}
+	}
+	return 1;
 }
 
-void PasswortVergessen::setResult( bool ret ) // Setzt den Returnwert
+void PasswortVergessen::setResult(bool ret) // Setzt den Returnwert
 {
-    if( ret )
-        zeigeNachricht( "Dir wurde eine E-Mail mit deinem Accountpasswort gesendet." );
-    else if( lastError.getLength() )
-        zeigeNachricht( lastError );
-    else
-        zeigeNachricht( "Es ist ein Unbekannter Fehler aufgetreten." );
+	if (ret)
+		zeigeNachricht("Dir wurde eine E-Mail mit deinem Accountpasswort gesendet.");
+	else if (lastError.getLength())
+		zeigeNachricht(lastError);
+	else
+		zeigeNachricht("Es ist ein Unbekannter Fehler aufgetreten.");
 }
 
 // messages
-bool passwortÄndernPasswortÄndernME( void *p, void *obj, MausEreignis me )
+bool passwortÄndernPasswortÄndernME(void* p, void* obj, MausEreignis me)
 {
-    if( !p )
-        return 0;
-    return ( (PasswortÄndern *)p )->passwortÄndernME( obj, me );
+	if (!p)
+		return 0;
+	return ((PasswortÄndern*)p)->passwortÄndernME(obj, me);
 }
 
-bool passwortÄndernNameTE( void *p, void *obj, TastaturEreignis te )
+bool passwortÄndernNameTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (PasswortÄndern *)p )->nameTE( obj, te );
+	if (!p)
+		return 0;
+	return ((PasswortÄndern*)p)->nameTE(obj, te);
 }
 
-bool passwortÄndernPasswortTE( void *p, void *obj, TastaturEreignis te )
+bool passwortÄndernPasswortTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (PasswortÄndern *)p )->passwortTE( obj, te );
+	if (!p)
+		return 0;
+	return ((PasswortÄndern*)p)->passwortTE(obj, te);
 }
 
-bool passwortÄndernNeuPasswortTE( void *p, void *obj, TastaturEreignis te )
+bool passwortÄndernNeuPasswortTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (PasswortÄndern *)p )->neuPasswortTE( obj, te );
+	if (!p)
+		return 0;
+	return ((PasswortÄndern*)p)->neuPasswortTE(obj, te);
 }
 
-bool passwortÄndernNeuPasswort2TE( void *p, void *obj, TastaturEreignis te )
+bool passwortÄndernNeuPasswort2TE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (PasswortÄndern *)p )->neuPasswort2TE( obj, te );
+	if (!p)
+		return 0;
+	return ((PasswortÄndern*)p)->neuPasswort2TE(obj, te);
 }
 
-bool passwortÄndernGeheimnisTE( void *p, void *obj, TastaturEreignis te )
+bool passwortÄndernGeheimnisTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (PasswortÄndern *)p )->geheimnisTE( obj, te );
+	if (!p)
+		return 0;
+	return ((PasswortÄndern*)p)->geheimnisTE(obj, te);
 }
 
-bool passwortÄndernWeiterME( void *p, void *obj, MausEreignis me )
+bool passwortÄndernWeiterME(void* p, void* obj, MausEreignis me)
 {
-    if( !p )
-        return 0;
-    return ( (PasswortÄndern *)p )->weiterME( obj, me );
+	if (!p)
+		return 0;
+	return ((PasswortÄndern*)p)->weiterME(obj, me);
 }
 
 
-bool passwortVergessenPasswortVergessenME( void *p, void *obj, MausEreignis me )
+bool passwortVergessenPasswortVergessenME(void* p, void* obj, MausEreignis me)
 {
-    if( !p )
-        return 0;
-    return ( (PasswortVergessen *)p )->passwortVergessenME( obj, me );
+	if (!p)
+		return 0;
+	return ((PasswortVergessen*)p)->passwortVergessenME(obj, me);
 }
 
-bool passwortVergessenNameTE( void *p, void *obj, TastaturEreignis te )
+bool passwortVergessenNameTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (PasswortVergessen *)p )->nameTE( obj, te );
+	if (!p)
+		return 0;
+	return ((PasswortVergessen*)p)->nameTE(obj, te);
 }
 
-bool passwortVergessenGeheimnisTE( void *p, void *obj, TastaturEreignis te )
+bool passwortVergessenGeheimnisTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (PasswortVergessen *)p )->geheimnisTE( obj, te );
+	if (!p)
+		return 0;
+	return ((PasswortVergessen*)p)->geheimnisTE(obj, te);
 }
 
-bool passwortVergessenWeiterME( void *p, void *obj, MausEreignis me )
+bool passwortVergessenWeiterME(void* p, void* obj, MausEreignis me)
 {
-    if( !p )
-        return 0;
-    return ( (PasswortVergessen *)p )->weiterME( obj, me );
+	if (!p)
+		return 0;
+	return ((PasswortVergessen*)p)->weiterME(obj, me);
 }

+ 388 - 388
KSGClient/VorLogin/Account verwalten/Registrierung.cpp

@@ -8,454 +8,454 @@
 
 // Inhalt der Registrierung Klasse aus Registrierung.h
 // Konstruktor 
-Registrierung::Registrierung( Fenster *zVorLoginFenster )
-    : ReferenceCounter()
+Registrierung::Registrierung(Fenster* zVorLoginFenster)
+	: ReferenceCounter()
 {
-    Punkt bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
-    registrierung = initKnopf( 10, 90, 130, 30, Knopf::Style::Sichtbar, "Registrieren" );
-    registrierung->setMausEreignisParameter( this );
-    registrierung->setMausEreignis( registrierungRegistrierungME );
-    initToolTip( registrierung, "Account erstellen." );
-    zVorLoginFenster->addMember( dynamic_cast<Zeichnung *>( registrierung->getThis() ) );
-    fenster = initFenster( bildschirmGröße.x / 2 - 175, bildschirmGröße.y / 2 - 131, 350, 262, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Account erstellen" );
-    name = initTextFeld( 74, 20, 200, 20, TextFeld::Style::TextFeld, "Account Name" );
-    name->setTastaturEreignisParameter( this );
-    name->setTastaturEreignis( registrierungNameTE );
-    initToolTip( name, "Account Name." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( name->getThis() ) );
-    passwort = initTextFeld( 74, 50, 200, 20, TextFeld::Style::TextFeld, "Account Passwort" );
-    passwort->setTastaturEreignisParameter( this );
-    passwort->setTastaturEreignis( registrierungPasswortTE );
-    initToolTip( passwort, "Account Passwort." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( passwort->getThis() ) );
-    passwort2 = initTextFeld( 74, 80, 200, 20, TextFeld::Style::TextFeld, "Passwort wiederholen" );
-    passwort2->setTastaturEreignisParameter( this );
-    passwort2->setTastaturEreignis( registrierungPasswort2TE );
-    initToolTip( passwort2, "Account Passwort wiederhohlen." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( passwort2->getThis() ) );
-    geheimnis = initTextFeld( 10, 110, 328, 20, TextFeld::Style::TextFeld, "Account Geheimnis" );
-    geheimnis->setTastaturEreignisParameter( this );
-    geheimnis->setTastaturEreignis( registrierungGeheimnisTE );
-    initToolTip( geheimnis, "Gib etwas ein, was nur du jederzeit weißt.\n(zweites sicherheitspasswort Passwort)" );
-    fenster->addMember( dynamic_cast<Zeichnung *>( geheimnis->getThis() ) );
-    eMail = initTextFeld( 74, 140, 200, 20, TextFeld::Style::TextFeld, "E-Mail Addresse" );
-    eMail->setTastaturEreignisParameter( this );
-    eMail->setTastaturEreignis( registrierungEMailTE );
-    initToolTip( eMail, "E-Mail Addresse." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( eMail->getThis() ) );
-    geburtsdatum = initTextFeld( 40, 170, 85, 20, TextFeld::Style::Text, "Geburtsdatum:" );
-    fenster->addMember( dynamic_cast<Zeichnung *>( geburtsdatum->getThis() ) );
-    text = initTextFeld( 0, 5, 250, 150, TextFeld::Style::Mehrzeilig | TextFeld::Style::HCenter, "" );
-    fenster->addMember( dynamic_cast<Zeichnung *>( text->getThis() ) );
-    gbdTag = initAuswahlBox( 130, 167, 50, 20, AuswahlBox::Style::Sichtbar | AuswahlBox::Style::Erlaubt | AuswahlBox::Style::Rahmen | AuswahlBox::Style::MausBuffer | AuswahlBox::Style::AuswahlBuffer | AuswahlBox::Style::MaxHeight | AuswahlBox::Style::VScroll | AuswahlBox::Style::Hintergrund, {} );
-    gbdTag->addEintrag( "Tag" );
-    for( int i = 0; i < 31; i++ )
-    {
-        Text *txt = new Text( "" );
-        txt->append( i + 1 );
-        gbdTag->addEintrag( txt );
-    }
-    gbdMonat = initAuswahlBox( 185, 167, 65, 20, AuswahlBox::Style::Sichtbar | AuswahlBox::Style::Erlaubt | AuswahlBox::Style::Rahmen | AuswahlBox::Style::MausBuffer | AuswahlBox::Style::AuswahlBuffer | AuswahlBox::Style::MaxHeight | AuswahlBox::Style::VScroll | AuswahlBox::Style::Hintergrund, {} );
-    gbdMonat->addEintrag( "Monat" );
-    for( int i = 0; i < 12; i++ )
-    {
-        Text *txt = new Text( "" );
-        txt->append( i + 1 );
-        gbdMonat->addEintrag( txt );
-    }
-    gbdJahr = initAuswahlBox( 255, 176, 55, 20, AuswahlBox::Style::Sichtbar | AuswahlBox::Style::Erlaubt | AuswahlBox::Style::Rahmen | AuswahlBox::Style::MausBuffer | AuswahlBox::Style::AuswahlBuffer | AuswahlBox::Style::MaxHeight | AuswahlBox::Style::VScroll | AuswahlBox::Style::Hintergrund, {} );
-    gbdJahr->addEintrag( "Jahr" );
-    for( int i = 2013; i > 1913; i-- )
-    {
-        Text *txt = new Text( "" );
-        txt->append( i + 1 );
-        gbdJahr->addEintrag( txt );
-    }
-    weiter = initKnopf( 124, 200, 100, 20, Knopf::Style::Sichtbar, "Weiter" );
-    weiter->setMausEreignisParameter( this );
-    weiter->setMausEreignis( registrierungWeiterME );
-    fenster->addMember( dynamic_cast<Zeichnung *>( weiter->getThis() ) );
-    zVorLoginFenster->addMember( dynamic_cast<Zeichnung *>( fenster->getThis() ) );
-    fenster->addMember( dynamic_cast<Zeichnung *>( gbdTag->getThis() ) );
-    fenster->addMember( dynamic_cast<Zeichnung *>( gbdMonat->getThis() ) );
-    fenster->addMember( dynamic_cast<Zeichnung *>( gbdJahr->getThis() ) );
+	Punkt bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
+	registrierung = initKnopf(10, 90, 130, 30, Knopf::Style::Sichtbar, "Registrieren");
+	registrierung->setMausEreignisParameter(this);
+	registrierung->setMausEreignis(registrierungRegistrierungME);
+	initToolTip(registrierung, "Account erstellen.");
+	zVorLoginFenster->addMember(dynamic_cast<Zeichnung*>(registrierung->getThis()));
+	fenster = initFenster(bildschirmGröße.x / 2 - 175, bildschirmGröße.y / 2 - 131, 350, 262, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Account erstellen");
+	name = initTextFeld(74, 20, 200, 20, TextFeld::Style::TextFeld, "Account Name");
+	name->setTastaturEreignisParameter(this);
+	name->setTastaturEreignis(registrierungNameTE);
+	initToolTip(name, "Account Name.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(name->getThis()));
+	passwort = initTextFeld(74, 50, 200, 20, TextFeld::Style::TextFeld, "Account Passwort");
+	passwort->setTastaturEreignisParameter(this);
+	passwort->setTastaturEreignis(registrierungPasswortTE);
+	initToolTip(passwort, "Account Passwort.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(passwort->getThis()));
+	passwort2 = initTextFeld(74, 80, 200, 20, TextFeld::Style::TextFeld, "Passwort wiederholen");
+	passwort2->setTastaturEreignisParameter(this);
+	passwort2->setTastaturEreignis(registrierungPasswort2TE);
+	initToolTip(passwort2, "Account Passwort wiederhohlen.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(passwort2->getThis()));
+	geheimnis = initTextFeld(10, 110, 328, 20, TextFeld::Style::TextFeld, "Account Geheimnis");
+	geheimnis->setTastaturEreignisParameter(this);
+	geheimnis->setTastaturEreignis(registrierungGeheimnisTE);
+	initToolTip(geheimnis, "Gib etwas ein, was nur du jederzeit weißt.\n(zweites sicherheitspasswort Passwort)");
+	fenster->addMember(dynamic_cast<Zeichnung*>(geheimnis->getThis()));
+	eMail = initTextFeld(74, 140, 200, 20, TextFeld::Style::TextFeld, "E-Mail Addresse");
+	eMail->setTastaturEreignisParameter(this);
+	eMail->setTastaturEreignis(registrierungEMailTE);
+	initToolTip(eMail, "E-Mail Addresse.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(eMail->getThis()));
+	geburtsdatum = initTextFeld(40, 170, 85, 20, TextFeld::Style::Text, "Geburtsdatum:");
+	fenster->addMember(dynamic_cast<Zeichnung*>(geburtsdatum->getThis()));
+	text = initTextFeld(0, 5, 250, 150, TextFeld::Style::Mehrzeilig | TextFeld::Style::HCenter, "");
+	fenster->addMember(dynamic_cast<Zeichnung*>(text->getThis()));
+	gbdTag = initAuswahlBox(130, 167, 50, 20, AuswahlBox::Style::Sichtbar | AuswahlBox::Style::Erlaubt | AuswahlBox::Style::Rahmen | AuswahlBox::Style::MausBuffer | AuswahlBox::Style::AuswahlBuffer | AuswahlBox::Style::MaxHeight | AuswahlBox::Style::VScroll | AuswahlBox::Style::Hintergrund, {});
+	gbdTag->addEintrag("Tag");
+	for (int i = 0; i < 31; i++)
+	{
+		Text* txt = new Text("");
+		txt->append(i + 1);
+		gbdTag->addEintrag(txt);
+	}
+	gbdMonat = initAuswahlBox(185, 167, 65, 20, AuswahlBox::Style::Sichtbar | AuswahlBox::Style::Erlaubt | AuswahlBox::Style::Rahmen | AuswahlBox::Style::MausBuffer | AuswahlBox::Style::AuswahlBuffer | AuswahlBox::Style::MaxHeight | AuswahlBox::Style::VScroll | AuswahlBox::Style::Hintergrund, {});
+	gbdMonat->addEintrag("Monat");
+	for (int i = 0; i < 12; i++)
+	{
+		Text* txt = new Text("");
+		txt->append(i + 1);
+		gbdMonat->addEintrag(txt);
+	}
+	gbdJahr = initAuswahlBox(255, 176, 55, 20, AuswahlBox::Style::Sichtbar | AuswahlBox::Style::Erlaubt | AuswahlBox::Style::Rahmen | AuswahlBox::Style::MausBuffer | AuswahlBox::Style::AuswahlBuffer | AuswahlBox::Style::MaxHeight | AuswahlBox::Style::VScroll | AuswahlBox::Style::Hintergrund, {});
+	gbdJahr->addEintrag("Jahr");
+	for (int i = 2013; i > 1913; i--)
+	{
+		Text* txt = new Text("");
+		txt->append(i + 1);
+		gbdJahr->addEintrag(txt);
+	}
+	weiter = initKnopf(124, 200, 100, 20, Knopf::Style::Sichtbar, "Weiter");
+	weiter->setMausEreignisParameter(this);
+	weiter->setMausEreignis(registrierungWeiterME);
+	fenster->addMember(dynamic_cast<Zeichnung*>(weiter->getThis()));
+	zVorLoginFenster->addMember(dynamic_cast<Zeichnung*>(fenster->getThis()));
+	fenster->addMember(dynamic_cast<Zeichnung*>(gbdTag->getThis()));
+	fenster->addMember(dynamic_cast<Zeichnung*>(gbdMonat->getThis()));
+	fenster->addMember(dynamic_cast<Zeichnung*>(gbdJahr->getThis()));
 }
 
 // Destruktor 
 Registrierung::~Registrierung()
 {
-    if( fenster )
-        fenster = (Fenster *)fenster->release();
-    if( name )
-        name = (TextFeld *)name->release();
-    if( passwort )
-        passwort = (TextFeld *)passwort->release();
-    if( passwort2 )
-        passwort2 = (TextFeld *)passwort2->release();
-    if( geheimnis )
-        geheimnis = (TextFeld *)geheimnis->release();
-    if( eMail )
-        eMail = (TextFeld *)eMail->release();
-    if( geburtsdatum )
-        geburtsdatum = (TextFeld *)geburtsdatum->release();
-    if( gbdTag )
-        gbdTag = (AuswahlBox *)gbdTag->release();
-    if( gbdMonat )
-        gbdMonat = (AuswahlBox *)gbdMonat->release();
-    if( gbdJahr )
-        gbdJahr = (AuswahlBox *)gbdJahr->release();
-    if( weiter )
-        weiter = (Knopf *)weiter->release();
-    if( text )
-        text = (TextFeld *)text->release();
-    if( registrierung )
-        registrierung = (Knopf *)registrierung->release();
+	if (fenster)
+		fenster = (Fenster*)fenster->release();
+	if (name)
+		name = (TextFeld*)name->release();
+	if (passwort)
+		passwort = (TextFeld*)passwort->release();
+	if (passwort2)
+		passwort2 = (TextFeld*)passwort2->release();
+	if (geheimnis)
+		geheimnis = (TextFeld*)geheimnis->release();
+	if (eMail)
+		eMail = (TextFeld*)eMail->release();
+	if (geburtsdatum)
+		geburtsdatum = (TextFeld*)geburtsdatum->release();
+	if (gbdTag)
+		gbdTag = (AuswahlBox*)gbdTag->release();
+	if (gbdMonat)
+		gbdMonat = (AuswahlBox*)gbdMonat->release();
+	if (gbdJahr)
+		gbdJahr = (AuswahlBox*)gbdJahr->release();
+	if (weiter)
+		weiter = (Knopf*)weiter->release();
+	if (text)
+		text = (TextFeld*)text->release();
+	if (registrierung)
+		registrierung = (Knopf*)registrierung->release();
 }
 
 // Privat
-void Registrierung::zeigeNachricht( const char *txt )
+void Registrierung::zeigeNachricht(const char* txt)
 {
-    Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-    name->removeStyle( TextFeld::Style::Sichtbar );
-    passwort->removeStyle( TextFeld::Style::Sichtbar );
-    passwort2->removeStyle( TextFeld::Style::Sichtbar );
-    geheimnis->removeStyle( TextFeld::Style::Sichtbar );
-    eMail->removeStyle( TextFeld::Style::Sichtbar );
-    geburtsdatum->removeStyle( TextFeld::Style::Sichtbar );
-    gbdTag->removeStyle( TextFeld::Style::Sichtbar );
-    gbdMonat->removeStyle( TextFeld::Style::Sichtbar );
-    gbdJahr->removeStyle( TextFeld::Style::Sichtbar );
-    fenster->setSize( 250, 150 );
-    fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 75 );
-    weiter->setPosition( 139, 100 );
-    weiter->setText( "Ok" );
-    text->setText( txt );
-    if( text->zText()->getLength() > 30 )
-    {
-        int pos = -1;
-        bool set = 0;
-        int lastp = 0;
-        for( int i = 20; i < text->zText()->getLength(); )
-        {
-            char *tmp = &text->zText()->getText()[ i ];
-            while( *tmp != ' ' && i < text->zText()->getLength() )
-            {
-                tmp++;
-                i++;
-                if( i - 30 >= lastp )
-                {
-                    if( set )
-                    {
-                        lastp = pos;
-                        set = 0;
-                        text->zText()->getText()[ pos ] = '\n';
-                    }
-                    else
-                        lastp += 5;
-                }
-            }
-            if( i < text->zText()->getLength() )
-            {
-                pos = i;
-                set = 1;
-                tmp++;
-                i++;
-            }
-        }
-    }
-    text->addStyle( TextFeld::Style::Sichtbar );
+	Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+	name->removeStyle(TextFeld::Style::Sichtbar);
+	passwort->removeStyle(TextFeld::Style::Sichtbar);
+	passwort2->removeStyle(TextFeld::Style::Sichtbar);
+	geheimnis->removeStyle(TextFeld::Style::Sichtbar);
+	eMail->removeStyle(TextFeld::Style::Sichtbar);
+	geburtsdatum->removeStyle(TextFeld::Style::Sichtbar);
+	gbdTag->removeStyle(TextFeld::Style::Sichtbar);
+	gbdMonat->removeStyle(TextFeld::Style::Sichtbar);
+	gbdJahr->removeStyle(TextFeld::Style::Sichtbar);
+	fenster->setSize(250, 150);
+	fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 75);
+	weiter->setPosition(139, 100);
+	weiter->setText("Ok");
+	text->setText(txt);
+	if (text->zText()->getLength() > 30)
+	{
+		int pos = -1;
+		bool set = 0;
+		int lastp = 0;
+		for (int i = 20; i < text->zText()->getLength(); )
+		{
+			const char* tmp = &text->zText()->getText()[i];
+			while (*tmp != ' ' && i < text->zText()->getLength())
+			{
+				tmp++;
+				i++;
+				if (i - 30 >= lastp)
+				{
+					if (set)
+					{
+						lastp = pos;
+						set = 0;
+						((char*)text->zText()->getText())[pos] = '\n';
+					}
+					else
+						lastp += 5;
+				}
+			}
+			if (i < text->zText()->getLength())
+			{
+				pos = i;
+				set = 1;
+				tmp++;
+				i++;
+			}
+		}
+	}
+	text->addStyle(TextFeld::Style::Sichtbar);
 }
 
 // Knopfdruck
 void Registrierung::druckFremdKnopf() // Ein anderer Knopfwurde gedrückt
 {
-    fenster->removeStyle( Fenster::Style::Sichtbar );
-    registrierung->setRahmenBreite( 2 );
-    registrierung->setAlphaFeldFarbe( 0x5500FF00 );
-    registrierung->setAlphaFeldStrength( -5 );
+	fenster->removeStyle(Fenster::Style::Sichtbar);
+	registrierung->setRahmenBreite(2);
+	registrierung->setAlphaFeldFarbe(0x5500FF00);
+	registrierung->setAlphaFeldStrength(-5);
 }
 
-bool Registrierung::nameTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld name
+bool Registrierung::nameTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld name
 {
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
-    {
-        name->removeStyle( TextFeld::Style::Fokus );
-        passwort->addStyle( TextFeld::Style::Fokus );
-        passwort->setAuswahl( 0, passwort->zText()->getLength() );
-    }
-    if( name->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
+	{
+		name->removeStyle(TextFeld::Style::Fokus);
+		passwort->addStyle(TextFeld::Style::Fokus);
+		passwort->setAuswahl(0, passwort->zText()->getLength());
+	}
+	if (name->zText()->getLength() >= 25 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool Registrierung::passwortTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld passwort
+bool Registrierung::passwortTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld passwort
 {
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Press )
-        passwort->setSchowChar( '*' );
-    if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
-    {
-        passwort->removeStyle( TextFeld::Style::Fokus );
-        passwort2->addStyle( TextFeld::Style::Fokus );
-        passwort2->setAuswahl( 0, passwort2->zText()->getLength() );
-    }
-    if( passwort->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Press)
+		passwort->setSchowChar('*');
+	if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
+	{
+		passwort->removeStyle(TextFeld::Style::Fokus);
+		passwort2->addStyle(TextFeld::Style::Fokus);
+		passwort2->setAuswahl(0, passwort2->zText()->getLength());
+	}
+	if (passwort->zText()->getLength() >= 25 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool Registrierung::passwort2TE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld passwort2
+bool Registrierung::passwort2TE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld passwort2
 {
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Press )
-        passwort2->setSchowChar( '*' );
-    if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
-    {
-        passwort2->removeStyle( TextFeld::Style::Fokus );
-        geheimnis->addStyle( TextFeld::Style::Fokus );
-        geheimnis->setAuswahl( 0, geheimnis->zText()->getLength() );
-    }
-    if( passwort2->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Press)
+		passwort2->setSchowChar('*');
+	if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
+	{
+		passwort2->removeStyle(TextFeld::Style::Fokus);
+		geheimnis->addStyle(TextFeld::Style::Fokus);
+		geheimnis->setAuswahl(0, geheimnis->zText()->getLength());
+	}
+	if (passwort2->zText()->getLength() >= 25 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool Registrierung::geheimnisTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld geheimnis
+bool Registrierung::geheimnisTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld geheimnis
 {
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
-    {
-        geheimnis->removeStyle( TextFeld::Style::Fokus );
-        eMail->addStyle( TextFeld::Style::Fokus );
-        eMail->setAuswahl( 0, eMail->zText()->getLength() );
-    }
-    int selCount = 0;
-    for( int i = 0; i < geheimnis->zText()->getLength(); i++ )
-        selCount += (int)geheimnis->isCharSelected( i );
-    if( geheimnis->zText()->getLength() - selCount >= 50 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
+	{
+		geheimnis->removeStyle(TextFeld::Style::Fokus);
+		eMail->addStyle(TextFeld::Style::Fokus);
+		eMail->setAuswahl(0, eMail->zText()->getLength());
+	}
+	int selCount = 0;
+	for (int i = 0; i < geheimnis->zText()->getLength(); i++)
+		selCount += (int)geheimnis->isCharSelected(i);
+	if (geheimnis->zText()->getLength() - selCount >= 50 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool Registrierung::eMailTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld eMail
+bool Registrierung::eMailTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld eMail
 {
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
-    {
-        eMail->removeStyle( TextFeld::Style::Fokus );
-        gbdTag->addStyle( AuswahlBox::Style::Fokus );
-    }
-    if( eMail->zText()->getLength() >= 50 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
+	{
+		eMail->removeStyle(TextFeld::Style::Fokus);
+		gbdTag->addStyle(AuswahlBox::Style::Fokus);
+	}
+	if (eMail->zText()->getLength() >= 50 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool Registrierung::weiterME( void *obj, MausEreignis me ) // MausEreignis im Knopf weiter
+bool Registrierung::weiterME(void* obj, MausEreignis me) // MausEreignis im Knopf weiter
 {
-    if( me.id == ME_RLinks )
-    {
-        Punkt bildchirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
-        if( fenster->zTitel()->istGleich( "Erfolg" ) )
-        {
-            text->removeStyle( TextFeld::Style::Sichtbar );
-            weiter->setPosition( 124, 200 );
-            weiter->setText( "Weiter" );
-            fenster->setSize( 350, 262 );
-            fenster->setPosition( bildchirmGröße.x / 2 - 175, bildchirmGröße.y / 2 - 131 );
-            fenster->setTitel( "Account erstellen" );
-            name->addStyle( TextFeld::Style::Sichtbar );
-            passwort->addStyle( TextFeld::Style::Sichtbar );
-            passwort2->addStyle( TextFeld::Style::Sichtbar );
-            geheimnis->addStyle( TextFeld::Style::Sichtbar );
-            eMail->addStyle( TextFeld::Style::Sichtbar );
-            geburtsdatum->addStyle( TextFeld::Style::Sichtbar );
-            gbdTag->addStyle( TextFeld::Style::Sichtbar );
-            gbdMonat->addStyle( TextFeld::Style::Sichtbar );
-            gbdJahr->addStyle( TextFeld::Style::Sichtbar );
-            name->addStyle( TextFeld::Style::Fokus );
-            name->setAuswahl( 0, name->zText()->getLength() );
-        }
-        else
-        {
-            if( weiter->zText()->istGleich( "Ok" ) )
-            {
-                text->removeStyle( TextFeld::Style::Sichtbar );
-                weiter->setPosition( 124, 200 );
-                weiter->setText( "Weiter" );
-                fenster->setSize( 350, 262 );
-                fenster->setPosition( bildchirmGröße.x / 2 - 175, bildchirmGröße.y / 2 - 131 );
-                name->addStyle( TextFeld::Style::Sichtbar );
-                passwort->addStyle( TextFeld::Style::Sichtbar );
-                passwort2->addStyle( TextFeld::Style::Sichtbar );
-                geheimnis->addStyle( TextFeld::Style::Sichtbar );
-                eMail->addStyle( TextFeld::Style::Sichtbar );
-                geburtsdatum->addStyle( TextFeld::Style::Sichtbar );
-                gbdTag->addStyle( TextFeld::Style::Sichtbar );
-                gbdMonat->addStyle( TextFeld::Style::Sichtbar );
-                gbdJahr->addStyle( TextFeld::Style::Sichtbar );
-                name->addStyle( TextFeld::Style::Fokus );
-                name->setAuswahl( 0, name->zText()->getLength() );
-            }
-            else if( passwort2->zText()->istGleich( passwort->zText()->getText() ) )
-            {
-                if( name->zText()->getLength() == 0 ||
-                    passwort->zText()->getLength() == 0 ||
-                    geheimnis->zText()->getLength() == 0 ||
-                    eMail->zText()->getLength() == 0 )
-                {
-                    if( name->zText()->getLength() == 0 )
-                        zeigeNachricht( "Bitte gebe einen Accountnamen ein." );
-                    else if( passwort->zText()->getLength() == 0 )
-                        zeigeNachricht( "Bitte gebe ein Accountpasswort ein." );
-                    else if( geheimnis->zText()->getLength() == 0 )
-                        zeigeNachricht( "Bitte gebe ein Accountgeheimnis ein. Dieß wird benötig, wenn du deinen Accountnamen oder dein Accountpasswort vergisst." );
-                    else if( eMail->zText()->getLength() == 0 )
-                        zeigeNachricht( "Bitte gebe deine E-Mail Addresse ein. Diese benötigen wir, um dir den Bestätigungscode für deinen Account zu senden." );
-                    return 1;
-                }
-                Datum *gebDat = new Datum();
-                gebDat->setDatum( 1, 1, 1 );
-                bool ok = 1;
-                do
-                {
-                    if( !gbdTag->getAuswahl() || !gbdMonat->getAuswahl() || !gbdJahr->getAuswahl() )
-                    {
-                        ok = 0;
-                        break;
-                    }
-                    int jahr = TextZuInt( gbdJahr->zEintrag( gbdJahr->getAuswahl() )->zText()->getText(), 10 );
-                    gebDat->setJahr( jahr );
-                    gebDat->setMonat( gbdMonat->getAuswahl() );
-                    gebDat->setTag( gbdTag->getAuswahl() );
-                    if( jahr != gebDat->getJahr() || gbdMonat->getAuswahl() != gebDat->getMonat() || gbdTag->getAuswahl() != gebDat->getTag() )
-                    {
-                        ok = 0;
-                        break;
-                    }
-                } while( 0 );
-                if( ok )
-                    new AktionsThread( 15, name->zText()->getText(), passwort->zText()->getText(), geheimnis->zText()->getText(), eMail->zText()->getText(), gebDat->getThis() );
-                else
-                    zeigeNachricht( "Bitte gebe ein gültiges Geburtsdatum an." );
-                gebDat = (Datum *)gebDat->release();
-            }
-            else
-                zeigeNachricht( "Das wiederhohlte Passwort stimmt nicht mit dem Passwort überein." );
-        }
-    }
-    return 1;
+	if (me.id == ME_RLinks)
+	{
+		Punkt bildchirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
+		if (fenster->zTitel()->istGleich("Erfolg"))
+		{
+			text->removeStyle(TextFeld::Style::Sichtbar);
+			weiter->setPosition(124, 200);
+			weiter->setText("Weiter");
+			fenster->setSize(350, 262);
+			fenster->setPosition(bildchirmGröße.x / 2 - 175, bildchirmGröße.y / 2 - 131);
+			fenster->setTitel("Account erstellen");
+			name->addStyle(TextFeld::Style::Sichtbar);
+			passwort->addStyle(TextFeld::Style::Sichtbar);
+			passwort2->addStyle(TextFeld::Style::Sichtbar);
+			geheimnis->addStyle(TextFeld::Style::Sichtbar);
+			eMail->addStyle(TextFeld::Style::Sichtbar);
+			geburtsdatum->addStyle(TextFeld::Style::Sichtbar);
+			gbdTag->addStyle(TextFeld::Style::Sichtbar);
+			gbdMonat->addStyle(TextFeld::Style::Sichtbar);
+			gbdJahr->addStyle(TextFeld::Style::Sichtbar);
+			name->addStyle(TextFeld::Style::Fokus);
+			name->setAuswahl(0, name->zText()->getLength());
+		}
+		else
+		{
+			if (weiter->zText()->istGleich("Ok"))
+			{
+				text->removeStyle(TextFeld::Style::Sichtbar);
+				weiter->setPosition(124, 200);
+				weiter->setText("Weiter");
+				fenster->setSize(350, 262);
+				fenster->setPosition(bildchirmGröße.x / 2 - 175, bildchirmGröße.y / 2 - 131);
+				name->addStyle(TextFeld::Style::Sichtbar);
+				passwort->addStyle(TextFeld::Style::Sichtbar);
+				passwort2->addStyle(TextFeld::Style::Sichtbar);
+				geheimnis->addStyle(TextFeld::Style::Sichtbar);
+				eMail->addStyle(TextFeld::Style::Sichtbar);
+				geburtsdatum->addStyle(TextFeld::Style::Sichtbar);
+				gbdTag->addStyle(TextFeld::Style::Sichtbar);
+				gbdMonat->addStyle(TextFeld::Style::Sichtbar);
+				gbdJahr->addStyle(TextFeld::Style::Sichtbar);
+				name->addStyle(TextFeld::Style::Fokus);
+				name->setAuswahl(0, name->zText()->getLength());
+			}
+			else if (passwort2->zText()->istGleich(passwort->zText()->getText()))
+			{
+				if (name->zText()->getLength() == 0 ||
+					passwort->zText()->getLength() == 0 ||
+					geheimnis->zText()->getLength() == 0 ||
+					eMail->zText()->getLength() == 0)
+				{
+					if (name->zText()->getLength() == 0)
+						zeigeNachricht("Bitte gebe einen Accountnamen ein.");
+					else if (passwort->zText()->getLength() == 0)
+						zeigeNachricht("Bitte gebe ein Accountpasswort ein.");
+					else if (geheimnis->zText()->getLength() == 0)
+						zeigeNachricht("Bitte gebe ein Accountgeheimnis ein. Dieß wird benötig, wenn du deinen Accountnamen oder dein Accountpasswort vergisst.");
+					else if (eMail->zText()->getLength() == 0)
+						zeigeNachricht("Bitte gebe deine E-Mail Addresse ein. Diese benötigen wir, um dir den Bestätigungscode für deinen Account zu senden.");
+					return 1;
+				}
+				Datum* gebDat = new Datum();
+				gebDat->setDatum(1, 1, 1);
+				bool ok = 1;
+				do
+				{
+					if (!gbdTag->getAuswahl() || !gbdMonat->getAuswahl() || !gbdJahr->getAuswahl())
+					{
+						ok = 0;
+						break;
+					}
+					int jahr = TextZuInt(gbdJahr->zEintrag(gbdJahr->getAuswahl())->zText()->getText(), 10);
+					gebDat->setJahr(jahr);
+					gebDat->setMonat(gbdMonat->getAuswahl());
+					gebDat->setTag(gbdTag->getAuswahl());
+					if (jahr != gebDat->getJahr() || gbdMonat->getAuswahl() != gebDat->getMonat() || gbdTag->getAuswahl() != gebDat->getTag())
+					{
+						ok = 0;
+						break;
+					}
+				} while (0);
+				if (ok)
+					new AktionsThread(15, name->zText()->getText(), passwort->zText()->getText(), geheimnis->zText()->getText(), eMail->zText()->getText(), gebDat->getThis());
+				else
+					zeigeNachricht("Bitte gebe ein gültiges Geburtsdatum an.");
+				gebDat = (Datum*)gebDat->release();
+			}
+			else
+				zeigeNachricht("Das wiederhohlte Passwort stimmt nicht mit dem Passwort überein.");
+		}
+	}
+	return 1;
 }
 
-bool Registrierung::registrierungME( void *obj, MausEreignis me ) // MausEreignis im Knopf registrierung
+bool Registrierung::registrierungME(void* obj, MausEreignis me) // MausEreignis im Knopf registrierung
 {
-    if( me.id == ME_RLinks )
-    {
-        vorLogin->setRegistrierung();
-        fenster->addStyle( Fenster::Style::Sichtbar );
-        registrierung->setRahmenBreite( 3 );
-        registrierung->setAlphaFeldFarbe( 0xFF000000 );
-        registrierung->setAlphaFeldStrength( 20 );
+	if (me.id == ME_RLinks)
+	{
+		vorLogin->setRegistrierung();
+		fenster->addStyle(Fenster::Style::Sichtbar);
+		registrierung->setRahmenBreite(3);
+		registrierung->setAlphaFeldFarbe(0xFF000000);
+		registrierung->setAlphaFeldStrength(20);
 
-        Punkt bildchirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
-        text->removeStyle( TextFeld::Style::Sichtbar );
-        weiter->setPosition( 124, 200 );
-        weiter->setText( "Weiter" );
-        fenster->setSize( 350, 262 );
-        fenster->setPosition( bildchirmGröße.x / 2 - 175, bildchirmGröße.y / 2 - 131 );
-        fenster->setTitel( "Account erstellen" );
-        name->addStyle( TextFeld::Style::Sichtbar );
-        passwort->addStyle( TextFeld::Style::Sichtbar );
-        passwort2->addStyle( TextFeld::Style::Sichtbar );
-        geheimnis->addStyle( TextFeld::Style::Sichtbar );
-        eMail->addStyle( TextFeld::Style::Sichtbar );
-        geburtsdatum->addStyle( TextFeld::Style::Sichtbar );
-        gbdTag->addStyle( TextFeld::Style::Sichtbar );
-        gbdMonat->addStyle( TextFeld::Style::Sichtbar );
-        gbdJahr->addStyle( TextFeld::Style::Sichtbar );
-        name->addStyle( TextFeld::Style::Fokus );
-        name->setAuswahl( 0, name->zText()->getLength() );
-    }
-    return 1;
+		Punkt bildchirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
+		text->removeStyle(TextFeld::Style::Sichtbar);
+		weiter->setPosition(124, 200);
+		weiter->setText("Weiter");
+		fenster->setSize(350, 262);
+		fenster->setPosition(bildchirmGröße.x / 2 - 175, bildchirmGröße.y / 2 - 131);
+		fenster->setTitel("Account erstellen");
+		name->addStyle(TextFeld::Style::Sichtbar);
+		passwort->addStyle(TextFeld::Style::Sichtbar);
+		passwort2->addStyle(TextFeld::Style::Sichtbar);
+		geheimnis->addStyle(TextFeld::Style::Sichtbar);
+		eMail->addStyle(TextFeld::Style::Sichtbar);
+		geburtsdatum->addStyle(TextFeld::Style::Sichtbar);
+		gbdTag->addStyle(TextFeld::Style::Sichtbar);
+		gbdMonat->addStyle(TextFeld::Style::Sichtbar);
+		gbdJahr->addStyle(TextFeld::Style::Sichtbar);
+		name->addStyle(TextFeld::Style::Fokus);
+		name->setAuswahl(0, name->zText()->getLength());
+	}
+	return 1;
 }
 
-void Registrierung::setWeiterReturn( bool ret ) // setzt den Weiter Returnwert
+void Registrierung::setWeiterReturn(bool ret) // setzt den Weiter Returnwert
 {
-    Punkt bildchirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
-    if( ret )
-    {
-        name->removeStyle( TextFeld::Style::Sichtbar );
-        passwort->removeStyle( TextFeld::Style::Sichtbar );
-        passwort2->removeStyle( TextFeld::Style::Sichtbar );
-        geheimnis->removeStyle( TextFeld::Style::Sichtbar );
-        eMail->removeStyle( TextFeld::Style::Sichtbar );
-        geburtsdatum->removeStyle( TextFeld::Style::Sichtbar );
-        gbdTag->removeStyle( TextFeld::Style::Sichtbar );
-        gbdMonat->removeStyle( TextFeld::Style::Sichtbar );
-        gbdJahr->removeStyle( TextFeld::Style::Sichtbar );
-        fenster->setSize( 250, 200 );
-        fenster->setPosition( bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 100 );
-        fenster->setTitel( "Erfolg" );
-        weiter->setPosition( 20, 145 );
-        weiter->setText( "Ok" );
-        text->setText( "Dir wurde eine E-Mail mit einem\naktivierungslink zugeschickt,\nden du in den nächsten 12 Stunden\nbenutzen musst." );
-        text->addStyle( TextFeld::Style::Sichtbar );
-    }
-    else if( lastError.getLength() )
-        zeigeNachricht( lastError );
+	Punkt bildchirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
+	if (ret)
+	{
+		name->removeStyle(TextFeld::Style::Sichtbar);
+		passwort->removeStyle(TextFeld::Style::Sichtbar);
+		passwort2->removeStyle(TextFeld::Style::Sichtbar);
+		geheimnis->removeStyle(TextFeld::Style::Sichtbar);
+		eMail->removeStyle(TextFeld::Style::Sichtbar);
+		geburtsdatum->removeStyle(TextFeld::Style::Sichtbar);
+		gbdTag->removeStyle(TextFeld::Style::Sichtbar);
+		gbdMonat->removeStyle(TextFeld::Style::Sichtbar);
+		gbdJahr->removeStyle(TextFeld::Style::Sichtbar);
+		fenster->setSize(250, 200);
+		fenster->setPosition(bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 100);
+		fenster->setTitel("Erfolg");
+		weiter->setPosition(20, 145);
+		weiter->setText("Ok");
+		text->setText("Dir wurde eine E-Mail mit einem\naktivierungslink zugeschickt,\nden du in den nächsten 12 Stunden\nbenutzen musst.");
+		text->addStyle(TextFeld::Style::Sichtbar);
+	}
+	else if (lastError.getLength())
+		zeigeNachricht(lastError);
 }
 
 // Ereignisse
-bool registrierungNameTE( void *p, void *obj, TastaturEreignis te )
+bool registrierungNameTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (Registrierung *)p )->nameTE( obj, te );
+	if (!p)
+		return 0;
+	return ((Registrierung*)p)->nameTE(obj, te);
 }
 
-bool registrierungPasswortTE( void *p, void *obj, TastaturEreignis te )
+bool registrierungPasswortTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (Registrierung *)p )->passwortTE( obj, te );
+	if (!p)
+		return 0;
+	return ((Registrierung*)p)->passwortTE(obj, te);
 }
 
-bool registrierungPasswort2TE( void *p, void *obj, TastaturEreignis te )
+bool registrierungPasswort2TE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (Registrierung *)p )->passwort2TE( obj, te );
+	if (!p)
+		return 0;
+	return ((Registrierung*)p)->passwort2TE(obj, te);
 }
 
-bool registrierungGeheimnisTE( void *p, void *obj, TastaturEreignis te )
+bool registrierungGeheimnisTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (Registrierung *)p )->geheimnisTE( obj, te );
+	if (!p)
+		return 0;
+	return ((Registrierung*)p)->geheimnisTE(obj, te);
 }
 
-bool registrierungEMailTE( void *p, void *obj, TastaturEreignis te )
+bool registrierungEMailTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (Registrierung *)p )->eMailTE( obj, te );
+	if (!p)
+		return 0;
+	return ((Registrierung*)p)->eMailTE(obj, te);
 }
 
-bool registrierungWeiterME( void *p, void *obj, MausEreignis me )
+bool registrierungWeiterME(void* p, void* obj, MausEreignis me)
 {
-    if( !p )
-        return 0;
-    return ( (Registrierung *)p )->weiterME( obj, me );
+	if (!p)
+		return 0;
+	return ((Registrierung*)p)->weiterME(obj, me);
 }
 
-bool registrierungRegistrierungME( void *p, void *obj, MausEreignis me )
+bool registrierungRegistrierungME(void* p, void* obj, MausEreignis me)
 {
-    if( !p )
-        return 0;
-    return ( (Registrierung *)p )->registrierungME( obj, me );
+	if (!p)
+		return 0;
+	return ((Registrierung*)p)->registrierungME(obj, me);
 }

+ 262 - 262
KSGClient/VorLogin/Account verwalten/Unregistrierung.cpp

@@ -7,321 +7,321 @@
 
 // Inhalt der Unregistrierung Klasse aus Unregistrierung.h
 // Konstruktor 
-Unregistrierung::Unregistrierung( Fenster *zVorLoginFenster )
-    : ReferenceCounter()
+Unregistrierung::Unregistrierung(Fenster* zVorLoginFenster)
+	: ReferenceCounter()
 {
-    Punkt bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
-    unregistrierung = initKnopf( 10, 130, 130, 30, Knopf::Style::Sichtbar, "Account remove" );
-    unregistrierung->setMausEreignisParameter( this );
-    unregistrierung->setMausEreignis( unregistrierungUnregistrierungME );
-    initToolTip( unregistrierung, "Account für alle Zeiten entfernen." );
-    zVorLoginFenster->addMember( dynamic_cast<Zeichnung *>( unregistrierung->getThis() ) );
-    fenster = initFenster( bildschirmGröße.x / 2 - 125, bildschirmGröße.y / 2 - 85, 250, 170, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Account remove" );
-    name = initTextFeld( 24, 20, 200, 20, TextFeld::Style::TextFeld, "Account Name" );
-    name->setTastaturEreignisParameter( this );
-    name->setTastaturEreignis( unregistrierungNameTE );
-    initToolTip( name, "Account Name eingeben." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( name->getThis() ) );
-    passwort = initTextFeld( 24, 50, 200, 20, TextFeld::Style::TextFeld, "Account Passwort" );
-    passwort->setTastaturEreignisParameter( this );
-    passwort->setTastaturEreignis( unregistrierungPasswortTE );
-    initToolTip( passwort, "Account Passwort eingeben." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( passwort->getThis() ) );
-    geheimnis = initTextFeld( 24, 80, 200, 20, TextFeld::Style::TextFeld, "Account Geheimnis" );
-    geheimnis->setTastaturEreignisParameter( this );
-    geheimnis->setTastaturEreignis( unregistrierungGeheimnisTE );
-    initToolTip( geheimnis, "Account Geheimnis eingeben." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( geheimnis->getThis() ) );
-    weiter = initKnopf( 74, 110, 100, 20, Knopf::Style::Sichtbar, "Weiter" );
-    weiter->setMausEreignisParameter( this );
-    weiter->setMausEreignis( unregistrierungWeiterME );
-    fenster->addMember( dynamic_cast<Zeichnung *>( weiter->getThis() ) );
-    text = initTextFeld( 0, 5, 250, 170, TextFeld::Style::Mehrzeilig | TextFeld::Style::HCenter, "" );
-    fenster->addMember( dynamic_cast<Zeichnung *>( text->getThis() ) );
-    zVorLoginFenster->addMember( dynamic_cast<Zeichnung *>( fenster->getThis() ) );
+	Punkt bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
+	unregistrierung = initKnopf(10, 130, 130, 30, Knopf::Style::Sichtbar, "Account remove");
+	unregistrierung->setMausEreignisParameter(this);
+	unregistrierung->setMausEreignis(unregistrierungUnregistrierungME);
+	initToolTip(unregistrierung, "Account für alle Zeiten entfernen.");
+	zVorLoginFenster->addMember(dynamic_cast<Zeichnung*>(unregistrierung->getThis()));
+	fenster = initFenster(bildschirmGröße.x / 2 - 125, bildschirmGröße.y / 2 - 85, 250, 170, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Account remove");
+	name = initTextFeld(24, 20, 200, 20, TextFeld::Style::TextFeld, "Account Name");
+	name->setTastaturEreignisParameter(this);
+	name->setTastaturEreignis(unregistrierungNameTE);
+	initToolTip(name, "Account Name eingeben.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(name->getThis()));
+	passwort = initTextFeld(24, 50, 200, 20, TextFeld::Style::TextFeld, "Account Passwort");
+	passwort->setTastaturEreignisParameter(this);
+	passwort->setTastaturEreignis(unregistrierungPasswortTE);
+	initToolTip(passwort, "Account Passwort eingeben.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(passwort->getThis()));
+	geheimnis = initTextFeld(24, 80, 200, 20, TextFeld::Style::TextFeld, "Account Geheimnis");
+	geheimnis->setTastaturEreignisParameter(this);
+	geheimnis->setTastaturEreignis(unregistrierungGeheimnisTE);
+	initToolTip(geheimnis, "Account Geheimnis eingeben.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(geheimnis->getThis()));
+	weiter = initKnopf(74, 110, 100, 20, Knopf::Style::Sichtbar, "Weiter");
+	weiter->setMausEreignisParameter(this);
+	weiter->setMausEreignis(unregistrierungWeiterME);
+	fenster->addMember(dynamic_cast<Zeichnung*>(weiter->getThis()));
+	text = initTextFeld(0, 5, 250, 170, TextFeld::Style::Mehrzeilig | TextFeld::Style::HCenter, "");
+	fenster->addMember(dynamic_cast<Zeichnung*>(text->getThis()));
+	zVorLoginFenster->addMember(dynamic_cast<Zeichnung*>(fenster->getThis()));
 }
 
 // Destruktor 
 Unregistrierung::~Unregistrierung()
 {
-    if( fenster )
-        fenster = (Fenster *)fenster->release();
-    if( name )
-        name = (TextFeld *)name->release();
-    if( passwort )
-        passwort = (TextFeld *)passwort->release();
-    if( geheimnis )
-        geheimnis = (TextFeld *)geheimnis->release();
-    if( weiter )
-        weiter = (Knopf *)weiter->release();
-    if( text )
-        text = (TextFeld *)text->release();
-    if( unregistrierung )
-        unregistrierung = (Knopf *)unregistrierung->release();
+	if (fenster)
+		fenster = (Fenster*)fenster->release();
+	if (name)
+		name = (TextFeld*)name->release();
+	if (passwort)
+		passwort = (TextFeld*)passwort->release();
+	if (geheimnis)
+		geheimnis = (TextFeld*)geheimnis->release();
+	if (weiter)
+		weiter = (Knopf*)weiter->release();
+	if (text)
+		text = (TextFeld*)text->release();
+	if (unregistrierung)
+		unregistrierung = (Knopf*)unregistrierung->release();
 }
 
 // Privat
-void Unregistrierung::zeigeNachricht( const char *txt )
+void Unregistrierung::zeigeNachricht(const char* txt)
 {
-    Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
-    name->removeStyle( TextFeld::Style::Sichtbar );
-    passwort->removeStyle( TextFeld::Style::Sichtbar );
-    geheimnis->removeStyle( TextFeld::Style::Sichtbar );
-    fenster->setSize( 250, 150 );
-    fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 75 );
-    weiter->setPosition( 139, 100 );
-    weiter->setText( "Ok" );
-    text->setText( txt );
-    if( text->zText()->getLength() > 30 )
-    {
-        int pos = -1;
-        bool set = 0;
-        int lastp = 0;
-        for( int i = 20; i < text->zText()->getLength(); )
-        {
-            char *tmp = &text->zText()->getText()[ i ];
-            while( *tmp != ' ' && i < text->zText()->getLength() )
-            {
-                tmp++;
-                i++;
-                if( i - 30 >= lastp )
-                {
-                    if( set )
-                    {
-                        lastp = pos;
-                        set = 0;
-                        text->zText()->getText()[ pos ] = '\n';
-                    }
-                    else
-                        lastp += 5;
-                }
-            }
-            if( i < text->zText()->getLength() )
-            {
-                pos = i;
-                set = 1;
-                tmp++;
-                i++;
-            }
-        }
-    }
-    text->addStyle( TextFeld::Style::Sichtbar );
+	Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
+	name->removeStyle(TextFeld::Style::Sichtbar);
+	passwort->removeStyle(TextFeld::Style::Sichtbar);
+	geheimnis->removeStyle(TextFeld::Style::Sichtbar);
+	fenster->setSize(250, 150);
+	fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 75);
+	weiter->setPosition(139, 100);
+	weiter->setText("Ok");
+	text->setText(txt);
+	if (text->zText()->getLength() > 30)
+	{
+		int pos = -1;
+		bool set = 0;
+		int lastp = 0;
+		for (int i = 20; i < text->zText()->getLength(); )
+		{
+			const char* tmp = &text->zText()->getText()[i];
+			while (*tmp != ' ' && i < text->zText()->getLength())
+			{
+				tmp++;
+				i++;
+				if (i - 30 >= lastp)
+				{
+					if (set)
+					{
+						lastp = pos;
+						set = 0;
+						((char*)text->zText()->getText())[pos] = '\n';
+					}
+					else
+						lastp += 5;
+				}
+			}
+			if (i < text->zText()->getLength())
+			{
+				pos = i;
+				set = 1;
+				tmp++;
+				i++;
+			}
+		}
+	}
+	text->addStyle(TextFeld::Style::Sichtbar);
 }
 
 // Knopfdruck
 void Unregistrierung::druckFremdKnopf() // Ein anderer Knopfwurde gedrückt
 {
-    fenster->removeStyle( Fenster::Style::Sichtbar );
-    unregistrierung->setRahmenBreite( 2 );
-    unregistrierung->setAlphaFeldFarbe( 0x5500FF00 );
-    unregistrierung->setAlphaFeldStrength( -5 );
+	fenster->removeStyle(Fenster::Style::Sichtbar);
+	unregistrierung->setRahmenBreite(2);
+	unregistrierung->setAlphaFeldFarbe(0x5500FF00);
+	unregistrierung->setAlphaFeldStrength(-5);
 }
 
-bool Unregistrierung::nameTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld name
+bool Unregistrierung::nameTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld name
 {
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
-    {
-        name->removeStyle( TextFeld::Style::Fokus );
-        passwort->addStyle( TextFeld::Style::Fokus );
-        passwort->setAuswahl( 0, passwort->zText()->getLength() );
-    }
-    if( name->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
+	{
+		name->removeStyle(TextFeld::Style::Fokus);
+		passwort->addStyle(TextFeld::Style::Fokus);
+		passwort->setAuswahl(0, passwort->zText()->getLength());
+	}
+	if (name->zText()->getLength() >= 25 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool Unregistrierung::passwortTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld passwort
+bool Unregistrierung::passwortTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld passwort
 {
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Press )
-        passwort->setSchowChar( '*' );
-    if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
-    {
-        passwort->removeStyle( TextFeld::Style::Fokus );
-        geheimnis->addStyle( TextFeld::Style::Fokus );
-        geheimnis->setAuswahl( 0, geheimnis->zText()->getLength() );
-    }
-    if( passwort->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Press)
+		passwort->setSchowChar('*');
+	if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
+	{
+		passwort->removeStyle(TextFeld::Style::Fokus);
+		geheimnis->addStyle(TextFeld::Style::Fokus);
+		geheimnis->setAuswahl(0, geheimnis->zText()->getLength());
+	}
+	if (passwort->zText()->getLength() >= 25 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool Unregistrierung::geheimnisTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld geheimnis
+bool Unregistrierung::geheimnisTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld geheimnis
 {
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Release && te.taste == T_Enter )
-    {
-        geheimnis->removeStyle( TextFeld::Style::Fokus );
-        MausEreignis me;
-        me.id = ME_RLinks;
-        weiterME( 0, me );
-    }
-    int selCount = 0;
-    for( int i = 0; i < geheimnis->zText()->getLength(); i++ )
-        selCount += (int)geheimnis->isCharSelected( i );
-    if( geheimnis->zText()->getLength() - selCount >= 50 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Release && te.taste == T_Enter)
+	{
+		geheimnis->removeStyle(TextFeld::Style::Fokus);
+		MausEreignis me;
+		me.id = ME_RLinks;
+		weiterME(0, me);
+	}
+	int selCount = 0;
+	for (int i = 0; i < geheimnis->zText()->getLength(); i++)
+		selCount += (int)geheimnis->isCharSelected(i);
+	if (geheimnis->zText()->getLength() - selCount >= 50 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool Unregistrierung::weiterME( void *obj, MausEreignis me ) // MausEreignis im Knopf weiter
+bool Unregistrierung::weiterME(void* obj, MausEreignis me) // MausEreignis im Knopf weiter
 {
-    if( me.id == ME_RLinks )
-    {
-        Punkt bildchirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
-        if( weiter->zText()->istGleich( "Ok" ) )
-        {
-            text->removeStyle( TextFeld::Style::Sichtbar );
-            weiter->setPosition( 74, 110 );
-            weiter->setText( "Weiter" );
-            fenster->setSize( 250, 170 );
-            fenster->setPosition( bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 85 );
-            fenster->setTitel( "Account remove" );
-            name->addStyle( TextFeld::Style::Sichtbar );
-            passwort->addStyle( TextFeld::Style::Sichtbar );
-            geheimnis->addStyle( TextFeld::Style::Sichtbar );
-            name->addStyle( TextFeld::Style::Fokus );
-            name->setAuswahl( 0, name->zText()->getLength() );
-        }
-        else
-        {
-            if( weiter->zText()->istGleich( "Ok" ) )
-            {
-                if( fenster->zTitel()->istGleich( "Account remove" ) )
-                {
-                    text->removeStyle( TextFeld::Style::Sichtbar );
-                    fenster->setSize( 250, 170 );
-                    fenster->setPosition( bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 85 );
-                    weiter->setPosition( 74, 110 );
-                    weiter->setText( "Weiter" );
-                    name->addStyle( TextFeld::Style::Sichtbar );
-                    passwort->addStyle( TextFeld::Style::Sichtbar );
-                    geheimnis->addStyle( TextFeld::Style::Sichtbar );
-                    name->addStyle( TextFeld::Style::Fokus );
-                    name->setAuswahl( 0, name->zText()->getLength() );
-                }
-                else
-                {
-                    fenster->setSize( 250, 200 );
-                    fenster->setPosition( bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 100 );
-                    weiter->setPosition( 20, 115 );
-                    weiter->setText( "Ok" );
-                    text->setText( "Dir wurde eine E-Mail mit einem\nLink zur Bestätigung zugeschickt,\nden du in den nächsten 12 Stunden\nbenutzen musst." );
-                }
-            }
-            else
-            {
-                if( name->zText()->getLength() == 0 ||
-                    passwort->zText()->getLength() == 0 ||
-                    geheimnis->zText()->getLength() == 0 )
-                {
-                    if( name->zText()->getLength() == 0 )
-                        zeigeNachricht( "Bitte gebe deinen Accountnamen\nein." );
-                    else if( passwort->zText()->getLength() == 0 )
-                        zeigeNachricht( "Bitte gebe dein Accountpasswort\nein." );
-                    else if( geheimnis->zText()->getLength() == 0 )
-                        zeigeNachricht( "Bitte gebe dein Accountgeheimnis\nein." );
-                    return 1;
-                }
-                new AktionsThread( 17, name->zText()->getText(), passwort->zText()->getText(), geheimnis->zText()->getText(), 0, 0 );
-            }
-        }
-    }
-    return 1;
+	if (me.id == ME_RLinks)
+	{
+		Punkt bildchirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
+		if (weiter->zText()->istGleich("Ok"))
+		{
+			text->removeStyle(TextFeld::Style::Sichtbar);
+			weiter->setPosition(74, 110);
+			weiter->setText("Weiter");
+			fenster->setSize(250, 170);
+			fenster->setPosition(bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 85);
+			fenster->setTitel("Account remove");
+			name->addStyle(TextFeld::Style::Sichtbar);
+			passwort->addStyle(TextFeld::Style::Sichtbar);
+			geheimnis->addStyle(TextFeld::Style::Sichtbar);
+			name->addStyle(TextFeld::Style::Fokus);
+			name->setAuswahl(0, name->zText()->getLength());
+		}
+		else
+		{
+			if (weiter->zText()->istGleich("Ok"))
+			{
+				if (fenster->zTitel()->istGleich("Account remove"))
+				{
+					text->removeStyle(TextFeld::Style::Sichtbar);
+					fenster->setSize(250, 170);
+					fenster->setPosition(bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 85);
+					weiter->setPosition(74, 110);
+					weiter->setText("Weiter");
+					name->addStyle(TextFeld::Style::Sichtbar);
+					passwort->addStyle(TextFeld::Style::Sichtbar);
+					geheimnis->addStyle(TextFeld::Style::Sichtbar);
+					name->addStyle(TextFeld::Style::Fokus);
+					name->setAuswahl(0, name->zText()->getLength());
+				}
+				else
+				{
+					fenster->setSize(250, 200);
+					fenster->setPosition(bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 100);
+					weiter->setPosition(20, 115);
+					weiter->setText("Ok");
+					text->setText("Dir wurde eine E-Mail mit einem\nLink zur Bestätigung zugeschickt,\nden du in den nächsten 12 Stunden\nbenutzen musst.");
+				}
+			}
+			else
+			{
+				if (name->zText()->getLength() == 0 ||
+					passwort->zText()->getLength() == 0 ||
+					geheimnis->zText()->getLength() == 0)
+				{
+					if (name->zText()->getLength() == 0)
+						zeigeNachricht("Bitte gebe deinen Accountnamen\nein.");
+					else if (passwort->zText()->getLength() == 0)
+						zeigeNachricht("Bitte gebe dein Accountpasswort\nein.");
+					else if (geheimnis->zText()->getLength() == 0)
+						zeigeNachricht("Bitte gebe dein Accountgeheimnis\nein.");
+					return 1;
+				}
+				new AktionsThread(17, name->zText()->getText(), passwort->zText()->getText(), geheimnis->zText()->getText(), 0, 0);
+			}
+		}
+	}
+	return 1;
 }
 
-bool Unregistrierung::unregistrierungME( void *obj, MausEreignis me ) // MausEreignis im Knopf unregistrierung
+bool Unregistrierung::unregistrierungME(void* obj, MausEreignis me) // MausEreignis im Knopf unregistrierung
 {
-    if( me.id == ME_RLinks )
-    {
-        vorLogin->setUnregistrierung();
+	if (me.id == ME_RLinks)
+	{
+		vorLogin->setUnregistrierung();
 
-        fenster->addStyle( Fenster::Style::Sichtbar );
-        unregistrierung->setRahmenBreite( 3 );
-        unregistrierung->setAlphaFeldFarbe( 0xFF000000 );
-        unregistrierung->setAlphaFeldStrength( 20 );
+		fenster->addStyle(Fenster::Style::Sichtbar);
+		unregistrierung->setRahmenBreite(3);
+		unregistrierung->setAlphaFeldFarbe(0xFF000000);
+		unregistrierung->setAlphaFeldStrength(20);
 
-        text->removeStyle( TextFeld::Style::Sichtbar );
-        weiter->setPosition( 74, 110 );
-        weiter->setText( "Weiter" );
-        fenster->setTitel( "Account remove" );
-        fenster->setSize( 250, 170 );
-        Punkt bildchirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
-        fenster->setPosition( bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 85 );
-        name->addStyle( TextFeld::Style::Sichtbar );
-        passwort->addStyle( TextFeld::Style::Sichtbar );
-        geheimnis->addStyle( TextFeld::Style::Sichtbar );
-        name->addStyle( TextFeld::Style::Fokus );
-        name->setAuswahl( 0, name->zText()->getLength() );
-    }
-    return 1;
+		text->removeStyle(TextFeld::Style::Sichtbar);
+		weiter->setPosition(74, 110);
+		weiter->setText("Weiter");
+		fenster->setTitel("Account remove");
+		fenster->setSize(250, 170);
+		Punkt bildchirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
+		fenster->setPosition(bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 85);
+		name->addStyle(TextFeld::Style::Sichtbar);
+		passwort->addStyle(TextFeld::Style::Sichtbar);
+		geheimnis->addStyle(TextFeld::Style::Sichtbar);
+		name->addStyle(TextFeld::Style::Fokus);
+		name->setAuswahl(0, name->zText()->getLength());
+	}
+	return 1;
 }
 
-void Unregistrierung::setWeiterReturn( bool ret ) // setzt den Weiter Returnwert
+void Unregistrierung::setWeiterReturn(bool ret) // setzt den Weiter Returnwert
 {
-    Punkt bildchirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
-    if( ret )
-    {
-        name->removeStyle( TextFeld::Style::Sichtbar );
-        passwort->removeStyle( TextFeld::Style::Sichtbar );
-        geheimnis->removeStyle( TextFeld::Style::Sichtbar );
-        fenster->setTitel( "Account deaktiveren" );
-        fenster->setSize( 250, 200 );
-        fenster->setPosition( bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 100 );
-        weiter->setPosition( 20, 115 );
-        weiter->setText( "Ok" );
-        text->setText( "Dir wurde eine E-Mail mit einem\nLink zur Bestätigung zugeschickt,\nden du in den nächsten 12 Stunden\nbenutzen musst." );
-        text->addStyle( TextFeld::Style::Sichtbar );
-    }
-    else if( lastError.getLength() )
-        zeigeNachricht( lastError );
+	Punkt bildchirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
+	if (ret)
+	{
+		name->removeStyle(TextFeld::Style::Sichtbar);
+		passwort->removeStyle(TextFeld::Style::Sichtbar);
+		geheimnis->removeStyle(TextFeld::Style::Sichtbar);
+		fenster->setTitel("Account deaktiveren");
+		fenster->setSize(250, 200);
+		fenster->setPosition(bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 100);
+		weiter->setPosition(20, 115);
+		weiter->setText("Ok");
+		text->setText("Dir wurde eine E-Mail mit einem\nLink zur Bestätigung zugeschickt,\nden du in den nächsten 12 Stunden\nbenutzen musst.");
+		text->addStyle(TextFeld::Style::Sichtbar);
+	}
+	else if (lastError.getLength())
+		zeigeNachricht(lastError);
 }
 
-void Unregistrierung::setFertigReturn( bool ret ) // setzt den Fertig Returnwert
+void Unregistrierung::setFertigReturn(bool ret) // setzt den Fertig Returnwert
 {
-    if( ret )
-        vorLogin->setLogin( 0 );
-    else
-        zeigeNachricht( lastError );
+	if (ret)
+		vorLogin->setLogin(0);
+	else
+		zeigeNachricht(lastError);
 }
 
 
 // Ereignisse
-bool unregistrierungNameTE( void *p, void *obj, TastaturEreignis te )
+bool unregistrierungNameTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (Unregistrierung *)p )->nameTE( obj, te );
+	if (!p)
+		return 0;
+	return ((Unregistrierung*)p)->nameTE(obj, te);
 }
 
-bool unregistrierungPasswortTE( void *p, void *obj, TastaturEreignis te )
+bool unregistrierungPasswortTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (Unregistrierung *)p )->passwortTE( obj, te );
+	if (!p)
+		return 0;
+	return ((Unregistrierung*)p)->passwortTE(obj, te);
 }
 
-bool unregistrierungGeheimnisTE( void *p, void *obj, TastaturEreignis te )
+bool unregistrierungGeheimnisTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (Unregistrierung *)p )->geheimnisTE( obj, te );
+	if (!p)
+		return 0;
+	return ((Unregistrierung*)p)->geheimnisTE(obj, te);
 }
 
-bool unregistrierungWeiterME( void *p, void *obj, MausEreignis me )
+bool unregistrierungWeiterME(void* p, void* obj, MausEreignis me)
 {
-    if( !p )
-        return 0;
-    return ( (Unregistrierung *)p )->weiterME( obj, me );
+	if (!p)
+		return 0;
+	return ((Unregistrierung*)p)->weiterME(obj, me);
 }
 
-bool unregistrierungUnregistrierungME( void *p, void *obj, MausEreignis me )
+bool unregistrierungUnregistrierungME(void* p, void* obj, MausEreignis me)
 {
-    if( !p )
-        return 0;
-    return ( (Unregistrierung *)p )->unregistrierungME( obj, me );
+	if (!p)
+		return 0;
+	return ((Unregistrierung*)p)->unregistrierungME(obj, me);
 }

+ 319 - 319
KSGClient/VorLogin/Login/Login.cpp

@@ -7,385 +7,385 @@
 
 // Inhalt der Login Klasse aus Login.h
 // Konstruktor 
-Login::Login( Fenster *vorLoginFenster )
-    : ReferenceCounter()
+Login::Login(Fenster* vorLoginFenster)
+	: ReferenceCounter()
 {
-    Punkt bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
-    login = initKnopf( 10, 50, 130, 30, Knopf::Style::Sichtbar, "Login" );
-    login->setMausEreignisParameter( this );
-    login->setMausEreignis( loginLoginME );
-    initToolTip( login, "Einloggen." );
-    vorLoginFenster->addMember( dynamic_cast<Zeichnung *>( login->getThis() ) );
-    fenster = initFenster( bildschirmGröße.x / 2 - 125, bildschirmGröße.y / 2 - 75, 250, 150, Fenster::Style::Sichtbar | Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Login" );
-    name = initTextFeld( 20, 20, 208, 20, TextFeld::Style::TextFeld, "Name" );
-    name->setTastaturEreignisParameter( this );
-    name->setTastaturEreignis( loginNameTE );
-    initToolTip( name, "Account Name." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( name->getThis() ) );
-    passwort = initTextFeld( 20, 55, 208, 20, TextFeld::Style::TextFeld, "Passwort" );
-    passwort->setTastaturEreignisParameter( this );
-    passwort->setTastaturEreignis( loginPasswortTE );
-    initToolTip( passwort, "Account Passwort." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( passwort->getThis() ) );
-    weiter = initKnopf( 75, 90, 100, 20, Knopf::Style::Sichtbar, "Login" );
-    weiter->setMausEreignisParameter( this );
-    weiter->setMausEreignis( loginWeiterME );
-    fenster->addMember( dynamic_cast<Zeichnung *>( weiter->getThis() ) );
-    nachricht = initTextFeld( 5, 5, 238, 90, TextFeld::Style::HCenter | TextFeld::Style::Mehrzeilig, "" );
-    fenster->addMember( dynamic_cast<Zeichnung *>( nachricht->getThis() ) );
-    geheimnis = initTextFeld( 20, 55, 208, 20, TextFeld::Style::TextFeld, "Geheimnis" );
-    geheimnis->removeStyle( TextFeld::Style::Sichtbar );
-    geheimnis->setTastaturEreignisParameter( this );
-    geheimnis->setTastaturEreignis( loginGeheimnisTE );
-    initToolTip( geheimnis, "Account Geheimnis." );
-    fenster->addMember( dynamic_cast<Zeichnung *>( geheimnis->getThis() ) );
-    abbrechen = initKnopf( 10, 98, 100, 20, 0, "Abbrechen" );
-    abbrechen->setMausEreignisParameter( this );
-    abbrechen->setMausEreignis( loginAbbrechenME );
-    fenster->addMember( dynamic_cast<Zeichnung *>( abbrechen->getThis() ) );
-    ok = initKnopf( 138, 98, 100, 20, 0, "Ok" );
-    ok->setMausEreignisParameter( this );
-    ok->setMausEreignis( loginOkME );
-    fenster->addMember( dynamic_cast<Zeichnung *>( ok->getThis() ) );
-    vorLoginFenster->addMember( dynamic_cast<Zeichnung *>( fenster->getThis() ) );
-    MausEreignis me;
-    me.id = ME_RLinks;
-    loginME( 0, me );
+	Punkt bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
+	login = initKnopf(10, 50, 130, 30, Knopf::Style::Sichtbar, "Login");
+	login->setMausEreignisParameter(this);
+	login->setMausEreignis(loginLoginME);
+	initToolTip(login, "Einloggen.");
+	vorLoginFenster->addMember(dynamic_cast<Zeichnung*>(login->getThis()));
+	fenster = initFenster(bildschirmGröße.x / 2 - 125, bildschirmGröße.y / 2 - 75, 250, 150, Fenster::Style::Sichtbar | Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Login");
+	name = initTextFeld(20, 20, 208, 20, TextFeld::Style::TextFeld, "Name");
+	name->setTastaturEreignisParameter(this);
+	name->setTastaturEreignis(loginNameTE);
+	initToolTip(name, "Account Name.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(name->getThis()));
+	passwort = initTextFeld(20, 55, 208, 20, TextFeld::Style::TextFeld, "Passwort");
+	passwort->setTastaturEreignisParameter(this);
+	passwort->setTastaturEreignis(loginPasswortTE);
+	initToolTip(passwort, "Account Passwort.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(passwort->getThis()));
+	weiter = initKnopf(75, 90, 100, 20, Knopf::Style::Sichtbar, "Login");
+	weiter->setMausEreignisParameter(this);
+	weiter->setMausEreignis(loginWeiterME);
+	fenster->addMember(dynamic_cast<Zeichnung*>(weiter->getThis()));
+	nachricht = initTextFeld(5, 5, 238, 90, TextFeld::Style::HCenter | TextFeld::Style::Mehrzeilig, "");
+	fenster->addMember(dynamic_cast<Zeichnung*>(nachricht->getThis()));
+	geheimnis = initTextFeld(20, 55, 208, 20, TextFeld::Style::TextFeld, "Geheimnis");
+	geheimnis->removeStyle(TextFeld::Style::Sichtbar);
+	geheimnis->setTastaturEreignisParameter(this);
+	geheimnis->setTastaturEreignis(loginGeheimnisTE);
+	initToolTip(geheimnis, "Account Geheimnis.");
+	fenster->addMember(dynamic_cast<Zeichnung*>(geheimnis->getThis()));
+	abbrechen = initKnopf(10, 98, 100, 20, 0, "Abbrechen");
+	abbrechen->setMausEreignisParameter(this);
+	abbrechen->setMausEreignis(loginAbbrechenME);
+	fenster->addMember(dynamic_cast<Zeichnung*>(abbrechen->getThis()));
+	ok = initKnopf(138, 98, 100, 20, 0, "Ok");
+	ok->setMausEreignisParameter(this);
+	ok->setMausEreignis(loginOkME);
+	fenster->addMember(dynamic_cast<Zeichnung*>(ok->getThis()));
+	vorLoginFenster->addMember(dynamic_cast<Zeichnung*>(fenster->getThis()));
+	MausEreignis me;
+	me.id = ME_RLinks;
+	loginME(0, me);
 }
 
 // Destruktor 
 Login::~Login()
 {
-    if( fenster )
-        fenster = (Fenster *)fenster->release();
-    if( name )
-        name = (TextFeld *)name->release();
-    if( passwort )
-        passwort = (TextFeld *)passwort->release();
-    if( nachricht )
-        nachricht = (TextFeld *)nachricht->release();
-    if( geheimnis )
-        geheimnis = (TextFeld *)geheimnis->release();
-    if( weiter )
-        weiter = (Knopf *)weiter->release();
-    if( abbrechen )
-        abbrechen = (Knopf *)abbrechen->release();
-    if( ok )
-        ok = (Knopf *)ok->release();
-    if( login )
-        login = (Knopf *)login->release();
+	if (fenster)
+		fenster = (Fenster*)fenster->release();
+	if (name)
+		name = (TextFeld*)name->release();
+	if (passwort)
+		passwort = (TextFeld*)passwort->release();
+	if (nachricht)
+		nachricht = (TextFeld*)nachricht->release();
+	if (geheimnis)
+		geheimnis = (TextFeld*)geheimnis->release();
+	if (weiter)
+		weiter = (Knopf*)weiter->release();
+	if (abbrechen)
+		abbrechen = (Knopf*)abbrechen->release();
+	if (ok)
+		ok = (Knopf*)ok->release();
+	if (login)
+		login = (Knopf*)login->release();
 }
 
 // Knopfdruck
 void Login::druckFremdKnopf() // Ein anderer Bereich des Programms wurde ausgewählt
 {
-    fenster->removeStyle( Fenster::Style::Sichtbar );
-    login->setRahmenBreite( 2 );
-    login->setAlphaFeldFarbe( 0x5500FF00 );
-    login->setAlphaFeldStrength( -5 );
+	fenster->removeStyle(Fenster::Style::Sichtbar);
+	login->setRahmenBreite(2);
+	login->setAlphaFeldFarbe(0x5500FF00);
+	login->setAlphaFeldStrength(-5);
 }
 
-bool Login::nameTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld name
+bool Login::nameTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld name
 {
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
-    {
-        name->removeStyle( TextFeld::Style::Fokus );
-        passwort->addStyle( TextFeld::Style::Fokus );
-        passwort->setAuswahl( 0, passwort->zText()->getLength() );
-    }
-    if( name->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
+	{
+		name->removeStyle(TextFeld::Style::Fokus);
+		passwort->addStyle(TextFeld::Style::Fokus);
+		passwort->setAuswahl(0, passwort->zText()->getLength());
+	}
+	if (name->zText()->getLength() >= 25 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool Login::passwortTE( void *obj, TastaturEreignis te ) // TastaturEreignis im Textfeld passwort
+bool Login::passwortTE(void* obj, TastaturEreignis te) // TastaturEreignis im Textfeld passwort
 {
-    if( te.id == TE_Press )
-        passwort->setSchowChar( '*' );
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Release && te.taste == T_Enter )
-    {
-        passwort->removeStyle( TextFeld::Style::Fokus );
-        MausEreignis me;
-        me.id = ME_RLinks;
-        weiterME( 0, me );
-    }
-    if( passwort->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+	if (te.id == TE_Press)
+		passwort->setSchowChar('*');
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Release && te.taste == T_Enter)
+	{
+		passwort->removeStyle(TextFeld::Style::Fokus);
+		MausEreignis me;
+		me.id = ME_RLinks;
+		weiterME(0, me);
+	}
+	if (passwort->zText()->getLength() >= 25 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool Login::geheimnisTE( void *obj, TastaturEreignis te ) // TastaturEreignis im Textfeld geheimnis
+bool Login::geheimnisTE(void* obj, TastaturEreignis te) // TastaturEreignis im Textfeld geheimnis
 {
-    if( te.id == TE_Press && te.taste == T_Enter )
-        return 0;
-    if( te.id == TE_Press )
-        geheimnis->setSchowChar( '*' );
-    if( te.id == TE_Release && te.taste == T_Enter )
-    {
-        geheimnis->removeStyle( TextFeld::Style::Fokus );
-        MausEreignis me;
-        me.id = ME_RLinks;
-        okME( 0, me );
-    }
-    if( geheimnis->zText()->getLength() >= 50 && istSchreibbar( te.taste ) )
-        return 0;
-    return 1;
+	if (te.id == TE_Press && te.taste == T_Enter)
+		return 0;
+	if (te.id == TE_Press)
+		geheimnis->setSchowChar('*');
+	if (te.id == TE_Release && te.taste == T_Enter)
+	{
+		geheimnis->removeStyle(TextFeld::Style::Fokus);
+		MausEreignis me;
+		me.id = ME_RLinks;
+		okME(0, me);
+	}
+	if (geheimnis->zText()->getLength() >= 50 && istSchreibbar(te.taste))
+		return 0;
+	return 1;
 }
 
-bool Login::weiterME( void *obj, MausEreignis me ) // MausEreignis im Knopf weiter
+bool Login::weiterME(void* obj, MausEreignis me) // MausEreignis im Knopf weiter
 {
-    if( me.id == ME_RLinks )
-    {
-        if( name->zText()->getLength() == 0 )
-        {
-            name->removeStyle( TextFeld::Style::Sichtbar );
-            passwort->removeStyle( TextFeld::Style::Sichtbar );
-            weiter->removeStyle( Knopf::Style::Sichtbar );
-            nachricht->setText( "Bitte trage deinen Accountnamen\nein." );
-            nachricht->addStyle( TextFeld::Style::Sichtbar );
-            ok->addStyle( Knopf::Style::Sichtbar );
-            return 1;
-        }
-        if( passwort->zText()->getLength() == 0 )
-        {
-            name->removeStyle( TextFeld::Style::Sichtbar );
-            passwort->removeStyle( TextFeld::Style::Sichtbar );
-            weiter->removeStyle( Knopf::Style::Sichtbar );
-            nachricht->setText( "Bitte trage dein Passwort ein." );
-            nachricht->addStyle( TextFeld::Style::Sichtbar );
-            ok->addStyle( Knopf::Style::Sichtbar );
-            return 1;
-        }
-        new AktionsThread( 1, name->zText()->getText(), passwort->zText()->getText(), 0, 0, 0 );
-    }
-    return 1;
+	if (me.id == ME_RLinks)
+	{
+		if (name->zText()->getLength() == 0)
+		{
+			name->removeStyle(TextFeld::Style::Sichtbar);
+			passwort->removeStyle(TextFeld::Style::Sichtbar);
+			weiter->removeStyle(Knopf::Style::Sichtbar);
+			nachricht->setText("Bitte trage deinen Accountnamen\nein.");
+			nachricht->addStyle(TextFeld::Style::Sichtbar);
+			ok->addStyle(Knopf::Style::Sichtbar);
+			return 1;
+		}
+		if (passwort->zText()->getLength() == 0)
+		{
+			name->removeStyle(TextFeld::Style::Sichtbar);
+			passwort->removeStyle(TextFeld::Style::Sichtbar);
+			weiter->removeStyle(Knopf::Style::Sichtbar);
+			nachricht->setText("Bitte trage dein Passwort ein.");
+			nachricht->addStyle(TextFeld::Style::Sichtbar);
+			ok->addStyle(Knopf::Style::Sichtbar);
+			return 1;
+		}
+		new AktionsThread(1, name->zText()->getText(), passwort->zText()->getText(), 0, 0, 0);
+	}
+	return 1;
 }
 
-bool Login::okME( void *obj, MausEreignis me ) // MausEreignis im Knopf ok
+bool Login::okME(void* obj, MausEreignis me) // MausEreignis im Knopf ok
 {
-    if( me.id == ME_RLinks )
-    {
-        if( geheimnis->hatStyle( TextFeld::Style::Sichtbar ) )
-            new AktionsThread( 3, name->zText()->getText(), passwort->zText()->getText(), geheimnis->zText()->getText(), 0, 0 );
-        else
-        {
-            nachricht->removeStyle( TextFeld::Style::Sichtbar );
-            geheimnis->removeStyle( TextFeld::Style::Sichtbar );
-            ok->removeStyle( Knopf::Style::Sichtbar );
-            abbrechen->removeStyle( Knopf::Style::Sichtbar );
-            name->addStyle( TextFeld::Style::Sichtbar );
-            passwort->addStyle( TextFeld::Style::Sichtbar );
-            weiter->addStyle( TextFeld::Style::Sichtbar );
-            name->addStyle( TextFeld::Style::Fokus );
-            name->setAuswahl( 0, name->zText()->getLength() );
-        }
-    }
-    return 1;
+	if (me.id == ME_RLinks)
+	{
+		if (geheimnis->hatStyle(TextFeld::Style::Sichtbar))
+			new AktionsThread(3, name->zText()->getText(), passwort->zText()->getText(), geheimnis->zText()->getText(), 0, 0);
+		else
+		{
+			nachricht->removeStyle(TextFeld::Style::Sichtbar);
+			geheimnis->removeStyle(TextFeld::Style::Sichtbar);
+			ok->removeStyle(Knopf::Style::Sichtbar);
+			abbrechen->removeStyle(Knopf::Style::Sichtbar);
+			name->addStyle(TextFeld::Style::Sichtbar);
+			passwort->addStyle(TextFeld::Style::Sichtbar);
+			weiter->addStyle(TextFeld::Style::Sichtbar);
+			name->addStyle(TextFeld::Style::Fokus);
+			name->setAuswahl(0, name->zText()->getLength());
+		}
+	}
+	return 1;
 }
 
-bool Login::abbrechenME( void *obj, MausEreignis me ) // MausEreignis im Knopf abbrechen
+bool Login::abbrechenME(void* obj, MausEreignis me) // MausEreignis im Knopf abbrechen
 {
-    if( me.id == ME_RLinks )
-    {
-        nachricht->removeStyle( TextFeld::Style::Sichtbar );
-        geheimnis->removeStyle( TextFeld::Style::Sichtbar );
-        ok->removeStyle( Knopf::Style::Sichtbar );
-        abbrechen->removeStyle( Knopf::Style::Sichtbar );
-        name->addStyle( TextFeld::Style::Sichtbar );
-        passwort->addStyle( TextFeld::Style::Sichtbar );
-        weiter->addStyle( TextFeld::Style::Sichtbar );
-        name->addStyle( TextFeld::Style::Fokus );
-        name->setAuswahl( 0, name->zText()->getLength() );
-    }
-    return 1;
+	if (me.id == ME_RLinks)
+	{
+		nachricht->removeStyle(TextFeld::Style::Sichtbar);
+		geheimnis->removeStyle(TextFeld::Style::Sichtbar);
+		ok->removeStyle(Knopf::Style::Sichtbar);
+		abbrechen->removeStyle(Knopf::Style::Sichtbar);
+		name->addStyle(TextFeld::Style::Sichtbar);
+		passwort->addStyle(TextFeld::Style::Sichtbar);
+		weiter->addStyle(TextFeld::Style::Sichtbar);
+		name->addStyle(TextFeld::Style::Fokus);
+		name->setAuswahl(0, name->zText()->getLength());
+	}
+	return 1;
 }
 
-bool Login::loginME( void *obj, MausEreignis me ) // MausEreignis im Knopf login
+bool Login::loginME(void* obj, MausEreignis me) // MausEreignis im Knopf login
 {
-    if( me.id == ME_RLinks )
-    {
-        vorLogin->setLogin( 1 );
+	if (me.id == ME_RLinks)
+	{
+		vorLogin->setLogin(1);
 
-        nachricht->removeStyle( TextFeld::Style::Sichtbar );
-        geheimnis->removeStyle( TextFeld::Style::Sichtbar );
-        ok->removeStyle( Knopf::Style::Sichtbar );
-        abbrechen->removeStyle( Knopf::Style::Sichtbar );
-        fenster->addStyle( Fenster::Style::Sichtbar );
-        name->addStyle( TextFeld::Style::Sichtbar );
-        passwort->addStyle( TextFeld::Style::Sichtbar );
-        weiter->addStyle( TextFeld::Style::Sichtbar );
+		nachricht->removeStyle(TextFeld::Style::Sichtbar);
+		geheimnis->removeStyle(TextFeld::Style::Sichtbar);
+		ok->removeStyle(Knopf::Style::Sichtbar);
+		abbrechen->removeStyle(Knopf::Style::Sichtbar);
+		fenster->addStyle(Fenster::Style::Sichtbar);
+		name->addStyle(TextFeld::Style::Sichtbar);
+		passwort->addStyle(TextFeld::Style::Sichtbar);
+		weiter->addStyle(TextFeld::Style::Sichtbar);
 
-        login->setRahmenBreite( 3 );
-        login->setAlphaFeldFarbe( 0xFF000000 );
-        login->setAlphaFeldStrength( 20 );
-        name->addStyle( TextFeld::Style::Fokus );
-        name->setAuswahl( 0, name->zText()->getLength() );
-    }
-    return 1;
+		login->setRahmenBreite(3);
+		login->setAlphaFeldFarbe(0xFF000000);
+		login->setAlphaFeldStrength(20);
+		name->addStyle(TextFeld::Style::Fokus);
+		name->setAuswahl(0, name->zText()->getLength());
+	}
+	return 1;
 }
 
-void Login::setLoginReturn( int ret ) // setzt den Returnwert vom login
+void Login::setLoginReturn(int ret) // setzt den Returnwert vom login
 {
-    if( ret == 1 )
-        new AktionsThread( 2, 0, 0, 0, 0, 0 );
-    else if( ret == 2 )
-    {
-        name->removeStyle( TextFeld::Style::Sichtbar );
-        passwort->removeStyle( TextFeld::Style::Sichtbar );
-        weiter->removeStyle( Knopf::Style::Sichtbar );
-        nachricht->setText( "Der Account ist bereits online.\nGebe dein Account Geheimnis ein,\num den anderen Benutzer zu kicken." );
-        nachricht->addStyle( TextFeld::Style::Sichtbar );
-        geheimnis->addStyle( TextFeld::Style::Sichtbar );
-        ok->addStyle( Knopf::Style::Sichtbar );
-        abbrechen->addStyle( Knopf::Style::Sichtbar );
-        geheimnis->addStyle( TextFeld::Style::Fokus );
-        geheimnis->setAuswahl( 0, geheimnis->zText()->getLength() );
-    }
-    else if( !ret && lastError.getLength() )
-    {
-        name->removeStyle( TextFeld::Style::Sichtbar );
-        passwort->removeStyle( TextFeld::Style::Sichtbar );
-        weiter->removeStyle( Knopf::Style::Sichtbar );
-        nachricht->setText( lastError );
-        if( nachricht->zText()->getLength() > 30 )
-        {
-            int pos = -1;
-            bool set = 0;
-            int lastp = 0;
-            for( int i = 20; i < nachricht->zText()->getLength(); )
-            {
-                char *tmp = &nachricht->zText()->getText()[ i ];
-                while( *tmp != ' ' && i < nachricht->zText()->getLength() )
-                {
-                    tmp++;
-                    i++;
-                    if( i - 30 >= lastp )
-                    {
-                        if( set )
-                        {
-                            lastp = pos;
-                            set = 0;
-                            nachricht->zText()->getText()[ pos ] = '\n';
-                        }
-                        else
-                            lastp += 5;
-                    }
-                }
-                if( i < nachricht->zText()->getLength() )
-                {
-                    pos = i;
-                    set = 1;
-                    tmp++;
-                    i++;
-                }
-            }
-        }
-        nachricht->addStyle( TextFeld::Style::Sichtbar );
-        ok->addStyle( Knopf::Style::Sichtbar );
-    }
+	if (ret == 1)
+		new AktionsThread(2, 0, 0, 0, 0, 0);
+	else if (ret == 2)
+	{
+		name->removeStyle(TextFeld::Style::Sichtbar);
+		passwort->removeStyle(TextFeld::Style::Sichtbar);
+		weiter->removeStyle(Knopf::Style::Sichtbar);
+		nachricht->setText("Der Account ist bereits online.\nGebe dein Account Geheimnis ein,\num den anderen Benutzer zu kicken.");
+		nachricht->addStyle(TextFeld::Style::Sichtbar);
+		geheimnis->addStyle(TextFeld::Style::Sichtbar);
+		ok->addStyle(Knopf::Style::Sichtbar);
+		abbrechen->addStyle(Knopf::Style::Sichtbar);
+		geheimnis->addStyle(TextFeld::Style::Fokus);
+		geheimnis->setAuswahl(0, geheimnis->zText()->getLength());
+	}
+	else if (!ret && lastError.getLength())
+	{
+		name->removeStyle(TextFeld::Style::Sichtbar);
+		passwort->removeStyle(TextFeld::Style::Sichtbar);
+		weiter->removeStyle(Knopf::Style::Sichtbar);
+		nachricht->setText(lastError);
+		if (nachricht->zText()->getLength() > 30)
+		{
+			int pos = -1;
+			bool set = 0;
+			int lastp = 0;
+			for (int i = 20; i < nachricht->zText()->getLength(); )
+			{
+				const char* tmp = &nachricht->zText()->getText()[i];
+				while (*tmp != ' ' && i < nachricht->zText()->getLength())
+				{
+					tmp++;
+					i++;
+					if (i - 30 >= lastp)
+					{
+						if (set)
+						{
+							lastp = pos;
+							set = 0;
+							((char*)nachricht->zText()->getText())[pos] = '\n';
+						}
+						else
+							lastp += 5;
+					}
+				}
+				if (i < nachricht->zText()->getLength())
+				{
+					pos = i;
+					set = 1;
+					tmp++;
+					i++;
+				}
+			}
+		}
+		nachricht->addStyle(TextFeld::Style::Sichtbar);
+		ok->addStyle(Knopf::Style::Sichtbar);
+	}
 }
 
-void Login::setKickReturn( int ret ) // setzt den returnwert vom kick
+void Login::setKickReturn(int ret) // setzt den returnwert vom kick
 {
-    if( ret == 1 )
-        new AktionsThread( 2, 0, 0, 0, 0, 0 );
-    else if( ret == 2 )
-    {
-        nachricht->setText( lastError );
-        if( nachricht->zText()->getLength() > 30 )
-        {
-            int pos = -1;
-            bool set = 0;
-            int lastp = 0;
-            for( int i = 20; i < nachricht->zText()->getLength(); )
-            {
-                char *tmp = &nachricht->zText()->getText()[ i ];
-                while( *tmp != ' ' && i < nachricht->zText()->getLength() )
-                {
-                    tmp++;
-                    i++;
-                    if( i - 30 >= lastp )
-                    {
-                        if( set )
-                        {
-                            lastp = pos;
-                            set = 0;
-                            nachricht->zText()->getText()[ pos ] = '\n';
-                        }
-                        else
-                            lastp += 5;
-                    }
-                }
-                if( i < nachricht->zText()->getLength() )
-                {
-                    pos = i;
-                    set = 1;
-                    tmp++;
-                    i++;
-                }
-            }
-        }
-        geheimnis->removeStyle( TextFeld::Style::Sichtbar );
-        abbrechen->removeStyle( Knopf::Style::Sichtbar );
-    }
-    else if( !ret )
-    {
-        nachricht->setText( "Das Geheimnis stimmt nicht mit dem des Accounts\nüberein. Achte auf Groß - und Kleinschreibung." );
-        geheimnis->removeStyle( TextFeld::Style::Sichtbar );
-        abbrechen->removeStyle( Knopf::Style::Sichtbar );
-    }
+	if (ret == 1)
+		new AktionsThread(2, 0, 0, 0, 0, 0);
+	else if (ret == 2)
+	{
+		nachricht->setText(lastError);
+		if (nachricht->zText()->getLength() > 30)
+		{
+			int pos = -1;
+			bool set = 0;
+			int lastp = 0;
+			for (int i = 20; i < nachricht->zText()->getLength(); )
+			{
+				const char* tmp = &nachricht->zText()->getText()[i];
+				while (*tmp != ' ' && i < nachricht->zText()->getLength())
+				{
+					tmp++;
+					i++;
+					if (i - 30 >= lastp)
+					{
+						if (set)
+						{
+							lastp = pos;
+							set = 0;
+							((char*)nachricht->zText()->getText())[pos] = '\n';
+						}
+						else
+							lastp += 5;
+					}
+				}
+				if (i < nachricht->zText()->getLength())
+				{
+					pos = i;
+					set = 1;
+					tmp++;
+					i++;
+				}
+			}
+		}
+		geheimnis->removeStyle(TextFeld::Style::Sichtbar);
+		abbrechen->removeStyle(Knopf::Style::Sichtbar);
+	}
+	else if (!ret)
+	{
+		nachricht->setText("Das Geheimnis stimmt nicht mit dem des Accounts\nüberein. Achte auf Groß - und Kleinschreibung.");
+		geheimnis->removeStyle(TextFeld::Style::Sichtbar);
+		abbrechen->removeStyle(Knopf::Style::Sichtbar);
+	}
 }
 
 // Ereignisse
-bool loginNameTE( void *p, void *obj, TastaturEreignis te )
+bool loginNameTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (Login *)p )->nameTE( obj, te );
+	if (!p)
+		return 0;
+	return ((Login*)p)->nameTE(obj, te);
 }
 
-bool loginPasswortTE( void *p, void *obj, TastaturEreignis te )
+bool loginPasswortTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (Login *)p )->passwortTE( obj, te );
+	if (!p)
+		return 0;
+	return ((Login*)p)->passwortTE(obj, te);
 }
 
-bool loginGeheimnisTE( void *p, void *obj, TastaturEreignis te )
+bool loginGeheimnisTE(void* p, void* obj, TastaturEreignis te)
 {
-    if( !p )
-        return 0;
-    return ( (Login *)p )->geheimnisTE( obj, te );
+	if (!p)
+		return 0;
+	return ((Login*)p)->geheimnisTE(obj, te);
 }
 
-bool loginWeiterME( void *p, void *obj, MausEreignis me )
+bool loginWeiterME(void* p, void* obj, MausEreignis me)
 {
-    if( !p )
-        return 0;
-    return ( (Login *)p )->weiterME( obj, me );
+	if (!p)
+		return 0;
+	return ((Login*)p)->weiterME(obj, me);
 }
 
-bool loginAbbrechenME( void *p, void *obj, MausEreignis me )
+bool loginAbbrechenME(void* p, void* obj, MausEreignis me)
 {
-    if( !p )
-        return 0;
-    return ( (Login *)p )->abbrechenME( obj, me );
+	if (!p)
+		return 0;
+	return ((Login*)p)->abbrechenME(obj, me);
 }
 
-bool loginOkME( void *p, void *obj, MausEreignis me )
+bool loginOkME(void* p, void* obj, MausEreignis me)
 {
-    if( !p )
-        return 0;
-    return ( (Login *)p )->okME( obj, me );
+	if (!p)
+		return 0;
+	return ((Login*)p)->okME(obj, me);
 }
 
-bool loginLoginME( void *p, void *obj, MausEreignis me )
+bool loginLoginME(void* p, void* obj, MausEreignis me)
 {
-    if( !p )
-        return 0;
-    return ( (Login *)p )->loginME( obj, me );
+	if (!p)
+		return 0;
+	return ((Login*)p)->loginME(obj, me);
 }