Ports donor features

This commit is contained in:
Ling
2018-03-17 15:23:03 +01:00
parent 7020f96b33
commit 16807242f4
25 changed files with 359 additions and 3 deletions

View File

@@ -14,6 +14,7 @@
#define SOUND_ANNOUNCEMENTS 2048
#define DISABLE_DEATHRATTLE 4096
#define DISABLE_ARRIVALRATTLE 8192
#define QUIET_ROUND 16384 // yogs - Donor features, quiet round; "why isn't this in ~yogs_defines?" - This has to be a unique power of 2, if /tg/ adds another flag it will have merge conflicts and will be obvious this has to be updated. If I put this in a different file it wouldn't be obvious and silently break stuff.
#define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|MEMBER_PUBLIC|INTENT_STYLE|MIDROUND_ANTAG|SOUND_INSTRUMENTS|SOUND_SHIP_AMBIENCE|SOUND_PRAYERS|SOUND_ANNOUNCEMENTS)

View File

@@ -0,0 +1 @@
#define DONOR_CHARACTER_SLOTS 6

View File

@@ -107,6 +107,11 @@ SUBSYSTEM_DEF(job)
if(player.mind && job.title in player.mind.restricted_roles)
Debug("FOC incompatible with antagonist role, Player: [player]")
continue
// yogs start - Donor features, quiet round
if(((job.title in GLOB.command_positions) || (job.title in GLOB.nonhuman_positions)) && (player.client.prefs.toggles & QUIET_ROUND))
Debug("FOC quiet check failed, Player: [player]")
continue
// yogs end
if(player.client.prefs.GetJobDepartment(job, level) & job.flag)
Debug("FOC pass, Player: [player], Level:[level]")
candidates += player
@@ -415,6 +420,8 @@ SUBSYSTEM_DEF(job)
if(job && H)
job.after_spawn(H, M)
job.give_donor_stuff(H, M) // yogs - Donor Features
return H

View File

@@ -653,6 +653,13 @@
else if (href_list["obj_announce"])
announce_objectives()
// yogs start - Donor features, quiet round
else if (href_list["quiet_override"])
quiet_round = FALSE
message_admins("[key_name_admin(usr)] has disabled [current]'s quiet round mode.")
log_admin("[key_name(usr)] has disabled [current]'s quiet round mode.")
// yogs end
//Something in here might have changed your mob
if(self_antagging && (!usr || !usr.client) && current.client)
@@ -679,10 +686,18 @@
qdel(find_syndicate_uplink())
/datum/mind/proc/make_Traitor()
// yogs start - Donor features, quiet round
if(quiet_round)
return
// yogs end
if(!(has_antag_datum(/datum/antagonist/traitor)))
add_antag_datum(/datum/antagonist/traitor)
/datum/mind/proc/make_Changling()
// yogs start - Donor features, quiet round
if(quiet_round)
return
// yogs end
var/datum/antagonist/changeling/C = has_antag_datum(/datum/antagonist/changeling)
if(!C)
C = add_antag_datum(/datum/antagonist/changeling)
@@ -690,6 +705,10 @@
return C
/datum/mind/proc/make_Wizard()
// yogs start - Donor features, quiet round
if(quiet_round)
return
// yogs end
if(!has_antag_datum(/datum/antagonist/wizard))
special_role = ROLE_WIZARD
assigned_role = ROLE_WIZARD
@@ -697,6 +716,10 @@
/datum/mind/proc/make_Cultist()
// yogs start - Donor features, quiet round
if(quiet_round)
return
// yogs end
if(!has_antag_datum(/datum/antagonist/cult,TRUE))
SSticker.mode.add_cultist(src,FALSE,equip=TRUE)
special_role = ROLE_CULTIST
@@ -704,6 +727,10 @@
to_chat(current, "<font color=\"purple\"><b><i>Assist your new bretheren in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back.</b></i></font>")
/datum/mind/proc/make_Rev()
// yogs start - Donor features, quiet round
if(quiet_round)
return
// yogs end
var/datum/antagonist/rev/head/head = new()
head.give_flash = TRUE
head.give_hud = TRUE

View File

