Просмотр исходного кода

Möglichkeit für das Hinzufügen von Resourcen hinzugefügt

Kolja Strohm 5 лет назад
Родитель
Сommit
7a38e2ca04
1 измененных файлов с 40 добавлено и 0 удалено
  1. 40 0
      Asteroids/Editor.cpp

+ 40 - 0
Asteroids/Editor.cpp

@@ -394,6 +394,46 @@ bool Editor::nachricht( SKlient *k )
         }
         return 1;
     }
+    case 0xC: // Add Resource
+    {
+        k->sendeEncrypted( "\1", 1 );
+        Datei d;
+        d.setDatei( Text( pfad.getText() ) + "/resource" );
+        RCArray<Text> *list = d.getDateiListe();
+        int nId = 0;
+        bool found = 0;
+        do
+        {
+            nId++;
+            found = 0;
+            for( auto t = list->getIterator(); t; t++ )
+            {
+                if( t->istGleich( Text( nId ) + ".r" ) )
+                {
+                    found = 1;
+                    break;
+                }
+            }
+        } while( found );
+        list->release();
+        unsigned char len = 0;
+        k->getNachrichtEncrypted( (char *)&len, 1 );
+        char *path = new char[ len + 1 ];
+        path[ len ] = 0;
+        k->getNachrichtEncrypted( path, len );
+        d.setDatei( Text( pfad.getText() ) + "/resource/" + nId + ".r" );
+        if( d.open( Datei::Style::schreiben ) )
+        {
+            d.schreibe( (char *)& len, 1 );
+            d.schreibe( path, len );
+            d.close();
+            k->sendeEncrypted( "\1", 1 );
+            k->sendeEncrypted( (char *)& nId, 4 );
+            return 1;
+        }
+        err = "Fehler beim schreiben der Datei.";
+        return 0;
+    }
     default:
         err = "Unbekannte Nachricht. Error Code: " __FILE__ ":";
         err += __LINE__;