From 1bebca2c037efb8424f7583d8488553cb65e391c Mon Sep 17 00:00:00 2001 From: Verkister Date: Tue, 2 May 2023 16:53:01 +0300 Subject: [PATCH] Fixes char setup tail layering. Guess we aint goin a bit elephant style for much longer. --- code/modules/client/preferences.dm | 6 ++-- code/modules/client/preferences_ch.dm | 36 +++++++++++++++++++ .../mob/new_player/preferences_setup.dm | 6 ++-- 3 files changed, 42 insertions(+), 6 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index a5d49a6418..b9d4c25498 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -161,7 +161,7 @@ var/list/preferences_datums = list() var/multilingual_mode = 0 // Default behaviour, delimiter-key-space, delimiter-key-delimiter, off var/list/volume_channels = list() - + ///If they are currently in the process of swapping slots, don't let them open 999 windows for it and get confused var/selecting_slots = FALSE @@ -278,7 +278,7 @@ var/list/preferences_datums = list() popup.open(FALSE) // Skip registring onclose on the browser pane onclose(user, "preferences_window", src) // We want to register on the window itself -/datum/preferences/proc/update_character_previews(mutable_appearance/MA) +/*datum/preferences/proc/update_character_previews(mutable_appearance/MA) //CHOMPEdit _ch override. if(!client) return @@ -309,7 +309,7 @@ var/list/preferences_datums = list() client.screen |= O O.appearance = MA O.dir = D - O.screen_loc = preview_screen_locs["[D]"] + O.screen_loc = preview_screen_locs["[D]"]*/ /datum/preferences/proc/show_character_previews() if(!client || !char_render_holders) diff --git a/code/modules/client/preferences_ch.dm b/code/modules/client/preferences_ch.dm index 4547b64009..b0980cef11 100644 --- a/code/modules/client/preferences_ch.dm +++ b/code/modules/client/preferences_ch.dm @@ -27,3 +27,39 @@ SScharacter_setup.queue_preferences_save(prefs) feedback_add_details("admin_verb", "TSleepMusic") + +/datum/preferences/proc/update_character_previews(var/mob/living/carbon/human/mannequin) + if(!client) + return + + var/obj/screen/setup_preview/pm_helper/PMH = LAZYACCESS(char_render_holders, "PMH") + if(!PMH) + PMH = new + LAZYSET(char_render_holders, "PMH", PMH) + client.screen |= PMH + PMH.screen_loc = preview_screen_locs["PMH"] + + var/obj/screen/setup_preview/bg/BG = LAZYACCESS(char_render_holders, "BG") + if(!BG) + BG = new + BG.plane = TURF_PLANE + BG.icon = 'icons/effects/setup_backgrounds_vr.dmi' + BG.pref = src + LAZYSET(char_render_holders, "BG", BG) + client.screen |= BG + BG.icon_state = bgstate + BG.screen_loc = preview_screen_locs["BG"] + + for(var/D in global.cardinal) + var/obj/screen/setup_preview/O = LAZYACCESS(char_render_holders, "[D]") + if(!O) + O = new + O.pref = src + LAZYSET(char_render_holders, "[D]", O) + client.screen |= O + mannequin.set_dir(D) + mannequin.update_tail_showing() + mannequin.ImmediateOverlayUpdate() + var/mutable_appearance/MA = new(mannequin) + O.appearance = MA + O.screen_loc = preview_screen_locs["[D]"] \ No newline at end of file diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 52dbf78507..5d132551ea 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -261,10 +261,10 @@ mannequin.update_transform() //VOREStation Edit to update size/shape stuff. mannequin.toggle_tail(setting = animations_toggle) mannequin.toggle_wing(setting = animations_toggle) - mannequin.update_tail_showing() - mannequin.ImmediateOverlayUpdate() + //mannequin.update_tail_showing() //CHOMPEdit. Moved to preferences_ch.dm + //mannequin.ImmediateOverlayUpdate() //CHOMPEdit - update_character_previews(new /mutable_appearance(mannequin)) + update_character_previews(mannequin) //CHOMPEdit /datum/preferences/proc/get_highest_job() var/datum/job/highJob