@@ -348,6 +348,10 @@
for(var/mob/dead/new_player/player in GLOB.player_list)
if(player.client && player.ready == PLAYER_READY_TO_PLAY)
players += player
// yogs start - Donor features, quiet round
if(player.client.prefs.toggles & QUIET_ROUND)
player.mind.quiet_round = TRUE
// yogs end
// Shuffling, the players list is now ping-independent!!!
// Goodbye antag dante
@@ -355,7 +359,7 @@
for(var/mob/dead/new_player/player in players)
if(player.client && player.ready == PLAYER_READY_TO_PLAY)
if(role in player.client.prefs.be_special)
if(role in player.client.prefs.be_special && !(player.mind.quiet_round)) // yogs - Donor features, quiet round
if(!jobban_isbanned(player, ROLE_SYNDICATE) && !jobban_isbanned(player, role)) //Nodrak/Carn: Antag Job-bans
if(age_check(player.client)) //Must be older than the minimum age
candidates += player.mind // Get a list of all the people who want to be the antagonist for this round
@@ -372,6 +376,11 @@
if(!(role in player.client.prefs.be_special)) // We don't have enough people who want to be antagonist, make a separate list of people who don't want to be one
if(!jobban_isbanned(player, ROLE_SYNDICATE) && !jobban_isbanned(player, role)) //Nodrak/Carn: Antag Job-bans
drafted += player.mind
// yogs start - Donor features, quiet round
if(player.mind.quiet_round)
to_chat(player, "<span class='userdanger'>There aren't enough antag volunteers, so your quiet round setting will not be considered!</span>")
player.mind.quiet_round = FALSE
// yogs end
if(restricted_jobs)
for(var/datum/mind/player in drafted) // Remove people who can't be an antagonist

View File

@@ -98,6 +98,10 @@ GLOBAL_VAR(antag_prototypes)
return
var/out = "<B>[name]</B>[(current && (current.real_name!=name))?" (as [current.real_name])":""]<br>"
// yogs start - Donor features, quiet round
if(quiet_round)
out += "<font color=red><b>QUIET ROUND ACTIVE</b></font> (<a href='?src=\ref[src];quiet_override=1'>Override</a>)<br>"
// yogs end
out += "Mind currently owned by key: [key] [active?"(synced)":"(not synced)"]<br>"
out += "Assigned role: [assigned_role]. <a href='?src=[REF(src)];role_edit=1'>Edit</a><br>"
out += "Faction and special role: <b><font color='red'>[special_role]</font></b><br>"

View File

