Эх сурвалжийг харах

An neues Framework angepasst

Kolja Strohm 5 жил өмнө
parent
commit
eb94942630

+ 5 - 18
patcher/News.cpp

@@ -38,7 +38,7 @@ News::News( Bildschirm *zB, Schrift *zS, KSGClient::NewsServerClient *client )
 	laden->setRahmenBreite( 1 );
 	laden->setRahmenFarbe( 0xFFFFFFFF );
 	laden->setSichtbar( 0 );
-	zB->setOnTopZeichnung( laden );
+	zB->setOnTopZeichnung( laden->getThis() );
 	// Fehler Textfeld Initialisieren
 	fehler = new TextFeld();
 	fehler->setStyle( TextFeld::Style::Text & ~TextFeld::Style::Sichtbar );
@@ -47,7 +47,7 @@ News::News( Bildschirm *zB, Schrift *zS, KSGClient::NewsServerClient *client )
 	fehler->setSchriftFarbe( 0xFFFFFFFF );
 	fehler->setSchriftZ( zS->getThis() );
 	fehler->setText( "Fehler beim Laden der Seite!\n" );
-	zB->addMember( fehler );
+	zB->addMember( fehler->getThis() );
 	// Startwerte Initialisieren
 	screen = zB->getThis();
 	schrift = zS->getThis();
@@ -88,7 +88,7 @@ News::News( Bildschirm *zB, Schrift *zS, KSGClient::NewsServerClient *client )
 	frame->setSize( 480, 312 );
 	frame->setRückrufParam( this );
 	frame->setRückrufFunktion( KSGSRückruf );
-	screen->addMember( frame );
+	screen->addMember( frame->getThis() );
 	scriptName = new Text( "Patcher/Start" );
 	// Lade Thread starten
 	start();
@@ -106,6 +106,8 @@ News::~News()
     if( frame )
     {
         frame->zurücksetzen();
+        frame->setBildschirmZ( 0 );
+        screen->removeMember( frame );
         frame->release();
     }
 	if( ksgsDll )
@@ -190,19 +192,4 @@ void News::thread()
 	laden->setSichtbar( 0 );
 	screen->setOnTop( 0 );
 	run = 0;
-}
-
-// Reference Counting
-News *News::getThis()
-{
-	ref++;
-	return this;
-}
-
-News *News::release()
-{
-	ref--;
-	if( !ref )
-		delete this;
-	return 0;
 }

+ 1 - 4
patcher/News.h

@@ -11,7 +11,7 @@ using namespace Framework;
 using namespace KSGScript;
 using namespace Network;
 
-class News : private Thread
+class News : public Thread
 {
 private:
 	KSGScriptObj *frame;
@@ -31,9 +31,6 @@ public:
 	// nicht constant
 	void rückruf( RCArray< KSGSVariable > *parameter, KSGSVariable **ret );
 	void thread();
-	// Reference Counting
-	News *getThis();
-	News *release();
 };
 
 #endif

+ 0 - 15
patcher/Patcher.cpp

@@ -184,19 +184,4 @@ void Patcher::warteAufPatch( int zeit )
 int Patcher::getDownload() const
 {
 	return updater ? updater->getDownload() : 0;
-}
-
-// Reference Counting
-Patcher *Patcher::getThis()
-{
-	ref++;
-	return this;
-}
-
-Patcher *Patcher::release()
-{
-	ref--;
-	if( !ref )
-		delete this;
-	return 0;
 }

+ 1 - 4
patcher/Patcher.h

@@ -10,7 +10,7 @@
 
 using namespace Framework;
 
-class Patcher : private Thread
+class Patcher : public Thread
 {
 private:
     HMODULE updateDll;
@@ -34,9 +34,6 @@ public:
 	int getReturn() const;
 	void warteAufPatch( int zeit );
 	int getDownload() const;
-	// Reference Counting
-	Patcher *getThis();
-	Patcher *release();
 };
 
 #endif

+ 2 - 2
patcher/data/optionen.ini

@@ -1,2 +1,2 @@
-ServerIP=88.198.205.67
-ServerPort=5253
+ServerIP=94.130.27.12
+ServerPort=5225

BIN
patcher/data/schriften/ksgs.ltds


+ 1 - 1
patcher/data/script/SpielNichtAktuell.ksgs

