From 264793b36a13e400f7224337055df04dcc1b915a Mon Sep 17 00:00:00 2001 From: ShadowLarkens Date: Tue, 25 Aug 2020 16:50:23 -0700 Subject: [PATCH] Fading titlescreen from /tg/ --- code/_onclick/hud/screen_objects.dm | 40 +++++++++++++++++++++++ code/controllers/subsystems/ticker.dm | 3 ++ code/modules/mob/new_player/new_player.dm | 3 ++ 3 files changed, 46 insertions(+) diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index e393248c6e..66cf3d1c12 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -633,3 +633,43 @@ /obj/screen/setup_preview/bg/Click(params) pref?.bgstate = next_in_list(pref.bgstate, pref.bgstate_options) pref?.update_preview_icon() + +/obj/screen/splash + screen_loc = "1,1" + layer = LAYER_HUD_ABOVE + plane = PLANE_PLAYER_HUD_ABOVE + var/client/holder + +/obj/screen/splash/New(client/C, visible) + . = ..() + + holder = C + + if(!visible) + alpha = 0 + + if(!lobby_image) + qdel(src) + return + + icon = lobby_image.icon + icon_state = lobby_image.icon_state + + holder.screen += src + +/obj/screen/splash/proc/Fade(out, qdel_after = TRUE) + if(QDELETED(src)) + return + if(out) + animate(src, alpha = 0, time = 30) + else + alpha = 0 + animate(src, alpha = 255, time = 30) + if(qdel_after) + QDEL_IN(src, 30) + +/obj/screen/splash/Destroy() + if(holder) + holder.screen -= src + holder = null + return ..() diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm index cc498385a3..eb19477181 100644 --- a/code/controllers/subsystems/ticker.dm +++ b/code/controllers/subsystems/ticker.dm @@ -416,6 +416,9 @@ var/global/datum/controller/subsystem/ticker/ticker // Created their playable character, delete their /mob/new_player if(new_char) qdel(player) + if(new_char.client) + var/obj/screen/splash/S = new(new_char.client, TRUE) + S.Fade(TRUE) // If they're a carbon, they can get manifested if(J?.mob_type & JOB_CARBON) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 94c69622c4..5e288533f9 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -418,6 +418,9 @@ var/mob/living/character = create_character(T) //creates the human and transfers vars and mind character = job_master.EquipRank(character, rank, 1) //equips the human UpdateFactionList(character) + if(character && character.client) + var/obj/screen/splash/Spl = new(character.client, TRUE) + Spl.Fade(TRUE) var/datum/job/J = SSjob.get_job(rank)