Fixes Only One Accessory Equipped at Spawn & in Character Preview

Ported from Aurora PR#10205, credit to fernerr
EARLYPORT OF POLARIS & VIRGO PRS

Now you can see all the accessories (within standard equipping logic) you've selected in the character preview.

Addditionally, these accessories will now all be equipped when you spawn instead of filling your backpack unless it's actually necessary.
This commit is contained in:
KasparoVy
2020-10-08 18:38:37 -04:00
parent 938b29a242
commit 12dac5c191
2 changed files with 7 additions and 5 deletions
+4 -3
View File
@@ -387,7 +387,7 @@ var/global/datum/controller/occupations/job_master
if(job)
//Equip custom gear loadout.
var/list/custom_equip_slots = list() //If more than one item takes the same slot, all after the first one spawn in storage.
var/list/custom_equip_slots = list()
var/list/custom_equip_leftovers = list()
if(H.client.prefs.gear && H.client.prefs.gear.len && !(job.mob_type & JOB_SILICON))
for(var/thing in H.client.prefs.gear)
@@ -420,14 +420,15 @@ var/global/datum/controller/occupations/job_master
I.implant_loadout(H)
continue
// Try desperately (and sorta poorly) to equip the item
// Try desperately (and sorta poorly) to equip the item. Now with increased desperation!
if(G.slot && !(G.slot in custom_equip_slots))
var/metadata = H.client.prefs.gear[G.display_name]
if(G.slot == slot_wear_mask || G.slot == slot_wear_suit || G.slot == slot_head)
custom_equip_leftovers += thing
else if(H.equip_to_slot_or_del(G.spawn_item(H, metadata), G.slot))
to_chat(H, "<span class='notice'>Equipping you with \the [thing]!</span>")
custom_equip_slots.Add(G.slot)
if(G.slot != slot_tie)
custom_equip_slots.Add(G.slot)
else
custom_equip_leftovers.Add(thing)
else
@@ -220,7 +220,7 @@
break
if((equip_preview_mob & EQUIP_PREVIEW_LOADOUT) && !(previewJob && (equip_preview_mob & EQUIP_PREVIEW_JOB) && (previewJob.type == /datum/job/ai || previewJob.type == /datum/job/cyborg)))
var/list/equipped_slots = list() //If more than one item takes the same slot only spawn the first
var/list/equipped_slots = list()
for(var/thing in gear)
var/datum/gear/G = gear_datums[thing]
if(G)
@@ -243,7 +243,8 @@
if(G.slot && !(G.slot in equipped_slots))
var/metadata = gear[G.display_name]
if(mannequin.equip_to_slot_or_del(G.spawn_item(mannequin, metadata), G.slot))
equipped_slots += G.slot
if(G.slot != slot_tie)
equipped_slots += G.slot
if((equip_preview_mob & EQUIP_PREVIEW_JOB) && previewJob)
mannequin.job = previewJob.title