diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm index 8654fb89a12..9b18e243567 100644 --- a/code/controllers/master_controller.dm +++ b/code/controllers/master_controller.dm @@ -121,9 +121,6 @@ datum/controller/game_controller/proc/setup_objects() //Set up spawn points. populate_spawn_points() - //Set up gear list. - populate_gear_list() - //Set up roundstart seed list. populate_seed_list() diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index ae333eb8dd4..bb73a223c79 100755 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -277,15 +277,15 @@ datum/preferences dat += "
Custom Loadout: " var/total_cost = 0 - if(isnull(gear) || !islist(gear)) gear = list() + if(!islist(gear)) gear = list() if(gear && gear.len) dat += "
" - for(var/gear_name in gear) - if(gear_datums[gear_name]) - var/datum/gear/G = gear_datums[gear_name] + for(var/i = 1; i <= gear.len; i++) + var/datum/gear/G = gear_datums[gear[i]] + if(G) total_cost += G.cost - dat += "[gear_name] \[remove\]
" + dat += "[gear[i]] ([G.cost] points) \[remove\]
" dat += "Used: [total_cost] points." else @@ -294,7 +294,7 @@ datum/preferences if(total_cost < MAX_GEAR_COST) dat += " \[add\]" if(gear && gear.len) - dat += " \[remove\]" + dat += " \[clear\]" dat += "

Occupation Choices
" dat += "\tSet Preferences
" @@ -882,17 +882,17 @@ datum/preferences total_cost += C.cost if(C && total_cost <= MAX_GEAR_COST) gear += choice - user << "\blue Added [choice] for [C.cost] points ([MAX_GEAR_COST - total_cost] points remaining)." + user << "Added \the '[choice]' for [C.cost] points ([MAX_GEAR_COST - total_cost] points remaining)." else - user << "\red That item will exceed the maximum loadout cost of [MAX_GEAR_COST] points." + user << "Adding \the '[choice]' will exceed the maximum loadout cost of [MAX_GEAR_COST] points." else if(href_list["task"] == "remove") - var/to_remove = href_list["gear"] - if(!to_remove) return - for(var/gear_name in gear) - if(gear_name == to_remove) - gear -= gear_name - break + var/i_remove = text2num(href_list["gear"]) + if(i_remove < 1 || i_remove > gear.len) return + gear.Cut(i_remove, i_remove + 1) + + else if(href_list["task"] == "clear") + gear.Cut() else if(href_list["preference"] == "flavor_text") switch(href_list["task"]) diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm index 240f6602a35..306a31a81c8 100644 --- a/code/modules/client/preferences_gear.dm +++ b/code/modules/client/preferences_gear.dm @@ -1,9 +1,10 @@ var/global/list/gear_datums = list() -proc/populate_gear_list() +/hook/startup/proc/populate_gear_list() for(var/type in typesof(/datum/gear)-/datum/gear) var/datum/gear/G = new type() gear_datums[G.display_name] = G + return 1 /datum/gear var/display_name //Name/index. @@ -653,4 +654,4 @@ proc/populate_gear_list() /datum/gear/comb display_name = "purple comb" path = /obj/item/weapon/fluff/cado_keppel_1 - cost = 2 \ No newline at end of file + cost = 2