@@ -11,7 +11,7 @@ private:
 public:
     func void init()
     {
-        initTextFeld( beschreibung, 5, 5, 568, 418, "", 0x101 );
+        initTextFeld( beschreibung, 5, 5, 568, 418, "", 0x1001 );
         txt = "Das Ausgewählte Spiel ist nicht aktuell.";
         län = txt.getLänge();
         num = 0;

+ 0 - 0
patcher/data/start/.keep


BIN
patcher/data/start/icon.exe


+ 0 - 0
patcher/data/tmp/schlüssel.netw → patcher/data/tmp/crypt.key


+ 0 - 0
patcher/data/tmp/keinabsturz


+ 1 - 0
patcher/data/tmp/m.ip

@@ -0,0 +1 @@
+94.130.27.12

BIN
patcher/data/tmp/m.port


+ 67 - 0
patcher/data/tmp/news/Patcher/News/seite.ksgs

@@ -0,0 +1,67 @@
+#include <KSGSStandart.h>
+
+var int breite = 480;
+var int höhe = 312;
+var TextFeld überschrift;
+var TextFeld patchNotes;
+var Knopf zurück;
+
+func void start()
+{
+	initTextFeld( überschrift, 0, 0, breite, 20, "News", 0x2001 );
+	var Text txt = "";
+	txt += "Keine aktuellen News vorhanden.";
+	initTextFeld( patchNotes, 10, 30, 460, 222, txt, 0x1201 );
+	patchNotes.updateVScroll();
+	patchNotes.setVScrollZuZeile( 0 );
+	initKnopf( zurück, 190, 262, 100, 20, "Zurück", 0x1 );
+	zurück.setMausEreignis( "zME" );
+}
+
+func void initTextFeld( TextFeld tf, int x, int y, int br, int hö, Text t, int style )
+{
+	tf.setPosition( x, y );
+	tf.setGröße( br, hö );
+	tf.setText( t );
+	tf.setStyle( style );
+	tf.setSchriftFarbe( 0xFFFFFFFF );
+}
+
+func void initKnopf( Knopf k, int x, int y, int br, int hö, Text t, int style )
+{
+	k.setPosition( x, y );
+	k.setGröße( br, hö );
+	k.setText( t );
+	k.addStyle( style );
+}
+
+func bool maus( MausEreignis me )
+{
+	patchNotes.doMausEreignis( me );
+	zurück.doMausEreignis( me );
+	return me.verarbeitet;
+}
+
+func bool tick( double z )
+{
+	var bool ret = 0;
+	ret |= patchNotes.tick( z );
+	ret |= zurück.tick( z );
+	return ret;
+}
+
+func void render( Bild rObj )
+{
+	überschrift.render( rObj );
+	patchNotes.render( rObj );
+	zurück.render( rObj );
+}
+
+func bool zME( MausEreignis me )
+{
+	if( me.id == 3 )
+	{
+		Rückruf( "Patcher/Start" );
+	}
+	return true;
+}

+ 134 - 0
patcher/data/tmp/news/Patcher/NutzerBedingungen/seite.ksgs

@@ -0,0 +1,134 @@
+#include <KSGSStandart.h>
+
+var int breite = 480;
+var int höhe = 312;
+var TextFeld überschrift;
+var TextFeld nutzerBedingungen;
+var Knopf zurück;
+
+func void start()
+{
+	initTextFeld( überschrift, 0, 0, breite, 20, "Nutzer Bedingungen", 0x2001 );
+	var Text txt = "";
+	txt += "Mit der Nutzung der Anwendungen von Kolja Strohm - Games erklähren\n";
+	txt += "sie sich automatisch mit folgenden Bedingungen einverstanden.\n";
+	txt += "1. Service Bereitstellung\n";
+	txt += " Wir garantieren nicht für die einwandfreie Funktionsfähigkeit unserer\n";
+	txt += " Anwendungen. Wir können die Server jederzeit abschalten.\n";
+	txt += "2. Lizenz zur Nutzung\n";
+	txt += " Wir gewähren ihnen hiermit eine widerrufliche Lizenz für die ausschließlich\n";
+	txt += " persönliche Nutzung unserer Anwendungen. Gewerbliche nutzung für\n";
+	txt += " Unternehmenszwecke ist ausdrücklichst untersagt, kann aber durch\n";
+	txt += " Absprache mit uns erlaubt werden.\n";
+	txt += "3. Verstoß gegen die Nutzerbedingungen\n";
+	txt += " Wir sind in der Lage bei einem Verstoß gegen die Nutzer Bedingungen\n";
+	txt += " den betroffenen Account zu sperren oder andere Strafen durchzuführen.\n";
+	txt += " Hierzu kann auch der Verlust von zusätzlich erworbenen Inhalten gehören.\n";
+	txt += "4. Änderung der Nutzerbedingungen\n";
+	txt += " Wir können die Nutzerbedingungen jederzeit nach unserem Intresse ändern.\n";
+	txt += "5. Verbotenes\n";
+	txt += " Mit der nutzung unserer Anwendungen verpflichten sie sich dazu unter keinen\n";
+	txt += " Umständen:\n";
+	txt += " 5.1 Cheats, Automatisierungssoftware (Bots), Hacks, Mods oder jedwede\n";
+  txt += "  sonstige nicht autorisierte Fremdsoftware, die der Veränderung des\n";
+  txt += "  Service, eines Spiels oder eines Spielverlaufs dient, herzustellen oder\n";
+	txt += "  zu nutzen.\n";
+	txt += " 5.2 den Service, ein Spiel oder einen beliebigen Teil davon zu gewerb-\n";
+  txt += "  lichen Zwecken zu nutzen, einschließlich, jedoch nicht darauf beschränkt,\n";
+	txt += "  (a) um Werbeanzeigen oder sonstige Werbung zu verbreiten oder zu\n";
+	txt += "  ermöglichen. (b) um spielinterne Währung, spielinterne Gegenstände oder\n";
+	txt += "  sonstige spielinterne Güter zu sammeln, um diese außerhalb des Spiels\n";
+	txt += "  zu verkaufen. (c) um Accounts für unsere Anwendungen und/oder ein Spiel\n";
+  txt += "  zu verkaufen oder damit Handel zu treiben. oder (d) um innerhalb eines\n";
+  txt += "  Spieles Leistungen gegen eine außerhalb eines Spieles erfolgende Bezahlung\n";
+	txt += "  zu erbringen.\n";
+	txt += " 5.3 außerhalb des Spiels für echtes Geld oder gegen spielinterne Währung\n";
+	txt += "  Gegenstände oder sonstige Güter, die in einem Spiel verwendet werden\n";
+	txt += "  können, zu verkaufen oder einzutauschen.\n";
+	txt += " 5.4 Dateien, die Teil einer unserer Anwendungen sind, in irgendeiner\n";
+	txt += "  Weise zu ändern oder ändern zu lassen, soweit dies nicht ausdrücklich\n";
+  txt += "  von Kolja Strohm - Games genehmigt wurde.\n";
+	txt += " 5.5 die von Kolja Strohm - Games eingesetzten Verbindungsprotokolle auf\n";
+  txt += "  beliebige Art und Weise und gleich zu welchem Zweck abzufangen, zu\n";
+	txt += "  emulieren oder umzuleiten.\n";
+	txt += " 5.6 zur Unterstützung des Service oder einer Spielumgebung eingesetzte\n";
+	txt += "  Computer oder den Verlauf des Spiels eines anderen Spielers zu stören\n";
+	txt += "  oder an einer derartigen Störung mitzuwirken.\n";
+	txt += " 5.7  nicht genehmigte Verbindungen zu einem beliebigen Spiel oder zu dem\n";
+	txt += "  Service zu ermöglichen, aufzubauen oder aufrecht zu erhalten,\n";
+	txt += "  einschließlich, ohne jedoch darauf beschränkt zu sein, (a) Verbindungen\n";
+	txt += "  zu nicht genehmigten Servern, die den Service oder ein Spiel emulieren\n";
+	txt += "  oder dies versuchen. (b) Verbindungen, die Anwendungen oder Tools\n";
+	txt += "  verwenden, die nicht ausdrücklich von Kolja Strohm - Games genehmigt\n";
+	txt += "  wurden.\n";
+	txt += "6. Eigentumsrecht\n";
+	txt += " Alle Inhalte die durch unsere Anwendungen angeboten werden sind\n";
+	txt += " eigentum von Kolja Strohm - Games. Durch den erwerb kostenpflichtiger\n";
+	txt += " Inhalte geht der Besitz NICHT auf den Nutzer über. Wir können\n";
+	txt += " jeden Spielinhalt ohne Entschädigung verändern oder entvernen. Alle\n";
+	txt += " Inhalte die mit unseren Anwendungen von Nutzern erstellt wurden\n";
+	txt += " und werden sind Besitz von Kolja Strohm - Games.\n";
+	txt += "7. Accountdaten\n";
+	txt += " Jeder Account ist Eigentum von Kolja Strohm - Games. Sie erklähren\n";
+	txt += " sich damit einverstanden, dass wir alle ihrer Aktivitäten aufzeichnen\n";
+	txt += " und für beliebig lange Zeit abspeichern.\n";
+	txt += "8. Datenschutz\n";
+	txt += " Wir verwenden Gerätekennungen, um Inhalte und Anzeigen zu personalisieren,\n";
+	txt += " Funktionen für soziale Medien anbieten zu können und die Zugriffe auf\n";
+	txt += " unsere Anwendungen zu analysieren. Außerdem geben wir diese Kennungen\n";
+	txt += " und andere Informationen über Ihr Gerät an unsere Partner für soziale\n";
+	txt += " Medien, Werbung und Analysen weiter.\n";
+	initTextFeld( nutzerBedingungen, 10, 30, 460, 222, txt, 0x1201 );
+	nutzerBedingungen.updateVScroll();
+	nutzerBedingungen.setVScrollZuZeile( 0 );
+	initKnopf( zurück, 190, 262, 100, 20, "Zurück", 0x1 );
+	zurück.setMausEreignis( "zME" );
+}
+
+func void initTextFeld( TextFeld tf, int x, int y, int br, int hö, Text t, int style )
+{
+	tf.setPosition( x, y );
+	tf.setGröße( br, hö );
+	tf.setText( t );
+	tf.setStyle( style );
+	tf.setSchriftFarbe( 0xFFFFFFFF );
+}
+
+func void initKnopf( Knopf k, int x, int y, int br, int hö, Text t, int style )
+{
+	k.setPosition( x, y );
+	k.setGröße( br, hö );
+	k.setText( t );
+	k.addStyle( style );
+}
+
+func bool maus( MausEreignis me )
+{
+	nutzerBedingungen.doMausEreignis( me );
+	zurück.doMausEreignis( me );
+	return me.verarbeitet;
+}
+
+func bool tick( double z )
+{
+	var bool ret = 0;
+	ret |= nutzerBedingungen.tick( z );
+	ret |= zurück.tick( z );
+	return ret;
+}
+
+func void render( Bild rObj )
+{
+	überschrift.render( rObj );
+	nutzerBedingungen.render( rObj );
+	zurück.render( rObj );
+}
+
+func bool zME( MausEreignis me )
+{
+	if( me.id == 3 )
+	{
+		Rückruf( "Patcher/Start" );
+	}
+	return true;
+}

+ 118 - 0
patcher/data/tmp/news/Patcher/PatchNotes/seite.ksgs

@@ -0,0 +1,118 @@
+#include <KSGSStandart.h>
+
+var int breite = 480;
+var int höhe = 312;
+var TextFeld überschrift;
+var TextFeld patchNotes;
+var Knopf zurück;
+
+func void start()
+{
+	initTextFeld( überschrift, 0, 0, breite, 20, "Patch Notes", 0x2001 );
+	var Text txt = "";
+txt += "Patch Notes: 0.0.0.36 erschienen am 10.3.2015 um 18:00 Uhr\n";
+	txt += "Erneuerungen:\n";
+	txt += " - Spiel und Karte Oberfläche animation\n";
+	txt += " - Karten werden nurnoch online gespeichert\n";
+	txt += " - Spiel- und Kartenbeschreibungen animiert\n";
+	txt += "Behobene Fehler:\n";
+	txt += " - Einige KSG - Script Fehler\n";
+	txt += " - Unnötige Dateien werden jetzt gelöscht\n";
+	txt += " - Memory Leak im Patcher\n";
+	txt += "__________________________________________________________\n";
+	txt += "Patch Notes: 0.0.0.35 erschienen am 24.12.2014 um 10:00 Uhr\n";
+	txt += "Erneuerungen:\n";
+	txt += " - Freundeseinladungen an offline Accounts\n";
+	txt += " - Neues online Spiel: Asteroids\n";
+	txt += " - Neue Karte für Asteroids: Test\n";
+	txt += " - Erwerb von Ingamekupfer über Paypal\n";
+	txt += "Behobene Fehler:\n";
+	txt += " - Verbindung zum Server stabilisiert\n";
+	txt += " - Suchoberfläche des Shops vereinfacht\n";
+	txt += " - News nach Information umbenannt\n";
+	txt += "__________________________________________________________\n";
+	txt += "Update: 0.0.0.34 erschienen am 19.10.2014 um 14:00 Uhr\n";
+	txt += "Erneuerungen:\n";
+	txt += " - Minigame 'Asteroids'\n";
+	txt += "Behobene Fehler:\n";
+	txt += " - Verschiebbarkeit des Patchers\n";
+	txt += " - Anzeigefeler in den Patcher Optionen\n";
+	txt += " - Fokus des Client Fensters nach start\n";
+	txt += " - Absturz des Clients beim beenden\n";
+	txt += "__________________________________________________________\n";
+	txt += "Update: 0.0.0.33 erschienen am 24.08.2014. um 11:00 Uhr\n";
+	txt += "Erneuerungen:\n";
+	txt += " - Sounds bei bestimmten Ereignissen\n";
+	txt += " - Neue Schrift\n";
+	txt += " - Die CPU Auslastung verringert\n";
+	txt += "Behobene Fehler:\n";
+	txt += " - Minigame Fangen: Sichtbarkeit des Spielers\n";
+	txt += " - Spiel Linie: Anzeigefehler in der Bestenliste\n";
+	txt += " - Stillstand nach Spiel durch Laden ersetzt\n";
+	txt += " - Spielstabilität erhöht\n";
+	txt += "___________________________________________________________\n";
+	txt += "Update: 0.0.0.32 erschienen am 05.08.2014 um 00:00 Uhr.\n";
+	txt += "Erneuerungen:\n";
+	txt += " - Aktualisieren von Spielen im Client\n";
+	txt += " - 'Minigames' Oberfläche\n";
+	txt += " - Erhalten von Kupfer durch online Spiele\n";
+	txt += " - 'Fertig' knopf in der Teamauswahl\n";
+	txt += "Minigames:\n";
+	txt += " - Blöcke\n";
+	txt += " - Snake\n";
+	txt += " - Fangen\n";
+	txt += " - Tetris\n";
+	initTextFeld( patchNotes, 10, 30, 460, 222, txt, 0x1201 );
+	patchNotes.updateVScroll();
+	patchNotes.setVScrollZuZeile( 0 );
+	initKnopf( zurück, 190, 262, 100, 20, "Zurück", 0x1 );
+	zurück.setMausEreignis( "zME" );
+}
+
+func void initTextFeld( TextFeld tf, int x, int y, int br, int hö, Text t, int style )
+{
+	tf.setPosition( x, y );
+	tf.setGröße( br, hö );
+	tf.setText( t );
+	tf.setStyle( style );
+	tf.setSchriftFarbe( 0xFFFFFFFF );
+}
+
+func void initKnopf( Knopf k, int x, int y, int br, int hö, Text t, int style )
+{
+	k.setPosition( x, y );
+	k.setGröße( br, hö );
+	k.setText( t );
+	k.addStyle( style );
+}
+
+func bool maus( MausEreignis me )
+{
+	patchNotes.doMausEreignis( me );
+	zurück.doMausEreignis( me );
+	return me.verarbeitet;
+}
+
+func bool tick( double z )
+{
+	var bool ret = 0;
+	ret |= patchNotes.tick( z );
+	ret |= zurück.tick( z );
+	return ret;
+}
+
+func void render( Bild rObj )
+{
+	überschrift.render( rObj );
+	patchNotes.render( rObj );
+	zurück.render( rObj );
+}
+
+func bool zME( MausEreignis me )
+{
+	if( me.id == 3 )
+	{
+		Rückruf( "Patcher/Start" );
+	}
+	return true;
+}

+ 0 - 25
patcher/data/update/datei_status.ini

@@ -1,25 +0,0 @@
-data/bilder/game.ltdb=Fertig
-data/bilder/ladeanimation.ltdb=Fertig
-data/bilder/system.ltdb=Fertig
-data/client/bilder/account.ltdb=Fertig
-data/client/bilder/chat.ltdb=Fertig
-data/client/bilder/shop.ltdb=Fertig
-data/client/bilder/spielen.ltdb=Fertig
-data/client/bilder/titel.ltdb=Fertig
-data/client/bilder/video.ltdb=Fertig
-data/patch/bilder/patcher.ltdb=Fertig
-data/schriften/normal.ltds=Fertig
-data/sounds/popup.gsl=Fertig
-data/start/icon.exe=Fertig
-framework.dll=Fertig
-data/optionen.ini=Fertig
-network.dll=Fertig
-start.exe=Fertig
-data/version=Fertig
-data/bin/Update.dll=Fertig
-data/client/bin/game client.exe=Fertig
-data/bin/KSGScript.dll=Fertig
-data/patch/bin/übernehmen.exe=Fertig
-data/script/SpielNichtAktuell.ksgs=Fertig
-data/bin/GSL.dll=Fertig
-data/patch/bin/patcher.exe=Fertig

+ 0 - 25
patcher/data/update/datei_versionen.ini

@@ -1,25 +0,0 @@
-data/bilder/game.ltdb=1
-data/bilder/ladeanimation.ltdb=1
-data/bilder/system.ltdb=1
-data/client/bilder/account.ltdb=1
-data/client/bilder/chat.ltdb=1
-data/client/bilder/shop.ltdb=1
-data/client/bilder/spielen.ltdb=1
-data/client/bilder/titel.ltdb=1
-data/client/bilder/video.ltdb=1
-data/patch/bilder/patcher.ltdb=1
-data/schriften/normal.ltds=1
-data/sounds/popup.gsl=1
-data/start/icon.exe=6
-framework.dll=7
-data/optionen.ini=3
-network.dll=5
-start.exe=6
-data/version=4
-data/bin/Update.dll=6
-data/client/bin/game client.exe=6
-data/bin/KSGScript.dll=6
-data/patch/bin/übernehmen.exe=2
-data/script/SpielNichtAktuell.ksgs=1
-data/bin/GSL.dll=5
-data/patch/bin/patcher.exe=8

BIN
patcher/data/update/jetzt_position.patch


+ 5 - 0
patcher/data/update/unable/list.patch

@@ -0,0 +1,5 @@
+framework.dll=>data/update/download/framework.dll
+network.dll=>data/update/download/network.dll
+data/bin/Update.dll=>data/update/download/data/bin/Update.dll
+data/bin/KSGScript.dll=>data/update/download/data/bin/KSGScript.dll
+data/bin/KSGNetwork.dll=>data/update/download/data/bin/KSGNetwork.dll

+ 31 - 25
patcher/data/versionen.ini

@@ -1,25 +1,31 @@
-data/bilder/game.ltdb=1
-data/bilder/ladeanimation.ltdb=1
-data/bilder/system.ltdb=1
-data/client/bilder/account.ltdb=1
-data/client/bilder/chat.ltdb=1
-data/client/bilder/shop.ltdb=1
-data/client/bilder/spielen.ltdb=1
-data/client/bilder/titel.ltdb=1
-data/client/bilder/video.ltdb=1
-data/patch/bilder/patcher.ltdb=1
-data/patch/bin/übernehmen.exe=2
-data/schriften/normal.ltds=1
-data/sounds/popup.gsl=1
-data/version=4
-data/optionen.ini=3
-data/client/bin/game client.exe=5
-network.dll=5
-data/bin/GSL.dll=5
-data/patch/bin/patcher.exe=6
-data/start/icon.exe=5
-start.exe=5
-data/bin/KSGScript.dll=5
-framework.dll=5
-data/bin/Update.dll=5
-data/script/SpielNichtAktuell.ksgs=1
+data/bilder/game.ltdb=2
+data/bilder/ladeanimation.ltdb=2
+data/bilder/system.ltdb=2
+data/client/bilder/account.ltdb=2
+data/client/bilder/chat.ltdb=2
+data/client/bilder/shop.ltdb=2
+data/client/bilder/spielen.ltdb=2
+data/client/bilder/titel.ltdb=2
+data/client/bilder/video.ltdb=2
+data/patch/bilder/patcher.ltdb=2
+data/patch/bin/übernehmen.exe=4
+data/schriften/normal.ltds=2
+data/sounds/popup.gsl=2
+data/version=5
+data/optionen.ini=6
+data/client/bin/game client.exe=40
+network.dll=13
+data/bin/GSL.dll=20
+data/patch/bin/patcher.exe=31
+data/start/icon.exe=26
+start.exe=30
+data/bin/KSGScript.dll=26
+framework.dll=44
+data/bin/Update.dll=28
+data/script/SpielNichtAktuell.ksgs=3
+data/bin/KSGNetwork.dll=18
+data/bin/.keep=1
+data/client/bin/.keep=1
+data/patch/bin/.keep=1
+data/start/.keep=1
+data/schriften/ksgs.ltds=2

+ 2 - 1
patcher/patcher.vcxproj

@@ -114,7 +114,8 @@
       <AdditionalDependencies>Framework.lib;Network.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
     <CustomBuildStep>
-      <Command>copy "..\x64\Debug\patcher.exe" "..\..\Fertig\Debug\x64\Data\Patch\bin\patcher.exe"</Command>
+      <Command>xcopy /S /Q /y "..\..\Fertig\Debug\x64\data" "data\"
+copy "..\x64\Debug\patcher.exe" "..\..\Fertig\Debug\x64\Data\Patch\bin\patcher.exe"</Command>
     </CustomBuildStep>
     <CustomBuildStep>
       <Outputs>kopieren...;%(Outputs)</Outputs>

+ 11 - 32
patcher/start.cpp

@@ -103,13 +103,7 @@ bool optionenME( void *p, void *obj, MausEreignis me )
         _o_rno->removeStyle( Knopf::Style::Erlaubt );
         _o_rnu->removeStyle( Knopf::Style::Erlaubt );
 		while( _o_rt->getZeilenAnzahl() > 1 )
-		{
-			if( _o_rt->zZeichnung( 0, 1 ) )
-				( (TextFeld*)_o_rt->zZeichnung( 0, 1 ) )->release();
-			if( _o_rt->zZeichnung( 1, 1 ) )
-				( (KontrollKnopf*)_o_rt->zZeichnung( 1, 1 ) )->release();
 			_o_rt->removeZeile( 1 );
-		}
 		KSGTDatei *dat = new KSGTDatei( "data/dg.ksgt" ); // Tabellen Spalten: Id, Pfad, Version, Priorität
 		dat->laden();
 		int max = -1;
@@ -621,7 +615,7 @@ int KSGStart Framework::Start( Startparam p )
 	_aktion->setText( "Ermittle änderungen..." );
 	_aktion->setPosition( 49, 403 );
 	_aktion->setSize( 502, 20 );
-	screen->addMember( _aktion );
+	screen->addMember( _aktion->getThis() );
 
 	_kbps = new TextFeld();
 	_kbps->setStyle( TextFeld::Style::Sichtbar );
@@ -630,7 +624,7 @@ int KSGStart Framework::Start( Startparam p )
 	_kbps->setText( "0 kb/s" );
 	_kbps->setPosition( 49, 460 );
 	_kbps->setSize( 402, 20 );
-	screen->addMember( _kbps );
+	screen->addMember( _kbps->getThis() );
 
 	_fortschritt = new FBalken();
 	_fortschritt->setStyle( FBalken::Style::Sichtbar | FBalken::Style::Hintergrund | FBalken::Style::HBild | FBalken::Style::FBild | FBalken::Style::Rahmen | FBalken::Style::Prozent | FBalken::Style::L_R );
@@ -642,7 +636,7 @@ int KSGStart Framework::Start( Startparam p )
 	_fortschritt->setSSize( 12 );
 	_fortschritt->setPosition( 49, 428 );
 	_fortschritt->setSize( 402, 22 );
-	screen->addMember( _fortschritt );
+	screen->addMember( _fortschritt->getThis() );
 
 	_play = new Knopf();
 	_play->setStyle( Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::KlickBild );
@@ -651,7 +645,7 @@ int KSGStart Framework::Start( Startparam p )
 	_play->setKlickBildZ( playKlick->getThis() );
 	_play->setPosition( 200, 466 );
 	_play->setSize( 101, 30 );
-	screen->addMember( _play );
+	screen->addMember( _play->getThis() );
 
 	_optionenF = new Fenster();
 	_optionenF->setStyle( Fenster::Style::Erlaubt | Fenster::Style::Closable | Fenster::Style::Titel | Fenster::Style::TitelBuffered |
@@ -679,7 +673,7 @@ int KSGStart Framework::Start( Startparam p )
 	_optionenF->setSKAfStrength( 30 );
 	_optionenF->setKBgFarbe( 0xF0000000 );
 	_optionenF->setClosingMe( oAbbrechen );
-	screen->addMember( _optionenF );
+	screen->addMember( _optionenF->getThis() );
 
 	TextFeld *oReihenfolge = new TextFeld();
 	oReihenfolge->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::VCenter );
@@ -713,7 +707,7 @@ int KSGStart Framework::Start( Startparam p )
 	ortSpielT->setSchriftFarbe( 0xFFFFFFFF );
 	ortSpielT->setText( "Spiel" );
 	_o_rt->setZeichnungZ( 0, 0, ortSpielT );
-	_optionenF->addMember( _o_rt );
+	_optionenF->addMember( _o_rt->getThis() );
 
 	_o_rno = new Knopf();
 	_o_rno->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Buffered | Knopf::Style::KlickBuffer | Knopf::Style::Rahmen );