@@ -130,9 +130,13 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(istype(C))
if(!IsGuestKey(C.key))
load_path(C.ckey)
unlock_content = C.IsByondMember()
unlock_content |= C.IsByondMember() // yogs - Donor features
if(unlock_content)
max_save_slots = 8
// yogs start - Donor features
else if(is_donator(C))
max_save_slots = DONOR_CHARACTER_SLOTS
// yogs end
var/loaded_preferences_successfully = load_preferences()
if(loaded_preferences_successfully)
if(load_character())
@@ -155,6 +159,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "<a href='?_src_=prefs;preference=tab;tab=0' [current_tab == 0 ? "class='linkOn'" : ""]>Character Settings</a> "
dat += "<a href='?_src_=prefs;preference=tab;tab=1' [current_tab == 1 ? "class='linkOn'" : ""]>Game Preferences</a>"
dat += "<a href='?_src_=prefs;preference=tab;tab=2' [current_tab == 2 ? "class='linkOn'" : ""]>Donator Preferences</a>" // yogs - Donor features
if(!path)
dat += "<div class='notice'>Please create an account to save your preferences</div>"
@@ -496,11 +501,39 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(days_remaining)
dat += "<b>Be [capitalize(i)]:</b> <font color=red> \[IN [days_remaining] DAYS]</font><br>"
// yogs start - Donor features
else if(src.toggles & QUIET_ROUND)
dat += "<b>Be [capitalize(i)]:</b> <font color=blue><b>\[QUIET ROUND\]</b></font><br>"
// yogs end
else
dat += "<b>Be [capitalize(i)]:</b> <a href='?_src_=prefs;preference=be_special;be_special_type=[i]'>[(i in be_special) ? "Yes" : "No"]</a><br>"
// yogs start - Donor features
if(is_donator(user.client))
dat += "<b>Quiet round:</b> <a href='?_src_=prefs;preference=donor;task=quiet_round'>[(src.toggles & QUIET_ROUND) ? "Yes" : "No"]</a><br>"
// yogs end
dat += "</td></tr></table>"
// yogs start - Donor features
if (2) //Donator preferences
dat += "<table><tr><td width='500px' height='300px' valign='top'>"
dat += "<h2>Donator Preferences</h2>"
if(is_donator(user.client))
dat += "<b>Quiet round:</b> <a href='?_src_=prefs;preference=donor;task=quiet_round'>[(src.toggles & QUIET_ROUND) ? "Yes" : "No"]</a><br>"
dat += "<b>Fancy Hat:</b> "
var/type = donor_hat ? donor_start_items[donor_hat] : null
var/temp_hat = donor_hat ? (new type()) : "None selected"
dat += "<a href='?_src_=prefs;preference=donor;task=hat'>Pick</a> [temp_hat]<BR>"
if(donor_hat)
qdel(temp_hat)
dat += "<b>Fancy PDA:</b> "
dat += "<a href='?_src_=prefs;preference=donor;task=pda'>[donor_pdas[donor_pda]]</a><BR>"
dat += "<b>Purrbation (Humans only)</b> "
dat += "<a href='?_src_=prefs;preference=donor;task=purrbation'>[purrbation ? "Yes" : "No"]</a><BR>"
else
dat += "<b><a href='http://www.yogstation.net/index.php?do=donate'>Donate here</b>"
// yogs end
dat += "<hr><center>"
if(!IsGuestKey(user.key))
@@ -572,6 +605,11 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if((job_civilian_low & ASSISTANT) && (rank != "Assistant") && !jobban_isbanned(user, "Assistant"))
HTML += "<font color=orange>[rank]</font></td><td></td></tr>"
continue
// yogs start - Donor features, quiet round
if(((rank in GLOB.command_positions) || (rank in GLOB.nonhuman_positions)) && (src.toggles & QUIET_ROUND))
HTML += "<font color=blue>[rank]</font></td><td><font color=blue><b> \[QUIET\]</b></font></td></tr>"
continue
// yogs end
if((rank in GLOB.command_positions) || (rank == "AI"))//Bold head jobs
HTML += "<b><span class='dark'>[rank]</span></b>"
else
@@ -851,6 +889,25 @@ GLOBAL_LIST_EMPTY(preferences_datums)
text += ".</span>"
to_chat(user, text)
return
// yogs start - Donor features
if(href_list["preference"] == "donor")
if(is_donator(user))
switch(href_list["task"])
if("hat")
var/item = input(usr, "What would you like to start with?","Donator fun","Nothing") as null|anything in donor_start_items
if(item)
donor_hat = donor_start_items.Find(item)
else
donor_hat = 0
if("quiet_round")
toggles ^= QUIET_ROUND
if("pda")
donor_pda = donor_pda % donor_pdas.len + 1
if("purrbation")
purrbation = !purrbation
else
message_admins("EXPLOIT \[donor\]: [user] tried to access donor only functions (as a non-donor). Attempt made on \"[href_list["preference"]]\" -> \"[href_list["task"]]\".")
// yogs end
if(href_list["preference"] == "job")
switch(href_list["task"])

View File

