|
@@ -103,7 +103,6 @@ private:
|
|
|
FileDialog *fdialog_install;
|
|
|
String zip_path;
|
|
|
String zip_title;
|
|
|
- String zip_root;
|
|
|
AcceptDialog *dialog_error;
|
|
|
String fav_dir;
|
|
|
|
|
@@ -204,9 +203,7 @@ private:
|
|
|
char fname[16384];
|
|
|
ret = unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0);
|
|
|
|
|
|
- String fname_str = String(fname);
|
|
|
- if (fname_str.ends_with("project.godot")) {
|
|
|
- zip_root = fname_str.substr(0, fname_str.rfind("project.godot"));
|
|
|
+ if (String(fname).ends_with("project.godot")) {
|
|
|
break;
|
|
|
}
|
|
|
|
|
@@ -508,7 +505,24 @@ private:
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ // Find the zip_root
|
|
|
+ String zip_root;
|
|
|
int ret = unzGoToFirstFile(pkg);
|
|
|
+ while (ret == UNZ_OK) {
|
|
|
+ unz_file_info info;
|
|
|
+ char fname[16384];
|
|
|
+ unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0);
|
|
|
+
|
|
|
+ String name = fname;
|
|
|
+ if (name.ends_with("project.godot")) {
|
|
|
+ zip_root = name.substr(0, name.rfind("project.godot"));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ ret = unzGoToNextFile(pkg);
|
|
|
+ }
|
|
|
+
|
|
|
+ ret = unzGoToFirstFile(pkg);
|
|
|
|
|
|
Vector<String> failed_files;
|
|
|
|