Files
Bubberstation/code/game/gamemodes/devil/true_devil/inventory.dm
Cyberboss 56a6eaa8e6 Overlay queuing (#23922)
* Overlay queuing

* Fix SS flags

* Don't copy on assignment

* Flags processing

* Fix icon_smoothing

* MSO's helper proc

* Legacy detection

* Make it work

* Fixes shitcode

* Fix the flag

* |= -> +=

* OK, how did I fuck that up?

* shitcode

* Conditional assoc queue while initializing

* Cleanup everything

* Orange meme

* This isn't perfect, but its the best byond will give us.

* forgot about dir

* oh ya

* This was litterally the last thing i did last night before heading to bed

You can tell can't you?

* Fixes various shit

* Let's not ever pause

* Fix the flag

* Cleaned up some missing shit. Added image dummys

* Remove the one usage of FPRINT

* Jesus get rid of this
2017-02-22 21:44:55 +13:00

60 lines
2.0 KiB
Plaintext

/mob/living/carbon/true_devil/doUnEquip(obj/item/I, force)
if(..())
update_inv_hands()
return 1
return 0
/mob/living/carbon/true_devil/update_inv_hands()
//TODO LORDPIDEY: Figure out how to make the hands line up properly. the l/r_hand_image should use the down sprite when facing down, left, or right, and the up sprite when facing up.
remove_overlay(DEVIL_HANDS_LAYER)
var/list/hands_overlays = list()
var/obj/item/l_hand = get_item_for_held_index(1) //hardcoded 2-hands only, for now.
var/obj/item/r_hand = get_item_for_held_index(2)
if(r_hand)
var/r_state = r_hand.item_state
if(!r_state)
r_state = r_hand.icon_state
var/image/r_hand_image = r_hand.build_worn_icon(state = r_state, default_layer = DEVIL_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE)
hands_overlays += r_hand_image
if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
r_hand.layer = ABOVE_HUD_LAYER
r_hand.plane = ABOVE_HUD_PLANE
r_hand.screen_loc = ui_hand_position(get_held_index_of_item(r_hand))
client.screen |= r_hand
if(l_hand)
var/l_state = l_hand.item_state
if(!l_state)
l_state = l_hand.icon_state
var/image/l_hand_image = l_hand.build_worn_icon(state = l_state, default_layer = DEVIL_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE)
hands_overlays += l_hand_image
if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
l_hand.layer = ABOVE_HUD_LAYER
l_hand.plane = ABOVE_HUD_PLANE
l_hand.screen_loc = ui_hand_position(get_held_index_of_item(l_hand))
client.screen |= l_hand
if(hands_overlays.len)
devil_overlays[DEVIL_HANDS_LAYER] = hands_overlays
apply_overlay(DEVIL_HANDS_LAYER)
/mob/living/carbon/true_devil/remove_overlay(cache_index)
var/I = devil_overlays[cache_index]
if(I)
cut_overlay(I)
devil_overlays[cache_index] = null
/mob/living/carbon/true_devil/apply_overlay(cache_index)
var/image/I = devil_overlays[cache_index]
if(I)
add_overlay(I)