Преглед изворни кода

Verwendeter Monitor auswählbar

Kolja Strohm пре 5 година
родитељ
комит
cce3c94856

+ 2 - 2
KSGClient/Global/Variablen.cpp

@@ -21,6 +21,7 @@ void initVariables( Schrift *zSchrift, Bildschirm *zBildschirm )
     editorClient = 0;
     minigameClient = 0;
     cmProcessor = 0;
+    hauptScreen = zBildschirm->getThis();
     vorLogin = new VorLogin( zSchrift, zBildschirm );
     nachLogin = new NachLogin( zSchrift, zBildschirm );
     Animation2DData *lad = new Animation2DData();
@@ -30,7 +31,7 @@ void initVariables( Schrift *zSchrift, Bildschirm *zBildschirm )
     lad->setFPS( 30 );
     lad->setWiederhohlend( 1 );
     ladeAnimation = new Animation2D();
-    ladeAnimation->setPosition( BildschirmGröße() / 2 - Punkt( 25, 25 ) );
+    ladeAnimation->setPosition( hauptScreen->getBackBufferSize() / 2 - Punkt( 25, 25 ) );
     ladeAnimation->setSize( 50, 50 );
     ladeAnimation->setAPS( 450 );
     ladeAnimation->setAnimationDataZ( lad );
@@ -38,7 +39,6 @@ void initVariables( Schrift *zSchrift, Bildschirm *zBildschirm )
     ladeAnimation->setRahmenBreite( 1 );
     ladeAnimation->setRahmenFarbe( 0xFFFFFFFF );
     zBildschirm->setOnTopZeichnung( ladeAnimation->getThis() );
-    hauptScreen = zBildschirm->getThis();
     bilder = new Bilder();
     updateH = new UpdateHandler();
     keepAliveTh = new KeepAliveTh();

+ 1 - 13
KSGClient/KSGClient.vcxproj

@@ -117,19 +117,7 @@
 copy "..\..\..\..\Allgemein\Network\x64\Debug\Network.dll" "network.dll"
 xcopy /S /Q /y "..\..\Fertig\Debug\x64\data" "data\"
 xcopy /S /Q /y "..\..\Fertig\Debug\Minigames\x64" "data\Minigames\"
-xcopy /S /Q /y "..\..\Fertig\Debug\Spiele\x64" "data\spiele\"
-copy "..\..\..\..\Allgemein\GSL\GSL\x64\Debug\GSL.dll" "data\bin\GSL.dll"
-copy "..\..\..\..\Allgemein\KSGScript\x64\Debug\KSGScript.dll" "data\bin\KSGScript.dll"
-copy "..\..\Update\x64\Debug\Update.dll" "data\bin\Update.dll"
-copy "..\..\Minigames\Asteroids\x64\Debug\Asteroids.dll" "data\Minigames\Asteroids\bin\game.dll"
-copy "..\..\Minigames\Blöcke\x64\Debug\Bloecke.dll" "data\Minigames\Blöcke\bin\game.dll"
-copy "..\..\Minigames\Fangen\x64\Debug\Fangen.dll" "data\Minigames\Fangen\bin\game.dll"
-copy "..\..\Minigames\Snake\x64\Debug\Snake.dll" "data\Minigames\Snake\bin\game.dll"
-copy "..\..\Minigames\Tetris\x64\Debug\Tetris.dll" "data\Minigames\Tetris\bin\game.dll"
-copy "..\..\..\Spiele\Klient\Asteroids\x64\Debug\Asteroids.dll" "data\spiele\Asteroids\bin\Asteroids.dll"
-copy "..\..\..\Spiele\Klient\Linie\x64\Debug\Linie.dll" "data\spiele\Linie\bin\Linie.dll"
-copy "..\x64\Debug\KSGClient.exe" "..\..\Fertig\Debug\x64\data\client\bin\game client.exe"
-copy "..\..\KSGNetwork\x64\Debug\KSGNetwork.dll" "data\bin\KSGNetwork.dll"</Command>
+xcopy /S /Q /y "..\..\Fertig\Debug\Spiele\x64" "data\spiele\"</Command>
     </CustomBuildStep>
     <CustomBuildStep>
       <Outputs>kopieren...;%(Outputs)</Outputs>

+ 2 - 1
KSGClient/NachLogin/Account/AccountAnsehen.cpp

@@ -3,13 +3,14 @@
 #include "../../Global/Initialisierung.h"
 #include <Punkt.h>
 #include <Rahmen.h>
+#include <InitDatei.h>
 
 // inhalt der AccountAnsehen Klasse aus AccountAnsehen.h
 // Konstruktor
 AccountAnsehen::AccountAnsehen( Schrift *zSchrift, Fenster *zNachLoginFenster, int x )
 	: Zeichnung(),
   laden( (Animation2D*)ladeAnimation->dublizieren() ),
-  bildschirmGröße( BildschirmGröße() ),
+  bildschirmGröße( hauptScreen->getBackBufferSize() ),
   rahmen( new LRahmen() ),
   aktivitätK( initKnopf( 145, 10, 120, 20, zSchrift, Knopf::Style::Sichtbar, "Spieler Aktivität" ) ),
   historieK( initKnopf( 665, 10, 120, 20, zSchrift, Knopf::Style::Sichtbar, "Spiel Historie" ) ),

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

