more savegame tweaks

This commit is contained in:
derek
2024-12-02 16:24:41 -06:00
parent eee708c7f1
commit c30ccff06c
8 changed files with 60 additions and 44 deletions

View File

@@ -7,11 +7,16 @@ var player_deaths
var enemies_killed
#GAME DATA
var data_cleared
var player_loc
var player_rot
var player_health
var player_money
var held_guns
var current_gun
var current_ammo
var reserve_ammo
var enemies = []
## SAVE DATA PATHS
@@ -57,44 +62,79 @@ func save_game_data():
var level_control = get_tree().current_scene
var player = level_control.player
var file = FileAccess.open(game_save_path, FileAccess.WRITE)
#ASSIGN DATA TO VARIABLES
data_cleared = false
player_loc = player.global_position
player_rot = player.global_rotation
player_health = level_control.health
player_money = level_control.money
held_guns = save_resource_path(level_control.held_guns)
current_gun = level_control.current_gun_index
current_ammo = level_control.ammo_current
reserve_ammo = level_control.ammo_reserve
#SAVE DATA
file.store_var(data_cleared)
file.store_var(player_loc)
file.store_var(player_rot)
file.store_var(player_health)
file.store_var(player_money)
file.store_var(held_guns)
file.store_var(current_gun)
file.store_var(current_ammo)
file.store_var(reserve_ammo)
file.store_var(enemies)
file.close()
func clear_save_game_data():
var file = FileAccess.open(game_save_path, FileAccess.WRITE)
data_cleared = true
file.store_var(data_cleared)
file.store_var(player_loc)
file.store_var(player_rot)
file.store_var(player_health)
file.store_var(player_money)
file.store_var(held_guns)
file.store_var(current_gun)
file.store_var(current_ammo)
file.store_var(reserve_ammo)
file.store_var(enemies)
func load_save_game_data():
var level_control = get_tree().current_scene
var player = level_control.player
if FileAccess.file_exists(game_save_path):
var file = FileAccess.open(game_save_path, FileAccess.READ)
#GET DATA
player_loc = file.get_var()
player_rot = file.get_var()
var held_guns_encoded = file.get_var()
held_guns = load_resource_path(held_guns_encoded)
current_ammo = file.get_var()
reserve_ammo = file.get_var()
data_cleared = file.get_var()
#APPLY DATA
player.global_position = player_loc
player.global_rotation = player_rot
level_control.held_guns = held_guns
level_control.ammo_current = current_ammo
level_control.ammo_reserve = reserve_ammo
if !data_cleared:
player_loc = file.get_var()
player_rot = file.get_var()
player_health = file.get_var()
player_money = file.get_var()
var held_guns_encoded = file.get_var()
held_guns = load_resource_path(held_guns_encoded)
current_gun = file.get_var()
current_ammo = file.get_var()
reserve_ammo = file.get_var()
enemies = file.get_var()
#APPLY DATA
player.global_position = player_loc
player.global_rotation = player_rot
level_control.health = player_health
level_control.money = player_money
level_control.held_guns = held_guns
player.gun.queue_free()
level_control.gun_spawn(current_gun)
level_control.ammo_current = current_ammo
level_control.ammo_reserve = reserve_ammo
file.close()
else:
print("no data saved...")
@@ -123,8 +163,6 @@ func save_resource_path(array):
var resource_path = i.resource_path
if resource_path != "":
final_array.append(resource_path)
print("Resource Path: ", resource_path)
print("FINAL ARRAY ", final_array)
return final_array
func load_resource_path(array):
@@ -132,5 +170,4 @@ func load_resource_path(array):
for i in array:
var i_loaded = load(i)
final_array.append(i_loaded)
print("loaded ",final_array)
return final_array