diff --git a/code/__DEFINES/layers_planes.dm b/code/__DEFINES/layers_planes.dm index fd841ba258..b4c616243f 100644 --- a/code/__DEFINES/layers_planes.dm +++ b/code/__DEFINES/layers_planes.dm @@ -193,3 +193,6 @@ #define SPLASHSCREEN_LAYER 90 #define SPLASHSCREEN_PLANE 90 #define SPLASHSCREEN_RENDER_TARGET "SPLASHSCREEN_PLANE" + +///Layer for screentips +#define SCREENTIP_LAYER 40 diff --git a/code/__DEFINES/screentips.dm b/code/__DEFINES/screentips.dm index 4918db85ce..e9615bb4ee 100644 --- a/code/__DEFINES/screentips.dm +++ b/code/__DEFINES/screentips.dm @@ -31,5 +31,15 @@ /// Screentips are only enabled when they have context #define SCREENTIP_PREFERENCE_CONTEXT_ONLY "Only with tips" +/// Screentips enabled, no context +#define SCREENTIP_PREFERENCE_NO_CONTEXT "Enabled without tips" + /// Regardless of intent #define INTENT_ANY "any" + +GLOBAL_LIST_INIT(screentip_pref_options, list( + SCREENTIP_PREFERENCE_DISABLED, + SCREENTIP_PREFERENCE_ENABLED, + SCREENTIP_PREFERENCE_CONTEXT_ONLY, + SCREENTIP_PREFERENCE_NO_CONTEXT +)) diff --git a/code/__HELPERS/screentips.dm b/code/__HELPERS/screentips.dm index dfd3390ab4..aeceb0d41c 100644 --- a/code/__HELPERS/screentips.dm +++ b/code/__HELPERS/screentips.dm @@ -18,7 +18,7 @@ GLOBAL_LIST_INIT_TYPED(screentip_context_icons, /image, prepare_screentip_contex /proc/build_context(list/context, key, allow_image) var/list/to_add for(var/intent in context[key]) - var/key_help = "[length(key) > 3 ? copytext(key, 1, -3) : ""]" + var/key_help = "[length(key) > 3 ? "[copytext(key, 1, -3)][allow_image ? " " : ""]" : ""]" var/icon = "[copytext(key, -3)]-[intent]" if(allow_image) icon = "\icon[GLOB.screentip_context_icons[icon]]" diff --git a/code/_onclick/hud/screentip.dm b/code/_onclick/hud/screentip.dm index 43b728ade6..5128448561 100644 --- a/code/_onclick/hud/screentip.dm +++ b/code/_onclick/hud/screentip.dm @@ -6,6 +6,7 @@ maptext_height = 480 maptext_width = 480 maptext = "" + layer = SCREENTIP_LAYER /atom/movable/screen/screentip/Initialize(mapload, _hud) . = ..() diff --git a/code/datums/chatmessage.dm b/code/datums/chatmessage.dm index 816c1cbb7e..07c55bd6ef 100644 --- a/code/datums/chatmessage.dm +++ b/code/datums/chatmessage.dm @@ -200,7 +200,6 @@ message.maptext_height = mheight message.maptext_x = (CHAT_MESSAGE_WIDTH - owner.bound_width) * -0.5 message.maptext = MAPTEXT(complete_text) - message.pixel_x = -target.pixel_x //Dogborgs and other wide boys have a pixel offset. This accounts for that // View the message LAZYADDASSOC(owned_by.seen_messages, message_loc, src) diff --git a/code/datums/dna.dm b/code/datums/dna.dm index 0cc033cf2a..a1754ef4d1 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -722,6 +722,7 @@ return //new size detected holder.resize = features["body_size"] / old_size + holder.maptext_height = 32 * features["body_size"] // Adjust runechat height holder.update_transform() if(iscarbon(holder)) var/mob/living/carbon/C = holder diff --git a/code/game/atoms.dm b/code/game/atoms.dm index ad7b29ebab..702097c60f 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -1489,7 +1489,7 @@ var/extra_lines = 0 var/extra_context = "" - if (isliving(user) || isovermind(user) || isaicamera(user)) + if ((isliving(user) || isovermind(user) || isaicamera(user)) && (user.client.prefs.screentip_pref != SCREENTIP_PREFERENCE_NO_CONTEXT)) var/obj/item/held_item = user.get_active_held_item() var/allow_images = user.client.prefs.screentip_allow_images diff --git a/code/game/objects/structures/fluff.dm b/code/game/objects/structures/fluff.dm index 16f72bf1fb..2700109c77 100644 --- a/code/game/objects/structures/fluff.dm +++ b/code/game/objects/structures/fluff.dm @@ -62,6 +62,8 @@ icon = 'icons/effects/64x64.dmi' icon_state = "drake_statue" pixel_x = -16 + maptext_height = 64 + maptext_width = 64 density = TRUE deconstructible = FALSE layer = EDGED_TURF_LAYER diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 31a066830d..a72a083974 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -3124,14 +3124,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(pickedOutlineColor != pickedOutlineColor) outline_color = pickedOutlineColor // nullable if("screentip_pref") - var/choice = tgalert(user, "Choose your screentip preference", "Screentipping?", "Yes", "Context Only", "No") - switch(choice) - if("Yes") - screentip_pref = SCREENTIP_PREFERENCE_ENABLED - if("Context Only") - screentip_pref = SCREENTIP_PREFERENCE_CONTEXT_ONLY - else - screentip_pref = SCREENTIP_PREFERENCE_DISABLED + var/choice = input(user, "Choose your screentip preference", "Screentipping?", screentip_pref) as null|anything in GLOB.screentip_pref_options + if(choice) + screentip_pref = choice if("screentip_color") var/pickedScreentipColor = input(user, "Choose your screentip color.", "General Preference", screentip_color) as color|null if(pickedScreentipColor) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 16725d3516..57cea5e612 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -546,6 +546,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car modless_key_bindings = sanitize_islist(modless_key_bindings, list()) favorite_outfits = SANITIZE_LIST(favorite_outfits) screentip_color = sanitize_hexcolor(screentip_color, 6, 1, initial(screentip_color)) + screentip_pref = sanitize_inlist(screentip_pref, GLOB.screentip_pref_options, SCREENTIP_PREFERENCE_ENABLED) //SKYRAT CHANGES BEGIN see_chat_emotes = sanitize_integer(see_chat_emotes, 0, 1, initial(see_chat_emotes)) diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 7717180e6c..7e1c669e49 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -4,6 +4,8 @@ status_flags = 0 unique_name = 0 pixel_x = -16 + maptext_height = 64 + maptext_width = 64 bubble_icon = "alienroyal" mob_size = MOB_SIZE_LARGE layer = LARGE_MOB_LAYER //above most mobs, but below speechbubbles diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index 5520efb93b..def5dc8c76 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -49,6 +49,8 @@ Difficulty: Hard melee_queue_distance = 20 // as far as possible really, need this because of blood warp ranged = 1 pixel_x = -32 + maptext_height = 96 + maptext_width = 96 gender = MALE del_on_death = 1 crusher_loot = list(/obj/structure/closet/crate/necropolis/bubblegum/crusher) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index eb6c29df5f..9e8497f968 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -44,6 +44,8 @@ Difficulty: Very Hard move_to_delay = 10 ranged = 1 pixel_x = -32 + maptext_height = 96 + maptext_width = 96 del_on_death = TRUE achievement_type = /datum/award/achievement/boss/colossus_kill crusher_achievement_type = /datum/award/achievement/boss/colossus_crusher diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index 926b31b8c3..5bbb39b3e4 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -59,6 +59,8 @@ Difficulty: Medium move_to_delay = 5 ranged = 1 pixel_x = -16 + maptext_height = 64 + maptext_width = 64 crusher_loot = list(/obj/structure/closet/crate/necropolis/dragon/crusher) loot = list(/obj/structure/closet/crate/necropolis/dragon) butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/bone = 30, /obj/item/reagent_containers/food/snacks/meat/slab/dragon = 5) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm index 03a63c5283..c65698b862 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm @@ -48,6 +48,8 @@ SHITCODE AHEAD. BE ADVISED. Also comment extravaganza score_achievement_type = /datum/award/score/legion_score pixel_y = -16 pixel_x = -32 + maptext_height = 96 + maptext_width = 96 loot = list(/obj/item/stack/sheet/bone = 3) vision_range = 10 wander = FALSE diff --git a/code/modules/mob/living/simple_animal/hostile/space_dragon.dm b/code/modules/mob/living/simple_animal/hostile/space_dragon.dm index f8931aa27b..53e4d0d64f 100644 --- a/code/modules/mob/living/simple_animal/hostile/space_dragon.dm +++ b/code/modules/mob/living/simple_animal/hostile/space_dragon.dm @@ -49,6 +49,8 @@ mob_size = MOB_SIZE_LARGE armour_penetration = 30 pixel_x = -16 + maptext_height = 64 + maptext_width = 64 turns_per_move = 5 movement_type = FLYING health_doll_icon = "spacedragon" diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index 67ab3817ae..0f0f853036 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -245,6 +245,7 @@ S = S.split_stack(amount=2) if(S) glass_type = S + S.moveToNullspace() playsound(src.loc, 'sound/machines/click.ogg', 50, TRUE) user.visible_message("[user] places the glass on the solar assembly.", "You place the glass on the solar assembly.") if(tracker) diff --git a/icons/UI_Icons/screentips/cursor_hints.dmi b/icons/UI_Icons/screentips/cursor_hints.dmi index 9533d240a5..f314166d43 100644 Binary files a/icons/UI_Icons/screentips/cursor_hints.dmi and b/icons/UI_Icons/screentips/cursor_hints.dmi differ diff --git a/icons/UI_Icons/screentips/full_mouse.dmi b/icons/UI_Icons/screentips/full_mouse.dmi index 32e0b8f67c..a055b4ae3f 100644 Binary files a/icons/UI_Icons/screentips/full_mouse.dmi and b/icons/UI_Icons/screentips/full_mouse.dmi differ