Merge branch 'master' of https://github.com/PolarisSS13/Polaris into aro-newpolsync
# Conflicts: # code/game/objects/items/weapons/tanks/tank_types.dm # code/modules/events/canister_leak.dm # code/modules/gamemaster/actions/canister_leak.dm
@@ -158,7 +158,8 @@
|
||||
using.alpha = ui_alpha
|
||||
src.adding += using
|
||||
|
||||
inv_box = new /obj/screen/inventory()
|
||||
inv_box = new /obj/screen/inventory/hand()
|
||||
inv_box.hud = src
|
||||
inv_box.name = "r_hand"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "r_hand_inactive"
|
||||
@@ -173,7 +174,8 @@
|
||||
src.r_hand_hud_object = inv_box
|
||||
src.adding += inv_box
|
||||
|
||||
inv_box = new /obj/screen/inventory()
|
||||
inv_box = new /obj/screen/inventory/hand()
|
||||
inv_box.hud = src
|
||||
inv_box.name = "l_hand"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "l_hand_inactive"
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
layer = 20.0
|
||||
unacidable = 1
|
||||
var/obj/master = null //A reference to the object in the slot. Grabs or items, generally.
|
||||
var/datum/hud/hud = null // A reference to the owner HUD, if any.
|
||||
|
||||
/obj/screen/Destroy()
|
||||
master = null
|
||||
@@ -507,3 +508,20 @@
|
||||
usr.update_inv_l_hand(0)
|
||||
usr.update_inv_r_hand(0)
|
||||
return 1
|
||||
|
||||
// Hand slots are special to handle the handcuffs overlay
|
||||
/obj/screen/inventory/hand
|
||||
var/image/handcuff_overlay
|
||||
|
||||
/obj/screen/inventory/hand/update_icon()
|
||||
..()
|
||||
if(!hud)
|
||||
return
|
||||
if(!handcuff_overlay)
|
||||
var/state = (hud.l_hand_hud_object == src) ? "l_hand_hud_handcuffs" : "r_hand_hud_handcuffs"
|
||||
handcuff_overlay = image("icon"='icons/mob/screen_gen.dmi', "icon_state"=state)
|
||||
overlays.Cut()
|
||||
if(hud.mymob && iscarbon(hud.mymob))
|
||||
var/mob/living/carbon/C = hud.mymob
|
||||
if(C.handcuffed)
|
||||
overlays |= handcuff_overlay
|
||||
|
||||
@@ -101,9 +101,10 @@
|
||||
return
|
||||
|
||||
/obj/item/weapon/tank/vox //Can't be a child of phoron or the gas amount gets screwey.
|
||||
name = "phoron tank" //VOREStation edit
|
||||
desc = "Contains dangerous phoron. Do not inhale. Warning: extremely flammable." //VOREStation Edit
|
||||
icon_state = "oxygen_fr"
|
||||
name = "phoron tank"
|
||||
desc = "Contains dangerous phoron. Do not inhale. Warning: extremely flammable."
|
||||
icon_state = "phoron_vox"
|
||||
item_state = "oxygen_fr"
|
||||
gauge_icon = null
|
||||
flags = CONDUCT
|
||||
distribute_pressure = ONE_ATMOSPHERE*O2STANDARD
|
||||
@@ -112,7 +113,7 @@
|
||||
/obj/item/weapon/tank/vox/New()
|
||||
..()
|
||||
|
||||
air_contents.adjust_gas("phoron", (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)) //VOREStation Edit
|
||||
air_contents.adjust_gas("phoron", (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C))
|
||||
return
|
||||
|
||||
/*
|
||||
|
||||
@@ -126,6 +126,12 @@ var/list/_client_preferences_by_type
|
||||
enabled_description = "Show"
|
||||
disabled_description = "Hide"
|
||||
|
||||
/datum/client_preference/check_mention
|
||||
description ="Emphasize Name Mention"
|
||||
key = "CHAT_MENTION"
|
||||
enabled_description = "Emphasize"
|
||||
disabled_description = "Normal"
|
||||
|
||||
/datum/client_preference/show_progress_bar
|
||||
description ="Progress Bar"
|
||||
key = "SHOW_PROGRESS"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
// List of all non-destroyed canisters on station levels
|
||||
var/list/all_canisters = list()
|
||||
for(var/obj/machinery/portable_atmospherics/canister/C in machines)
|
||||
if(!C.destroyed && (C.z in using_map.station_levels))
|
||||
if(!C.destroyed && (C.z in using_map.station_levels) && C.air_contents.total_moles >= MOLES_CELLSTANDARD)
|
||||
all_canisters += C
|
||||
|
||||
for(var/i in 1 to 10)
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
// List of all non-destroyed canisters on station levels
|
||||
var/list/all_canisters = list()
|
||||
for(var/obj/machinery/portable_atmospherics/canister/C in machines)
|
||||
if(!C.destroyed && (C.z in using_map.station_levels))
|
||||
if(!C.destroyed && (C.z in using_map.station_levels) && C.air_contents.total_moles >= MOLES_CELLSTANDARD)
|
||||
all_canisters += C
|
||||
var/obj/machinery/portable_atmospherics/canister/C = pick(all_canisters)
|
||||
log_debug("canister_leak event: Canister [C] ([C.x],[C.y],[C.z]) destroyed.")
|
||||
|
||||
@@ -23,6 +23,8 @@
|
||||
if (message)
|
||||
log_emote("[name]/[key] : [message]")
|
||||
|
||||
message = say_emphasis(message)
|
||||
|
||||
// Hearing gasp and such every five seconds is not good emotes were not global for a reason.
|
||||
// Maybe some people are okay with that.
|
||||
|
||||
@@ -63,6 +65,8 @@
|
||||
else
|
||||
input = message
|
||||
|
||||
input = say_emphasis(input)
|
||||
|
||||
if(input)
|
||||
log_emote("Ghost/[src.key] : [input]")
|
||||
if(!invisibility) //If the ghost is made visible by admins or cult. And to see if the ghost has toggled its own visibility, as well. -Mech
|
||||
|
||||
@@ -49,6 +49,8 @@
|
||||
if(italics)
|
||||
message = "<i>[message]</i>"
|
||||
|
||||
message = say_emphasis(message)
|
||||
|
||||
var/track = null
|
||||
if(istype(src, /mob/observer/dead))
|
||||
if(italics && is_preference_enabled(/datum/client_preference/ghost_radio))
|
||||
@@ -66,20 +68,73 @@
|
||||
else
|
||||
src << "<span class='name'>[speaker_name]</span>[alt_name] talks but you cannot hear."
|
||||
else
|
||||
var/message_to_send = null
|
||||
if(language)
|
||||
on_hear_say("<span class='game say'><span class='name'>[speaker_name]</span>[alt_name] [track][language.format_message(message, verb)]</span>")
|
||||
message_to_send = "<span class='game say'><span class='name'>[speaker_name]</span>[alt_name] [track][language.format_message(message, verb)]</span>"
|
||||
else
|
||||
on_hear_say("<span class='game say'><span class='name'>[speaker_name]</span>[alt_name] [track][verb], <span class='message'><span class='body'>\"[message]\"</span></span></span>")
|
||||
message_to_send = "<span class='game say'><span class='name'>[speaker_name]</span>[alt_name] [track][verb], <span class='message'><span class='body'>\"[message]\"</span></span></span>"
|
||||
if(check_mentioned(message) && is_preference_enabled(/datum/client_preference/check_mention))
|
||||
message_to_send = "<font size='3'><b>[message_to_send]</b></font>"
|
||||
|
||||
on_hear_say(message_to_send)
|
||||
|
||||
if (speech_sound && (get_dist(speaker, src) <= world.view && src.z == speaker.z))
|
||||
var/turf/source = speaker? get_turf(speaker) : get_turf(src)
|
||||
src.playsound_local(source, speech_sound, sound_vol, 1)
|
||||
|
||||
/mob/proc/on_hear_say(var/message)
|
||||
src << message
|
||||
to_chat(src, message)
|
||||
|
||||
/mob/living/silicon/on_hear_say(var/message)
|
||||
var/time = say_timestamp()
|
||||
src << "[time] [message]"
|
||||
to_chat(src, "[time] [message]")
|
||||
|
||||
// Checks if the mob's own name is included inside message. Handles both first and last names.
|
||||
/mob/proc/check_mentioned(var/message)
|
||||
var/list/valid_names = splittext(real_name, " ") // Should output list("John", "Doe") as an example.
|
||||
valid_names += special_mentions()
|
||||
for(var/name in valid_names)
|
||||
if(findtext(message, name))
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
// Override this if you want something besides the mob's name to count for being mentioned in check_mentioned().
|
||||
/mob/proc/special_mentions()
|
||||
return list()
|
||||
|
||||
/mob/living/silicon/ai/special_mentions()
|
||||
return list("AI") // AI door!
|
||||
|
||||
// Converts specific characters, like *, /, and _ to formatted output.
|
||||
/mob/proc/say_emphasis(var/message)
|
||||
message = encode_html_emphasis(message, "/", "i")
|
||||
message = encode_html_emphasis(message, "*", "b")
|
||||
message = encode_html_emphasis(message, "_", "u")
|
||||
return message
|
||||
|
||||
// Replaces a character inside message with html tags. Note that html var must not include brackets.
|
||||
// Will not create an open html tag if it would not have a closing one.
|
||||
/proc/encode_html_emphasis(var/message, var/char, var/html)
|
||||
var/i = 20 // Infinite loop safety.
|
||||
var/pattern = "(?<!<)\\" + char
|
||||
var/regex/re = regex(pattern,"i") // This matches results which do not have a < next to them, to avoid stripping slashes from closing html tags.
|
||||
var/first = re.Find(message) // Find first occurance.
|
||||
var/second = re.Find(message, first + 1) // Then the second.
|
||||
while(first && second && i)
|
||||
// Calculate how far foward the second char is, as the first replacetext() will displace it.
|
||||
var/length_increase = length("<[html]>") - 1
|
||||
|
||||
// Now replace both.
|
||||
message = replacetext(message, char, "<[html]>", first, first + 1)
|
||||
message = replacetext(message, char, "</[html]>", second + length_increase, second + length_increase + 1)
|
||||
|
||||
// Check again to see if we need to keep going.
|
||||
first = re.Find(message)
|
||||
second = re.Find(message, first + 1)
|
||||
i--
|
||||
if(!i)
|
||||
CRASH("Possible infinite loop occured in encode_html_emphasis().")
|
||||
return message
|
||||
|
||||
/mob/proc/hear_radio(var/message, var/verb="says", var/datum/language/language=null, var/part_a, var/part_b, var/part_c, var/mob/speaker = null, var/hard_to_hear = 0, var/vname ="")
|
||||
|
||||
@@ -182,11 +237,15 @@
|
||||
speaker_name = "[speaker.real_name] ([speaker_name])"
|
||||
track = "[speaker_name] ([ghost_follow_link(speaker, src)])"
|
||||
|
||||
message = say_emphasis(message)
|
||||
|
||||
var/formatted
|
||||
if(language)
|
||||
formatted = "[language.format_message_radio(message, verb)][part_c]"
|
||||
else
|
||||
formatted = "[verb], <span class=\"body\">\"[message]\"</span>[part_c]"
|
||||
|
||||
|
||||
if((sdisabilities & DEAF) || ear_deaf)
|
||||
if(prob(20))
|
||||
src << "<span class='warning'>You feel your headset vibrate but can hear nothing from it!</span>"
|
||||
@@ -197,18 +256,30 @@
|
||||
return "<span class='say_quote'>\[[stationtime2text()]\]</span>"
|
||||
|
||||
/mob/proc/on_hear_radio(part_a, speaker_name, track, part_b, formatted)
|
||||
src << "[part_a][speaker_name][part_b][formatted]"
|
||||
var/final_message = "[part_a][speaker_name][part_b][formatted]"
|
||||
if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention))
|
||||
final_message = "<font size='3'><b>[final_message]</b></font>"
|
||||
to_chat(src, final_message)
|
||||
|
||||
/mob/observer/dead/on_hear_radio(part_a, speaker_name, track, part_b, formatted)
|
||||
src << "[part_a][track][part_b][formatted]"
|
||||
var/final_message = "[part_a][track][part_b][formatted]"
|
||||
if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention))
|
||||
final_message = "<font size='3'><b>[final_message]</b></font>"
|
||||
to_chat(src, final_message)
|
||||
|
||||
/mob/living/silicon/on_hear_radio(part_a, speaker_name, track, part_b, formatted)
|
||||
var/time = say_timestamp()
|
||||
src << "[time][part_a][speaker_name][part_b][formatted]"
|
||||
var/final_message = "[part_a][speaker_name][part_b][formatted]"
|
||||
if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention))
|
||||
final_message = "[time]<font size='3'><b>[final_message]</b></font>"
|
||||
to_chat(src, final_message)
|
||||
|
||||
/mob/living/silicon/ai/on_hear_radio(part_a, speaker_name, track, part_b, formatted)
|
||||
var/time = say_timestamp()
|
||||
src << "[time][part_a][track][part_b][formatted]"
|
||||
var/final_message = "[part_a][track][part_b][formatted]"
|
||||
if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention))
|
||||
final_message = "[time]<font size='3'><b>[final_message]</b></font>"
|
||||
to_chat(src, final_message)
|
||||
|
||||
/mob/proc/hear_signlang(var/message, var/verb = "gestures", var/datum/language/language, var/mob/speaker = null)
|
||||
if(!client)
|
||||
|
||||
@@ -17,15 +17,19 @@
|
||||
if (!message)
|
||||
return
|
||||
|
||||
message = speaker.say_emphasis(message)
|
||||
|
||||
var/message_start = "<i><span class='game say'>[name], <span class='name'>[speaker.name]</span>"
|
||||
var/message_body = "<span class='message'>[speaker.say_quote(message)], \"[message]\"</span></span></i>"
|
||||
|
||||
for (var/mob/M in dead_mob_list)
|
||||
if(!istype(M,/mob/new_player) && !istype(M,/mob/living/carbon/brain)) //No meta-evesdropping
|
||||
M.show_message("[message_start] ([ghost_follow_link(speaker, M)]) [message_body]", 2)
|
||||
var/message_to_send = "[message_start] ([ghost_follow_link(speaker, M)]) [message_body]"
|
||||
if(M.check_mentioned(message) && M.is_preference_enabled(/datum/client_preference/check_mention))
|
||||
message_to_send = "<font size='3'><b>[message_to_send]</b></font>"
|
||||
M.show_message(message_to_send, 2)
|
||||
|
||||
for (var/mob/living/S in living_mob_list)
|
||||
|
||||
if(drone_only && !istype(S,/mob/living/silicon/robot/drone))
|
||||
continue
|
||||
else if(istype(S , /mob/living/silicon/ai))
|
||||
@@ -33,7 +37,10 @@
|
||||
else if (!S.binarycheck())
|
||||
continue
|
||||
|
||||
S.show_message("[message_start] [message_body]", 2)
|
||||
var/message_to_send = "[message_start] [message_body]"
|
||||
if(S.check_mentioned(message) && S.is_preference_enabled(/datum/client_preference/check_mention))
|
||||
message_to_send = "<font size='3'><b>[message_to_send]</b></font>"
|
||||
S.show_message(message_to_send, 2)
|
||||
|
||||
var/list/listening = hearers(1, src)
|
||||
listening -= src
|
||||
|
||||
@@ -910,6 +910,11 @@ var/global/list/damage_icon_parts = list()
|
||||
if(hud_used)
|
||||
hud_used.hidden_inventory_update() //Updates the screenloc of the items on the 'other' inventory bar
|
||||
|
||||
//update whether handcuffs appears on our hud.
|
||||
/mob/living/carbon/proc/update_hud_handcuffed()
|
||||
if(hud_used && hud_used.l_hand_hud_object && hud_used.r_hand_hud_object)
|
||||
hud_used.l_hand_hud_object.update_icon()
|
||||
hud_used.r_hand_hud_object.update_icon()
|
||||
|
||||
/mob/living/carbon/human/update_inv_handcuffed(var/update_icons=1)
|
||||
if(handcuffed)
|
||||
@@ -928,6 +933,8 @@ var/global/list/damage_icon_parts = list()
|
||||
|
||||
else
|
||||
overlays_standing[HANDCUFF_LAYER] = null
|
||||
|
||||
update_hud_handcuffed()
|
||||
if(update_icons) update_icons()
|
||||
|
||||
/mob/living/carbon/human/update_inv_legcuffed(var/update_icons=1)
|
||||
|
||||
@@ -44,6 +44,8 @@
|
||||
usr << "<span class='danger'>You have deadchat muted.</span>"
|
||||
return
|
||||
|
||||
message = say_emphasis(message)
|
||||
|
||||
say_dead_direct("[pick("complains","moans","whines","laments","blubbers")], <span class='message'>\"[message]\"</span>", src)
|
||||
|
||||
/mob/proc/say_understands(var/mob/other,var/datum/language/speaking = null)
|
||||
|
||||
@@ -112,6 +112,13 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
|
||||
unavailable_to_build = 1
|
||||
parts = list(BP_HEAD)
|
||||
|
||||
/datum/robolimb/morpheus_alt2
|
||||
company = "Morpheus - Skeleton Crew"
|
||||
desc = "This limb is simple and functional; it's basically just a case for a brain."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/morpheus/morpheus_alt2.dmi'
|
||||
unavailable_to_build = 1
|
||||
parts = list(BP_HEAD)
|
||||
|
||||
/datum/robolimb/veymed
|
||||
company = "Vey-Med"
|
||||
desc = "This high quality limb is nearly indistinguishable from an organic one."
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/obj/item/organ/internal/cell
|
||||
name = "microbattery"
|
||||
desc = "A small, powerful cell for use in fully prosthetic bodies."
|
||||
icon = 'icons/obj/power.dmi'
|
||||
icon_state = "scell"
|
||||
organ_tag = "cell"
|
||||
parent_organ = BP_TORSO
|
||||
|
||||
@@ -699,6 +699,71 @@
|
||||
cup_name = "cup of iced tea"
|
||||
cup_desc = "No relation to a certain rap artist/ actor."
|
||||
|
||||
/datum/reagent/drink/tea/minttea
|
||||
name = "Mint Tea"
|
||||
id = "minttea"
|
||||
description = "A tasty mixture of mint and tea. It's apparently good for you!"
|
||||
color = "#A8442C"
|
||||
taste_description = "black tea with tones of mint"
|
||||
|
||||
glass_name = "mint tea"
|
||||
glass_desc = "A tasty mixture of mint and tea. It's apparently good for you!"
|
||||
|
||||
cup_name = "cup of mint tea"
|
||||
cup_desc = "A tasty mixture of mint and tea. It's apparently good for you!"
|
||||
|
||||
/datum/reagent/drink/tea/lemontea
|
||||
name = "Lemon Tea"
|
||||
id = "lemontea"
|
||||
description = "A tasty mixture of lemon and tea. It's apparently good for you!"
|
||||
color = "#FC6A00"
|
||||
taste_description = "black tea with tones of lemon"
|
||||
|
||||
glass_name = "lemon tea"
|
||||
glass_desc = "A tasty mixture of lemon and tea. It's apparently good for you!"
|
||||
|
||||
cup_name = "cup of lemon tea"
|
||||
cup_desc = "A tasty mixture of lemon and tea. It's apparently good for you!"
|
||||
|
||||
/datum/reagent/drink/tea/limetea
|
||||
name = "Lime Tea"
|
||||
id = "limetea"
|
||||
description = "A tasty mixture of lime and tea. It's apparently good for you!"
|
||||
color = "#DE4300"
|
||||
taste_description = "black tea with tones of lime"
|
||||
|
||||
glass_name = "lime tea"
|
||||
glass_desc = "A tasty mixture of lime and tea. It's apparently good for you!"
|
||||
|
||||
cup_name = "cup of berry tea"
|
||||
cup_desc = "A tasty mixture of lime and tea. It's apparently good for you!"
|
||||
|
||||
/datum/reagent/drink/tea/orangetea
|
||||
name = "Orange Tea"
|
||||
id = "orangetea"
|
||||
description = "A tasty mixture of orange and tea. It's apparently good for you!"
|
||||
color = "#FB4F06"
|
||||
taste_description = "black tea with tones of orange"
|
||||
|
||||
glass_name = "orange tea"
|
||||
glass_desc = "A tasty mixture of orange and tea. It's apparently good for you!"
|
||||
|
||||
cup_name = "cup of orange tea"
|
||||
cup_desc = "A tasty mixture of orange and tea. It's apparently good for you!"
|
||||
|
||||
/datum/reagent/drink/tea/berrytea
|
||||
name = "Berry Tea"
|
||||
id = "berrytea"
|
||||
description = "A tasty mixture of berries and tea. It's apparently good for you!"
|
||||
color = "#A60735"
|
||||
taste_description = "black tea with tones of berries"
|
||||
|
||||
glass_name = "berry tea"
|
||||
glass_desc = "A tasty mixture of berries and tea. It's apparently good for you!"
|
||||
|
||||
cup_name = "cup of berry tea"
|
||||
cup_desc = "A tasty mixture of berries and tea. It's apparently good for you!"
|
||||
|
||||
/datum/reagent/drink/coffee
|
||||
name = "Coffee"
|
||||
id = "coffee"
|
||||
@@ -2165,3 +2230,4 @@
|
||||
|
||||
glass_name = "special blend whiskey"
|
||||
glass_desc = "Just when you thought regular station whiskey was good... This silky, amber goodness has to come along and ruin everything."
|
||||
|
||||
|
||||
@@ -1782,4 +1782,39 @@
|
||||
id = "arnold_palmer"
|
||||
result = "arnold_palmer"
|
||||
required_reagents = list("icetea" = 1, "lemonade" = 1)
|
||||
result_amount = 2
|
||||
result_amount = 2
|
||||
|
||||
/datum/chemical_reaction/minttea
|
||||
name = "Mint Tea"
|
||||
id = "minttea"
|
||||
result = "minttea"
|
||||
required_reagents = list("tea" = 5, "mint" = 1)
|
||||
result_amount = 6
|
||||
|
||||
/datum/chemical_reaction/lemontea
|
||||
name = "Lemon Tea"
|
||||
id = "lemontea"
|
||||
result = "lemontea"
|
||||
required_reagents = list("tea" = 5, "lemonjuice" = 1)
|
||||
result_amount = 6
|
||||
|
||||
/datum/chemical_reaction/limetea
|
||||
name = "Lime Tea"
|
||||
id = "limetea"
|
||||
result = "limetea"
|
||||
required_reagents = list("tea" = 5, "limejuice" = 1)
|
||||
result_amount = 6
|
||||
|
||||
/datum/chemical_reaction/limetea
|
||||
name = "Orange Tea"
|
||||
id = "orangetea"
|
||||
result = "orangetea"
|
||||
required_reagents = list("tea" = 5, "orangejuice" = 1)
|
||||
result_amount = 6
|
||||
|
||||
/datum/chemical_reaction/berrytea
|
||||
name = "Berry Tea"
|
||||
id = "berrytea"
|
||||
result = "berrytea"
|
||||
required_reagents = list("tea" = 5, "berryjuice" = 1)
|
||||
result_amount = 6
|
||||
@@ -57,5 +57,6 @@
|
||||
|
||||
/obj/machinery/chemical_dispenser/bar_coffee
|
||||
dispense_reagents = list(
|
||||
"coffee", "cafe_latte", "soy_latte", "hot_coco", "milk", "cream", "tea", "ice"
|
||||
"coffee", "cafe_latte", "soy_latte", "hot_coco", "milk", "cream", "tea", "ice",
|
||||
"orangejuice", "lemonjuice", "limejuice", "berryjuice", "mint"
|
||||
)
|
||||
|
After Width: | Height: | Size: 438 B |
|
Before Width: | Height: | Size: 182 B After Width: | Height: | Size: 466 B |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |