diff --git a/code/controllers/subsystems/initialization/atlas.dm b/code/controllers/subsystems/initialization/atlas.dm index 4543b88a83e..9af99a0710e 100644 --- a/code/controllers/subsystems/initialization/atlas.dm +++ b/code/controllers/subsystems/initialization/atlas.dm @@ -19,16 +19,6 @@ SUBSYSTEM_DEF(atlas) var/datum/space_sector/current_sector var/list/possible_sectors = list() - /// A list of icons used for the lobby image - var/list/icon/lobby_icons = list() - - /** - * Delay between lobby transitions, in deciseconds - * - * If set to 0, no transitions will be used - */ - var/lobby_transitions = 0 - //Note that the dirs here are REVERSE because they're used for entry points, so it'd be the dir facing starboard for example. //These are strings because otherwise the list indexes would be out of bounds. Thanks BYOND. var/list/naval_to_dir = list( @@ -224,24 +214,8 @@ SUBSYSTEM_DEF(atlas) setup_spawnpoints() - setup_lobby_icons() - return SS_INIT_SUCCESS -/datum/controller/subsystem/atlas/proc/setup_lobby_icons() - SHOULD_NOT_SLEEP(TRUE) - - var/list/paths = current_sector.lobby_icon_image_paths || current_map.lobby_icon_image_paths - - if(!length(paths)) - stack_trace("No lobby icons found! Setup either the map or the sector ones!") - lobby_icons += icon('icons/misc/titlescreens/runtime/test.png') - return - - var/random_path = pick(paths) - for(var/path in random_path) - lobby_icons += icon(path) - /datum/controller/subsystem/atlas/proc/load_map_directory(directory, overwrite_default_z = FALSE) . = 0 if (!directory) diff --git a/code/modules/background/space_sectors/badlands.dm b/code/modules/background/space_sectors/badlands.dm index 119010c224a..e687b0c8731 100644 --- a/code/modules/background/space_sectors/badlands.dm +++ b/code/modules/background/space_sectors/badlands.dm @@ -102,13 +102,11 @@ starlight_color = "#50b7bb" starlight_power = 2 starlight_range = 4 - lobby_icon_image_paths = list( - list('icons/misc/titlescreens/tajara/taj1.png', 'icons/misc/titlescreens/tajara/taj2.png', 'icons/misc/titlescreens/tajara/taj3.png', 'icons/misc/titlescreens/tajara/taj4.png', 'icons/misc/titlescreens/tajara/Ghostsofwar.png', 'icons/misc/titlescreens/tajara/crack.png', 'icons/misc/titlescreens/tajara/blind_eye.png', 'icons/misc/titlescreens/tajara/RoyalGrenadier.png', 'icons/misc/titlescreens/tajara/For_the_King.png'), - list('icons/misc/titlescreens/synths/baseline.png', 'icons/misc/titlescreens/synths/bishop.png', 'icons/misc/titlescreens/synths/g2.png', 'icons/misc/titlescreens/synths/shell.png', 'icons/misc/titlescreens/synths/zenghu.png', 'icons/misc/titlescreens/synths/hazelchibi.png'), - list('icons/misc/titlescreens/vaurca/cthur.png', 'icons/misc/titlescreens/vaurca/klax.png', 'icons/misc/titlescreens/vaurca/liidra.png', 'icons/misc/titlescreens/vaurca/zora.png'), - list('icons/misc/titlescreens/space/odin.png', 'icons/misc/titlescreens/space/starmap.png', 'icons/misc/titlescreens/space/undocking.png', 'icons/misc/titlescreens/space/voyage.png') - ) + sector_lobby_art = list('icons/misc/titlescreens/lore/cold_dawn.dmi') + sector_lobby_transitions = 0 sector_welcome_message = 'sound/AI/adhomai_welcome.ogg' + sector_hud_menu = 'icons/misc/hudmenu/tajara_hud.dmi' + sector_hud_menu_sound = 'sound/effects/menu_click_heavy.ogg' sector_hud_arrow = "menu_arrow" lore_radio_stations = list( diff --git a/code/modules/background/space_sectors/coalition/coalition.dm b/code/modules/background/space_sectors/coalition/coalition.dm index 89116cf3335..f750c3f355f 100644 --- a/code/modules/background/space_sectors/coalition/coalition.dm +++ b/code/modules/background/space_sectors/coalition/coalition.dm @@ -9,6 +9,7 @@ starlight_power = 2 starlight_range = 4 sector_welcome_message = 'sound/AI/welcome_coalition.ogg' + sector_hud_menu = 'icons/misc/hudmenu/coalition_hud.dmi' sector_hud_arrow = "menu_arrow" /datum/space_sector/weeping_stars @@ -37,6 +38,7 @@ starlight_power = 2 starlight_range = 4 sector_welcome_message = 'sound/AI/welcome_weeping.ogg' + sector_hud_menu = 'icons/misc/hudmenu/coalition_hud.dmi' sector_hud_arrow = "menu_arrow" /datum/space_sector/arusha @@ -121,6 +123,7 @@ starlight_power = 2 starlight_range = 4 sector_welcome_message = 'sound/AI/welcome_weeping.ogg' + sector_hud_menu = 'icons/misc/hudmenu/coalition_hud.dmi' sector_hud_arrow = "menu_arrow" /datum/space_sector/haneunim @@ -148,13 +151,10 @@ starlight_color = "#e2719b" starlight_power = 2//placeholder starlight_range = 4//placeholder - lobby_icon_image_paths = list( - list('icons/misc/titlescreens/tajara/taj1.png', 'icons/misc/titlescreens/tajara/taj2.png', 'icons/misc/titlescreens/tajara/taj3.png', 'icons/misc/titlescreens/tajara/taj4.png', 'icons/misc/titlescreens/tajara/Ghostsofwar.png', 'icons/misc/titlescreens/tajara/crack.png', 'icons/misc/titlescreens/tajara/blind_eye.png', 'icons/misc/titlescreens/tajara/RoyalGrenadier.png', 'icons/misc/titlescreens/tajara/For_the_King.png'), - list('icons/misc/titlescreens/synths/baseline.png', 'icons/misc/titlescreens/synths/bishop.png', 'icons/misc/titlescreens/synths/g2.png', 'icons/misc/titlescreens/synths/shell.png', 'icons/misc/titlescreens/synths/zenghu.png', 'icons/misc/titlescreens/synths/hazelchibi.png'), - list('icons/misc/titlescreens/vaurca/cthur.png', 'icons/misc/titlescreens/vaurca/klax.png', 'icons/misc/titlescreens/vaurca/liidra.png', 'icons/misc/titlescreens/vaurca/zora.png'), - list('icons/misc/titlescreens/space/odin.png', 'icons/misc/titlescreens/space/starmap.png', 'icons/misc/titlescreens/space/undocking.png', 'icons/misc/titlescreens/space/voyage.png') - ) + sector_lobby_art = list('icons/misc/titlescreens/lore/silicon_nightmares.dmi') + sector_lobby_transitions = 0 sector_welcome_message = 'sound/AI/welcome_konyang.ogg' + sector_hud_menu = 'icons/misc/hudmenu/konyang_hud.dmi' sector_hud_arrow = "menu_arrow" lobby_tracks = list( diff --git a/code/modules/background/space_sectors/space_sector.dm b/code/modules/background/space_sectors/space_sector.dm index 3c204ea889d..8b5a2e669c3 100644 --- a/code/modules/background/space_sectors/space_sector.dm +++ b/code/modules/background/space_sectors/space_sector.dm @@ -35,19 +35,12 @@ /// This gets converted into a formatted list after initialization like so: list(RADIO_BROADCASTS = list("stuff"), RADIO_NEXT_BROADCAST = world.time, RADIO_BROADCAST_INDEX = the entry in the list that will be broadcasted) var/list/lore_radio_stations = null //what radio stations can be heard by the lore radio item here - /// A list of paths to rotate for the lobby image, png/bmp/jpg/gif only - /// if this is set, it will override the map ones - var/list/lobby_icon_image_paths = null + var/list/sector_lobby_art = null //if this is set, it will override the map lobby icons + var/sector_lobby_transitions = null //if this is set, it will override the map lobby transition + var/sector_hud_menu = null //if this is set, it will override the hud menu icons var/sector_welcome_message = null ///if this is set, it will override welcome audio message - /** - * The hud menu icons folder path, it **must** end with a slash - * - * The folder **must** contain all the PNGs/JPGs/GIFs for the menu - */ - var/sector_hud_menu = "icons/misc/hudmenu/default/" - var/sector_hud_menu_sound = null //if this is set, it will override the hud menu click sound var/sector_hud_arrow = null //if this is set, it will use an overlay instead of the animation that makes the button bigger diff --git a/code/modules/mob/abstract/new_player/menu.dm b/code/modules/mob/abstract/new_player/menu.dm index 9014b5d3390..db76ca2cbae 100644 --- a/code/modules/mob/abstract/new_player/menu.dm +++ b/code/modules/mob/abstract/new_player/menu.dm @@ -48,19 +48,25 @@ using.name = "Current Lore Summary" adding += using - using = new /atom/movable/screen/new_player/selection/server_logo(src) - using.name = "Aurora" - adding += using + // using = new /atom/movable/screen/new_player/selection/server_logo(src) + // using.name = "Aurora" + // adding += using mymob.client.screen = list() mymob.client.screen += adding src.adding += using ABSTRACT_TYPE(/atom/movable/screen/new_player) - icon = null - icon_state = null + icon = 'icons/misc/hudmenu/hudmenu.dmi' layer = HUD_BASE_LAYER +/atom/movable/screen/new_player/Initialize(mapload, ...) + set_sector_things() + . = ..() + +/atom/movable/screen/new_player/proc/set_sector_things() + if(SSatlas.current_sector.sector_hud_menu) + icon = SSatlas.current_sector.sector_hud_menu /** * # Title screen @@ -72,26 +78,51 @@ ABSTRACT_TYPE(/atom/movable/screen/new_player) name = "Title" screen_loc = "WEST,SOUTH" layer = UNDER_HUD_LAYER + icon = 'icons/misc/titlescreens/title.dmi' + icon_state = "loading" ///An index used to rotate along the lobby icons - var/lobby_icons_index = 1 - + var/lobby_screen_index = 1 /atom/movable/screen/new_player/title/Initialize() . = ..() setup_icon() //THIS CAN SLEEP AND MUST NOT BE WAITED FOR +/atom/movable/screen/new_player/title/set_sector_things() + return + /** * Sets up the icon for the title screen, wait until SSAtlas made them for us then setup the update cycle after picking one */ /atom/movable/screen/new_player/title/proc/setup_icon() set waitfor = FALSE - UNTIL((SSatlas.lobby_icons)) + UNTIL((SSatlas.current_map)) - icon = pick(SSatlas.lobby_icons) + if(SSatlas.current_sector.sector_lobby_art) + SSatlas.current_map.lobby_icon = pick(SSatlas.current_sector.sector_lobby_art) + else if(!SSatlas.current_map.lobby_icon) + SSatlas.current_map.lobby_icon = pick(SSatlas.current_map.lobby_icons) - addtimer(CALLBACK(src, PROC_REF(update_icon)), SSatlas.current_map.lobby_transitions, TIMER_UNIQUE | TIMER_OVERRIDE) + if(!LAZYLEN(SSatlas.current_map.lobby_screens)) + var/list/known_icon_states = icon_states(SSatlas.current_map.lobby_icon) + for(var/screen in known_icon_states) + if(!LAZYISIN(SSatlas.current_map.lobby_screens, screen)) + LAZYADD(SSatlas.current_map.lobby_screens, screen) + icon = SSatlas.current_map.lobby_icon + + if(!LAZYLEN(SSatlas.current_map.lobby_screens)) + CRASH("No lobby screens found!") + + if(SSatlas.current_map.lobby_transitions && isnum(SSatlas.current_map.lobby_transitions)) + icon_state = SSatlas.current_map.lobby_screens[lobby_screen_index] + if(!MC_RUNNING()) + spawn(SSatlas.current_map.lobby_transitions) + update_icon() + else + addtimer(CALLBACK(src, PROC_REF(update_icon)), SSatlas.current_map.lobby_transitions, TIMER_UNIQUE | TIMER_OVERRIDE) + else + icon_state = pick(SSatlas.current_map.lobby_screens) /atom/movable/screen/new_player/title/update_icon() ..() @@ -102,16 +133,24 @@ ABSTRACT_TYPE(/atom/movable/screen/new_player) if(!istype(hud) || !isnewplayer(hud.mymob)) return - //No point fading if there's only one icon, but we keep the update running in case admins want to add icons on the fly - if(length(SSatlas.lobby_icons) >= 2) + if(!SSatlas.current_map.lobby_transitions) + if(!icon_state) + icon_state = pick(SSatlas.current_map.lobby_screens) + return + + if(length(SSatlas.current_map.lobby_screens) >= 2) //Advance to the next icon - lobby_icons_index = max(++lobby_icons_index % length(SSatlas.lobby_icons), 1) + lobby_screen_index = max(++lobby_screen_index % length(SSatlas.current_map.lobby_screens), 1) animate(src, alpha = 0, time = 1 SECOND) - animate(alpha = 255, icon = SSatlas.lobby_icons[lobby_icons_index], time = 1 SECOND) + animate(alpha = 255, icon_state = SSatlas.current_map.lobby_screens[lobby_screen_index], time = 1 SECOND) - addtimer(CALLBACK(src, PROC_REF(update_icon)), SSatlas.current_map.lobby_transitions, TIMER_UNIQUE | TIMER_OVERRIDE) + if(!MC_RUNNING()) + spawn(SSatlas.current_map.lobby_transitions) + update_icon() + else + addtimer(CALLBACK(src, PROC_REF(update_icon)), SSatlas.current_map.lobby_transitions, TIMER_UNIQUE | TIMER_OVERRIDE) /** @@ -123,8 +162,7 @@ ABSTRACT_TYPE(/atom/movable/screen/new_player/selection) icon_state = null mouse_opacity = MOUSE_OPACITY_OPAQUE var/click_sound = 'sound/effects/menu_click.ogg' - var/does_matrix_scale = TRUE - var/uses_hud_arrow = TRUE + var/hud_arrow /atom/movable/screen/new_player/selection/New(datum/hud/H) color = null @@ -135,55 +173,41 @@ ABSTRACT_TYPE(/atom/movable/screen/new_player/selection) hud = null . = ..() -/atom/movable/screen/new_player/selection/update_icon() +/atom/movable/screen/new_player/selection/set_sector_things() . = ..() - var/icon_path = "[SSatlas.current_sector.sector_hud_menu][get_button_icon_filename()].png" - icon = icon(icon_path) - -/** - * Returns the filename of the icon to use for the button, at every refresh - */ -/atom/movable/screen/new_player/selection/proc/get_button_icon_filename() - SHOULD_NOT_SLEEP(TRUE) - - var/regex/regex_screen_name = new(@'.*\/(.*)$') - if(!regex_screen_name.Find("[type]")) - CRASH("Something went terribly wrong with extracting the button icon filename with the regex!") - - return regex_screen_name.group[1] + if(SSatlas.current_sector.sector_hud_menu_sound) + click_sound = SSatlas.current_sector.sector_hud_menu_sound + if(SSatlas.current_sector.sector_hud_arrow) + hud_arrow = SSatlas.current_sector.sector_hud_arrow + animate(src, color = null, transform = null, time = 3, easing = CUBIC_EASING) /atom/movable/screen/new_player/selection/Initialize() . = ..() - update_icon() - if(SSatlas.current_sector) - if(SSatlas.current_sector.sector_hud_menu_sound) - click_sound = SSatlas.current_sector.sector_hud_menu_sound - if(SSatlas.current_sector.sector_hud_arrow) - // We'll reset the animation just so it doesn't get stuck - animate(src, color = null, transform = null, time = 3, easing = CUBIC_EASING) - - animate(src, alpha = 255, time = 3, easing = CUBIC_EASING, loop = 3) - animate(alpha = 60, time = 3, easing = CUBIC_EASING, loop = 3, flags = ANIMATION_CONTINUE) + set_sector_things() /atom/movable/screen/new_player/selection/MouseEntered(location, control, params) - if(SSatlas.current_sector?.sector_hud_arrow && uses_hud_arrow) - AddOverlays(SSatlas.current_sector.sector_hud_arrow) - var/matrix/M = matrix() - if(does_matrix_scale) + if(hud_arrow) + AddOverlays(hud_arrow) + UpdateOverlays() // force this so it appears before MC is done + else + var/matrix/M = matrix() M.Scale(1.1, 1) - M.Translate(40, 0) - animate(src, color = null, transform = M, time = 3, easing = CUBIC_EASING) - animate(src, alpha = 255, time = 3, easing = CUBIC_EASING) + animate(src, color = color_rotation(30), transform = M, time = 3, easing = CUBIC_EASING) return ..() /atom/movable/screen/new_player/selection/MouseExited(location, control, params) - if(SSatlas.current_sector?.sector_hud_arrow && uses_hud_arrow) - ClearOverlays() - animate(src, color = null, transform = null, time = 3, easing = CUBIC_EASING) - animate(src, alpha = 60, time = 3, easing = CUBIC_EASING) + if(hud_arrow) + CutOverlays(hud_arrow) + UpdateOverlays() + else + animate(src, color = null, transform = null, time = 3, easing = CUBIC_EASING) return ..() +/atom/movable/screen/new_player/selection/Click() + var/mob/abstract/new_player/player = hud.mymob + if(player && click_sound) + sound_to(player, click_sound) /** * # Join Game @@ -192,7 +216,12 @@ ABSTRACT_TYPE(/atom/movable/screen/new_player/selection) */ /atom/movable/screen/new_player/selection/join_game name = "Join Game" - screen_loc = "LEFT+0.5,CENTER+17" + icon_state = "unready" + screen_loc = "LEFT+0.1,CENTER-1" + +/atom/movable/screen/new_player/selection/join_game/Initialize() + . = ..() + update_icon() /atom/movable/screen/new_player/selection/join_game/Click(location, control, params) var/mob/abstract/new_player/player = hud.mymob @@ -200,28 +229,24 @@ ABSTRACT_TYPE(/atom/movable/screen/new_player/selection) tgui_alert(player, "You may not unready during Odyssey setup!", "Odyssey") return + ..() if(SSticker.current_state <= GAME_STATE_SETTING_UP) - if(player.ready) - sound_to(player, 'sound/weapons/laser_safetyoff.ogg') - player.ready(FALSE) - else - sound_to(player, 'sound/weapons/laser_safetyon.ogg') - player.ready(TRUE) + player.ready(!player.ready) else - sound_to(player, click_sound) player.join_game() + update_icon() -/atom/movable/screen/new_player/selection/join_game/get_button_icon_filename() +/atom/movable/screen/new_player/selection/join_game/update_icon() . = ..() var/mob/abstract/new_player/player = hud.mymob if(SSticker.current_state <= GAME_STATE_SETTING_UP) - if(player.ready) - . += "_ready" - else - . += "_unready" + icon_state = player.ready ? "ready" : "unready" + else + icon_state = "joingame" +// Why on earth is this in MENU.DM ??? /mob/abstract/new_player/proc/ready(readying = TRUE) if(SSticker.current_state <= GAME_STATE_PREGAME) // Make sure we don't ready up after the round has started // Cannot join without a saved character, if we're on SQL saves. @@ -257,11 +282,12 @@ ABSTRACT_TYPE(/atom/movable/screen/new_player/selection) */ /atom/movable/screen/new_player/selection/manifest name = "Crew Manifest" - screen_loc = "LEFT+0.5,CENTER+13" + screen_loc = "LEFT+0.1,CENTER-3" + icon_state = "manifest" /atom/movable/screen/new_player/selection/manifest/Click() - var/mob/abstract/new_player/player = usr - sound_to(player, click_sound) + . = ..() + var/mob/abstract/new_player/player = hud.mymob if(SSticker.current_state < GAME_STATE_PLAYING) to_chat(player, SPAN_WARNING("The game hasn't started yet!")) return @@ -275,7 +301,8 @@ ABSTRACT_TYPE(/atom/movable/screen/new_player/selection) */ /atom/movable/screen/new_player/selection/observe name = "Observe" - screen_loc = "LEFT+0.5,CENTER+9" + screen_loc = "LEFT+0.1,CENTER-4" + icon_state = "observe" /atom/movable/screen/new_player/selection/observe/Click() var/mob/abstract/new_player/player = usr @@ -338,22 +365,16 @@ ABSTRACT_TYPE(/atom/movable/screen/new_player/selection) */ /atom/movable/screen/new_player/selection/settings name = "Setup" - screen_loc = "LEFT+0.5,CENTER+5" + icon_state = "setup" + screen_loc = "LEFT+0.1,CENTER-2" /atom/movable/screen/new_player/selection/settings/Click() - var/mob/abstract/new_player/player = usr - sound_to(player, click_sound) + . = ..() + var/mob/abstract/new_player/player = hud.mymob player.setupcharacter() -/atom/movable/screen/new_player/selection/changelog/Click() - var/mob/abstract/new_player/player = usr - sound_to(player, click_sound) - player.client.changes() - /mob/abstract/new_player/proc/setupcharacter() client.prefs.ShowChoices(src) - return TRUE - /** * # Changelog @@ -362,7 +383,13 @@ ABSTRACT_TYPE(/atom/movable/screen/new_player/selection) */ /atom/movable/screen/new_player/selection/changelog name = "Changelog" - screen_loc = "LEFT+0.5,CENTER+1" + icon_state = "changelog" + screen_loc = "LEFT+0.1,CENTER-5" + +/atom/movable/screen/new_player/selection/changelog/Click() + . = ..() + var/mob/abstract/new_player/player = hud.mymob + player.client.changes() /** @@ -372,7 +399,8 @@ ABSTRACT_TYPE(/atom/movable/screen/new_player/selection) */ /atom/movable/screen/new_player/selection/polls name = "Polls" - screen_loc = "LEFT+0.5,CENTER-3" + icon_state = "polls" + screen_loc = "LEFT+0.1,CENTER-6" var/new_polls = FALSE /atom/movable/screen/new_player/selection/polls/Initialize() @@ -387,11 +415,6 @@ ABSTRACT_TYPE(/atom/movable/screen/new_player/selection) if(newpoll) new_polls = TRUE -/atom/movable/screen/new_player/selection/polls/get_button_icon_filename() - . = ..() - if(new_polls) - . += "_new" - /atom/movable/screen/new_player/selection/polls/Click() var/mob/abstract/new_player/player = usr sound_to(player, click_sound) @@ -405,7 +428,8 @@ ABSTRACT_TYPE(/atom/movable/screen/new_player/selection) */ /atom/movable/screen/new_player/selection/lore_summary name = "Current Lore Summary" - screen_loc = "LEFT+0.5,CENTER-7" + icon_state = "lore_summary" + screen_loc = "LEFT+0.1,CENTER-7" /atom/movable/screen/new_player/selection/lore_summary/Click() var/mob/abstract/new_player/player = usr @@ -426,8 +450,7 @@ ABSTRACT_TYPE(/atom/movable/screen/new_player/selection) /atom/movable/screen/new_player/selection/server_logo name = "Aurora" screen_loc = "LEFT+0.5,CENTER+42" - uses_hud_arrow = FALSE - does_matrix_scale = FALSE + hud_arrow = null /atom/movable/screen/new_player/selection/server_logo/Click() var/mob/abstract/new_player/player = usr @@ -439,3 +462,6 @@ ABSTRACT_TYPE(/atom/movable/screen/new_player/selection) else to_chat(player, SPAN_WARNING("The Aurora website URL is not set in the server configuration.")) return + +/atom/movable/screen/new_player/selection/server_logo/set_sector_things() + return diff --git a/html/changelogs/johnwildkins-lobby.yml b/html/changelogs/johnwildkins-lobby.yml new file mode 100644 index 00000000000..7f38ca2685e --- /dev/null +++ b/html/changelogs/johnwildkins-lobby.yml @@ -0,0 +1,13 @@ +# Your name. +author: JohnWildkins + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - rscdel: "Reverts to 2024-style lobby screens due to performance concerns." diff --git a/icons/misc/hudmenu/coalition_hud.dmi b/icons/misc/hudmenu/coalition_hud.dmi new file mode 100644 index 00000000000..21c3f73f51b Binary files /dev/null and b/icons/misc/hudmenu/coalition_hud.dmi differ diff --git a/icons/misc/hudmenu/hudmenu.dmi b/icons/misc/hudmenu/hudmenu.dmi new file mode 100644 index 00000000000..2cd821a8743 Binary files /dev/null and b/icons/misc/hudmenu/hudmenu.dmi differ diff --git a/icons/misc/hudmenu/konyang_hud.dmi b/icons/misc/hudmenu/konyang_hud.dmi new file mode 100644 index 00000000000..16969740052 Binary files /dev/null and b/icons/misc/hudmenu/konyang_hud.dmi differ diff --git a/icons/misc/hudmenu/tajara_hud.dmi b/icons/misc/hudmenu/tajara_hud.dmi new file mode 100644 index 00000000000..dccf59a5d76 Binary files /dev/null and b/icons/misc/hudmenu/tajara_hud.dmi differ diff --git a/icons/misc/titlescreens/aurora/humans.dmi b/icons/misc/titlescreens/aurora/humans.dmi new file mode 100644 index 00000000000..1e1b5f29e51 Binary files /dev/null and b/icons/misc/titlescreens/aurora/humans.dmi differ diff --git a/icons/misc/titlescreens/aurora/king_of_the_world.dmi b/icons/misc/titlescreens/aurora/king_of_the_world.dmi new file mode 100644 index 00000000000..5fb3b919f4c Binary files /dev/null and b/icons/misc/titlescreens/aurora/king_of_the_world.dmi differ diff --git a/icons/misc/titlescreens/aurora/nss_aurora.dmi b/icons/misc/titlescreens/aurora/nss_aurora.dmi new file mode 100644 index 00000000000..ce317736a2a Binary files /dev/null and b/icons/misc/titlescreens/aurora/nss_aurora.dmi differ diff --git a/icons/misc/titlescreens/aurora/synthetics.dmi b/icons/misc/titlescreens/aurora/synthetics.dmi new file mode 100644 index 00000000000..d43f14775da Binary files /dev/null and b/icons/misc/titlescreens/aurora/synthetics.dmi differ diff --git a/icons/misc/titlescreens/aurora/tajara.dmi b/icons/misc/titlescreens/aurora/tajara.dmi new file mode 100644 index 00000000000..3bb766a2cdc Binary files /dev/null and b/icons/misc/titlescreens/aurora/tajara.dmi differ diff --git a/icons/misc/titlescreens/aurora/vaurca.dmi b/icons/misc/titlescreens/aurora/vaurca.dmi new file mode 100644 index 00000000000..e4e9d7dcae3 Binary files /dev/null and b/icons/misc/titlescreens/aurora/vaurca.dmi differ diff --git a/icons/misc/titlescreens/fullscreen.dmi b/icons/misc/titlescreens/fullscreen.dmi new file mode 100644 index 00000000000..1370c379275 Binary files /dev/null and b/icons/misc/titlescreens/fullscreen.dmi differ diff --git a/icons/misc/titlescreens/idris_cruise/idris_cruise.dmi b/icons/misc/titlescreens/idris_cruise/idris_cruise.dmi new file mode 100644 index 00000000000..391c660bd1b Binary files /dev/null and b/icons/misc/titlescreens/idris_cruise/idris_cruise.dmi differ diff --git a/icons/misc/titlescreens/lore/cold_dawn.dmi b/icons/misc/titlescreens/lore/cold_dawn.dmi new file mode 100644 index 00000000000..7d23f087479 Binary files /dev/null and b/icons/misc/titlescreens/lore/cold_dawn.dmi differ diff --git a/icons/misc/titlescreens/lore/silicon_nightmares.dmi b/icons/misc/titlescreens/lore/silicon_nightmares.dmi new file mode 100644 index 00000000000..ce068e5ccc5 Binary files /dev/null and b/icons/misc/titlescreens/lore/silicon_nightmares.dmi differ diff --git a/icons/misc/titlescreens/mendell/mendell_city.dmi b/icons/misc/titlescreens/mendell/mendell_city.dmi new file mode 100644 index 00000000000..cb121080fd9 Binary files /dev/null and b/icons/misc/titlescreens/mendell/mendell_city.dmi differ diff --git a/icons/misc/titlescreens/overlay_template.dmi b/icons/misc/titlescreens/overlay_template.dmi new file mode 100644 index 00000000000..bc6e54212ab Binary files /dev/null and b/icons/misc/titlescreens/overlay_template.dmi differ diff --git a/icons/misc/titlescreens/runtime/away.dmi b/icons/misc/titlescreens/runtime/away.dmi new file mode 100644 index 00000000000..b7377b13255 Binary files /dev/null and b/icons/misc/titlescreens/runtime/away.dmi differ diff --git a/icons/misc/titlescreens/runtime/developers.dmi b/icons/misc/titlescreens/runtime/developers.dmi new file mode 100644 index 00000000000..96532525c39 Binary files /dev/null and b/icons/misc/titlescreens/runtime/developers.dmi differ diff --git a/icons/misc/titlescreens/sccv_horizon/sccv_horizon.dmi b/icons/misc/titlescreens/sccv_horizon/sccv_horizon.dmi new file mode 100644 index 00000000000..fc196dcac78 Binary files /dev/null and b/icons/misc/titlescreens/sccv_horizon/sccv_horizon.dmi differ diff --git a/icons/misc/titlescreens/title.dmi b/icons/misc/titlescreens/title.dmi new file mode 100644 index 00000000000..236929ffdfc Binary files /dev/null and b/icons/misc/titlescreens/title.dmi differ diff --git a/maps/_common/mapsystem/map.dm b/maps/_common/mapsystem/map.dm index a4c60370e3c..2c39df19ebc 100644 --- a/maps/_common/mapsystem/map.dm +++ b/maps/_common/mapsystem/map.dm @@ -86,8 +86,9 @@ var/allowed_spawns = list("Arrivals Shuttle","Gateway", "Cryogenic Storage", "Cyborg Storage") var/default_spawn = "Arrivals Shuttle" - /// A list of paths to rotate for the lobby image, png/bmp/jpg/gif only - var/list/lobby_icon_image_paths = list() + var/list/lobby_icons = list() // The icons which contains the lobby images. A dmi is picked at random. + var/lobby_icon // This is what the game uses to store the chosen dmi. + var/list/lobby_screens = list() // The list of lobby screen to pick() from. Leave this unset to fill from the lobby icon DMI. var/lobby_transitions = FALSE // If a number, transition between the lobby screens with this delay instead of picking just one. diff --git a/maps/away_sites_testing/away_sites_testing.dm b/maps/away_sites_testing/away_sites_testing.dm index 529072f77fe..90529d88eb9 100644 --- a/maps/away_sites_testing/away_sites_testing.dm +++ b/maps/away_sites_testing/away_sites_testing.dm @@ -11,8 +11,8 @@ contact_levels = list(1) player_levels = list(1) accessible_z_levels = list(1) - lobby_icon_image_paths = list(list('icons/misc/titlescreens/runtime/test.png')) - lobby_transitions = 10 SECONDS + lobby_icons = list('icons/misc/titlescreens/runtime/away.dmi') + lobby_transitions = FALSE allowed_spawns = list() use_overmap = TRUE diff --git a/maps/event/code/event.dm b/maps/event/code/event.dm index 4369638beea..b6d5ea82267 100644 --- a/maps/event/code/event.dm +++ b/maps/event/code/event.dm @@ -6,12 +6,7 @@ force_spawnpoint = TRUE - lobby_icon_image_paths = list( - list('icons/misc/titlescreens/tajara/taj1.png', 'icons/misc/titlescreens/tajara/taj2.png', 'icons/misc/titlescreens/tajara/taj3.png', 'icons/misc/titlescreens/tajara/taj4.png', 'icons/misc/titlescreens/tajara/Ghostsofwar.png', 'icons/misc/titlescreens/tajara/crack.png', 'icons/misc/titlescreens/tajara/blind_eye.png', 'icons/misc/titlescreens/tajara/RoyalGrenadier.png', 'icons/misc/titlescreens/tajara/For_the_King.png'), - list('icons/misc/titlescreens/synths/baseline.png', 'icons/misc/titlescreens/synths/bishop.png', 'icons/misc/titlescreens/synths/g2.png', 'icons/misc/titlescreens/synths/shell.png', 'icons/misc/titlescreens/synths/zenghu.png', 'icons/misc/titlescreens/synths/hazelchibi.png'), - list('icons/misc/titlescreens/vaurca/cthur.png', 'icons/misc/titlescreens/vaurca/klax.png', 'icons/misc/titlescreens/vaurca/liidra.png', 'icons/misc/titlescreens/vaurca/zora.png'), - list('icons/misc/titlescreens/space/odin.png', 'icons/misc/titlescreens/space/starmap.png', 'icons/misc/titlescreens/space/undocking.png', 'icons/misc/titlescreens/space/voyage.png') - ) + lobby_icons = list('icons/misc/titlescreens/aurora/nss_aurora.dmi', 'icons/misc/titlescreens/aurora/synthetics.dmi', 'icons/misc/titlescreens/aurora/tajara.dmi') lobby_transitions = 10 SECONDS diff --git a/maps/event/generic_dock/code/generic_dock.dm b/maps/event/generic_dock/code/generic_dock.dm index 55d918b2c23..7b93eb92acc 100644 --- a/maps/event/generic_dock/code/generic_dock.dm +++ b/maps/event/generic_dock/code/generic_dock.dm @@ -2,12 +2,7 @@ name = "GenericDock" full_name = "Generic Dock" path = "event/generic_dock" - lobby_icon_image_paths = list( - list('icons/misc/titlescreens/tajara/taj1.png', 'icons/misc/titlescreens/tajara/taj2.png', 'icons/misc/titlescreens/tajara/taj3.png', 'icons/misc/titlescreens/tajara/taj4.png', 'icons/misc/titlescreens/tajara/Ghostsofwar.png', 'icons/misc/titlescreens/tajara/crack.png', 'icons/misc/titlescreens/tajara/blind_eye.png', 'icons/misc/titlescreens/tajara/RoyalGrenadier.png', 'icons/misc/titlescreens/tajara/For_the_King.png'), - list('icons/misc/titlescreens/synths/baseline.png', 'icons/misc/titlescreens/synths/bishop.png', 'icons/misc/titlescreens/synths/g2.png', 'icons/misc/titlescreens/synths/shell.png', 'icons/misc/titlescreens/synths/zenghu.png', 'icons/misc/titlescreens/synths/hazelchibi.png'), - list('icons/misc/titlescreens/vaurca/cthur.png', 'icons/misc/titlescreens/vaurca/klax.png', 'icons/misc/titlescreens/vaurca/liidra.png', 'icons/misc/titlescreens/vaurca/zora.png'), - list('icons/misc/titlescreens/space/odin.png', 'icons/misc/titlescreens/space/starmap.png', 'icons/misc/titlescreens/space/undocking.png', 'icons/misc/titlescreens/space/voyage.png') - ) + lobby_icons = list('icons/misc/titlescreens/aurora/nss_aurora.dmi', 'icons/misc/titlescreens/aurora/synthetics.dmi', 'icons/misc/titlescreens/aurora/tajara.dmi') lobby_transitions = 10 SECONDS diff --git a/maps/event/halloween/halloween.dm b/maps/event/halloween/halloween.dm index 3e8f2cf0adc..387348dac81 100644 --- a/maps/event/halloween/halloween.dm +++ b/maps/event/halloween/halloween.dm @@ -2,12 +2,8 @@ name = "Skyscraper" full_name = "Xanu Skyscraper Rooftops" path = "event/halloween" - lobby_icon_image_paths = list( - list('icons/misc/titlescreens/tajara/taj1.png', 'icons/misc/titlescreens/tajara/taj2.png', 'icons/misc/titlescreens/tajara/taj3.png', 'icons/misc/titlescreens/tajara/taj4.png', 'icons/misc/titlescreens/tajara/Ghostsofwar.png', 'icons/misc/titlescreens/tajara/crack.png', 'icons/misc/titlescreens/tajara/blind_eye.png', 'icons/misc/titlescreens/tajara/RoyalGrenadier.png', 'icons/misc/titlescreens/tajara/For_the_King.png'), - list('icons/misc/titlescreens/synths/baseline.png', 'icons/misc/titlescreens/synths/bishop.png', 'icons/misc/titlescreens/synths/g2.png', 'icons/misc/titlescreens/synths/shell.png', 'icons/misc/titlescreens/synths/zenghu.png', 'icons/misc/titlescreens/synths/hazelchibi.png'), - list('icons/misc/titlescreens/vaurca/cthur.png', 'icons/misc/titlescreens/vaurca/klax.png', 'icons/misc/titlescreens/vaurca/liidra.png', 'icons/misc/titlescreens/vaurca/zora.png'), - list('icons/misc/titlescreens/space/odin.png', 'icons/misc/titlescreens/space/starmap.png', 'icons/misc/titlescreens/space/undocking.png', 'icons/misc/titlescreens/space/voyage.png') - ) + lobby_icons = list('icons/misc/titlescreens/sccv_horizon/sccv_horizon.dmi') + lobby_transitions = FALSE allowed_jobs = list(/datum/job/visitor) force_spawnpoint = TRUE diff --git a/maps/event/idris_cruise/code/idris_cruise.dm b/maps/event/idris_cruise/code/idris_cruise.dm index 9930821323c..55ff44b9268 100644 --- a/maps/event/idris_cruise/code/idris_cruise.dm +++ b/maps/event/idris_cruise/code/idris_cruise.dm @@ -2,12 +2,8 @@ name = "Stargazer" full_name = "Idris Stargazer Cruise Vessel" path = "event/idris_cruise" - lobby_icon_image_paths = list( - list('icons/misc/titlescreens/tajara/taj1.png', 'icons/misc/titlescreens/tajara/taj2.png', 'icons/misc/titlescreens/tajara/taj3.png', 'icons/misc/titlescreens/tajara/taj4.png', 'icons/misc/titlescreens/tajara/Ghostsofwar.png', 'icons/misc/titlescreens/tajara/crack.png', 'icons/misc/titlescreens/tajara/blind_eye.png', 'icons/misc/titlescreens/tajara/RoyalGrenadier.png', 'icons/misc/titlescreens/tajara/For_the_King.png'), - list('icons/misc/titlescreens/synths/baseline.png', 'icons/misc/titlescreens/synths/bishop.png', 'icons/misc/titlescreens/synths/g2.png', 'icons/misc/titlescreens/synths/shell.png', 'icons/misc/titlescreens/synths/zenghu.png', 'icons/misc/titlescreens/synths/hazelchibi.png'), - list('icons/misc/titlescreens/vaurca/cthur.png', 'icons/misc/titlescreens/vaurca/klax.png', 'icons/misc/titlescreens/vaurca/liidra.png', 'icons/misc/titlescreens/vaurca/zora.png'), - list('icons/misc/titlescreens/space/odin.png', 'icons/misc/titlescreens/space/starmap.png', 'icons/misc/titlescreens/space/undocking.png', 'icons/misc/titlescreens/space/voyage.png') - ) + lobby_icons = list('icons/misc/titlescreens/idris_cruise/idris_cruise.dmi') + lobby_transitions = FALSE allowed_jobs = list(/datum/job/visitor, /datum/job/passenger) admin_levels = list() diff --git a/maps/event/rooftop/code/rooftop.dm b/maps/event/rooftop/code/rooftop.dm index 79c47ad2c59..9aef4f55add 100644 --- a/maps/event/rooftop/code/rooftop.dm +++ b/maps/event/rooftop/code/rooftop.dm @@ -2,12 +2,8 @@ name = "Rooftop" full_name = "Mendell City Rooftop" path = "event/rooftop" - lobby_icon_image_paths = list( - list('icons/misc/titlescreens/tajara/taj1.png', 'icons/misc/titlescreens/tajara/taj2.png', 'icons/misc/titlescreens/tajara/taj3.png', 'icons/misc/titlescreens/tajara/taj4.png', 'icons/misc/titlescreens/tajara/Ghostsofwar.png', 'icons/misc/titlescreens/tajara/crack.png', 'icons/misc/titlescreens/tajara/blind_eye.png', 'icons/misc/titlescreens/tajara/RoyalGrenadier.png', 'icons/misc/titlescreens/tajara/For_the_King.png'), - list('icons/misc/titlescreens/synths/baseline.png', 'icons/misc/titlescreens/synths/bishop.png', 'icons/misc/titlescreens/synths/g2.png', 'icons/misc/titlescreens/synths/shell.png', 'icons/misc/titlescreens/synths/zenghu.png', 'icons/misc/titlescreens/synths/hazelchibi.png'), - list('icons/misc/titlescreens/vaurca/cthur.png', 'icons/misc/titlescreens/vaurca/klax.png', 'icons/misc/titlescreens/vaurca/liidra.png', 'icons/misc/titlescreens/vaurca/zora.png'), - list('icons/misc/titlescreens/space/odin.png', 'icons/misc/titlescreens/space/starmap.png', 'icons/misc/titlescreens/space/undocking.png', 'icons/misc/titlescreens/space/voyage.png') - ) + lobby_icons = list('icons/misc/titlescreens/mendell/mendell_city.dmi') + lobby_transitions = FALSE allowed_jobs = list(/datum/job/visitor) admin_levels = list() diff --git a/maps/exoplanet_testing/exoplanet_testing.dm b/maps/exoplanet_testing/exoplanet_testing.dm index db7e81a734a..69954ecbfd8 100644 --- a/maps/exoplanet_testing/exoplanet_testing.dm +++ b/maps/exoplanet_testing/exoplanet_testing.dm @@ -13,8 +13,8 @@ contact_levels = list(1) player_levels = list(1) accessible_z_levels = list(1) - lobby_icon_image_paths = list('icons/misc/titlescreens/runtime/test.png') - lobby_transitions = 10 SECONDS + lobby_icons = list('icons/misc/titlescreens/runtime/away.dmi') + lobby_transitions = FALSE allowed_spawns = list() use_overmap = TRUE diff --git a/maps/runtime/code/runtime.dm b/maps/runtime/code/runtime.dm index d0d423a71c1..9bab817ccb5 100644 --- a/maps/runtime/code/runtime.dm +++ b/maps/runtime/code/runtime.dm @@ -12,8 +12,8 @@ force_spawnpoint = TRUE - lobby_icon_image_paths = list(list('icons/misc/titlescreens/runtime/test.png')) - lobby_transitions = 10 SECONDS + lobby_icons = list('icons/misc/titlescreens/runtime/developers.dmi', 'icons/misc/titlescreens/runtime/away.dmi') + lobby_transitions = FALSE admin_levels = list(9) contact_levels = list(1, 2) diff --git a/maps/sccv_horizon/code/sccv_horizon.dm b/maps/sccv_horizon/code/sccv_horizon.dm index 7f26e5cf3a3..abdd36e2164 100644 --- a/maps/sccv_horizon/code/sccv_horizon.dm +++ b/maps/sccv_horizon/code/sccv_horizon.dm @@ -14,12 +14,7 @@ ZTRAITS_CENTCOM ) - lobby_icon_image_paths = list( - list('icons/misc/titlescreens/tajara/taj1.png', 'icons/misc/titlescreens/tajara/taj2.png', 'icons/misc/titlescreens/tajara/taj3.png', 'icons/misc/titlescreens/tajara/taj4.png', 'icons/misc/titlescreens/tajara/Ghostsofwar.png', 'icons/misc/titlescreens/tajara/crack.png', 'icons/misc/titlescreens/tajara/blind_eye.png', 'icons/misc/titlescreens/tajara/RoyalGrenadier.png', 'icons/misc/titlescreens/tajara/For_the_King.png'), - list('icons/misc/titlescreens/synths/baseline.png', 'icons/misc/titlescreens/synths/bishop.png', 'icons/misc/titlescreens/synths/g2.png', 'icons/misc/titlescreens/synths/shell.png', 'icons/misc/titlescreens/synths/zenghu.png', 'icons/misc/titlescreens/synths/hazelchibi.png'), - list('icons/misc/titlescreens/vaurca/cthur.png', 'icons/misc/titlescreens/vaurca/klax.png', 'icons/misc/titlescreens/vaurca/liidra.png', 'icons/misc/titlescreens/vaurca/zora.png'), - list('icons/misc/titlescreens/space/odin.png', 'icons/misc/titlescreens/space/starmap.png', 'icons/misc/titlescreens/space/undocking.png', 'icons/misc/titlescreens/space/voyage.png') - ) + lobby_icons = list('icons/misc/titlescreens/sccv_horizon/sccv_horizon.dmi', 'icons/misc/titlescreens/aurora/synthetics.dmi', 'icons/misc/titlescreens/aurora/tajara.dmi', 'icons/misc/titlescreens/aurora/vaurca.dmi') lobby_transitions = 10 SECONDS