#include "..\Global\Variablen.h" #include #include #include #include #include #include "..\Global\Render.h" #include #include #include #include #include "..\Global\Initialisierung.h" #include #include #include #include #include #include void fensterVS( void *p, void *f ) { PostQuitMessage( 0 ); } bool fensterME( void *p, void *f, MausEreignis me ) { return 1; } bool fensterTE( void *p, void *f, TastaturEreignis te ) { return 1; } int KSGStart Framework::Start( Startparam p ) { Network::Start( 50 ); InitDatei init( "data/optionen.ini" ); init.laden(); if( init.wertExistiert( "Log" ) ) 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..." ); WFenster *fenster = new WFenster(); fenster->erstellen( WS_POPUP, wc ); fenster->setPosition( Punkt( 0, 0 ) ); fenster->setSize( bildschirmGröße ); fenster->setMausAktion( fensterME ); fenster->setTastaturAktion( fensterTE ); fenster->setVSchließAktion( fensterVS ); Bildschirm *bildschirm = new Bildschirm3D( fenster->getThis() ); fenster->setBildschirm( bildschirm->getThis() ); fenster->setAnzeigeModus( 1 ); fenster->setFokus(); 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 = schriftDatei->release(); Render *render = new Render( schrift->getThis() ); render->setBildschirm( bildschirm->getThis() ); Framework::logLine( "Globale Variablen werden initialisiert..." ); initVariables( schrift, bildschirm ); 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->release(); bildschirm = bildschirm->release(); fenster->setBildschirm( 0 ); fenster->zerstören(); fenster = fenster->release(); Network::Exit(); DateiPfadErstellen( new Text( "data/tmp/keinabsturz" ) ); Framework::logLine( "Programm wurde ordnungsgemaess beendet." ); return 0; }