@@ -722,7 +716,7 @@ int KSGStart Framework::Start( Startparam p )
 	_o_rno->setText( "nach Oben" );
 	_o_rno->setSchriftZ( sNormal->getThis() );
 	_o_rno->setMausEreignis( _o_rnoME );
-	_optionenF->addMember( _o_rno );
+	_optionenF->addMember( _o_rno->getThis() );
 
 	_o_rnu = new Knopf();
 	_o_rnu->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Buffered | Knopf::Style::KlickBuffer | Knopf::Style::Rahmen );
@@ -731,7 +725,7 @@ int KSGStart Framework::Start( Startparam p )
 	_o_rnu->setText( "nach Unten" );
 	_o_rnu->setSchriftZ( sNormal->getThis() );
 	_o_rnu->setMausEreignis( _o_rnuME );
-	_optionenF->addMember( _o_rnu );
+	_optionenF->addMember( _o_rnu->getThis() );
 
 	TextFeld *oLimit = new TextFeld();
 	oLimit->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::VCenter );
@@ -754,7 +748,7 @@ int KSGStart Framework::Start( Startparam p )
 	_o_ülps->setAlphaFeldFarbe( 0x5500FF00 );
 	_o_ülps->setAlphaFeldStrength( -5 );
 	_o_ülps->setTastaturEreignis( _o_ülpsTE );
