diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm index a9d101f7de8..da13a50752e 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 e5a96e246ae..2ff7e0b6f8f 100755 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -276,15 +276,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 @@ -293,7 +293,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
" @@ -874,17 +874,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 aee6547694a..f87a6ee6d3f 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.