v1.2.0: fixed errors with new save deletion logic
This commit is contained in:
@@ -119,12 +119,24 @@ public class FileUtils {
|
|||||||
return file.exists() && !file.isDirectory() && file.length() > 0;
|
return file.exists() && !file.isDirectory() && file.length() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//returns length of a file in bytes, or 0 if file does not exist
|
||||||
|
public static long fileLength( String name ){
|
||||||
|
FileHandle file = getFileHandle( name );
|
||||||
|
if (!file.exists() || file.isDirectory()){
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
return file.length();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean deleteFile( String name ){
|
public static boolean deleteFile( String name ){
|
||||||
return getFileHandle( name ).delete();
|
return getFileHandle( name ).delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setFileEmpty(String name ){
|
//replaces a file with zeroes, for as many bytes as given
|
||||||
getFileHandle( name ).writeBytes(new byte[0], true);
|
//This is helpful as some cloud sync systems do not persist deleted or empty files
|
||||||
|
public static void zeroFile( String name, int bytes ){
|
||||||
|
getFileHandle( name ).writeBytes(new byte[bytes], false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Directories
|
// Directories
|
||||||
|
|||||||
@@ -672,12 +672,9 @@ public class Dungeon {
|
|||||||
FileUtils.deleteFile(folder + "/" + file);
|
FileUtils.deleteFile(folder + "/" + file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ArrayList<String> files = FileUtils.filesInDir(GamesInProgress.gameFolder(save));
|
|
||||||
FileUtils.deleteDir(GamesInProgress.gameFolder(save));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//we empty this file instead of delete due to steam cloud only persisting file deletions locally
|
FileUtils.zeroFile(GamesInProgress.gameFile(save), 1);
|
||||||
FileUtils.setFileEmpty(GamesInProgress.gameFile(save));
|
|
||||||
|
|
||||||
GamesInProgress.delete( save );
|
GamesInProgress.delete( save );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ public class GamesInProgress {
|
|||||||
|
|
||||||
public static boolean gameExists( int slot ){
|
public static boolean gameExists( int slot ){
|
||||||
return FileUtils.dirExists(gameFolder(slot))
|
return FileUtils.dirExists(gameFolder(slot))
|
||||||
&& FileUtils.fileExists(gameFile(slot));
|
&& FileUtils.fileLength(gameFile(slot)) > 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String gameFolder( int slot ){
|
public static String gameFolder( int slot ){
|
||||||
@@ -74,7 +74,7 @@ public class GamesInProgress {
|
|||||||
|
|
||||||
public static ArrayList<Info> checkAll(){
|
public static ArrayList<Info> checkAll(){
|
||||||
ArrayList<Info> result = new ArrayList<>();
|
ArrayList<Info> result = new ArrayList<>();
|
||||||
for (int i = 0; i <= MAX_SLOTS; i++){
|
for (int i = 1; i <= MAX_SLOTS; i++){
|
||||||
Info curr = check(i);
|
Info curr = check(i);
|
||||||
if (curr != null) result.add(curr);
|
if (curr != null) result.add(curr);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user