Bladeren bron

allow dynamic override of low level functions

ncannasse 7 jaren geleden
bovenliggende
commit
edd28168c9
1 gewijzigde bestanden met toevoegingen van 25 en 16 verwijderingen
  1. 25 16
      hxd/Save.hx

+ 25 - 16
hxd/Save.hx

@@ -54,16 +54,33 @@ class Save {
 		} catch( e : Dynamic ) {
 		} catch( e : Dynamic ) {
 			return defValue;
 			return defValue;
 		}
 		}
-		#elseif sys
-		return try loadData(sys.io.File.getContent(savePath(name)), checkSum) catch( e : Dynamic ) defValue;
+		#else
+		return try loadData(readSaveData(name), checkSum) catch( e : Dynamic ) defValue;
+		#end
+	}
+
+	@:noCompletion public static dynamic function readSaveData( name : String ) : String {
+		#if sys
+		return sys.io.File.getContent(savePath(name));
+		#elseif js
+		return js.Browser.window.localStorage.getItem(name);
+		#else
+		throw "Not implemented";
+		return null;
+		#end
+	}
+
+	@:noCompletion public static dynamic function writeSaveData( name : String, data : String ) {
+		#if sys
+		sys.io.File.saveContent(savePath(name), data);
 		#elseif js
 		#elseif js
-		return try loadData(js.Browser.window.localStorage.getItem(name), checkSum) catch( e : Dynamic ) defValue;
+		js.Browser.window.localStorage.setItem(name, data);
 		#else
 		#else
-		return defValue;
+		throw "Not implemented";
 		#end
 		#end
 	}
 	}
 
 
-	public static function delete( name = "save" ) {
+	public dynamic static function delete( name = "save" ) {
 		#if flash
 		#if flash
 		throw "TODO";
 		throw "TODO";
 		#elseif sys
 		#elseif sys
@@ -82,19 +99,11 @@ class Save {
 		getObj(name).setProperty("data", data);
 		getObj(name).setProperty("data", data);
 		try saveObj.flush() catch( e : Dynamic ) throw "Can't write save (disk full ?)";
 		try saveObj.flush() catch( e : Dynamic ) throw "Can't write save (disk full ?)";
 		return true;
 		return true;
-		#elseif sys
+		#else
 		var data = saveData(val,checkSum);
 		var data = saveData(val,checkSum);
-		var file = savePath(name);
-		try if( sys.io.File.getContent(file) == data ) return false catch( e : Dynamic ) {};
-		sys.io.File.saveContent(file, data);
+		try if( readSaveData(name) == data ) return false catch( e : Dynamic ) {};
+		writeSaveData(name, data);
 		return true;
 		return true;
-		#elseif js
-		var data = saveData(val, checkSum);
-		try if( js.Browser.window.localStorage.getItem(name) == data ) return false catch( e : Dynamic ) {};
-		js.Browser.window.localStorage.setItem(name, data);
-		return true;
-		#else
-		return false;
 		#end
 		#end
 	}
 	}