Skip to content

Commit

Permalink
SFX defines (#794)
Browse files Browse the repository at this point in the history
* sound sfx

* get_sfx

* upd
  • Loading branch information
definitelynotspaghetti authored Dec 10, 2024
1 parent d5ea033 commit e872488
Show file tree
Hide file tree
Showing 111 changed files with 613 additions and 490 deletions.
106 changes: 106 additions & 0 deletions code/__DEFINES/sound.dm
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,109 @@
#define SOUND_ENVIRONMENT_DRUGGED 23
#define SOUND_ENVIRONMENT_DIZZY 24
#define SOUND_ENVIRONMENT_PSYCHOTIC 25

/// List of all of our sound keys.
#define SFX_SHATTER "shatter"
#define SFX_EXPLOSION_LARGE "explosion_large"
#define SFX_EXPLOSION_MICRO "explosion_micro"
#define SFX_EXPLOSION_SMALL "explosion_small"
#define SFX_EXPLOSION_MED "explosion_med"
#define SFX_EXPLOSION_SMALL_DISTANT "explosion_small_distant"
#define SFX_EXPLOSION_LARGE_DISTANT "explosion_large_distant"
#define SFX_EXPLOSION_CREAK "explosion_creak"
#define SFX_SPARKS "sparks"
#define SFX_RUSTLE "rustle"
#define SFX_PUNCH "punch"
#define SFX_BONE_BREAK "bone_break"
#define SFX_SNAP "snap"
#define SFX_CLOWNSTEP "clownstep"
#define SFX_SWING_HIT "swing_hit"
#define SFX_PAGE_TURN "pageturn"
#define SFX_GASBREATH "gasbreath"
#define SFX_TERMINAL_TYPE "terminal_type"
#define SFX_VENDING "vending"
#define SFX_INCENDIARY_EXPLOSION "incendiary_explosion"
#define SFX_MOLOTOV "molotov"
#define SFX_FLASHBANG "flashbang"
#define SFX_BALLISTIC_HIT "ballistic_hit"
#define SFX_BALLISTIC_HITMARKER "ballistic hitmarker"
#define SFX_BALLISTIC_ARMOR "ballistic_armor"
#define SFX_BALLISTIC_MISS "ballistic_miss"
#define SFX_BALLISTIC_BOUNCE "ballistic_bounce"
#define SFX_ROCKET_BOUNCE "rocket_bounce"
#define SFX_ENERGY_HIT "energy_hit"
#define SFX_ALLOY_HIT "alloy_hit"
#define SFX_ALLOY_ARMOR "alloy_armor"
#define SFX_ALLOY_BOUNCE "alloy_bounce"
#define SFX_GUN_SILENCED "gun_silenced"
#define SFX_GUN_SMARTGUN "gun_smartgun"
#define SFX_GUN_FLAMETHROWER "gun_flamethrower"
#define SFX_GUN_AR12 "gun_ar12"
#define SFX_GUN_FB12 "gun_fb12"
#define SFX_SHOTGUN_SOM "shotgun_som"
#define SFX_GUN_PULSE "gun_pulse"
#define SFX_RPG_FIRE "rpg_fire"
#define SFX_AC_FIRE "ac_fire"
#define SFX_SVD_FIRE "svd_fire"
#define SFX_FAL_FIRE "fal_fire"
#define SFX_MP38_FIRE "mp38_fire"
#define SFX_ACID_HIT "acid_hit"
#define SFX_ACID_BOUNCE "acid_bounce"
#define SFX_ALIEN_CLAW_FLESH "alien_claw_flesh"
#define SFX_ALIEN_CLAW_METAL "alien_claw_metal"
#define SFX_ALIEN_BITE "alien_bite"
#define SFX_ALIEN_TAIL_ATTACK "alien_tail_attack"
#define SFX_ALIEN_FOOTSTEP_LARGE "alien_footstep_large"
#define SFX_ALIEN_CHARGE "alien_charge"
#define SFX_ALIEN_RESIN_BUILD "alien_resin_build"
#define SFX_ALIEN_RESIN_BREAK "alien_resin_break"
#define SFX_ALIEN_RESIN_MOVE "alien_resin_move"
#define SFX_ALIEN_TALK "alien_talk"
#define SFX_LARVA_TALK "larva_talk"
#define SFX_PREDALIEN_TALK "predalien_talk"
#define SFX_ALIEN_GROWL "alien_growl"
#define SFX_ALIEN_HISS "alien_hiss"
#define SFX_ALIEN_TAIL_SWIPE "alien_tail_swipe"
#define SFX_ALIEN_HELP "alien_help"
#define SFX_ALIEN_DROOL "alien_drool"
#define SFX_ALIEN_ROAR "alien_roar"
#define SFX_ALIEN_ROAR_LARVA "alien_roar_larva"
#define SFX_QUEEN "queen"
#define SFX_ALIEN_VENTPASS "alien_ventpass"
#define SFX_BEHEMOTH_STEP_SOUNDS "behemoth_step_sounds"
#define SFX_BEHEMOTH_ROLLING "behemoth_rolling"
#define SFX_BEHEMOTH_EARTH_PILLAR_HIT "behemoth_earth_pillar_hit"
#define SFX_MALE_SCREAM "male_scream"
#define SFX_MALE_PAIN "male_pain"
#define SFX_MALE_GORED "male_gored"
#define SFX_MALE_FRAGOUT "male_fragout"
#define SFX_MALE_WARCRY "male_warcry"
#define SFX_MALE_LAUGH "male_laugh"
#define SFX_FEMALE_SCREAM "female_scream"
#define SFX_FEMALE_PAIN "female_pain"
#define SFX_FEMALE_GORED "female_gored"
#define SFX_FEMALE_FRAGOUT "female_fragout"
#define SFX_FEMALE_WARCRY "female_warcry"
#define SFX_FEMALE_LAUGH "female_laugh"
#define SFX_MALE_HUGGED "male_hugged"
#define SFX_FEMALE_HUGGED "female_hugged"
#define SFX_MALE_GASP "male_gasp"
#define SFX_FEMALE_GASP "female_gasp"
#define SFX_MALE_COUGH "male_cough"
#define SFX_FEMALE_COUGH "female_cough"
#define SFX_MALE_PREBURST "male_preburst"
#define SFX_FEMALE_PREBURST "female_preburst"
#define SFX_JUMP "jump"
#define SFX_ROBOT_SCREAM "robot_scream"
#define SFX_ROBOT_PAIN "robot_pain"
#define SFX_ROBOT_WARCRY "robot_warcry"
#define SFX_ROBOT_MALE_LAUGH "robot_male_laugh"
#define SFX_ROBOT_FEMALE_LAUGH "robot_female_laugh"
#define SFX_PRED_HUGGED "pred_hugged"
#define SFX_PRED_SCREAM "pred_scream"
#define SFX_PRED_PAIN "pred_pain"
#define SFX_PRED_PREBURST "pred_preburst"
#define SFX_PRED_WARCRY "pred_warcry"
#define SFX_PRED_LAUGH "pred_laugh"
#define SFX_CLAN_SWORD_HIT "clan_sword_hit"
#define SFX_CHAIN_SWING "chain_swing"
2 changes: 1 addition & 1 deletion code/_onclick/ventcrawl.dm
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, typecacheof(list(
visible_message(span_notice("[stealthy ? "[src] scrambles into the ventilation ducts!" : ""]"),span_notice("You climb into the ventilation ducts."))

if(!stealthy) //Xenos with stealth vent crawling can silently enter/exit vents.
playsound(src, get_sfx("alien_ventpass"), 35, TRUE)
playsound(src, SFX_ALIEN_VENTPASS, 35, TRUE)

forceMove(vent_found)
update_pipe_vision()
Expand Down
22 changes: 11 additions & 11 deletions code/datums/autocells/explosion.dm
Original file line number Diff line number Diff line change
Expand Up @@ -263,19 +263,19 @@ as having entered the turf.
var/far_dist = power * 0.1
if(!silent)
var/frequency = GET_RAND_FREQUENCY
var/sound/explosion_sound = sound(get_sfx("explosion_large"))
var/sound/far_explosion_sound = sound(get_sfx("explosion_large_distant"))
var/sound/creak_sound = sound(get_sfx("explosion_creak"))
var/sound/explosion_sound = SFX_EXPLOSION_LARGE
var/sound/far_explosion_sound = SFX_EXPLOSION_LARGE_DISTANT
var/sound/creak_sound = SFX_EXPLOSION_CREAK

//no need to loop this for every mob
switch(power)
if(0 to EXPLODE_LIGHT)
explosion_sound = sound(get_sfx("explosion_small"))
far_explosion_sound = sound(get_sfx("explosion_small_distant"))
explosion_sound = SFX_EXPLOSION_SMALL
far_explosion_sound = SFX_EXPLOSION_SMALL_DISTANT
if(EXPLODE_LIGHT to EXPLODE_HEAVY)
explosion_sound = sound(get_sfx("explosion_med"))
explosion_sound = SFX_EXPLOSION_MED
if(EXPLODE_HEAVY to INFINITY)
explosion_sound = sound(get_sfx("explosion_large"))
explosion_sound = SFX_EXPLOSION_LARGE

//there should be a use of client_by_zlevel, but due to the nature of explosions this is difficult to implement
for(var/MN in GLOB.player_list|GLOB.aiEyes)
Expand All @@ -285,16 +285,16 @@ as having entered the turf.
if(mob_turf?.z == epicenter.z)
var/dist = get_dist(mob_turf, epicenter)
if(dist <= max(round(power, 1)))
our_mob.playsound_local(epicenter, null, 75, 1, frequency, falloff = 5, S = explosion_sound)
our_mob.playsound_local(epicenter, null, 75, 1, frequency, falloff = 5, sound_to_use = explosion_sound)
if(is_mainship_level(epicenter.z))
our_mob.playsound_local(epicenter, null, 40, 1, frequency, falloff = 5, S = creak_sound)//ship groaning under explosion effect
our_mob.playsound_local(epicenter, null, 40, 1, frequency, falloff = 5, sound_to_use = creak_sound)//ship groaning under explosion effect
// You hear a far explosion if you're outside the blast radius. Small bombs shouldn't be heard all over the station.
else if(dist <= far_dist)
var/far_volume = clamp(far_dist, 30, 60) // Volume is based on explosion size and dist
far_volume += (dist <= far_dist * 0.5 ? 50 : 0) // add 50 volume if the mob is pretty close to the explosion
our_mob.playsound_local(epicenter, null, far_volume, 1, frequency, falloff = 5, S = far_explosion_sound)
our_mob.playsound_local(epicenter, null, far_volume, 1, frequency, falloff = 5, sound_to_use = far_explosion_sound)
if(is_mainship_level(epicenter.z))
our_mob.playsound_local(epicenter, null, far_volume * 3, 1, frequency, falloff = 5, S = creak_sound)//ship groaning under explosion effect
our_mob.playsound_local(epicenter, null, far_volume * 3, 1, frequency, falloff = 5, sound_to_use = creak_sound)//ship groaning under explosion effect
if(!orig_range)
orig_range = round(power / falloff)
new /obj/effect/temp_visual/explosion(epicenter, orig_range, color, power)
Expand Down
2 changes: 1 addition & 1 deletion code/datums/fire_support.dm
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,7 @@

/datum/fire_support/mortar/smoke/do_impact(turf/target_turf)
var/datum/effect_system/smoke_spread/smoke = new smoketype()
playsound(target_turf, "explosion_small", 50)
playsound(target_turf, SFX_EXPLOSION_SMALL, 50)
playsound(target_turf, 'sound/effects/smoke_bomb.ogg', 25, TRUE)
smoke.set_up(smokeradius, target_turf, smoke_duration)
smoke.start()
Expand Down
2 changes: 1 addition & 1 deletion code/datums/gamemodes/infestation.dm
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@
var/numHostsTransitr = BIOSCAN_DELTA(numHostsTransit, delta)
var/numXenosTransitr = BIOSCAN_DELTA(numXenosTransit, delta)

var/sound/S = sound(get_sfx("queen"), channel = CHANNEL_ANNOUNCEMENTS, volume = 50)
var/sound/S = sound(SFX_QUEEN, channel = CHANNEL_ANNOUNCEMENTS, volume = 50)
if(announce_xenos)
for(var/i in GLOB.alive_xeno_list_hive[XENO_HIVE_NORMAL])
var/mob/M = i
Expand Down
2 changes: 1 addition & 1 deletion code/game/atoms/_atom.dm
Original file line number Diff line number Diff line change
Expand Up @@ -969,7 +969,7 @@ directive is properly returned.
///What happens when with atom is melted by acid
/atom/proc/do_acid_melt()
visible_message(span_xenodanger("[src] collapses under its own weight into a puddle of goop and undigested debris!"))
playsound(src, "acid_hit", 25)
playsound(src, SFX_ACID_HIT, 25)

///Anything called here will have failed CanPass(), so it's likely dense.
/atom/proc/pre_crush_act(mob/living/carbon/xenomorph/charger, datum/action/ability/xeno_action/ready_charge/charge_datum)
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/effects/aliens.dm
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@
/obj/effect/xenomorph/acid/proc/on_pickup(obj/item/item, mob/living/carbon/human/human_user)
human_user.visible_message(span_danger("Corrosive substances seethe all over [human_user] as [human_user.p_they()] retrieves the acid-soaked [item]!"),
span_danger("Corrosive substances burn and seethe all over you upon retrieving the acid-soaked [item]!"))
playsound(human_user, "acid_hit", 25)
playsound(human_user, SFX_ACID_HIT, 25)
human_user.emote("pain")
var/list/affected_limbs = list("l_hand", "r_hand", "l_arm", "r_arm")
var/limb_count = null
Expand Down
8 changes: 4 additions & 4 deletions code/game/objects/explosion_recursive.dm
Original file line number Diff line number Diff line change
Expand Up @@ -56,14 +56,14 @@ explosion resistance exactly as much as their health
msg_admin_ff("Explosion with Power: [power], Falloff: [falloff] in area [epicenter.loc.name] ([epicenter.x],[epicenter.y],[epicenter.z]).", src.loc.x, src.loc.y, src.loc.z [ADMIN_JMP(epicenter)])

playsound(epicenter, 'sound/effects/explosion/far0.ogg', 100, 1, round(power ^ 2, 1))
var/sound/explosion_sound = sound(get_sfx("explosion_large"))
var/sound/explosion_sound = SFX_EXPLOSION_LARGE
switch(power)
if(0 to EXPLODE_LIGHT)
explosion_sound = sound(get_sfx("explosion_small"))
explosion_sound = SFX_EXPLOSION_SMALL
if(EXPLODE_LIGHT to EXPLODE_HEAVY)
explosion_sound = sound(get_sfx("explosion_med"))
explosion_sound = SFX_EXPLOSION_MED
if(EXPLODE_HEAVY to INFINITY)
explosion_sound = sound(get_sfx("explosion_large"))
explosion_sound = SFX_EXPLOSION_LARGE
playsound(epicenter, get_sfx("explosion"), 90, 1, max(round(power, 1), 7))
playsound(epicenter, explosion_sound, 90, 1, falloff = 5)

Expand Down
4 changes: 2 additions & 2 deletions code/game/objects/items/cocoon.dm
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
new /obj/structure/bed/nest(loc)
anchored = FALSE
update_icon()
playsound(loc, "alien_resin_move", 35)
playsound(loc, SFX_ALIEN_RESIN_MOVE, 35)

///Stop producing points and release the victim if needed
/obj/structure/cocoon/proc/life_draining_over(datum/source, must_release_victim = FALSE)
Expand Down Expand Up @@ -84,7 +84,7 @@
///Open the cocoon and move the victim out
/obj/structure/cocoon/proc/release_victim(gib = FALSE)
REMOVE_TRAIT(victim, TRAIT_STASIS, TRAIT_STASIS)
playsound(loc, "alien_resin_move", 35)
playsound(loc, SFX_ALIEN_RESIN_MOVE, 35)
victim.forceMove(loc)
victim.setDir(NORTH)
victim.med_hud_set_status()
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/defibrillator.dm
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@
ready = !ready
user.visible_message(span_notice("[user] turns [src] [ready? "on and opens the cover" : "off and closes the cover"]."),
span_notice("You turn [src] [ready? "on and open the cover" : "off and close the cover"]."))
playsound(get_turf(src), "sparks", 25, TRUE, 4)
playsound(get_turf(src), SFX_SPARKS, 25, TRUE, 4)
if(ready)
playsound(get_turf(src), 'sound/items/defib_safetyOn.ogg', 30, 0)
else
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/devices/tablets.dm
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@
var/list/cameras = get_available_cameras()
var/obj/machinery/camera/selected_camera = cameras[c_tag]
active_camera = selected_camera
playsound(src, get_sfx("terminal_type"), 25, FALSE)
playsound(src, SFX_TERMINAL_TYPE, 25, FALSE)

if(!selected_camera)
return TRUE
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/explosives/grenades/flashbang.dm
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

/obj/item/explosive/grenade/flashbang/prime()
var/turf/target_turf = get_turf(src)
playsound(target_turf, "flashbang", 65)
playsound(target_turf, SFX_FLASHBANG, 65)
for(var/mob/living/carbon/victim in hearers(max_range, target_turf))
if(!HAS_TRAIT(victim, TRAIT_FLASHBANGIMMUNE))
bang(target_turf, victim)
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/explosives/grenades/grenade.dm
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@

balloon_alert_to_viewers("primes grenade")
if(initial(dangerous) && ishumanbasic(user))
var/nade_sound = user.gender == FEMALE ? get_sfx("female_fragout") : get_sfx("male_fragout")
var/nade_sound = user.gender == FEMALE ? SFX_FEMALE_FRAGOUT : SFX_MALE_FRAGOUT

for(var/mob/living/carbon/human/H in hearers(6,user))
H.playsound_local(user, nade_sound, 35)
Expand Down
8 changes: 4 additions & 4 deletions code/game/objects/items/explosives/grenades/marines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@

/obj/item/explosive/grenade/sticky/trailblazer/prime()
flame_radius(0.5, get_turf(src))
playsound(loc, "incendiary_explosion", 35)
playsound(loc, SFX_INCENDIARY_EXPLOSION, 35)
if(stuck_to)
clean_refs()
qdel(src)
Expand Down Expand Up @@ -200,7 +200,7 @@

/obj/item/explosive/grenade/sticky/trailblazer/phosphorus/prime()
flame_radius(0.5, get_turf(src), colour = "blue")
playsound(loc, "incendiary_explosion", 35)
playsound(loc, SFX_INCENDIARY_EXPLOSION, 35)
if(stuck_to)
clean_refs()
qdel(src)
Expand Down Expand Up @@ -257,7 +257,7 @@

/obj/item/explosive/grenade/incendiary/prime()
flame_radius(2, get_turf(src))
playsound(loc, "incendiary_explosion", 35)
playsound(loc, SFX_INCENDIARY_EXPLOSION, 35)
qdel(src)


Expand Down Expand Up @@ -294,7 +294,7 @@

/obj/item/explosive/grenade/incendiary/molotov/prime()
flame_radius(2, get_turf(src))
playsound(loc, "molotov", 35)
playsound(loc, SFX_MOLOTOV, 35)
qdel(src)

/obj/item/explosive/grenade/incendiary/molotov/throw_impact(atom/hit_atom, speed, bounce = TRUE)
Expand Down
4 changes: 2 additions & 2 deletions code/game/objects/items/explosives/plastique.dm
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@
qdel(src)
return
cell_explosion(plant_target, 95, 45, EXPLOSION_FALLOFF_SHAPE_EXPONENTIAL)
playsound(plant_target, sound(get_sfx("explosion_small")), 100, FALSE, 25)
playsound(plant_target, SFX_EXPLOSION_SMALL, 100, FALSE, 25)
var/datum/effect_system/smoke_spread/smoke = new smoketype()
smoke.set_up(smokeradius, plant_target, 2)
smoke.start()
Expand Down Expand Up @@ -190,7 +190,7 @@
qdel(src)
return
new /obj/fire/flamer/autospread(flame_target, 17, 31)
playsound(plant_target, sound(get_sfx("explosion_small")), 100, FALSE, 25)
playsound(plant_target, SFX_EXPLOSION_SMALL, 100, FALSE, 25)
qdel(src)

/obj/fire/flamer/autospread
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/flashlight.dm
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
/obj/item/flashlight/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, isrightclick = FALSE)
if(turn_light(xeno_attacker, FALSE) != CHECKS_PASSED)
return
playsound(loc, "alien_claw_metal", 25, 1)
playsound(loc, SFX_ALIEN_CLAW_METAL, 25, 1)
xeno_attacker.do_attack_animation(src, ATTACK_EFFECT_CLAW)
to_chat(xeno_attacker, span_warning("We disable the metal thing's lights.") )

Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/portable_vendor.dm
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
)
flags_atom = CONDUCT
force = 8
hitsound = "swing_hit"
hitsound = SFX_SWING_HIT
throw_speed = 1
throw_range = 4
w_class = WEIGHT_CLASS_BULKY
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
I.SwapColor(rgb(255, 0, 220, 255), rgb(0, 0, 0, 0))
B.icon = I

playsound(src, "shatter", 25, 1)
playsound(src, SFX_SHATTER, 25, 1)
user.put_in_active_hand(B)

qdel(src)
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/stacks/sandbags.dm
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
new_bags.add_to_stacks(user)
var/obj/item/stack/sandbags_empty/E = src
var/replace = (user.get_inactive_held_item() == E)
playsound(user.loc, "rustle", 30, 1, 6)
playsound(user.loc, SFX_RUSTLE, 30, 1, 6)
if(!E && replace)
user.put_in_hands(new_bags)

Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/storage/belt.dm
Original file line number Diff line number Diff line change
Expand Up @@ -761,7 +761,7 @@
if(!cont)
break

playsound(user.loc, "rustle", 15, TRUE, 6)
playsound(user.loc, SFX_RUSTLE, 15, TRUE, 6)
to_chat(user, span_notice("You refill [src] with [M]."))
return TRUE

Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/storage/pouch.dm
Original file line number Diff line number Diff line change
Expand Up @@ -876,7 +876,7 @@
if(!cont)
break

playsound(user.loc, "rustle", 15, TRUE, 6)
playsound(user.loc, SFX_RUSTLE, 15, TRUE, 6)
to_chat(user, span_notice("You refill [src] with [M]."))
return TRUE

Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/tools/shovel_tools.dm
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@
else
var/turf/T = target
balloon_alert(user, "Dumps the [dirt_type == DIRT_TYPE_SNOW ? "snow" : "dirt"]")
playsound(user.loc, "rustle", 30, 1, 6)
playsound(user.loc, SFX_RUSTLE, 30, 1, 6)
if(dirt_type == DIRT_TYPE_SNOW)
var/obj/item/stack/snow/S = locate() in T
if(S && (S.amount + dirt_amt < S.max_amount))
Expand Down
Loading

0 comments on commit e872488

Please sign in to comment.