@@ -103,6 +103,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["pda_style"] >> pda_style
S["pda_color"] >> pda_color
// yogs start - Donor features
S["donor_pda"] >> donor_pda
S["donor_hat"] >> donor_hat
S["purrbation"] >> purrbation
// yogs end
//try to fix any outdated data if necessary
if(needs_update >= 0)
update_preferences(needs_update, S) //needs_update = savefile_version if we need an update (positive integer)
@@ -129,6 +135,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
pda_style = sanitize_inlist(MONO, VT, SHARE, ORBITRON)
pda_color = sanitize_hexcolor(pda_color, 6, 1, initial(pda_color))
// yogs start - Donor features
donor_pda = sanitize_integer(donor_pda, 1, donor_pdas.len, 1)
donor_hat = sanitize_integer(donor_hat, 0, donor_start_items.len, 0)
purrbation = sanitize_integer(purrbation, 0, 1, initial(purrbation))
// yogs end
return 1
/datum/preferences/proc/save_preferences()
@@ -170,6 +182,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["tip_delay"], tip_delay)
WRITE_FILE(S["pda_style"], pda_style)
WRITE_FILE(S["pda_color"], pda_color)
// yogs start - Donor features
WRITE_FILE(S["donor_pda"], donor_pda)
WRITE_FILE(S["donor_hat"], donor_hat)
WRITE_FILE(S["purrbation"], purrbation)
// yogs end
return 1

View File

@@ -327,6 +327,7 @@
SSjob.AssignRole(src, rank, 1)
var/mob/living/character = create_character(TRUE) //creates the human and transfers vars and mind
character.mind.quiet_round = character.client.prefs.toggles & QUIET_ROUND // yogs - Donor Features
var/equip = SSjob.EquipRank(character, rank, 1)
if(isliving(equip)) //Borgs get borged in the equip, so we need to make sure we handle the new mob.
character = equip
@@ -364,7 +365,7 @@
GLOB.joined_player_list += character.ckey
if(CONFIG_GET(flag/allow_latejoin_antagonists) && humanc) //Borgs aren't allowed to be antags. Will need to be tweaked if we get true latejoin ais.
if(CONFIG_GET(flag/allow_latejoin_antagonists) && humanc && !character.mind.quiet_round) //Borgs aren't allowed to be antags. Will need to be tweaked if we get true latejoin ais. // yogs - Donor Features
if(SSshuttle.emergency)
switch(SSshuttle.emergency.mode)
if(SHUTTLE_RECALL, SHUTTLE_IDLE)

View File

@@ -90,6 +90,7 @@
#include "code\__DEFINES\vv.dm"
#include "code\__DEFINES\wall_dents.dm"
#include "code\__DEFINES\wires.dm"
#include "code\__DEFINES\~yogs_defines\preferences.dm"
#include "code\__HELPERS\_lists.dm"
#include "code\__HELPERS\_logging.dm"
#include "code\__HELPERS\_string_lists.dm"
@@ -2550,8 +2551,15 @@
#include "interface\menu.dm"
#include "interface\stylesheet.dm"
#include "interface\skin.dmf"
#include "yogstation\code\__HELPERS\mobs.dm"
#include "yogstation\code\datums\mind.dm"
#include "yogstation\code\modules\client\preferences.dm"
#include "yogstation\code\modules\client\verbs\ooc.dm"
#include "yogstation\code\modules\clothing\clothing.dm"
#include "yogstation\code\modules\clothing\donator.dm"
#include "yogstation\code\modules\clothing\shoes\miscellaneous.dm"
#include "yogstation\code\modules\donor\donor_items.dm"
#include "yogstation\code\modules\jobs\job_types\job.dm"
#include "yogstation\code\modules\libvg\utf8.dm"
#include "yogstation\code\modules\spells\spells.dm"
// END_INCLUDE

View File

@@ -0,0 +1,28 @@
/proc/is_admin(var/user)
if(ismob(user))
var/mob/temp = user
if(temp && temp.client && temp.client.holder)
return TRUE
else if(istype(user, /client))
var/client/temp = user
if(temp && temp.holder)
return TRUE
return FALSE
/proc/is_donator(var/user)
if(is_admin(user))
return TRUE
if(ismob(user))
var/mob/temp = user
if(temp && temp.client && temp.client.prefs)
return (temp.client.prefs.unlock_content & 2)
else if(istype(user, /client))
var/client/temp = user
if(temp && temp.prefs)
return (temp.prefs.unlock_content & 2)
return FALSE

View File

@@ -0,0 +1,2 @@
/datum/mind
var/quiet_round = FALSE //Won't be picked as target in most cases

View File

@@ -0,0 +1,5 @@
/datum/preferences
var/donor_hat = 0
var/donor_pda = 1
var/quiet_round = FALSE
var/purrbation = null

