mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-25 22:19:30 +01:00
Fixes some Alternate Appearance issues (#19258)
Fixes Alternate Appearances clobbering each other Fixes Viewed Alternate Appearances not being cleared out during an atom's Destroy() Fixes Kor's AA plants. properly removes viewing_alternate_appearances AAs
This commit is contained in:
@@ -30,7 +30,11 @@
|
||||
if(!M.viewing_alternate_appearances)
|
||||
M.viewing_alternate_appearances = list()
|
||||
viewers |= M
|
||||
M.viewing_alternate_appearances[key] = src
|
||||
var/list/AAsiblings = M.viewing_alternate_appearances[key]
|
||||
if(!AAsiblings)
|
||||
AAsiblings = list()
|
||||
M.viewing_alternate_appearances[key] = AAsiblings
|
||||
AAsiblings |= src
|
||||
if(M.client)
|
||||
M.client.images |= img
|
||||
|
||||
@@ -48,9 +52,13 @@
|
||||
if(M.client)
|
||||
M.client.images -= img
|
||||
if(M.viewing_alternate_appearances && M.viewing_alternate_appearances.len)
|
||||
M.viewing_alternate_appearances -= key
|
||||
if(!M.viewing_alternate_appearances.len)
|
||||
M.viewing_alternate_appearances = null
|
||||
var/list/AAsiblings = M.viewing_alternate_appearances[key]
|
||||
if(AAsiblings)
|
||||
AAsiblings -= src
|
||||
if(!AAsiblings.len)
|
||||
M.viewing_alternate_appearances -= key
|
||||
if(!M.viewing_alternate_appearances.len)
|
||||
M.viewing_alternate_appearances = null
|
||||
viewers -= M
|
||||
|
||||
|
||||
@@ -73,8 +81,9 @@
|
||||
|
||||
/atom
|
||||
var/list/alternate_appearances //the alternate appearances we own
|
||||
var/list/viewing_alternate_appearances //the alternate appearances we're viewing, stored here to reestablish them after Logout()s
|
||||
//these lists are built/destroyed as necessary, so atoms aren't all lugging around lists full of datums
|
||||
var/list/viewing_alternate_appearances //this is an assoc list of lists, the keys being the AA's key
|
||||
//inside these lists are the AAs themselves, this is to allow the atom to see multiple of the same type of AA
|
||||
//eg: two (or more) people disguised as cardborgs, or two (or more) people disguised as plants
|
||||
|
||||
/*
|
||||
Builds an alternate_appearance datum for the supplied args, optionally displaying it straight away
|
||||
|
||||
+5
-1
@@ -27,7 +27,11 @@
|
||||
var/datum/alternate_appearance/AA = alternate_appearances[aakey]
|
||||
qdel(AA)
|
||||
alternate_appearances = null
|
||||
|
||||
if(viewing_alternate_appearances)
|
||||
for(var/aakey in viewing_alternate_appearances)
|
||||
for(var/aa in viewing_alternate_appearances[aakey])
|
||||
var/datum/alternate_appearance/AA = aa
|
||||
AA.hide(list(src))
|
||||
return ..()
|
||||
|
||||
|
||||
|
||||
@@ -236,7 +236,7 @@
|
||||
throw_speed = 2
|
||||
throw_range = 4
|
||||
|
||||
/obj/item/weapon/twohanded/flora/kirbyplants/equipped(mob/living/user)
|
||||
/obj/item/weapon/twohanded/required/kirbyplants/equipped(mob/living/user)
|
||||
var/image/I = image(icon = 'icons/obj/flora/plants.dmi' , icon_state = src.icon_state, loc = user)
|
||||
I.override = 1
|
||||
user.add_alt_appearance("sneaking_mission", I, player_list)
|
||||
|
||||
@@ -64,8 +64,8 @@
|
||||
|
||||
if(viewing_alternate_appearances && viewing_alternate_appearances.len)
|
||||
for(var/aakey in viewing_alternate_appearances)
|
||||
var/datum/alternate_appearance/AA = viewing_alternate_appearances[aakey]
|
||||
if(AA)
|
||||
for(var/aa in viewing_alternate_appearances[aakey])
|
||||
var/datum/alternate_appearance/AA = aa
|
||||
AA.display_to(list(src))
|
||||
|
||||
update_client_colour()
|
||||
|
||||
Reference in New Issue
Block a user