Skip to content

Commit

Permalink
Merge branch 'Monkestation:master' into Hardsuit-bugfixes
Browse files Browse the repository at this point in the history
  • Loading branch information
ThePooba authored Jun 18, 2024
2 parents 88adbac + 0d5928c commit 37b5b6b
Show file tree
Hide file tree
Showing 309 changed files with 13,503 additions and 9,455 deletions.
605 changes: 400 additions & 205 deletions _maps/map_files/BoxStation/BoxStation.dmm

Large diffs are not rendered by default.

12,652 changes: 6,384 additions & 6,268 deletions _maps/map_files/Deltastation/DeltaStation2.dmm

Large diffs are not rendered by default.

508 changes: 351 additions & 157 deletions _maps/map_files/IceBoxStation/IceBoxStation.dmm

Large diffs are not rendered by default.

119 changes: 87 additions & 32 deletions _maps/map_files/KiloStation/KiloStation.dmm

Large diffs are not rendered by default.

603 changes: 373 additions & 230 deletions _maps/map_files/MetaStation/MetaStation.dmm

Large diffs are not rendered by default.

3,573 changes: 1,907 additions & 1,666 deletions _maps/map_files/tramstation/tramstation.dmm

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions _maps/shuttles/emergency_luxury.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -318,7 +318,7 @@
/turf/open/floor/holofloor/beach/water,
/area/shuttle/escape/luxury)
"nC" = (
/obj/item/food/grilled_cheese_sandwich{
/obj/item/food/sandwich/cheese/grilled{
pixel_y = 11
},
/obj/structure/table/wood/fancy/black,
Expand Down Expand Up @@ -961,7 +961,7 @@
/turf/open/floor/iron,
/area/shuttle/escape)
"Oe" = (
/obj/item/food/notasandwich{
/obj/item/food/sandwich/notasandwich{
pixel_y = 11
},
/obj/structure/table/wood/fancy/black,
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/DNA.dm
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@
#define ORGAN_SLOT_EXTERNAL_ANIME_CHEST "anime_chest"
#define ORGAN_SLOT_EXTERNAL_ANIME_BOTTOM "anime_bottom"
#define ORGAN_SLOT_EXTERNAL_FLORAN_LEAVES "floran_leaves"
#define ORGAN_SLOT_EXTERNAL_FLUFF "fluff"

/// Xenomorph organ slots
#define ORGAN_SLOT_XENO_ACIDGLAND "acid_gland"
Expand Down
4 changes: 2 additions & 2 deletions code/__DEFINES/bloodsuckers.dm
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
///Uncomment this to enable testing of Bloodsucker features (such as vassalizing people with a mind instead of a client).
//#define BLOODSUCKER_TESTING

/// You have special interactions with Bloodsuckers
#define TRAIT_OCCULTIST "occultist"
/// You have special interactions with bloodsuckers and the occult
#define TRAIT_OCCULTIST "occultists"

/**
* Blood-level defines
Expand Down
2 changes: 2 additions & 0 deletions code/__DEFINES/dcs/signals/signals_reagent.dm
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,5 @@
#define COMSIG_REAGENTS_EXPOSE_TURF "reagents_expose_turf"
///from base of [/datum/component/personal_crafting/proc/del_reqs]: ()
#define COMSIG_REAGENTS_CRAFTING_PING "reagents_crafting_ping"

#define COMSIG_REAGENT_METABOLIZE_REAGENT "reagents_metabolize"
1 change: 1 addition & 0 deletions code/__DEFINES/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@
#define SPECIES_SIMIAN "simian" //Monkestation Addition
#define SPECIES_GOBLIN "goblin" //Monkestation Addition
#define SPECIES_FLORAN "floran" //Monkestation Addition
#define SPECIES_SATYR "satyr" //Monkestation Addition
// Like species IDs, but not specifically attached a species.
#define BODYPART_ID_ALIEN "alien"
#define BODYPART_ID_ROBOTIC "robotic"
Expand Down
5 changes: 5 additions & 0 deletions code/__DEFINES/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -555,6 +555,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai

/// Is the mob standing on an elevated surface? This prevents them from dropping down if not elevated first.
#define TRAIT_ON_ELEVATED_SURFACE "on_elevated_surface"
/// Does the mob ignore elevation? (e.g. xeno larvas & cortical borers on hiding)
#define TRAIT_IGNORE_ELEVATION "ignore_elevation"

// METABOLISMS
// Various jobs on the station have historically had better reactions
Expand Down Expand Up @@ -1301,6 +1303,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai

/// Do IPC's dream of doomsday? The answer is yes
#define TRAIT_ROBOT_CAN_BLEED "robots_can_bleed"

/// tough feets for the satyrs
#define TRAIT_HARD_SOLES "hard_soles" //Taken from Skyrat
//monkestation edit end
/// This atom can have spells cast from it if a mob is within it
/// This means the "caster" of the spell is changed to the mob's loc
Expand Down
2 changes: 1 addition & 1 deletion code/__DEFINES/~monkestation/admin.dm
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
///Sends all admins the chosen sound
#define SEND_ADMINS_NOTFICATION_SOUND(sound) for(var/client/X in GLOB.admins){X << sound;}
#define SEND_ADMINS_NOTFICATION_SOUND(sound_to_play) for(var/client/X in GLOB.admins){X << sound(sound_to_play);}
///Sends a message in adminchat
#define SEND_ADMINCHAT_MESSAGE(message) to_chat(GLOB.admins, type = MESSAGE_TYPE_ADMINCHAT, html = message, confidential = TRUE)
///Sends a message in adminchat with the chosen notfication sound
Expand Down
9 changes: 8 additions & 1 deletion code/__DEFINES/~monkestation/botany.dm
Original file line number Diff line number Diff line change
Expand Up @@ -47,5 +47,12 @@
#define COMSIG_AGE_ADJUSTMENT "age_adjust"
#define COMSIG_AGE_RETURN_AGE "age_return"
#define COMSIG_HAPPINESS_ADJUST "happiness_adjustment"
#define COMSIG_HAPPINESS_RETURN_VALUE "happiness_return"
#define COMSIG_HAPPINESS_CHECK_RANGE "happiness_check_range"
#define COMSIG_HAPPINESS_PASS_HAPPINESS "happiness_pass"

#define COMSIG_MOB_SHEARED "comsig_mob_sheared"


#define TRAIT_TIN_EATER "tin_eater"
#define TRAIT_LIVING_DRUNK "living_drunk"
#define COMSIG_TRY_EAT_TRAIT "try_eat_trait"
41 changes: 41 additions & 0 deletions code/__DEFINES/~monkestation/holomaps.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
// Constants and standard colors for the holomap

/// Icon file to start with when drawing holomaps (to get a 480x480 canvas).
#define HOLOMAP_ICON 'monkestation/code/modules/holomaps/icons/480x480.dmi'
/// Pixel width & height of the holomap icon. Used for auto-centering etc.
#define HOLOMAP_ICON_SIZE 480
#define ui_holomap "CENTER-7,CENTER-7" // Screen location of the holomap "hud"

#define HOLOMAP_EXTRA_STATIONMAP "stationmapformatted"
#define HOLOMAP_EXTRA_STATIONMAPAREAS "stationareas"
#define HOLOMAP_EXTRA_STATIONMAPSMALL "stationmapsmall"

// Holomap colors
#define HOLOMAP_OBSTACLE "#FFFFFFDD" // Color of walls and barriers
#define HOLOMAP_SOFT_OBSTACLE "#ffffff54" // Color of weak, climbable, or see-through barriers that aren't fulltile windows.
#define HOLOMAP_PATH "#66666699" // Color of floors
#define HOLOMAP_ROCK "#66666644" // Color of mineral walls
#define HOLOMAP_HOLOFIER "#0096bb" // Whole map is multiplied by this to give it a green holoish look

#define HOLOMAP_AREACOLOR_COMMAND "#3434d499"
#define HOLOMAP_AREACOLOR_SECURITY "#AE121299"
#define HOLOMAP_AREACOLOR_MEDICAL "#447bc299"
#define HOLOMAP_AREACOLOR_SCIENCE "#A154A699"
#define HOLOMAP_AREACOLOR_ENGINEERING "#F1C23199"
#define HOLOMAP_AREACOLOR_CARGO "#e06f0099"
#define HOLOMAP_AREACOLOR_HALLWAYS "#b9b9b999"
#define HOLOMAP_AREACOLOR_MAINTENANCE "#5e5e5e99"
#define HOLOMAP_AREACOLOR_ARRIVALS "#6464ff99"
#define HOLOMAP_AREACOLOR_ESCAPE "#ff585899"
#define HOLOMAP_AREACOLOR_DORMS "#bfff8399"
#define HOLOMAP_AREACOLOR_SERVICE "#3ab33699"
#define HOLOMAP_AREACOLOR_HANGAR "#2681a599"
//#define HOLOMAP_AREACOLOR_MUNITION "#CC889999"

#define HOLOMAP_LEGEND_X 64
#define HOLOMAP_LEGEND_Y 96

#define HOLOMAP_LEGEND_WIDTH 64

#define HOLOMAP_CENTER_X round((HOLOMAP_ICON_SIZE - world.maxx) / 2)
#define HOLOMAP_CENTER_Y round((HOLOMAP_ICON_SIZE - world.maxy) / 2)
1 change: 1 addition & 0 deletions code/__DEFINES/~monkestation/materials.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#define MATERIAL_STACK (1<<0)

#define MATERIAL_TRACK_NO_STACK_PROCESS (1<<0)
#define MATERIAL_NO_STACK_ADD (1<<1)


#define COMSIG_CLIENT_CLICK_DIRTY "client_dirty_click"
Expand Down
3 changes: 3 additions & 0 deletions code/__DEFINES/~monkestation/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,6 @@
#define SHELLEO_ERRORLEVEL 1
#define SHELLEO_STDOUT 2
#define SHELLEO_STDERR 3

#define OLD_MAN_HENDERSON_DRUNKENNESS 41

7 changes: 7 additions & 0 deletions code/__DEFINES/~monkestation/storytellers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -99,3 +99,10 @@

#define ROUNDSTART_OBJECTIVES_BASE 40
#define ROUNDSTART_OBJECTIVES_GAIN 2

#define SHARED_HIGH_THREAT "high threat event"
#define SHARED_ANOMALIES "anomalous event"
#define SHARED_SCRUBBERS "scrubber-related event"
#define SHARED_METEORS "meteor event"
#define SHARED_BSOD "tech malfunction event"
#define SHARED_CHANGELING "changelings"
5 changes: 5 additions & 0 deletions code/__DEFINES/~monkestation/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@
/// Station trait for when the clown has bridge access *shudders*
#define STATION_TRAIT_CLOWN_BRIDGE "clown_bridge"

// /datum/mind
/// Prevents any sort of antagonist/brainwashing conversion.
#define TRAIT_UNCONVERTABLE "unconvertable"


#define TRAIT_SENSOR_HUD "sensor_hud"
#define TRAIT_SHOVE_RESIST "shove_resist" //Used by implants
#define TRAIT_FAST_CLIMBER "fast_climber" //Used by implants
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/~monkestation/virology.dm
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
#define DISEASE_ROBOT "robot"
#define DISEASE_COLD "cold"
#define DISEASE_HEART "heart"
#define DISEASE_SANDWICH "sandwich"
#define DISEASE_TRAUMA "trauma"
#define DISEASE_DECLONING "decloning"
#define DISEASE_ANXIETY "anxiety"
3 changes: 3 additions & 0 deletions code/__HELPERS/global_lists.dm
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/goblin_ears, GLOB.goblin_ears_list) //Monkestation Addition
init_sprite_accessory_subtypes(/datum/sprite_accessory/floran_leaves, GLOB.floran_leaves_list) //Monkestation Addition
init_sprite_accessory_subtypes(/datum/sprite_accessory/apid_wings, GLOB.apid_wings_list) //Monkestation Addition
init_sprite_accessory_subtypes(/datum/sprite_accessory/satyr_fluff, GLOB.satyr_fluff_list) //Monkestation Addition
init_sprite_accessory_subtypes(/datum/sprite_accessory/satyr_tail, GLOB.satyr_tail_list) //Monkestation Addition
init_sprite_accessory_subtypes(/datum/sprite_accessory/satyr_horns, GLOB.satyr_horns_list) //Monkestation Addition

/// Inits GLOB.species_list. Not using GLOBAL_LIST_INIT b/c it depends on GLOB.string_lists
/proc/init_species_list()
Expand Down
1 change: 0 additions & 1 deletion code/__HELPERS/logging/attack.dm
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@

var/message = "[what_done] [starget][postfix]"
user.log_message(message, LOG_ATTACK, color="red")

if(user != target)
var/reverse_message = "was [what_done] by [ssource][postfix]"
target.log_message(reverse_message, LOG_VICTIM, color="orange", log_globally=FALSE)
Expand Down
9 changes: 9 additions & 0 deletions code/__HELPERS/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,12 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/goblin_ears, GLOB.goblin_ears_list)
if(!length(GLOB.floran_leaves_list))
init_sprite_accessory_subtypes(/datum/sprite_accessory/floran_leaves, GLOB.floran_leaves_list)
if(!GLOB.satyr_fluff_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/satyr_fluff, GLOB.satyr_fluff_list)
if(!GLOB.satyr_tail_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/satyr_tail, GLOB.satyr_tail_list)
if(!GLOB.satyr_horns_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/satyr_horns, GLOB.satyr_horns_list)
//Monkestation Addition End

//For now we will always return none for tail_human and ears. | "For now" he says.
Expand Down Expand Up @@ -158,6 +164,9 @@
"animecolor" = "#[pick("7F","FF")][pick("7F","FF")][pick("7F","FF")]", //Monkestation Addition
"goblin_ears" = pick(GLOB.goblin_ears_list), //Monkestation Addition
"floran_leaves" = pick(GLOB.floran_leaves_list), //Monkestation Addition
"satyr_fluff" = pick(GLOB.satyr_fluff_list), //Monkestation Addition
"satyr_tail" = pick(GLOB.satyr_tail_list), //Monkestation Addition
"satyr_horns" = pick(GLOB.satyr_horns_list), //Monkestation Addition
))

/proc/random_hairstyle(gender)
Expand Down
3 changes: 3 additions & 0 deletions code/_globalvars/lists/flavor_misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,9 @@ GLOBAL_LIST_EMPTY(arachnid_appendages_list) //Monkestation Addition
GLOBAL_LIST_EMPTY(arachnid_chelicerae_list) //Monkestation Addition
GLOBAL_LIST_EMPTY(goblin_ears_list) //Monkestation Addition
GLOBAL_LIST_EMPTY(floran_leaves_list) //Monkestation Addition
GLOBAL_LIST_EMPTY(satyr_fluff_list) //Monkestation Addition
GLOBAL_LIST_EMPTY(satyr_tail_list) //Monkestation Addition
GLOBAL_LIST_EMPTY(satyr_horns_list) //Monkestation Addition

GLOBAL_LIST_INIT(color_list_ethereal, list(
"Blue" = "#3399ff",
Expand Down
1 change: 1 addition & 0 deletions code/_globalvars/lists/maintenance_loot.dm
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,7 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items
/obj/item/stock_parts/cell/high = 1,
/obj/item/storage/box/clown = 1,
/obj/item/weaponcrafting/receiver = 1,
/obj/item/book/granter/crafting_recipe/death_sandwich = 1,
) = 8,

list(//medical and chemicals
Expand Down
11 changes: 11 additions & 0 deletions code/_globalvars/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_ANALGESIA" = TRAIT_ANALGESIA,
"TRAIT_FAST_CLIMBER" = TRAIT_FAST_CLIMBER,
"TRAIT_ON_ELEVATED_SURFACE" = TRAIT_ON_ELEVATED_SURFACE,
"TRAIT_IGNORE_ELEVATION" = TRAIT_IGNORE_ELEVATION,
"TRAIT_NO_BLOODLOSS_DAMAGE" = TRAIT_NO_BLOODLOSS_DAMAGE, // Monkestation Addition
"TRAIT_CANT_SIGN_SPELLS" = TRAIT_CANT_SIGN_SPELLS, // monke edit
),
Expand Down Expand Up @@ -265,7 +266,17 @@ GLOBAL_LIST_INIT(traits_by_type, list(
),
/turf = list(
"TRAIT_ELEVATED_TURF" = TRAIT_ELEVATED_TURF,
),
// monkestation edit: add /datum/mind, because it's not here for some reason
/datum/mind = list(
"TRAIT_CANT_SIGN_SPELLS" = TRAIT_CANT_SIGN_SPELLS,
"TRAIT_CHUNKYFINGERS_IGNORE_BATON" = TRAIT_CHUNKYFINGERS_IGNORE_BATON,
"TRAIT_MAGICALLY_GIFTED" = TRAIT_MAGICALLY_GIFTED,
"TRAIT_NAIVE" = TRAIT_NAIVE,
"TRAIT_REVEAL_FISH" = TRAIT_REVEAL_FISH,
"TRAIT_UNCONVERTABLE" = TRAIT_UNCONVERTABLE,
)
// monkestation end
))

/// value -> trait name, generated on use from trait_by_type global
Expand Down
21 changes: 21 additions & 0 deletions code/_globalvars/~monkestation/lists/holomap.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/// A list of fire alarms on the station, separated by Z. Used cause there are a lot of fire alarms on any given station Z.
GLOBAL_LIST_EMPTY(station_fire_alarms)

GLOBAL_LIST_EMPTY(holomap_default_legend)

/// Used in generating area preview icons.
GLOBAL_LIST_INIT(holomap_color_to_name, list(
HOLOMAP_AREACOLOR_COMMAND = "Command",
HOLOMAP_AREACOLOR_SECURITY = "Security",
HOLOMAP_AREACOLOR_MEDICAL = "Medical",
HOLOMAP_AREACOLOR_SCIENCE = "Science",
HOLOMAP_AREACOLOR_ENGINEERING = "Engineering",
HOLOMAP_AREACOLOR_CARGO = "Cargo",
HOLOMAP_AREACOLOR_HALLWAYS = "Hallways",
HOLOMAP_AREACOLOR_MAINTENANCE = "Maintenance",
HOLOMAP_AREACOLOR_ARRIVALS = "Arrivals",
HOLOMAP_AREACOLOR_ESCAPE = "Departures",
HOLOMAP_AREACOLOR_DORMS = "Recreation",
HOLOMAP_AREACOLOR_SERVICE = "Service",
HOLOMAP_AREACOLOR_HANGAR = "Hangar",
))
22 changes: 9 additions & 13 deletions code/_onclick/hud/generic_dextrous.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,51 +6,47 @@
..()
var/atom/movable/screen/using

using = new /atom/movable/screen/drop()
using = new /atom/movable/screen/drop(null, src)
using.icon = ui_style
using.screen_loc = ui_drone_drop
using.hud = src
static_inventory += using

pull_icon = new /atom/movable/screen/pull()
pull_icon = new /atom/movable/screen/pull(null, src)
pull_icon.icon = ui_style
pull_icon.update_appearance()
pull_icon.screen_loc = ui_drone_pull
pull_icon.hud = src
static_inventory += pull_icon

build_hand_slots()

using = new /atom/movable/screen/swap_hand()
using = new /atom/movable/screen/swap_hand(null, src)
using.icon = ui_style
using.icon_state = "swap_1_m"
using.screen_loc = ui_swaphand_position(owner,1)
using.hud = src
static_inventory += using

using = new /atom/movable/screen/swap_hand()
using = new /atom/movable/screen/swap_hand(null, src)
using.icon = ui_style
using.icon_state = "swap_2"
using.screen_loc = ui_swaphand_position(owner,2)
using.hud = src
static_inventory += using

zone_select = new /atom/movable/screen/zone_sel()
zone_select = new /atom/movable/screen/zone_sel(null, src)
zone_select.icon = ui_style
zone_select.hud = src
zone_select.update_appearance()
static_inventory += zone_select

using = new /atom/movable/screen/area_creator
using = new /atom/movable/screen/area_creator(null, src)
using.icon = ui_style
using.hud = src
static_inventory += using

healthdoll = new /atom/movable/screen/healthdoll/living(null, src)
infodisplay += healthdoll

mymob.canon_client?.clear_screen()

for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory))
if(inv.slot_id)
inv.hud = src
inv_slots[TOBITSHIFT(inv.slot_id) + 1] = inv
inv.update_appearance()

Expand Down
2 changes: 1 addition & 1 deletion code/_onclick/hud/radial.dm
Original file line number Diff line number Diff line change
Expand Up @@ -350,7 +350,7 @@ GLOBAL_LIST_EMPTY(radial_menus)
/datum/radial_menu/Destroy()
Reset()
hide()
QDEL_NULL(custom_check_callback)
custom_check_callback = null
. = ..()

/*
Expand Down
2 changes: 1 addition & 1 deletion code/_onclick/hud/radial_persistent.dm
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
set_choices(newchoices,tooltips, set_page = target_page)

/datum/radial_menu/persistent/Destroy()
QDEL_NULL(select_proc_callback)
select_proc_callback = null
GLOB.radial_menus -= uniqueid
Reset()
hide()
Expand Down
3 changes: 0 additions & 3 deletions code/controllers/subsystem/circuit_component.dm
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@ SUBSYSTEM_DEF(circuit_component)

to_call.user = null
to_call.InvokeAsync()
qdel(to_call)


if(MC_TICK_CHECK)
return
Expand Down Expand Up @@ -76,7 +74,6 @@ SUBSYSTEM_DEF(circuit_component)
instant_run_currentrun.Cut(1,2)
to_call.user = null
to_call.InvokeAsync(received_inputs)
qdel(to_call)

if(length(instant_run_stack))
instant_run_callbacks_to_run = pop(instant_run_stack)
Expand Down
2 changes: 1 addition & 1 deletion code/controllers/subsystem/movement/movement_types.dm
Original file line number Diff line number Diff line change
Expand Up @@ -436,7 +436,7 @@

/datum/move_loop/has_target/jps/Destroy()
avoid = null
on_finish_callbacks = null
on_finish_callbacks.Cut()
return ..()

///Tries to calculate a new path for this moveloop.
Expand Down
Loading

0 comments on commit 37b5b6b

Please sign in to comment.