-	_optionenF->addMember( _o_ülps );
+	_optionenF->addMember( _o_ülps->getThis() );
 
 	_o_üle = new AuswahlBox();
 	_o_üle->setStyle( AuswahlBox::Style::Sichtbar | AuswahlBox::Style::Erlaubt | AuswahlBox::Style::Rahmen | AuswahlBox::Style::AuswahlBuffer |
@@ -772,7 +766,7 @@ int KSGStart Framework::Start( Startparam p )
 	_o_üle->setTastaturEreignis( _ret1TE );
 	_o_üle->addEintrag( "kb/s" );
 	_o_üle->addEintrag( "mb/s" );
-	_optionenF->addMember( _o_üle );
+	_optionenF->addMember( _o_üle->getThis() );
 
 	Knopf *o_ok = new Knopf();
 	o_ok->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Buffered | Knopf::Style::KlickBuffer | Knopf::Style::Rahmen );
@@ -802,29 +796,13 @@ int KSGStart Framework::Start( Startparam p )
 	int returnVal = _patcher->getReturn();
 	_patcher->release();
 
-	optionen->release();
 	_optionenF->release();
-	oReihenfolge->release();
-	for( int i = 0; i < _o_rt->getZeilenAnzahl(); i++ )
-	{
-		if( _o_rt->zZeichnung( 0, i ) )
-			( (TextFeld*)_o_rt->zZeichnung( 0, i ) )->release();
-		if( _o_rt->zZeichnung( 1, i ) )
-			( (KontrollKnopf*)_o_rt->zZeichnung( 1, i ) )->release();
-		_o_rt->setZeichnungZ( 0, i, 0 );
-		_o_rt->setZeichnungZ( 1, i, 0 );
-	}
 	_o_rt->release();
 	_o_rno->release();
 	_o_rnu->release();
-	oLimit->release();
 	_o_ülps->release();
 	_o_üle->release();
-	o_ok->release();
 
-	hintergrund->release();
-	close->release();
-	minimieren->release();
 	_fortschritt->release();
 	_aktion->release();
 	_kbps->release();
@@ -845,6 +823,7 @@ int KSGStart Framework::Start( Startparam p )
 	_frame->setBildschirm( 0 );
 	_frame->zerstören();
 	_frame->release();
+    mainClient->release();
 	Network::Exit();
 
 	DateiPfadErstellen( new Text( "data/tmp/keinabsturz" ) );

BIN
patcher/start.exe