Fix ext storage and zip paths

Fix a bug with handling external storage during boot.
Check zip root path when switching storage and ensure that the
path is in the new storage path to prevent user confusion.
diff --git a/data.cpp b/data.cpp
index 505a3a1..2129364 100644
--- a/data.cpp
+++ b/data.cpp
@@ -840,11 +840,15 @@
 	GetValue(TW_HAS_EXTERNAL, has_ext);
 	if (has_dual != 0 && use_ext == 1) {
 		// Attempt to sdcard using external storage
-		if (PartitionManager.Mount_Current_Storage(false)) {
+		if (!PartitionManager.Mount_Current_Storage(false)) {
 			LOGE("Failed to mount external storage, using internal storage.\n");
 			// Remount failed, default back to internal storage
 			SetValue(TW_USE_EXTERNAL_STORAGE, 0);
 			PartitionManager.Mount_Current_Storage(true);
+			string int_zip_path;
+			GetValue(TW_ZIP_INTERNAL_VAR, int_zip_path);
+			SetValue(TW_USE_EXTERNAL_STORAGE, 0);
+			SetValue(TW_ZIP_LOCATION_VAR, int_zip_path);
 		}
 	} else {
 		PartitionManager.Mount_Current_Storage(true);