From a5af2759e328345b3fcc68c9844ba57e8a88208f 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.. TODO - Figure out if its okay to spawn it without the metadata. --- 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 54fdf6667dc..ae7826511d8 100644 --- a/code/modules/client/preference_setup/loadout/loadout.dm +++ b/code/modules/client/preference_setup/loadout/loadout.dm @@ -272,12 +272,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.