From 76f1da5830ab0a0163dd14a6fb1bdc6a1c5a05e1 Mon Sep 17 00:00:00 2001 From: Leshana Date: Sun, 23 Feb 2020 21:45:06 -0500 Subject: [PATCH] Fix Runtime in loadout.dm,277: bad index Runtime happens when someone has a saved preferences loadout containing an item that currently is expected to have gear_tweaks, but at the time that the savefile was last saved, did *not* have gear tweaks. Thus the saved prefs have null metadata. Also it makes no sense to check the length of a list *inside* a for loop iterating over that list.. --- code/modules/client/preference_setup/loadout/loadout.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/client/preference_setup/loadout/loadout.dm b/code/modules/client/preference_setup/loadout/loadout.dm index f26df3e26e..c87ddcd1c4 100644 --- a/code/modules/client/preference_setup/loadout/loadout.dm +++ b/code/modules/client/preference_setup/loadout/loadout.dm @@ -257,12 +257,12 @@ var/list/gear_datums = list() /datum/gear/proc/spawn_item(var/location, var/metadata) var/datum/gear_data/gd = new(path, location) - for(var/datum/gear_tweak/gt in gear_tweaks) - if(gear_tweaks.len) + if(length(gear_tweaks) && metadata) + for(var/datum/gear_tweak/gt in gear_tweaks) gt.tweak_gear_data(metadata["[gt]"], gd) var/item = new gd.path(gd.location) - for(var/datum/gear_tweak/gt in gear_tweaks) - if(gear_tweaks.len) + if(length(gear_tweaks) && metadata) + for(var/datum/gear_tweak/gt in gear_tweaks) gt.tweak_item(item, metadata["[gt]"]) var/mob/M = location if(istype(M) && exploitable) //Update exploitable info records for the mob without creating a duplicate object at their feet.