View File

@@ -0,0 +1,83 @@
/obj/item/clothing/head/yogs/beanie
name = "beanie"
desc = "A nice comfy beanie hat."
icon_state = "beanie"
item_state = "beanie"
/obj/item/clothing/head/yogs/bike
name = "bike helmet"
desc = "A bike helmet. Although it looks cool, it is made from recycled materials and is extremely flimsy. You can plainly see the face of the wearer through the darkened visor."
icon_state = "bike"
item_state = "bike"
/obj/item/clothing/head/yogs/hardsuit_helm_clown
name = "clown hardsuit helm"
desc = "An incredibly flimsy helm made to look like a hardsuit helm. You can plainly see the face of the wearer through the visor."
icon_state = "hardsuit_helm_clown"
item_state = "hardsuit_helm_clown"
/obj/item/clothing/head/yogs/cowboy
name = "cowboy hat"
desc = "A cowboy hat. YEEEHAWWWWW."
icon_state = "cowboy_hat"
item_state = "cowboy_hat"
/obj/item/clothing/head/yogs/crusader
name = "crusader helmet"
desc = "A thin metal crusader helmet. It looks like it wouldn't take much of a beating."
icon_state = "crusader"
item_state = "crusader"
/obj/item/clothing/head/yogs/cowboy_sheriff
name = "sheriff cowboy hat"
desc = "A sheriffs hat. YEEEHAWWWWW!"
icon_state = "cowboy_sheriff"
item_state = "cowboy_sheriff"
/obj/item/clothing/head/yogs/dallas
name = "dallas hat"
desc = "A patriotic hat."
icon_state = "dallas"
item_state = "dallas"
/obj/item/clothing/head/yogs/drinking_hat
name = "drinking hat"
desc = "A utilitarian drinking hat."
icon_state = "drinking_hat"
item_state = "drinking_hat"
/obj/item/clothing/head/yogs/microwave
name = "microwave hat"
desc = "A microwave hat. Luckily the harmful components were removed. Safety first!"
icon_state = "microwave"
item_state = "microwave"
/obj/item/clothing/head/yogs/sith_hood
name = "sith hood"
desc = "A sith hood."
icon_state = "sith_hood"
item_state = "sith_hood"
/obj/item/clothing/head/yogs/turban
name = "turban"
desc = "A turban."
icon_state = "turban"
item_state = "turban"
/obj/item/clothing/neck/yogs/sith_cloak
name = "sith cloak"
desc = "A sith cloak."
icon_state = "sith_cloak"
item_state = "sith_cloak"
/obj/item/clothing/suit/yogs/armor/sith_suit
name = "sith suit"
desc = "A sith suit."
icon_state = "sith_suit"
item_state = "sith_suit"
/obj/item/clothing/suit/yogs/armor/hardsuit_clown
name = "clown hardsuit"
desc = "A clown hardsuit. The joke being that it is anything but."
icon_state = "hardsuit_clown"
item_state = "hardsuit_clown"

View File

@@ -0,0 +1,5 @@
/obj/item/clothing/shoes/yogs/fuzzy_slippers
name = "fuzzy bunny slippers"
desc = "No animals were harmed in the making of these fuzzy slippers"
icon_state = "fuzzyslippers"
item_state = "fuzzyslippers"

View File

