Parcourir la source

Added option in FileEditor to reset working directory

Kolja Strohm il y a 5 ans
Parent
commit
323a66f032
3 fichiers modifiés avec 45 ajouts et 0 suppressions
  1. 2 0
      Include/KSGNetwork.h
  2. 41 0
      KSGNetwork/EditorClient.cpp
  3. 2 0
      KSGNetwork/EditorClient.h

+ 2 - 0
Include/KSGNetwork.h

@@ -1272,6 +1272,8 @@ namespace KSGClient
         //  zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erhöhten Reference Counter)
         //  Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
         virtual bool deSoundSpeichern( Framework::Text *zDatei, Framework::Text *zSound, GSL::GSLSoundV *zData, Framework::FBalken *zF ) = 0;
+        // Setzt das arbeitsverzeichnis auf den obersten ordner
+        virtual bool deResetPath() = 0;
         // Lädt die Kauf Statistik der geladenen Karte
         //  verkauft: Enthält nach erfolgreichem Aurfuf eine Liste mit den Anzahlen der Käufe der Karte der letzten 30 Tage
         //  einkommen: Enthält nach erfolgreichem Aurfuf eine Liste mit den Anzahlen der verdinten Kupfer in den letzten 30 Tagen

+ 41 - 0
KSGNetwork/EditorClient.cpp

@@ -2658,6 +2658,47 @@ bool EditorClient::deSoundL
     return ret == 1;
 }
 
+// Setzt das arbeitsverzeichnis auf den obersten ordner
+bool EditorClient::deResetPath()
+{
+    cs.lock();
+    if( !k )
+    {
+        err = "Der Client ist nicht verbunden.";
+        cs.unlock();
+        return 0;
+    }
+    k->sendeEncrypted( "\x7", 1 );
+    char ret = 0;
+    k->getNachrichtEncrypted( &ret, 1 );
+    if( ret == 1 )
+    {
+        k->sendeEncrypted( "\xD", 1 );
+        k->getNachrichtEncrypted( &ret, 1 );
+        if( ret == 1 )
+        {
+            k->sendeEncrypted( "\x11", 1 );
+            k->getNachrichtEncrypted( &ret, 1 );
+        }
+    }
+    if( ret == 3 )
+    {
+        char byte = 0;
+        k->getNachrichtEncrypted( &byte, 1 );
+        char *f = new char[ byte + 1 ];
+        f[ byte ] = 0;
+        k->getNachrichtEncrypted( f, byte );
+        err = f;
+        delete[] f;
+        cs.unlock();
+        return 0;
+    }
+    if( ret != 1 )
+        err = "Unbekannter Fehler";
+    cs.unlock();
+    return ret == 1;
+}
+
 // Lädt ein Model aus einer Modeldatei des Datei Editors
 //  zDatei: Der Name der Modeldatei (ohne erhöhten Reference Counter)
 //  zModel: Enthält nach erfolgreichem Aufruf das Model (ohne erhöhten Reference Counter)

+ 2 - 0
KSGNetwork/EditorClient.h

@@ -216,6 +216,8 @@ namespace KSGClient
         //  zSound: Der Name des Sounds (ohne erhöhten Reference Counter)
         //  Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
         bool deSoundLöschen( Framework::Text *zDatei, Framework::Text *zSound ) override;
+        // Setzt das arbeitsverzeichnis auf den obersten ordner
+        bool deResetPath() override;
         // Lädt ein Model aus einer Modeldatei des Datei Editors
         //  zDatei: Der Name der Modeldatei (ohne erhöhten Reference Counter)
         //  zModel: Enthält nach erfolgreichem Aufruf das Model (ohne erhöhten Reference Counter)