@@ -36,7 +36,7 @@ Chat::Chat( Schrift *zSchrift )
     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.", zSchrift, hauptScreen );
-    bildschirmGröße = BildschirmGröße();
+    bildschirmGröße = hauptScreen->getBackBufferSize();
     admin = 0;
     tickVal = 0;
     sichtbar = 1;
@@ -883,7 +883,7 @@ ChatLeisteObj::ChatLeisteObj( Schrift * zSchrift )
     schrift = zSchrift->getThis();
     chats = new RCArray< Chat >();
     hsb = new HScrollBar();
-    bildschirmGröße = BildschirmGröße();
+    bildschirmGröße = hauptScreen->getBackBufferSize();
     anzahl = 0;
     nowME = -1;
 }
@@ -1154,7 +1154,7 @@ ChatLeiste::ChatLeiste( Schrift * zSchrift, Fenster * zNachLoginFenster )
 {
     minimierenBild = bilder->get( "data/client/bilder/chat.ltdb/minimieren.png" );
     maximierenBild = bilder->get( "data/client/bilder/chat.ltdb/maximieren.png" );
-    bildschirmGröße = BildschirmGröße();
+    bildschirmGröße = hauptScreen->getBackBufferSize();
     fenster = initFenster( 20 - bildschirmGröße.x, bildschirmGröße.y - 50, bildschirmGröße.x, 50, 0, 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, 0, "" );

+ 3 - 2
KSGClient/NachLogin/Chat/FreundesListe.cpp

@@ -8,6 +8,7 @@
 #include <Punkt.h>
 #include <DateiSystem.h>
 #include <Tooltip.h>
+#include <InitDatei.h>
 
 // Inhalt der FreundData Klasse aus FreundesListe.h
 // Konstruktor
@@ -406,7 +407,7 @@ FreundesListeObj::FreundesListeObj( Schrift * zSchrift )
     auswahlBuffer->setPosition( 1, 1 );
     vsb = new VScrollBar();
     vsb->setKlickScroll( 10 );
-    bildschirmGröße = BildschirmGröße();
+    bildschirmGröße = hauptScreen->getBackBufferSize();
     vsb->update( 0, bildschirmGröße.y - 200 );
     memberNummer = 0;
     einladenSichtbar = 0;
@@ -609,7 +610,7 @@ FreundesListe::FreundesListe( Schrift * zSchrift, Fenster * zNachLoginFenster )
     maximierenBild = bilder->get( "data/client/bilder/chat.ltdb/maximieren.png" );
     Bild *neuerFreundBild = bilder->get( "data/client/bilder/chat.ltdb/neuerfreund.png" );
 
-    bildschirmGröße = BildschirmGröße();
+    bildschirmGröße = hauptScreen->getBackBufferSize();
 
     fenster = new Fenster();
     fenster->setStyle( Fenster::Style::Sichtbar | Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::BodyHintergrund );

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

@@ -515,7 +515,7 @@ NachrichtenListeObj::NachrichtenListeObj( Schrift * zSchrift )
     schrift = zSchrift->getThis();
     vsb = new VScrollBar();
     vsb->setKlickScroll( 10 );
-    bildschirmGröße = BildschirmGröße();
+    bildschirmGröße = hauptScreen->getBackBufferSize();
     vsb->update( 0, bildschirmGröße.y - 122 );
     anzahl = 0;
     gr = Punkt( 250, bildschirmGröße.y - 122 );
@@ -656,7 +656,7 @@ NachrichtenListe::NachrichtenListe( Schrift * zSchrift, Fenster * zNachLoginFens
     schrift = zSchrift->getThis();
     minimierenBild = bilder->get( "data/client/bilder/chat.ltdb/minimieren.png" );
     maximierenBild = bilder->get( "data/client/bilder/chat.ltdb/maximieren.png" );
-    bildschirmGröße = BildschirmGröße();
+    bildschirmGröße = hauptScreen->getBackBufferSize();
     fenster = initFenster( bildschirmGröße.x - 21, 100, 250, 22, zSchrift, Fenster::Style::Sichtbar | Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::BodyHintergrund, "" );
     fenster->setKBgFarbe( 0xFF000000 );
     überschrift = initTextFeld( 1, 1, 248, 20, zSchrift, TextFeld::Style::Text | TextFeld::Style::Center | TextFeld::Style::Sichtbar, "Nachrichten" );

+ 2 - 1
KSGClient/NachLogin/Editor/Editor.cpp

@@ -1,6 +1,7 @@
 #include "Editor.h"
 #include <Rahmen.h>
 #include "../../Global/Variablen.h"
+#include <InitDatei.h>
 
 // Inhalt der Editor Klasse aus Editor.h
 // Konstruktor
@@ -8,7 +9,7 @@ Editor::Editor( Schrift *zSchrift, Fenster *zNachLoginFenster, int x )
 	: Zeichnung()
 {
 	schrift = zSchrift->getThis();
-	bildschirmGröße = BildschirmGröße();
+	bildschirmGröße = hauptScreen->getBackBufferSize();
 	pos = Punkt( x, 35 );
 	gr = Punkt( 102, 32 );
 	rahmen = new LRahmen();

+ 61 - 39
KSGClient/NachLogin/Einstellungen/Einstellungen.cpp

@@ -9,15 +9,15 @@
 // Konstruktor
 Einstellungen::Einstellungen( Schrift *zSchrift, Fenster *zF )
 {
-	f = initFenster( zF->getBreite() / 2 - 250, zF->getHeight() / 2 - 250, 500, 500, zSchrift, 
-					 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 );
+    f = initFenster( zF->getBreite() / 2 - 250, zF->getHeight() / 2 - 250, 500, 500, zSchrift,
+                     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, zSchrift, TextFeld::Style::Text, "Grafik Engine (Neustart erforderlich)" );
     f->addMember( gat );
     AuswahlBox *graphicAPI = initAuswahlBox( 5, 25, 100, 20, zSchrift, AuswahlBox::Style::Normal | AuswahlBox::Style::Hintergrund, { "Aktuellste", "DirectX 9" } );
@@ -34,6 +34,7 @@ Einstellungen::Einstellungen( Schrift *zSchrift, Fenster *zF )
         graphicAPI->setAuswahl( 3 );
     graphicAPI->setEventAktion( [ this ]( void *p, AuswahlBox * b, int unused, int auswahl )
     {
+        userOptions->addWert( "GraphicAPI", "BEST" );
         switch( auswahl )
         {
         case 1:
@@ -55,20 +56,41 @@ Einstellungen::Einstellungen( Schrift *zSchrift, Fenster *zF )
     maxFPS = initTextFeld( 5, 70, 50, 20, zSchrift, TextFeld::Style::TextFeld, userOptions->wertExistiert( "MaxFPS" ) ? userOptions->zWert( "MaxFPS" )->getText() : "30" );
     maxFPS->setTastaturEreignis( _nurNummernTE );
     f->addMember( maxFPS->getThis() );
-    TextFeld *gst = initTextFeld( 5, 95, 200, 20, zSchrift, TextFeld::Style::Text, "GUI Lautstärke (0 bis 100)" );
+    TextFeld * gst = initTextFeld( 5, 95, 200, 20, zSchrift, TextFeld::Style::Text, "GUI Lautstärke (0 bis 100)" );
     f->addMember( gst );
     guiSound = initTextFeld( 5, 115, 50, 20, zSchrift, TextFeld::Style::TextFeld, userOptions->wertExistiert( "GUISound" ) ? userOptions->zWert( "GUISound" )->getText() : "100" );
     guiSound->setTastaturEreignis( _nurNummernTE );
     f->addMember( guiSound->getThis() );
-	ok = initKnopf( 390, 450, 100, 20, zSchrift, Knopf::Style::Sichtbar, "Ok" );
-	ok->setMausEreignisParameter( this );
-	ok->setMausEreignis( einstellungenOkME );
-	f->addMember( ok->getThis() );
+    TextFeld * mt = initTextFeld( 255, 5, 200, 20, zSchrift, TextFeld::Style::Text, "Monitor (Neustart erforderlich)" );
+    f->addMember( mt );
+    AuswahlBox * monitorAuswahl = initAuswahlBox( 255, 25, 200, 20, zSchrift, 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 ) );
+    } );
+    ok = initKnopf( 390, 450, 100, 20, zSchrift, Knopf::Style::Sichtbar, "Ok" );
+    ok->setMausEreignisParameter( this );
+    ok->setMausEreignis( einstellungenOkME );
+    f->addMember( ok->getThis() );
+
     // add AuswahlBoxen
     f->addMember( graphicAPI );
+    f->addMember( monitorAuswahl );
 
-	zF->addMember( f->getThis() );
-	ref = 1;
+    zF->addMember( f->getThis() );
+    ref = 1;
 }
 
 // Destruktor
@@ -76,27 +98,27 @@ Einstellungen::~Einstellungen()
 {
     maxFPS->release();
     guiSound->release();
-	f->release();
-	ok->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 )
 {
-	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 )
-	{
+    if( me.id == ME_RLinks )
+    {
         int fps = *maxFPS->zText();
         int sound = *guiSound->zText();
         if( fps > 0 && sound >= 0 && sound <= 100 )
@@ -114,37 +136,37 @@ bool Einstellungen::okME( MausEreignis &me )
             hauptScreen->unlock();
             userOptions->speichern();
         }
-	}
-	return 1;
+    }
+    return 1;
 }
 
 // Reference Counting
 Einstellungen *Einstellungen::getThis()
 {
-	ref++;
-	return this;
+    ref++;
+    return this;
 }
 
 Einstellungen *Einstellungen::release()
 {
-	ref--;
-	if( !ref )
-		delete this;
-	return 0;
+    ref--;
+    if( !ref )
+        delete this;
+    return 0;
 }
 
 
 // Ereignisse
 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 )
 {
-	if( !p )
-		return 1;
-	return ( (Einstellungen*)p )->okME( me );
+    if( !p )
+        return 1;
+    return ( (Einstellungen *)p )->okME( me );
 }

