First adventure added. A bit of sound management improvement.
This commit is contained in:
@@ -169,6 +169,7 @@ void reset_game_state() {
|
||||
rope_climb_target_x = 0;
|
||||
rope_climb_target_y = 0;
|
||||
rope_climb_start_y = 0;
|
||||
rope_climb_sound_handle = -1;
|
||||
pending_rope_climb_x = -1;
|
||||
pending_rope_climb_elevation = 0;
|
||||
|
||||
@@ -618,6 +619,29 @@ bool save_game_state() {
|
||||
}
|
||||
saveData.set("equipment_quick_slots", join_string_array(quickSlotData));
|
||||
|
||||
// Rune system data
|
||||
saveData.set("rune_swiftness_unlocked", rune_swiftness_unlocked);
|
||||
saveData.set("unicorn_boss_defeated", unicorn_boss_defeated);
|
||||
saveData.set("equipped_head_rune", equipped_head_rune);
|
||||
saveData.set("equipped_torso_rune", equipped_torso_rune);
|
||||
saveData.set("equipped_arms_rune", equipped_arms_rune);
|
||||
saveData.set("equipped_hands_rune", equipped_hands_rune);
|
||||
saveData.set("equipped_legs_rune", equipped_legs_rune);
|
||||
saveData.set("equipped_feet_rune", equipped_feet_rune);
|
||||
saveData.set("equipped_weapon_rune", equipped_weapon_rune);
|
||||
|
||||
// Save runed items dictionary as key:value pairs
|
||||
string[] runed_items_data;
|
||||
string[]@ keys = runed_items.get_keys();
|
||||
for (uint i = 0; i < keys.length(); i++) {
|
||||
string key = keys[i];
|
||||
int count = int(runed_items[key]);
|
||||
if (count > 0) {
|
||||
runed_items_data.insert_last(key + "=" + count);
|
||||
}
|
||||
}
|
||||
saveData.set("runed_items", join_string_array(runed_items_data));
|
||||
|
||||
saveData.set("time_current_hour", current_hour);
|
||||
saveData.set("time_current_day", current_day);
|
||||
saveData.set("time_is_daytime", is_daytime);
|
||||
@@ -919,6 +943,32 @@ bool load_game_state() {
|
||||
}
|
||||
update_max_health_from_equipment();
|
||||
|
||||
// Load rune system data
|
||||
rune_swiftness_unlocked = get_bool(saveData, "rune_swiftness_unlocked", false);
|
||||
unicorn_boss_defeated = get_bool(saveData, "unicorn_boss_defeated", false);
|
||||
equipped_head_rune = int(get_number(saveData, "equipped_head_rune", RUNE_NONE));
|
||||
equipped_torso_rune = int(get_number(saveData, "equipped_torso_rune", RUNE_NONE));
|
||||
equipped_arms_rune = int(get_number(saveData, "equipped_arms_rune", RUNE_NONE));
|
||||
equipped_hands_rune = int(get_number(saveData, "equipped_hands_rune", RUNE_NONE));
|
||||
equipped_legs_rune = int(get_number(saveData, "equipped_legs_rune", RUNE_NONE));
|
||||
equipped_feet_rune = int(get_number(saveData, "equipped_feet_rune", RUNE_NONE));
|
||||
equipped_weapon_rune = int(get_number(saveData, "equipped_weapon_rune", RUNE_NONE));
|
||||
|
||||
// Load runed items dictionary
|
||||
runed_items.delete_all();
|
||||
string[] loaded_runed_items = get_string_list_or_split(saveData, "runed_items");
|
||||
for (uint i = 0; i < loaded_runed_items.length(); i++) {
|
||||
string entry = loaded_runed_items[i];
|
||||
int eq_pos = entry.find("=");
|
||||
if (eq_pos > 0) {
|
||||
string key = entry.substr(0, eq_pos);
|
||||
int count = parse_int(entry.substr(eq_pos + 1));
|
||||
if (count > 0) {
|
||||
runed_items.set(key, count);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
current_hour = int(get_number(saveData, "time_current_hour", 8));
|
||||
current_day = int(get_number(saveData, "time_current_day", 1));
|
||||
sun_setting_warned = get_bool(saveData, "time_sun_setting_warned", false);
|
||||
|
||||
Reference in New Issue
Block a user