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