Prechádzať zdrojové kódy

Fehler bei den Ressource Pfad Template "map:" behoben

Kolja Strohm 5 rokov pred
rodič
commit
017a8d88c3

+ 16 - 0
Asteroids/Editor/Editor.cpp

@@ -11,6 +11,12 @@ using namespace Editor;
 // Konstruktor
 AsteroidsEditor::AsteroidsEditor()
 {
+    kamera = new Kamera2D();
+    minimap = new Kamera2D();
+    minimap->setSize( 200, 200 );
+    minimap->setStyle( ZeichnungHintergrund::Style::Sichtbar | ZeichnungHintergrund::Style::Rahmen );
+    minimap->setRahmenFarbe( 0xFFFFFFFF );
+    minimap->setName( "minimap" );
     schrift = 0;
     klient = 0;
     laden = 0;
@@ -40,6 +46,8 @@ AsteroidsEditor::~AsteroidsEditor()
     if( daten )
         daten->release();
     dialogs->release();
+    kamera->release();
+    minimap->release();
 }
 
 void AsteroidsEditor::ladeKarte()
@@ -52,6 +60,8 @@ void AsteroidsEditor::ladeKarte()
         daten->release();
     daten = new KarteDaten( (EditorKlient *)klient->getThis() );
     i->setDaten( (KarteDaten *)daten->getThis() );
+    minimap->setWelt( daten->getWelt(), 0 );
+    kamera->setWelt( daten->getWelt(), 1 );
 }
 
 // nicht constant
@@ -215,6 +225,8 @@ bool AsteroidsEditor::tick( double z )
     if( laden )
         rend |= laden->tick( z );
     rend |= i->tick( z );
+    rend |= minimap->tick( z );
+    rend |= kamera->tick( z );
     c.lock();
     for( auto i = dialogs->getIterator(); i && i._; i++ )
         rend |= i->tick( z );
@@ -235,6 +247,10 @@ void AsteroidsEditor::render( Bild & zRObj )
             i = new Interface( schrift, windowSize );
     }
     zRObj.setAlpha( alpha );
+    kamera->setSize( zRObj.getSize() );
+    kamera->render( zRObj );
+    minimap->setPosition( 10, zRObj.getHeight() - 210 );
+    minimap->render( zRObj );
     i->render( zRObj );
     c.lock();
     for( int i = dialogs->getEintragAnzahl() - 1; i >= 0; i-- )

+ 3 - 0
Asteroids/Editor/Editor.h

@@ -6,6 +6,7 @@
 #include "Netzwerk\EditorKlient.h"
 #include "Interface\Dialogs\Dialog.h"
 #include "Karte\EditorKarte.h"
+#include <Kamera2D.h>
 
 namespace Editor
 {
@@ -30,6 +31,8 @@ namespace Editor
         Punkt windowSize;
         SpielerTeamStruktur *sts;
         KarteDaten *daten;
+        Kamera2D *kamera;
+        Kamera2D *minimap;
         unsigned char alpha;
         bool rend;
         int ref;

+ 8 - 1
Asteroids/Editor/Karte/EditorKarte.cpp

@@ -5,6 +5,7 @@ using namespace Editor;
 KarteDaten::KarteDaten( EditorKlient *client )
     : Thread()
 {
+    welt = new Welt2D();
     this->client = client;
     sts = new SpielerTeamStruktur();
     client->loadSpieler( spieler );
@@ -25,6 +26,7 @@ KarteDaten::~KarteDaten()
         delete i._;
     sts->release();
     client->release();
+    welt->release();
 }
 
 void KarteDaten::addObjekt( ObjektDaten &daten )
@@ -203,10 +205,15 @@ bool KarteDaten::hasAktions() const
     return aktionen.getEintragAnzahl() > 0;
 }
 
+Welt2D *KarteDaten::getWelt() const
+{
+    return welt->getThis();
+}
+
 // löscht das objekt wenn es nicht mehr gebraucht wird und beendet den Thread
 Thread *KarteDaten::release()
 {
-    if( ref == 2 && run )
+    if( Thread::ref == 2 && run )
     {
         exit = 1;
         if( isRunning() )

+ 3 - 0
Asteroids/Editor/Karte/EditorKarte.h

@@ -5,6 +5,7 @@
 #include <Punkt.h>
 #include <Critical.h>
 #include <functional>
+#include <Welt2D.h>
 
 namespace Editor
 {
@@ -76,6 +77,7 @@ namespace Editor
         Text error;
         Array< std::function< void() > > aktionen;
         Critical cs;
+        Welt2D *welt;
         bool exit;
 
     public:
@@ -98,6 +100,7 @@ namespace Editor
         bool hasError() const;
         char *getError() const;
         bool hasAktions() const;
+        Welt2D *getWelt() const;
         // löscht das objekt wenn es nicht mehr gebraucht wird und beendet den Thread
         Thread *release() override;
     };

+ 1 - 1
Asteroids/Spiel/Karte/Strukturen.cpp

@@ -24,7 +24,7 @@ RessourceStr::RessourceStr( Datei *zDatei, int karteId, Text *zGamePath )
     {
         pfad = new Text( "data/tmp/Karten/" );
         pfad->append( karteId );
-        pfad->append( "/" );
+        pfad->append( "/spiel/files" );
 		pfad->append( txt.getTeilText( 4 ) );
 	}
 	m2d = 0;