From e7ac3c367e6e962a3d1ab1f5a49c1014c4224c45 Mon Sep 17 00:00:00 2001 From: Gaxeer <44334376+Gaxeer@users.noreply.github.com> Date: Fri, 1 Dec 2023 19:17:18 +0200 Subject: [PATCH] fix: hope to fix title screen this time for sure (#801) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Что этот PR делает Картинка в лобби всегда будет присутствовать (но это не точно) ## Почему это хорошо для игры Не надо жать `Fix Lobby Screen` ## Изображения изменений Нет. ## Тестирование Запустил сервер, зашел до инициализации - картинка прогрузилась. Запустил сервер, зашел после инициализации - картинка прогрузилась. ## Changelog :cl: fix: Картинка в лобби подгружается вовремя /:cl: --- modular_ss220/title_screen/_title_screen.dme | 1 - .../code/_title_screen_defines.dm | 1 - modular_ss220/title_screen/code/mob.dm | 24 +++++++++++- modular_ss220/title_screen/code/new_player.dm | 11 ------ .../code/title_screen_controls.dm | 2 +- .../title_screen/code/title_screen_html.dm | 16 -------- .../code/title_screen_subsystem.dm | 37 +++++++----------- .../title_screen/icons/loading_screen.gif | Bin 36602 -> 0 bytes 8 files changed, 38 insertions(+), 54 deletions(-) delete mode 100644 modular_ss220/title_screen/code/title_screen_html.dm delete mode 100644 modular_ss220/title_screen/icons/loading_screen.gif diff --git a/modular_ss220/title_screen/_title_screen.dme b/modular_ss220/title_screen/_title_screen.dme index 3ce7fa5f8752..e7740ff637de 100644 --- a/modular_ss220/title_screen/_title_screen.dme +++ b/modular_ss220/title_screen/_title_screen.dme @@ -6,5 +6,4 @@ #include "code/mob.dm" #include "code/new_player.dm" #include "code/title_screen_controls.dm" -#include "code/title_screen_html.dm" #include "code/title_screen_subsystem.dm" diff --git a/modular_ss220/title_screen/code/_title_screen_defines.dm b/modular_ss220/title_screen/code/_title_screen_defines.dm index aadc5b919a68..02bb9871eb24 100644 --- a/modular_ss220/title_screen/code/_title_screen_defines.dm +++ b/modular_ss220/title_screen/code/_title_screen_defines.dm @@ -1,5 +1,4 @@ #define DEFAULT_TITLE_SCREEN_IMAGE 'modular_ss220/title_screen/icons/default.dmi' -#define DEFAULT_TITLE_LOADING_SCREEN 'modular_ss220/title_screen/icons/loading_screen.gif' #define DEFAULT_TITLE_HTML {" diff --git a/modular_ss220/title_screen/code/mob.dm b/modular_ss220/title_screen/code/mob.dm index 17f02d8b2b9f..316772269203 100644 --- a/modular_ss220/title_screen/code/mob.dm +++ b/modular_ss220/title_screen/code/mob.dm @@ -1,3 +1,5 @@ +#define TITLE_SCREEN_BG_FILE_NAME "bg_file_name" + /** * Shows the titlescreen to a new player. */ @@ -12,13 +14,31 @@ update_title_screen() +/** + * Get the HTML of title screen. + */ +/mob/proc/get_title_html() + var/dat = SStitle.title_html + dat += {""} + + if(SStitle.current_notice) + dat += {" +
+ +
+ "} + + dat += "" + + return dat + /** * Hard updates the title screen HTML, it causes visual glitches if used. */ /mob/proc/update_title_screen() var/dat = get_title_html() - src << browse(SStitle.current_title_screen, "file=loading_screen.gif;display=0") + src << browse(SStitle.current_title_screen, "file=[TITLE_SCREEN_BG_FILE_NAME];display=0") src << browse(dat, "window=title_browser") /datum/asset/simple/lobby @@ -33,3 +53,5 @@ if(client?.mob) winset(client, "title_browser", "is-disabled=true;is-visible=false") winset(client, "status_bar", "is-visible=true") + +#undef TITLE_SCREEN_BG_FILE_NAME diff --git a/modular_ss220/title_screen/code/new_player.dm b/modular_ss220/title_screen/code/new_player.dm index aeff79c5ae94..8dc07b7195a0 100644 --- a/modular_ss220/title_screen/code/new_player.dm +++ b/modular_ss220/title_screen/code/new_player.dm @@ -1,14 +1,3 @@ -GLOBAL_LIST_EMPTY(new_player_list) - -/mob/new_player/Initialize(mapload) - GLOB.new_player_list += src - show_title_screen() - . = ..() - -/mob/new_player/Destroy() - GLOB.new_player_list -= src - . = ..() - /mob/new_player/Login() . = ..() show_title_screen() diff --git a/modular_ss220/title_screen/code/title_screen_controls.dm b/modular_ss220/title_screen/code/title_screen_controls.dm index f2be6e8d47d8..579cba432ff5 100644 --- a/modular_ss220/title_screen/code/title_screen_controls.dm +++ b/modular_ss220/title_screen/code/title_screen_controls.dm @@ -39,7 +39,7 @@ SStitle.set_notice(new_notice) if(!new_notice) return - for(var/mob/new_player/new_player in GLOB.new_player_list) + for(var/mob/new_player/new_player in GLOB.player_list) to_chat(new_player, span_boldannounce("TITLE NOTICE UPDATED: [new_notice]")) SEND_SOUND(new_player, sound('sound/items/bikehorn.ogg')) diff --git a/modular_ss220/title_screen/code/title_screen_html.dm b/modular_ss220/title_screen/code/title_screen_html.dm deleted file mode 100644 index bde98fd53895..000000000000 --- a/modular_ss220/title_screen/code/title_screen_html.dm +++ /dev/null @@ -1,16 +0,0 @@ -// FOR MOR INFO ON HTML CUSTOMISATION, SEE: https://github.com/Skyrat-SS13/Skyrat-tg/pull/4783 - -/mob/proc/get_title_html() - var/dat = SStitle.title_html - dat += {""} - - if(SStitle.current_notice) - dat += {" -
- -
- "} - - dat += "" - - return dat diff --git a/modular_ss220/title_screen/code/title_screen_subsystem.dm b/modular_ss220/title_screen/code/title_screen_subsystem.dm index 54fe207c2e01..f9229a1131e7 100644 --- a/modular_ss220/title_screen/code/title_screen_subsystem.dm +++ b/modular_ss220/title_screen/code/title_screen_subsystem.dm @@ -1,9 +1,6 @@ /datum/controller/subsystem/title flags = SS_NO_FIRE init_order = INIT_ORDER_TITLE - - var/file_path - /// The current title screen being displayed, as a file path text. var/current_title_screen /// The current notice text, or null. @@ -14,35 +11,29 @@ var/title_screens = list() /datum/controller/subsystem/title/Initialize() - var/dat if(!fexists("config/title_html.txt")) - to_chat(world, span_boldwarning("CRITICAL ERROR: Unable to read title_html.txt, reverting to backup title html, please check your server config and ensure this file exists.")) - dat = DEFAULT_TITLE_HTML + error(span_boldwarning("Unable to read title_html.txt, reverting to backup title html, please check your server config and ensure this file exists.")) + title_html = DEFAULT_TITLE_HTML else - dat = file2text("config/title_html.txt") - - title_html = dat + title_html = file2text("config/title_html.txt") - var/list/provisional_title_screens = flist("config/title_screens/images/") var/list/local_title_screens = list() - - for(var/screen in provisional_title_screens) - var/list/formatted_list = splittext(screen, "+") - if((LAZYLEN(formatted_list) == 1 && (formatted_list[1] != "exclude" && formatted_list[1] != "blank.png"))) + for(var/screen in flist("config/title_screens/images/")) + var/list/screen_name_parts = splittext(screen, "+") + if((LAZYLEN(screen_name_parts) == 1 && (screen_name_parts[1] != "exclude" && screen_name_parts[1] != "blank.png"))) + message_admins("Screen: [screen]") local_title_screens += screen - if(length(local_title_screens)) - for(var/i in local_title_screens) - var/file_path = "config/title_screens/images/[i]" - ASSERT(fexists(file_path)) - var/icon/title2use = new(fcopy_rsc(file_path)) - title_screens += title2use + for(var/title_screen in local_title_screens) + var/file_path = "config/title_screens/images/[title_screen]" + ASSERT(fexists(file_path)) + + var/icon/title2use = new(fcopy_rsc(file_path)) + title_screens += title2use change_title_screen() /datum/controller/subsystem/title/Recover() - file_path = SStitle.file_path - current_title_screen = SStitle.current_title_screen current_notice = SStitle.current_notice title_html = SStitle.title_html @@ -52,7 +43,7 @@ * Show the title screen to all new players. */ /datum/controller/subsystem/title/proc/show_title_screen() - for(var/mob/new_player/new_player in GLOB.new_player_list) + for(var/mob/new_player/new_player in GLOB.player_list) INVOKE_ASYNC(new_player, TYPE_PROC_REF(/mob/new_player, show_title_screen)) /** diff --git a/modular_ss220/title_screen/icons/loading_screen.gif b/modular_ss220/title_screen/icons/loading_screen.gif deleted file mode 100644 index c8a2c487037be4304b10a02667424df8d53d70b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36602 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
    n;@quEV#0nZ;#(oA*J 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