Add true portable mode (#259)

This commit is contained in:
Jeod
2025-09-26 15:32:42 -04:00
committed by GitHub
parent 7b0a62c765
commit 659e9f3ce8
28 changed files with 176 additions and 96 deletions

View File

@@ -42,7 +42,7 @@ script/source = "extends AchievementProgressCalculator
@export var campaign := \"SMB1\"
func get_progress() -> int:
var save = JSON.parse_string(FileAccess.open(\"user://saves/\" + campaign + \".sav\", FileAccess.READ).get_as_text())
var save = JSON.parse_string(FileAccess.open(Global.config_path.path_join(\"saves/\" + campaign + \".sav\"), FileAccess.READ).get_as_text())
var levels_finished := 0
for world in 8:
for level in 4:
@@ -58,7 +58,7 @@ script/source = "extends AchievementProgressCalculator
@export var campaign := \"SMB1\"
func get_progress() -> int:
var save = JSON.parse_string(FileAccess.open(\"user://saves/\" + campaign + \".sav\", FileAccess.READ).get_as_text())
var save = JSON.parse_string(FileAccess.open(Global.config_path.path_join(\"saves/\" + campaign + \".sav\"), FileAccess.READ).get_as_text())
var levels_finished := 0
for i in save[\"ClearedBooLevels\"]:
if int(i) > 0:
@@ -72,7 +72,7 @@ script/source = "extends AchievementProgressCalculator
@export var campaign := \"SMB1\"
func get_progress() -> int:
var save = JSON.parse_string(FileAccess.open(\"user://saves/\" + campaign + \".sav\", FileAccess.READ).get_as_text())
var save = JSON.parse_string(FileAccess.open(Global.config_path.path_join(\"saves/\" + campaign + \".sav\"), FileAccess.READ).get_as_text())
var levels_finished := 0
for i in save[\"ClearedBooLevels\"]:
if int(i) >= 5:
@@ -103,7 +103,7 @@ func get_progress() -> int:
print(SpeedrunHandler.best_level_any_times)
if SpeedrunHandler.best_level_any_times[x] <= SpeedrunHandler.LEVEL_GOLD_ANY_TIMES[campaign][x] * SpeedrunHandler.MEDAL_CONVERSIONS[medal_index] and SpeedrunHandler.best_level_any_times[x] > 0:
medal_amount += 1
var save = JSON.parse_string(FileAccess.open(\"user://saves/\" + campaign + \".sav\", FileAccess.READ).get_as_text())
var save = JSON.parse_string(FileAccess.open(Global.config_path.path_join(\"saves/\" + campaign + \".sav\"), FileAccess.READ).get_as_text())
if save.get(\"BestWarplessTime\", -1) <= SpeedrunHandler.GOLD_WARPLESS_TIMES[campaign] and save.get(\"BestWarplessTime\", -1) > 0:
medal_amount += 1
if save.get(\"BestAnyTime\", -1) <= SpeedrunHandler.GOLD_ANY_TIMES[campaign] and save.get(\"BestAnyTime\", -1) > 0:
@@ -116,7 +116,7 @@ script/source = "extends AchievementProgressCalculator
func get_progress() -> int:
var p_amount := 0
var save = JSON.parse_string(FileAccess.open(\"user://saves/SMBANN.sav\", FileAccess.READ). get_as_text())
var save = JSON.parse_string(FileAccess.open(Global.config_path.path_join(\"saves/SMBANN.sav\"), FileAccess.READ).get_as_text())
for i in save[\"Ranks\"]:
if i == \"P\":
p_amount += 1

View File

@@ -104,31 +104,31 @@ func delete_story(campaign := \"SMB1\") -> void:
save_json[i] = SaveManager.SAVE_TEMPLATE[i]
if save_json.has(\"Ranks\"):
save_json[\"Ranks\"] = \"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ\"
SaveManager.write_save_to_file(save_json, \"user://saves/\" + campaign + \".sav\")
SaveManager.write_save_to_file(save_json, Global.config_path.path_join(\"saves/\" + campaign + \".sav\"))
SaveManager.apply_save(save_json)
func delete_challenge(campaign := \"SMB1\") -> void:
var save_json = SaveManager.load_save(campaign)
for i in [\"ChallengeScores\", \"RedCoins\"]:
save_json[i] = SaveManager.SAVE_TEMPLATE[i]
SaveManager.write_save_to_file(save_json, \"user://saves/\" + campaign + \".sav\")
SaveManager.write_save_to_file(save_json, Global.config_path.path_join(\"saves/\" + campaign + \".sav\"))
SaveManager.apply_save(save_json)
func delete_boo(campaign := \"SMB1\") -> void:
var save_json = SaveManager.load_save(campaign)
for i in [\"ClearedBooLevels\", \"BooBestTimes\"]:
save_json[i] = SaveManager.SAVE_TEMPLATE[i]
SaveManager.write_save_to_file(save_json, \"user://saves/\" + campaign + \".sav\")
SaveManager.write_save_to_file(save_json, Global.config_path.path_join(\"saves/\" + campaign + \".sav\"))
SaveManager.apply_save(save_json)
func delete_marathon(campaign := \"SMB1\") -> void:
var save_json = SaveManager.load_save(campaign)
for i in [\"BestAnyTime\", \"BestWarplessTime\"]:
save_json[i] = SaveManager.SAVE_TEMPLATE[i]
SaveManager.write_save_to_file(save_json, \"user://saves/\" + campaign + \".sav\")
SaveManager.write_save_to_file(save_json, Global.config_path.path_join(\"saves/\" + campaign + \".sav\"))
SaveManager.apply_save(save_json)
for i in DirAccess.get_files_at(\"user://marathon_recordings/\" + campaign + \"/\"):
DirAccess.remove_absolute(\"user://marathon_recordings/\" + campaign + \"/\" + i)
for i in DirAccess.get_files_at(Global.config_path.path_join(\"marathon_recordings/\" + campaign + \"/\")):
DirAccess.remove_absolute(Global.config_path.path_join(\"marathon_recordings/\"+ campaign + \"/\" + i))
for world in 8:
for level in 4:
SpeedrunHandler.best_level_warpless_times[world][level] = -1