@@ -0,0 +1,64 @@
var/list/donor_start_items = list(\
/obj/item/clothing/head/yogs/beanie, \
/obj/item/clothing/head/yogs/bike, \
/obj/item/clothing/head/yogs/hardsuit_helm_clown, \
/obj/item/clothing/head/yogs/cowboy, \
/obj/item/clothing/head/yogs/crusader, \
/obj/item/clothing/head/yogs/cowboy_sheriff, \
/obj/item/clothing/head/yogs/dallas, \
/obj/item/clothing/head/yogs/drinking_hat, \
/obj/item/clothing/head/yogs/microwave, \
/obj/item/clothing/head/yogs/sith_hood, \
/obj/item/clothing/head/yogs/turban, \
/obj/item/clothing/head/collectable/petehat, \
/obj/item/clothing/head/collectable/slime, \
/obj/item/clothing/head/collectable/xenom, \
/obj/item/clothing/head/collectable/chef, \
/obj/item/clothing/head/collectable/paper, \
/obj/item/clothing/head/collectable/tophat, \
/obj/item/clothing/head/collectable/captain, \
/obj/item/clothing/head/collectable/police, \
/obj/item/clothing/head/collectable/welding, \
/obj/item/clothing/head/collectable/flatcap, \
/obj/item/clothing/head/collectable/pirate, \
/obj/item/clothing/head/collectable/kitty, \
/obj/item/clothing/head/collectable/rabbitears, \
/obj/item/clothing/head/collectable/wizard, \
/obj/item/clothing/head/collectable/hardhat, \
/obj/item/clothing/head/collectable/HoS, \
/obj/item/clothing/head/collectable/thunderdome, \
/obj/item/clothing/head/collectable/swat, \
/obj/item/clothing/head/hardhat/cakehat, \
/obj/item/clothing/head/ushanka, \
/obj/item/clothing/head/hardhat/pumpkinhead, \
/obj/item/clothing/head/kitty, \
/obj/item/clothing/head/hardhat/reindeer, \
/obj/item/clothing/head/powdered_wig, \
/obj/item/clothing/head/that, \
/obj/item/clothing/head/redcoat, \
/obj/item/clothing/head/mailman, \
/obj/item/clothing/head/plaguedoctorhat, \
/obj/item/clothing/head/hasturhood, \
/obj/item/clothing/head/nursehat, \
/obj/item/clothing/head/cardborg, \
/obj/item/clothing/head/justice, \
/obj/item/clothing/head/rabbitears, \
/obj/item/clothing/head/flatcap, \
/obj/item/clothing/head/pirate, \
/obj/item/clothing/head/bowler, \
/obj/item/clothing/head/witchwig, \
/obj/item/clothing/head/chicken, \
/obj/item/clothing/head/fedora, \
/obj/item/clothing/head/sombrero, \
/obj/item/clothing/head/sombrero/green, \
/obj/item/clothing/head/cone, \
/obj/item/clothing/head/collectable/beret, \
/obj/item/clothing/head/crown, \
/obj/item/clothing/head/wizard/marisa/fake, \
/obj/item/clothing/neck/yogs/sith_cloak, \
/obj/item/clothing/suit/yogs/armor/sith_suit, \
/obj/item/clothing/suit/yogs/armor/hardsuit_clown, \
/obj/item/clothing/shoes/yogs/fuzzy_slippers
)
var/list/donor_pdas = list("Normal", "Transparent", "Pip Boy", "Rainbow")

View File

@@ -0,0 +1,36 @@
/datum/job/proc/give_donor_stuff(mob/living/H, mob/M)
var/client/C = M.client
if(!C)
C = H.client
if(!C)
return // nice
if(!is_donator(C))
return
if(C.prefs.purrbation)
purrbation_toggle(H)
if(C.prefs.donor_hat)
var/obj/item/storage/backpack/BP = locate(/obj/item/storage/backpack) in H.GetAllContents()
if(BP)
var/type = donor_start_items[C.prefs.donor_hat]
var/obj/hat = new type()
hat.forceMove(BP)
switch(C.prefs.donor_pda)
if(2)//transparent
var/obj/item/device/pda/PDA = locate(/obj/item/device/pda) in H.GetAllContents()
if(PDA)
PDA.icon = 'yogstation/icons/obj/pda.dmi'
PDA.icon_state = "pda-clear"
if(3)//pip-boy
var/obj/item/device/pda/PDA = locate(/obj/item/device/pda) in H.GetAllContents()
if(PDA)
PDA.icon = 'yogstation/icons/obj/pda.dmi'
PDA.icon_state = "pda-pipboy"
PDA.slot_flags |= SLOT_GLOVES
if(4)//rainbow
var/obj/item/device/pda/PDA = locate(/obj/item/device/pda) in H.GetAllContents()
if(PDA)
PDA.icon_state = "pda-rainbow"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 B

After

Width:  |  Height:  |  Size: 448 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 B

After

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 B

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 B

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 B

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 B

After

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 705 B