+ 3 - 2
KSGClient/NachLogin/ImSpiel/Laden/SpielLaden.cpp

@@ -6,6 +6,7 @@
 #include <Rahmen.h>
 #include <AlphaFeld.h>
 #include <Punkt.h>
+#include <InitDatei.h>
 
 // Inhalt der SpielLadenListeSpieler Klasse aus SpielLaden.h
 // Konstruktor
@@ -141,7 +142,7 @@ SpielLadenListeSpieler *SpielLadenListeSpieler::release()
 // Konstruktor
 SpielLadenListe::SpielLadenListe( Schrift *zSchrift )
 {
-	bildschirmGröße = BildschirmGröße();
+	bildschirmGröße = hauptScreen->getBackBufferSize();
 	spielerAnzahl = 0;
 	höhe = 0;
 	breite = 0;
@@ -386,7 +387,7 @@ SpielLaden::SpielLaden( Schrift *zSchrift )
 	: Thread()
 {
 	karteId = 0;
-	bildschirmGröße = BildschirmGröße();
+	bildschirmGröße = hauptScreen->getBackBufferSize();
 	hintergrundBild = 0;
 	ladenAlpha = 0;
 	hintergrundAlpha = 0;

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

@@ -186,7 +186,7 @@ MiniGames::MiniGames( Schrift * zSchrift, Fenster * zNachLoginFenster, int x )
     : Zeichnung()
 {
     schrift = zSchrift->getThis();
-    bildschirmGröße = BildschirmGröße();
+    bildschirmGröße = hauptScreen->getBackBufferSize();
     pos = Punkt( x, 67 );
     gr = Punkt( 102, 32 );
     rahmen = new LRahmen();

+ 2 - 1
KSGClient/NachLogin/Neuigkeiten/Neuigkeiten.cpp

@@ -3,6 +3,7 @@
 #include "../../Global/Initialisierung.h"
 #include <Punkt.h>
 #include <Globals.h>
+#include <InitDatei.h>
 
 // Inhalt der NewsThread Klasse aus Neuigkeiten.h
 // Konstruktor
@@ -77,7 +78,7 @@ void KSGSR
 Neuigkeiten::Neuigkeiten( Schrift * zSchrift, Fenster * zNachLoginFenster, int x )
     : Zeichnung()
 {
-    bildschirmGröße = BildschirmGröße();
+    bildschirmGröße = hauptScreen->getBackBufferSize();
     pos = Punkt( x, 67 );
     gr = Punkt( 102, 32 );
     rahmen = new LRahmen();

+ 2 - 1
KSGClient/NachLogin/Shop/Shop.cpp

@@ -3,13 +3,14 @@
 #include "../../Global/Initialisierung.h"
 #include <Punkt.h>
 #include <Rahmen.h>
+#include <InitDatei.h>
 
 // Inhalt der Shop Klasse aus Shop.h
 // Konstruktor
 Shop::Shop( Schrift *zSchrift, Fenster *zNachLoginFenster, int x )
 	: Zeichnung()
 {
-	bildschirmGröße = BildschirmGröße();
+	bildschirmGröße = hauptScreen->getBackBufferSize();
 	pos = Punkt( x, 67 );
 	gr = Punkt( 102, 32 );
 	rahmen = new LRahmen();

+ 2 - 1
KSGClient/NachLogin/Spiele/Spiele.cpp

@@ -5,13 +5,14 @@
 #include <Text.h>
 #include "..\..\Global\Initialisierung.h"
 #include "..\..\Global\Variablen.h"
+#include <InitDatei.h>
 
 // Inhalt der Spiele Klasse aus Spiele.h
 // Konstruktor
 Spiele::Spiele( Schrift *zSchrift, Fenster *zNachLoginFenster, int x )
 	: Zeichnung()
 {
-	bildschirmGröße = BildschirmGröße();
+	bildschirmGröße = hauptScreen->getBackBufferSize();
 	pos = Punkt( x, 67 );
 	gr = Punkt( 102, 32 );
 	LTDBDatei *spielenBilder = new LTDBDatei();

+ 2 - 1
KSGClient/NachLogin/Titel/TitelLeiste.cpp

@@ -4,6 +4,7 @@
 #include "..\..\Global\Initialisierung.h"
 #include <Punkt.h>
 #include <Datei.h>
+#include <InitDatei.h>
 
 // Inhalt der TitelLeisten Klasse aus Titelleiste.h
 // Konstruktor
@@ -23,7 +24,7 @@ TitelLeiste::TitelLeiste( Fenster *zNachLogin, Schrift *zSchrift )
     logoutBild = bilder->laden( 0, new Text( "logout.png" ) );
     Bild *hintergrund = bilder->laden( 0, new Text( "titelleiste.jpg" ) );
     bilder = bilder->release();
-    Punkt bgr = BildschirmGröße();
+    Punkt bgr = hauptScreen->getBackBufferSize();
     version = initTextFeld( 1, 1, 200, 12, zSchrift, TextFeld::Style::Text | TextFeld::Style::Sichtbar, "client version: " );
     Datei *vDat = new Datei();
     vDat->setDatei( new Text( "data/version" ) );

+ 9 - 7
KSGClient/Start/Start.cpp

@@ -56,19 +56,21 @@ int KSGStart Framework::Start( Startparam p )
         Framework::setLogEnabled( init.zWert( "Log" )->istGleich( "1" ) );
     Framework::logLine( "Anwendung wird gestartet..." );
 
-    Punkt bildschirmGröße = BildschirmGröße();
-    bildschirmGröße.x++;
-    bildschirmGröße.y++;
-    Framework::logLine( ( ( Text( "Ermittelte Bildschirmgroesse: " ) += ( bildschirmGröße.x - 1 ) ) += "x" ) += ( bildschirmGröße.y - 1 ) );
-
     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( 0, 0 ) );
-    fenster->setSize( bildschirmGröße );
+    fenster->setPosition( Punkt( m.x, m.y ) );
+    fenster->setSize( Punkt( m.breite, m.height ) );
     fenster->setMausAktion( fensterME );
     fenster->setTastaturAktion( fensterTE );
     fenster->setVSchließAktion( fensterVS );

+ 9 - 8
KSGClient/VorLogin/Account verwalten/EMail.cpp

@@ -3,12 +3,13 @@
 #include "EMail.h"
 #include <Text.h>
 #include <Punkt.h>
+#include <InitDatei.h>
 
 // Inhalt der EMailÄndern Klasse aus EMail.h
 // Konstruktor
 EMailÄndern::EMailÄndern( Schrift *zSchrift, Fenster *zVorLoginFenster )
 {
-    Punkt bildschirmmitte = Bildschirmmitte();
+    Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
     eMailÄndern = initKnopf( 10, 210, 130, 30, zSchrift, Knopf::Style::Sichtbar, "E-Mail ändern" );
     eMailÄndern->setMausEreignisParameter( this );
     eMailÄndern->setMausEreignis( eMailÄndernEMailÄndernME );
@@ -69,7 +70,7 @@ EMail
 // Privat
 void EMailÄndern::zeigeNachricht( const char *txt )
 {
-    Punkt bildschirmmitte = Bildschirmmitte();
+    Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
     name->removeStyle( TextFeld::Style::Sichtbar );
     passwort->removeStyle( TextFeld::Style::Sichtbar );
     geheimnis->removeStyle( TextFeld::Style::Sichtbar );
@@ -133,7 +134,7 @@ bool EMail
         eMailÄndern->setRahmenBreite( 3 );
         eMailÄndern->setAlphaFeldFarbe( 0xFF000000 );
         eMailÄndern->setAlphaFeldStrength( 20 );
-        Punkt bildschirmmitte = Bildschirmmitte();
+        Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
         fenster->setSize( 255, 200 );
         fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 100 );
         fenster->addStyle( Fenster::Style::Sichtbar );
@@ -237,7 +238,7 @@ bool EMail
         }
         else
         {
-            Punkt bildschirmmitte = Bildschirmmitte();
+            Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
             fenster->setSize( 255, 200 );
             fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 100 );
             fenster->addStyle( Fenster::Style::Sichtbar );
@@ -285,7 +286,7 @@ EMail
 // Konstruktor
 EMailVergessen::EMailVergessen( Schrift * zSchrift, Fenster * zVorLoginFenster )
 {
-    Punkt bildschirmmitte = Bildschirmmitte();
+    Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
     eMailVergessen = initKnopf( 10, 410, 130, 30, zSchrift, Knopf::Style::Sichtbar, "E-Mail vergessen" );
     eMailVergessen->setMausEreignisParameter( this );
     eMailVergessen->setMausEreignis( eMailVergessenEMailVergessenME );
@@ -339,7 +340,7 @@ EMailVergessen::~EMailVergessen()
 // Privat
 void EMailVergessen::zeigeNachricht( const char *txt )
 {
-    Punkt bildschirmmitte = Bildschirmmitte();
+    Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
     name->removeStyle( TextFeld::Style::Sichtbar );
     passwort->removeStyle( TextFeld::Style::Sichtbar );
     geheimnis->removeStyle( TextFeld::Style::Sichtbar );
@@ -402,7 +403,7 @@ bool EMailVergessen::eMailVergessenME( void *obj, MausEreignis me ) // MausEreig
         eMailVergessen->setRahmenBreite( 3 );
         eMailVergessen->setAlphaFeldFarbe( 0xFF000000 );
         eMailVergessen->setAlphaFeldStrength( 20 );
-        Punkt bildschirmmitte = Bildschirmmitte();
+        Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
         fenster->setSize( 255, 170 );
         fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 85 );
         fenster->addStyle( Fenster::Style::Sichtbar );
@@ -486,7 +487,7 @@ bool EMailVergessen::weiterME( void *obj, MausEreignis me ) // MausEreignis im K
         }
         else
         {
-            Punkt bildschirmmitte = Bildschirmmitte();
+            Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
             fenster->setSize( 255, 170 );
             fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 85 );
             fenster->addStyle( Fenster::Style::Sichtbar );

+ 9 - 8
KSGClient/VorLogin/Account verwalten/Geheimnis.cpp

@@ -3,12 +3,13 @@
 #include "..\..\Global\Initialisierung.h"
 #include <Punkt.h>
 #include <Text.h>
+#include <InitDatei.h>
 
 // Inhalt der GeheimnisÄndern Klasse aus Geheimnis.h
 // Konstruktor
 GeheimnisÄndern::GeheimnisÄndern( Schrift *zSchrift, Fenster *zVorLoginFenster )
 {
-    Punkt bildschirmmitte = Bildschirmmitte();
+    Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
     geheimnisÄndern = initKnopf( 10, 250, 130, 30, zSchrift, Knopf::Style::Sichtbar, "Geheimnis ändern" );
     geheimnisÄndern->setMausEreignisParameter( this );
     geheimnisÄndern->setMausEreignis( geheimnisÄndernGeheimnisÄndernME );
@@ -69,7 +70,7 @@ Geheimnis
 // Privat
 void GeheimnisÄndern::zeigeNachricht( const char *txt )
 {
-    Punkt bildschirmmitte = Bildschirmmitte();
+    Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
     name->removeStyle( TextFeld::Style::Sichtbar );
     passwort->removeStyle( TextFeld::Style::Sichtbar );
     geheimnis->removeStyle( TextFeld::Style::Sichtbar );
@@ -133,7 +134,7 @@ bool Geheimnis
         geheimnisÄndern->setRahmenBreite( 3 );
         geheimnisÄndern->setAlphaFeldFarbe( 0xFF000000 );
         geheimnisÄndern->setAlphaFeldStrength( 20 );
-        Punkt bildschirmmitte = Bildschirmmitte();
+        Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
         fenster->setSize( 255, 200 );
         fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 100 );
         fenster->addStyle( Fenster::Style::Sichtbar );
@@ -235,7 +236,7 @@ bool Geheimnis
         }
         else
         {
-            Punkt bildschirmmitte = Bildschirmmitte();
+            Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
             fenster->setSize( 255, 200 );
             fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 100 );
             fenster->addStyle( Fenster::Style::Sichtbar );
@@ -283,7 +284,7 @@ Geheimnis
 // Konstruktor
 GeheimnisVergessen::GeheimnisVergessen( Schrift * zSchrift, Fenster * zVorLoginFenster )
 {
-    Punkt bildschirmmitte = Bildschirmmitte();
+    Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
     geheimnisVergessen = initKnopf( 10, 370, 130, 30, zSchrift, Knopf::Style::Sichtbar, "Geheimnis vergessen" );
     geheimnisVergessen->setMausEreignisParameter( this );
     geheimnisVergessen->setMausEreignis( geheimnisVergessenGeheimnisVergessenME );
@@ -330,7 +331,7 @@ GeheimnisVergessen::~GeheimnisVergessen()
 // Privat
 void GeheimnisVergessen::zeigeNachricht( const char *txt )
 {
-    Punkt bildschirmmitte = Bildschirmmitte();
+    Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
     name->removeStyle( TextFeld::Style::Sichtbar );
     passwort->removeStyle( TextFeld::Style::Sichtbar );
     fenster->setSize( 250, 150 );
@@ -392,7 +393,7 @@ bool GeheimnisVergessen::geheimnisVergessenME( void *obj, MausEreignis me ) // M
         geheimnisVergessen->setRahmenBreite( 3 );
         geheimnisVergessen->setAlphaFeldFarbe( 0xFF000000 );
         geheimnisVergessen->setAlphaFeldStrength( 20 );
-        Punkt bildschirmmitte = Bildschirmmitte();
+        Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
         fenster->setSize( 255, 140 );
         fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 70 );
         fenster->addStyle( Fenster::Style::Sichtbar );
@@ -456,7 +457,7 @@ bool GeheimnisVergessen::weiterME( void *obj, MausEreignis me ) // MausEreignis
         }
         else
         {
-            Punkt bildschirmmitte = Bildschirmmitte();
+            Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
             fenster->setSize( 255, 140 );
             fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 70 );
             fenster->addStyle( Fenster::Style::Sichtbar );

+ 5 - 4
KSGClient/VorLogin/Account verwalten/Name.cpp

@@ -3,12 +3,13 @@
 #include "..\..\Global\Initialisierung.h"
 #include <Punkt.h>
 #include <Text.h>
+#include <InitDatei.h>
 
 // Inhalt der NameVergessen Klasse aus Name.h
 // Konstruktor
 NameVergessen::NameVergessen( Schrift *zSchrift, Fenster *zVorLoginFenster )
 {
-    Punkt bildschirmmitte = Bildschirmmitte();
+    Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
     nameVergessen = initKnopf( 10, 290, 130, 30, zSchrift, Knopf::Style::Sichtbar, "Name vergessen" );
     nameVergessen->setMausEreignisParameter( this );
     nameVergessen->setMausEreignis( nameVergessenNameVergessenME );
@@ -55,7 +56,7 @@ NameVergessen::~NameVergessen()
 // Privat
 void NameVergessen::zeigeNachricht( const char *txt )
 {
-    Punkt bildschirmmitte = Bildschirmmitte();
+    Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
     passwort->removeStyle( TextFeld::Style::Sichtbar );
     geheimnis->removeStyle( TextFeld::Style::Sichtbar );
     fenster->setSize( 250, 150 );
@@ -117,7 +118,7 @@ bool NameVergessen::nameVergessenME( void *obj, MausEreignis me ) // MausEreigni
         nameVergessen->setRahmenBreite( 3 );
         nameVergessen->setAlphaFeldFarbe( 0xFF000000 );
         nameVergessen->setAlphaFeldStrength( 20 );
-        Punkt bildschirmmitte = Bildschirmmitte();
+        Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
         fenster->setSize( 255, 140 );
         fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 70 );
         fenster->addStyle( Fenster::Style::Sichtbar );
@@ -181,7 +182,7 @@ bool NameVergessen::weiterME( void *obj, MausEreignis me ) // MausEreignis im Kn
         }
         else
         {
-            Punkt bildschirmmitte = Bildschirmmitte();
+            Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
             fenster->setSize( 255, 140 );
             fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 70 );
             fenster->addStyle( Fenster::Style::Sichtbar );

+ 9 - 8
KSGClient/VorLogin/Account verwalten/Passwort.cpp

@@ -3,12 +3,13 @@
 #include "..\..\Global\Initialisierung.h"
 #include <Punkt.h>
 #include <Text.h>
+#include <InitDatei.h>
 
 // Inhalt der PasswortÄndern Klasse aus Passwort.h
 // Konstruktor
 PasswortÄndern::PasswortÄndern( Schrift *zSchrift, Fenster *zVorLoginFenster )
 {
-    Punkt bildschirmmitte = Bildschirmmitte();
+    Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
     passwortÄndern = initKnopf( 10, 170, 130, 30, zSchrift, Knopf::Style::Sichtbar, "Passwort ändern" );
     passwortÄndern->setMausEreignisParameter( this );
     passwortÄndern->setMausEreignis( passwortÄndernPasswortÄndernME );
@@ -76,7 +77,7 @@ Passwort
 // Privat
 void PasswortÄndern::zeigeNachricht( const char *txt )
 {
-    Punkt bildschirmmitte = Bildschirmmitte();
+    Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
     name->removeStyle( TextFeld::Style::Sichtbar );
     passwort->removeStyle( TextFeld::Style::Sichtbar );
     neuPasswort->removeStyle( TextFeld::Style::Sichtbar );
@@ -141,7 +142,7 @@ bool Passwort
         passwortÄndern->setRahmenBreite( 3 );
         passwortÄndern->setAlphaFeldFarbe( 0xFF000000 );
         passwortÄndern->setAlphaFeldStrength( 20 );
-        Punkt bildschirmmitte = Bildschirmmitte();
+        Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
         fenster->setSize( 255, 230 );
         fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 115 );
         fenster->addStyle( Fenster::Style::Sichtbar );
@@ -265,7 +266,7 @@ bool Passwort
         }
         else
         {
-            Punkt bildschirmmitte = Bildschirmmitte();
+            Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
             fenster->setSize( 255, 230 );
             fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 115 );
             fenster->addStyle( Fenster::Style::Sichtbar );
@@ -314,7 +315,7 @@ Passwort
 // Konstruktor
 PasswortVergessen::PasswortVergessen( Schrift * zSchrift, Fenster * zVorLoginFenster )
 {
-    Punkt bildschirmmitte = Bildschirmmitte();
+    Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
     passwortVergessen = initKnopf( 10, 330, 130, 30, zSchrift, Knopf::Style::Sichtbar, "Passwort vergessen" );
     passwortVergessen->setMausEreignisParameter( this );
     passwortVergessen->setMausEreignis( passwortVergessenPasswortVergessenME );
@@ -361,7 +362,7 @@ PasswortVergessen::~PasswortVergessen()
 // Privat
 void PasswortVergessen::zeigeNachricht( const char *txt )
 {
-    Punkt bildschirmmitte = Bildschirmmitte();
+    Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
     name->removeStyle( TextFeld::Style::Sichtbar );
     geheimnis->removeStyle( TextFeld::Style::Sichtbar );
     fenster->setSize( 250, 150 );
@@ -423,7 +424,7 @@ bool PasswortVergessen::passwortVergessenME( void *obj, MausEreignis me ) // Mau
         passwortVergessen->setRahmenBreite( 3 );
         passwortVergessen->setAlphaFeldFarbe( 0xFF000000 );
         passwortVergessen->setAlphaFeldStrength( 20 );
-        Punkt bildschirmmitte = Bildschirmmitte();
+        Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
         fenster->setSize( 255, 140 );
         fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 70 );
         fenster->addStyle( Fenster::Style::Sichtbar );
@@ -487,7 +488,7 @@ bool PasswortVergessen::weiterME( void *obj, MausEreignis me ) // MausEreignis i
         }
         else
         {
-            Punkt bildschirmmitte = Bildschirmmitte();
+            Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
             fenster->setSize( 255, 140 );
             fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 70 );
             fenster->addStyle( Fenster::Style::Sichtbar );

+ 6 - 5
KSGClient/VorLogin/Account verwalten/Registrierung.cpp

@@ -4,12 +4,13 @@
 #include <Punkt.h>
 #include <Text.h>
 #include <Zeit.h>
+#include <InitDatei.h>
 
 // Inhalt der Registrierung Klasse aus Registrierung.h
 // Konstruktor 
 Registrierung::Registrierung( Schrift *zSchrift, Fenster *zVorLoginFenster )
 {
-    Punkt bildschirmGröße = BildschirmGröße();
+    Punkt bildschirmGröße = hauptScreen->getBackBufferSize();
     registrierung = initKnopf( 10, 90, 130, 30, zSchrift, Knopf::Style::Sichtbar, "Registrieren" );
     registrierung->setMausEreignisParameter( this );
     registrierung->setMausEreignis( registrierungRegistrierungME );
@@ -138,7 +139,7 @@ Registrierung::~Registrierung()
 // Privat
 void Registrierung::zeigeNachricht( const char *txt )
 {
-    Punkt bildschirmmitte = Bildschirmmitte();
+    Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
     name->removeStyle( TextFeld::Style::Sichtbar );
     passwort->removeStyle( TextFeld::Style::Sichtbar );
     passwort2->removeStyle( TextFeld::Style::Sichtbar );
@@ -283,7 +284,7 @@ bool Registrierung::weiterME( void *obj, MausEreignis me ) // MausEreignis im Kn
 {
     if( me.id == ME_RLinks )
     {
-        Punkt bildchirmGröße = BildschirmGröße();
+        Punkt bildchirmGröße = hauptScreen->getBackBufferSize();
         if( fenster->zTitel()->istGleich( "Erfolg" ) )
         {
             text->removeStyle( TextFeld::Style::Sichtbar );
@@ -385,7 +386,7 @@ bool Registrierung::registrierungME( void *obj, MausEreignis me ) // MausEreigni
         registrierung->setAlphaFeldFarbe( 0xFF000000 );
         registrierung->setAlphaFeldStrength( 20 );
 
-        Punkt bildchirmGröße = BildschirmGröße();
+        Punkt bildchirmGröße = hauptScreen->getBackBufferSize();
         text->removeStyle( TextFeld::Style::Sichtbar );
         weiter->setPosition( 124, 200 );
         weiter->setText( "Weiter" );
@@ -409,7 +410,7 @@ bool Registrierung::registrierungME( void *obj, MausEreignis me ) // MausEreigni
 
 void Registrierung::setWeiterReturn( bool ret ) // setzt den Weiter Returnwert
 {
-    Punkt bildchirmGröße = BildschirmGröße();
+    Punkt bildchirmGröße = hauptScreen->getBackBufferSize();
     if( ret )
     {
         name->removeStyle( TextFeld::Style::Sichtbar );

+ 6 - 5
KSGClient/VorLogin/Account verwalten/Unregistrierung.cpp

@@ -3,12 +3,13 @@
 #include "Unregistrierung.h"
 #include <Text.h>
 #include <Punkt.h>
+#include <InitDatei.h>
 
 // Inhalt der Unregistrierung Klasse aus Unregistrierung.h
 // Konstruktor 
 Unregistrierung::Unregistrierung( Schrift *zSchrift, Fenster *zVorLoginFenster )
 {
-    Punkt bildschirmGröße = BildschirmGröße();
+    Punkt bildschirmGröße = hauptScreen->getBackBufferSize();
     unregistrierung = initKnopf( 10, 130, 130, 30, zSchrift, Knopf::Style::Sichtbar, "Account remove" );
     unregistrierung->setMausEreignisParameter( this );
     unregistrierung->setMausEreignis( unregistrierungUnregistrierungME );
@@ -62,7 +63,7 @@ Unregistrierung::~Unregistrierung()
 // Privat
 void Unregistrierung::zeigeNachricht( const char *txt )
 {
-    Punkt bildschirmmitte = Bildschirmmitte();
+    Punkt bildschirmmitte = hauptScreen->getBackBufferSize() / 2;
     name->removeStyle( TextFeld::Style::Sichtbar );
     passwort->removeStyle( TextFeld::Style::Sichtbar );
     geheimnis->removeStyle( TextFeld::Style::Sichtbar );
@@ -171,7 +172,7 @@ bool Unregistrierung::weiterME( void *obj, MausEreignis me ) // MausEreignis im
 {
     if( me.id == ME_RLinks )
     {
-        Punkt bildchirmGröße = BildschirmGröße();
+        Punkt bildchirmGröße = hauptScreen->getBackBufferSize();
         if( weiter->zText()->istGleich( "Ok" ) )
         {
             text->removeStyle( TextFeld::Style::Sichtbar );
@@ -249,7 +250,7 @@ bool Unregistrierung::unregistrierungME( void *obj, MausEreignis me ) // MausEre
         weiter->setText( "Weiter" );
         fenster->setTitel( "Account remove" );
         fenster->setSize( 250, 170 );
-        Punkt bildchirmGröße = BildschirmGröße();
+        Punkt bildchirmGröße = hauptScreen->getBackBufferSize();
         fenster->setPosition( bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 85 );
         name->addStyle( TextFeld::Style::Sichtbar );
         passwort->addStyle( TextFeld::Style::Sichtbar );
@@ -262,7 +263,7 @@ bool Unregistrierung::unregistrierungME( void *obj, MausEreignis me ) // MausEre
 
 void Unregistrierung::setWeiterReturn( bool ret ) // setzt den Weiter Returnwert
 {
-    Punkt bildchirmGröße = BildschirmGröße();
+    Punkt bildchirmGröße = hauptScreen->getBackBufferSize();
     if( ret )
     {
         name->removeStyle( TextFeld::Style::Sichtbar );

+ 2 - 1
KSGClient/VorLogin/Login/Login.cpp

@@ -3,12 +3,13 @@
 #include "..\..\Global\Initialisierung.h"
 #include <Punkt.h>
 #include <Text.h>
+#include <InitDatei.h>
 
 // Inhalt der Login Klasse aus Login.h
 // Konstruktor 
 Login::Login( Schrift *zSchrift, Fenster *vorLoginFenster )
 {
-	Punkt bildschirmGröße = BildschirmGröße();
+	Punkt bildschirmGröße = hauptScreen->getBackBufferSize();
 	login = initKnopf( 10, 50, 130, 30, zSchrift, Knopf::Style::Sichtbar, "Login" );
 	login->setMausEreignisParameter( this );
 	login->setMausEreignis( loginLoginME );