From 4bcebbc7bcc2da079acb463cdf348718f48c7009 Mon Sep 17 00:00:00 2001 From: Tastyfish Date: Wed, 14 Sep 2022 18:13:27 -0400 Subject: [PATCH] [MODULAR] properly fixes titlescreen glitching in dreamseeker launch (#16222) properly fixes titlescreen gltiching in dreamseeker launch --- .../modules/title_screen/code/new_player.dm | 8 ++++++++ .../modules/title_screen/code/title_screen_html.dm | 13 +++++++++++-- .../title_screen/code/title_screen_subsystem.dm | 10 +++++++--- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/modular_skyrat/modules/title_screen/code/new_player.dm b/modular_skyrat/modules/title_screen/code/new_player.dm index 21ae13c8a28..cb84d471baf 100644 --- a/modular_skyrat/modules/title_screen/code/new_player.dm +++ b/modular_skyrat/modules/title_screen/code/new_player.dm @@ -1,3 +1,7 @@ +/mob/dead/new_player + /// Title screen is ready to receive signals + var/title_screen_is_ready = FALSE + /mob/dead/new_player/Topic(href, href_list[]) if(src != usr) return @@ -111,6 +115,10 @@ vote_on_poll_handler(poll, href_list) return + if(href_list["title_is_ready"]) + title_screen_is_ready = TRUE + return + /mob/dead/new_player/Login() . = ..() diff --git a/modular_skyrat/modules/title_screen/code/title_screen_html.dm b/modular_skyrat/modules/title_screen/code/title_screen_html.dm index 89ae7e06e48..ac62235a325 100644 --- a/modular_skyrat/modules/title_screen/code/title_screen_html.dm +++ b/modular_skyrat/modules/title_screen/code/title_screen_html.dm @@ -71,7 +71,7 @@ GLOBAL_LIST_EMPTY(startup_messages) } // Recalculate gap as a % within a % since they're nested. - const progress_sub_current_position = (progress_current_position - progress_sub_start) / progress_current_position * 100; + var progress_sub_current_position = (progress_current_position - progress_sub_start) / progress_current_position * 100; progress_bar.style.width = "" + progress_current_position + "%"; sub_progress_bar.style.width = "" + progress_sub_current_position + "%"; @@ -164,7 +164,16 @@ GLOBAL_LIST_EMPTY(startup_messages) function update_loading_progress() {} "} + + // Tell the server this page loaded. + dat += {" + + "} + dat += "" return dat - diff --git a/modular_skyrat/modules/title_screen/code/title_screen_subsystem.dm b/modular_skyrat/modules/title_screen/code/title_screen_subsystem.dm index 0441e879d2b..792ee973201 100644 --- a/modular_skyrat/modules/title_screen/code/title_screen_subsystem.dm +++ b/modular_skyrat/modules/title_screen/code/title_screen_subsystem.dm @@ -167,7 +167,10 @@ SUBSYSTEM_DEF(title) * * user - The user being updated * * name - the real name of the current slot. */ -/datum/controller/subsystem/title/proc/update_character_name(mob/user, name) +/datum/controller/subsystem/title/proc/update_character_name(mob/dead/new_player/user, name) + if(!(istype(user) && user.title_screen_is_ready)) + return + user.client << output(name, "title_browser:update_current_character") /** @@ -193,7 +196,8 @@ SUBSYSTEM_DEF(title) SStitle.startup_message_timings[msg] = new_timing for(var/mob/dead/new_player/new_player in GLOB.new_player_list) - #ifndef LOWMEMORYMODE // Prevents the pre-load screen from running but ensures that the bare minimum of errors happen, doesn't happen on live + if(!new_player.title_screen_is_ready) + continue + new_player.client << output(msg_dat, "title_browser:append_terminal_text") new_player.client << output(list2params(list(new_timing, SStitle.average_completion_time)), "title_browser:update_loading_progress") - #endif