Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
d405fd8
Sound caching, maintenance ambience improvements (#88752)
grungussuss Jan 5, 2025
fa0283d
Datumize sound keys into sound_effect_datums (#91850)
grungussuss Jun 29, 2025
32df51d
replaces a copyrighted sound (#88052)
grungussuss Nov 21, 2024
c5d3781
Adds more sounds to moisture traps (#94660)
desertmote Jan 2, 2026
0fa0642
Add dice rolling sound (#88546)
timothymtorres Dec 17, 2024
0349dfb
Add water sound to sinks (#88443)
timothymtorres Dec 13, 2024
cf22b21
Kitchen soundpack (#93495)
grungussuss Oct 19, 2025
282053f
Mark out unused
MrMelbert Jun 10, 2026
7da9b1a
Computer console sounds (#85358)
grungussuss Aug 20, 2024
224564e
firing mode switch sound (#93464)
grungussuss Oct 19, 2025
44801fc
Tweaks
MrMelbert Jun 10, 2026
78d7ef1
Food types are now passed down when cooking from recipes. (#89706)
Ghommie Mar 13, 2025
246f0d9
More food effects (#84889)
MTandi Aug 14, 2024
d9bf8e8
Revamps food menu sorting (#95529)
MrMelbert Apr 4, 2026
3830895
Fixes
MrMelbert Jun 10, 2026
7fe876e
Fixes
MrMelbert Jun 11, 2026
c07142d
Generic surgical operations now have unique radial icons (#95470)
MrMelbert Mar 21, 2026
26fc3c8
Fixes
MrMelbert Jun 11, 2026
9704e4c
Plant instability is not affected by instability (#95028)
MrMelbert Feb 2, 2026
2e78fc6
Lobotomy
MrMelbert Jun 11, 2026
75f11a3
Dna console indicates invalid pairs (#94962)
MrMelbert Jan 26, 2026
e62d89e
Stuff
MrMelbert Jun 11, 2026
69bbbb7
Reinforced floors stop explosions from affecting underfloor objects /…
MrMelbert Sep 28, 2025
06558a1
Thermite
MrMelbert Jun 11, 2026
24ca7d5
tgui: Slot Machine (#95313)
stylemistake Mar 8, 2026
e7ca4b7
Adds a hotkey which cancels your `do_after`s (if possible) (#96302)
MrMelbert Jun 5, 2026
9ac47fa
Fixes
MrMelbert Jun 11, 2026
add3fcd
Decal
MrMelbert Jun 14, 2026
0dc88d1
This is gone for now
MrMelbert Jun 14, 2026
a51a05c
Foodtypes
MrMelbert Jun 14, 2026
740be2c
A
MrMelbert Jun 14, 2026
2b7697b
Fix
MrMelbert Jun 14, 2026
605ca03
E
MrMelbert Jun 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion _maps/RandomZLevels/museum.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -1765,7 +1765,7 @@
dir = 1
},
/obj/structure/table,
/obj/item/food/sandwich/cheese/grilled,
/obj/item/food/sandwich/grilled_cheese,
/turf/open/floor/iron/dark,
/area/awaymission/museum)
"of" = (
Expand Down
2 changes: 1 addition & 1 deletion _maps/map_files/Deltastation/DeltaStation2.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -55872,7 +55872,7 @@
normaldoorcontrol = 1;
specialfunctions = 4
},
/obj/item/food/sandwich/cheese/grilled,
/obj/item/food/sandwich/grilled_cheese,
/turf/open/floor/iron/cafeteria,
/area/station/medical/break_room)
"mMH" = (
Expand Down
2 changes: 1 addition & 1 deletion _maps/map_files/IceBoxStation/IceBoxStation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -64011,7 +64011,7 @@
/area/station/cargo/storage)
"sQc" = (
/obj/structure/table,
/obj/item/food/sandwich/cheese/grilled{
/obj/item/food/sandwich/grilled_cheese{
name = "idiot sandwich";
pixel_y = 8
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -445,7 +445,7 @@
pixel_x = -7;
pixel_y = -10
},
/obj/item/food/sandwich/cheese/grilled{
/obj/item/food/sandwich/grilled_cheese{
pixel_x = -5;
pixel_y = -9
},
Expand Down
2 changes: 1 addition & 1 deletion _maps/shuttles/emergency_luxury.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,7 @@
/turf/open/floor/holofloor/beach/water,
/area/shuttle/escape/luxury)
"nC" = (
/obj/item/food/sandwich/cheese/grilled{
/obj/item/food/sandwich/grilled_cheese{
pixel_y = 11
},
/obj/structure/table/wood/fancy/black,
Expand Down
2 changes: 1 addition & 1 deletion code/__DEFINES/access.dm
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,7 @@
ACCESS_SERVICE, \
ACCESS_SHIPPING, \
ACCESS_SURGERY, \
ACCESS_TECH_STORAGE, \
ACCESS_THEATRE, \
ACCESS_VIROLOGY, \
ACCESS_WEAPONS, \
Expand All @@ -351,7 +352,6 @@
ACCESS_MINISAT, \
ACCESS_RC_ANNOUNCE, \
ACCESS_TCOMMS, \
ACCESS_TECH_STORAGE, \
ACCESS_TELEPORTER, \
ACCESS_VAULT, \
)
Expand Down
59 changes: 39 additions & 20 deletions code/__DEFINES/crafting.dm
Original file line number Diff line number Diff line change
Expand Up @@ -35,27 +35,46 @@
#define CRAFT_CLEARS_REAGENTS (1<<8)

//food/drink crafting defines
//When adding new defines, please make sure to also add them to the encompassing list
#define CAT_FOOD "Foods"
#define CAT_BREAD "Breads"
#define CAT_BURGER "Burgers"
#define CAT_CAKE "Cakes"
#define CAT_EGG "Egg-Based Food"
#define CAT_LIZARD "Lizard Food"
#define CAT_MEAT "Meats"
#define CAT_SEAFOOD "Seafood"
#define CAT_MARTIAN "Martian Food"
#define CAT_MISCFOOD "Misc. Food"
#define CAT_MEXICAN "Mexican Food"
#define CAT_MOTH "Mothic Food"
#define CAT_PASTRY "Pastries"
#define CAT_PIE "Pies"
#define CAT_PIZZA "Pizzas"
#define CAT_SALAD "Salads"
#define CAT_SANDWICH "Sandwiches"
#define CAT_SOUP "Soups"
#define CAT_SPAGHETTI "Spaghettis"
#define CAT_ICE "Frozen"
// cuisine categories
#define CUISINE_ITALIAN "Italian"
#define CUISINE_JAPANESE "Japanese"
#define CUISINE_LIZARD "Lizard"
#define CUISINE_MARTIAN "Martian"
#define CUISINE_MEXICAN "Mexican"
#define CUISINE_MOTHIC "Mothic"
#define CUISINE_TERRAN "Terran" // catch-all for earth food that we don't have a more specific category for
#define CUISINE_STARFRUIT "Starfruit" // NON-MODULE CHANGE
// dish categories
#define DISH_BREAD "Bread"
#define DISH_BURGER "Burger"
#define DISH_BURRITO "Burrito" // also includes wraps/enchilada
#define DISH_CAKE "Cake"
#define DISH_CANDY "Candy"
#define DISH_CONDIMENT "Condiment" // catch-all for sauces, dressings, sides, etc
#define DISH_COOKIE "Cookie"
#define DISH_FROZEN "Frozen" // catch-all for ice cream, popsicles, etc
#define DISH_MEAT "Meat" // anything often served on its own as a "meat dish" (like steak), though it may include tofu
#define DISH_NOODLES "Noodles"
#define DISH_PASTRY "Pastry"
#define DISH_PIE "Pie"
#define DISH_PIZZA "Pizza"
#define DISH_RICE "Rice" // practically anything with rice in it
#define DISH_SALAD "Salad" // often includes salad adjacent (ie: coleslaw, stir fry)
#define DISH_SANDWICH "Sandwich" // divorced from burger for better filtering. also, yes, includes hotdogs.
#define DISH_SOUP "Soup"
#define DISH_SUSHI "Sushi"
#define DISH_TACO "Taco"
#define DISH_UNCATEGORIZED "Uncategorized"
// meal categories
#define MEAL_APPETIZER "Appetizer"
#define MEAL_BREAKFAST "Breakfast"
#define MEAL_COMPONENT "Component" // stuff you're not intended to eat
#define MEAL_DESSERT "Dessert"
#define MEAL_MAIN_COURSE "Main Course"
#define MEAL_SNACK "Snack"
#define MEAL_UNCATEGORIZED "Uncategorized"

#define CAT_DRINK "Drinks"

//crafting defines
Expand Down
6 changes: 4 additions & 2 deletions code/__DEFINES/food.dm
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
#define BUGS (1<<17)
#define GORE (1<<18)
#define STONE (1<<19)
#define EGG (1<<20)

DEFINE_BITFIELD(foodtypes, list(
"MEAT" = MEAT,
Expand All @@ -40,6 +41,7 @@ DEFINE_BITFIELD(foodtypes, list(
"BUGS" = BUGS,
"GORE" = GORE,
"STONE" = STONE,
"EGG" = EGG,
))

/// A list of food type names, in order of their flags
Expand All @@ -64,6 +66,7 @@ DEFINE_BITFIELD(foodtypes, list(
"BUGS", \
"GORE", \
"STONE", \
"EGG", \
)

/// IC meaning (more or less) for food flags
Expand All @@ -88,6 +91,7 @@ DEFINE_BITFIELD(foodtypes, list(
"Bugs", \
"Gore", \
"Rocks", \
"Eggs", \
)

#define DRINK_REVOLTING 1
Expand Down Expand Up @@ -137,11 +141,9 @@ GLOBAL_ALIST_INIT(food_buffs, alist(
),
FOOD_COMPLEXITY_4 = list(
/datum/status_effect/food/haste = 1,
/datum/status_effect/food/trait/shockimmune = 1,
),
FOOD_COMPLEXITY_5 = list(
/datum/status_effect/food/haste = 1,
/datum/status_effect/food/trait/shockimmune = 2,
),
))

Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/keybinding.dm
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
#define COMSIG_KB_LIVING_DISABLE_COMBAT_DOWN "keybinding_living_disable_combat_down"
#define COMSIG_KB_LIVING_TOGGLEMOVEINTENT_DOWN "keybinding_mob_togglemoveintent_down"
#define COMSIG_KB_LIVING_TOGGLEMOVEINTENTALT_DOWN "keybinding_mob_togglemoveintentalt_down"
#define COMSIG_KB_LIVING_STOP_INTERACTIONS_DOWN "keybinding_living_stop_interactions_down"

//Mob
#define COMSIG_KB_MOB_FACENORTH_DOWN "keybinding_mob_facenorth_down"
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/processing.dm
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#define TOOL_PROCESSING_RESULT "result"
#define TOOL_PROCESSING_AMOUNT "amount"
#define TOOL_PROCESSING_TIME "time"
#define TOOL_PROCESSING_SOUND "sound"
2 changes: 1 addition & 1 deletion code/__DEFINES/reagents.dm
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@
/// Reaction tags for medication
#define MEDICATION_REACTION_TAGS (REACTION_TAG_HEALING | REACTION_TAG_DAMAGING | REACTION_TAG_ORGAN | REACTION_TAG_DRUG | REACTION_TAG_PAIN)
/// Reaction tags for things the chemist would make
#define CHEMIST_REACTION_TAGS (REACTION_TAG_EXPLOSIVE | REACTION_TAG_CHEMICAL | REACTION_TAG_COMPETITIVE | REACTION_TAG_EXPLOSIVE | REACTION_TAG_COMPONENT)
#define CHEMIST_REACTION_TAGS (REACTION_TAG_EXPLOSIVE | REACTION_TAG_CHEMICAL | REACTION_TAG_COMPETITIVE | REACTION_TAG_COMPONENT)
/// Reaction tags for botanist stuff
#define BOTANIST_REACTION_TAGS (REACTION_TAG_PLANT | REACTION_TAG_COMPONENT)
/// Reaction tags for food and drink mainly
Expand Down
56 changes: 54 additions & 2 deletions code/__DEFINES/sound.dm
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,18 @@ GLOBAL_LIST_INIT(announcer_keys, list(
ANNOUNCER_SPANOMALIES,
))

/// List of all of our sound keys.
/**
# assoc list of datum by key
* k = SFX_KEY (see below)
* v = singleton sound_effect datum ref
* initialized in SSsounds init
*/
GLOBAL_LIST_EMPTY(sfx_datum_by_key)

/* List of all of our sound keys.
used with /datum/sound_effect as the key
see code\game\sound_keys.dm
*/
#define SFX_BODYFALL "bodyfall"
#define SFX_BULLET_MISS "bullet_miss"
#define SFX_CAN_OPEN "can_open"
Expand All @@ -201,7 +212,6 @@ GLOBAL_LIST_INIT(announcer_keys, list(
#define SFX_HULL_CREAKING "hull_creaking"
#define SFX_HYPERTORUS_CALM "hypertorus_calm"
#define SFX_HYPERTORUS_MELTING "hypertorus_melting"
#define SFX_IM_HERE "im_here"
#define SFX_LAW "law"
#define SFX_PAGE_TURN "page_turn"
#define SFX_PUNCH "punch"
Expand Down Expand Up @@ -248,3 +258,45 @@ GLOBAL_LIST_INIT(announcer_keys, list(
#define SFX_CLOTH_DROP "cloth_drop"
#define SFX_BANDAGE_BEGIN "bandage_begin"
#define SFX_BANDAGE_END "bandage_end"
#define SFX_POLAROID "polaroid"
#define SFX_KEYBOARD_CLICKS "keyboard_clicks"
// #define SFX_SUTURE_BEGIN "suture_begin"
// #define SFX_SUTURE_CONTINUOUS "suture_continuous"
// #define SFX_SUTURE_END "suture_end"
// #define SFX_SUTURE_PICKUP "suture_pickup"
// #define SFX_SUTURE_DROP "suture_drop"
// #define SFX_REGEN_MESH_BEGIN "regen_mesh_begin"
// #define SFX_REGEN_MESH_CONTINUOUS "regen_mesh_continuous"
// #define SFX_REGEN_MESH_END "regen_mesh_end"
// #define SFX_REGEN_MESH_PICKUP "regen_mesh_pickup"
// #define SFX_REGEN_MESH_DROP "regen_mesh_drop"
// #define SFX_CIG_PACK_DROP "cig_pack_drop"
// #define SFX_CIG_PACK_INSERT "cig_pack_insert"
// #define SFX_CIG_PACK_PICKUP "cig_pack_pickup"
// #define SFX_CIG_PACK_RUSTLE "cig_pack_rustle"
// #define SFX_CIG_PACK_THROW_DROP "cig_pack_throw_drop"
// #define SFX_RORO_WARBLE "roro_warble"
// #define SFX_POTTED_PLANT_PICKUP "potted_plant_pickup"
// #define SFX_POTTED_PLANT_DROP "potted_plant_drop"
// #define SFX_GOGGLES_PICKUP "goggles_pickup"
// #define SFX_GOGGLES_DROP "goggles_drop"
// #define SFX_GOGGLES_EQUIP "goggles_equip"
// #define SFX_GLASSES_PICKUP "glasses_pickup"
// #define SFX_GLASSES_DROP "glasses_drop"
// #define SFX_GLASSES_EQUIP "glasses_equip"
#define SFX_FOOD_PLATE_PICKUP "food_plate_pickup"
#define SFX_FOOD_PLATE_DROP "food_plate_drop"
#define SFX_TRAY_PICKUP "tray_pickup"
#define SFX_TRAY_DROP "tray_drop"
#define SFX_TRAY_INSERT "tray_insert"
#define SFX_CUTLERY_PICKUP "generic_cutlery_pickup"
#define SFX_CUTLERY_DROP "generic_cutlery_drop"
#define SFX_KNIFE_PICKUP "knife_pickup"
#define SFX_KNIFE_DROP "knife_drop"
#define SFX_KNIFE_SLICE "knife_slice"
#define SFX_POT_PICKUP "pot_pickup"
#define SFX_POT_DROP "pot_drop"
#define SFX_ROLLING_PIN_PICKUP "rolling_pin_pickup"
#define SFX_ROLLING_PIN_DROP "rolling_pin_drop"
#define SFX_ROLLING_PIN_ROLLING "rolling_pin_rolling"
#define SFX_FIRE_MODE_SWITCH "fire_mode_switch"
30 changes: 15 additions & 15 deletions code/_globalvars/lists/ambience.dm
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ GLOBAL_LIST_INIT(ruins_ambience,list(
'sound/ambience/ambicave.ogg',
'sound/ambience/ambidanger.ogg',
'sound/ambience/ambidanger2.ogg',
'sound/ambience/ambimaint1.ogg',
'sound/ambience/maintenance/ambimaint1.ogg',
'sound/ambience/ambimine.ogg',
'sound/ambience/ambimystery.ogg',
'sound/ambience/ambiruin.ogg',
Expand Down Expand Up @@ -68,7 +68,7 @@ GLOBAL_LIST_INIT(mining_ambience, list(
'sound/ambience/ambilava1.ogg',
'sound/ambience/ambilava2.ogg',
'sound/ambience/ambilava3.ogg',
'sound/ambience/ambimaint1.ogg',
'sound/ambience/maintenance/ambimaint1.ogg',
'sound/ambience/ambimine.ogg',
'sound/ambience/ambiruin.ogg',
'sound/ambience/ambiruin2.ogg',
Expand Down Expand Up @@ -124,18 +124,18 @@ GLOBAL_LIST_INIT(space_ambience,list(
))

GLOBAL_LIST_INIT(maint_ambience,list(
'sound/ambience/ambimaint1.ogg',
'sound/ambience/ambimaint2.ogg',
'sound/ambience/ambimaint3.ogg',
'sound/ambience/ambimaint4.ogg',
'sound/ambience/ambimaint5.ogg',
'sound/ambience/ambimaint6.ogg',
'sound/ambience/ambimaint7.ogg',
'sound/ambience/ambimaint8.ogg',
'sound/ambience/ambimaint9.ogg',
'sound/ambience/ambimaint10.ogg',
'sound/ambience/ambimaint11.ogg',
'sound/ambience/ambimaint12.ogg',
'sound/ambience/maintenance/ambimaint1.ogg',
'sound/ambience/maintenance/ambimaint2.ogg',
'sound/ambience/maintenance/ambimaint3.ogg',
'sound/ambience/maintenance/ambimaint4.ogg',
'sound/ambience/maintenance/ambimaint5.ogg',
'sound/ambience/maintenance/ambimaint6.ogg',
'sound/ambience/maintenance/ambimaint7.ogg',
'sound/ambience/maintenance/ambimaint8.ogg',
'sound/ambience/maintenance/ambimaint9.ogg',
'sound/ambience/maintenance/ambimaint10.ogg',
'sound/ambience/maintenance/ambimaint11.ogg',
'sound/ambience/maintenance/ambimaint12.ogg',
'sound/ambience/ambitech2.ogg',
'sound/voice/lowHiss1.ogg',
'sound/voice/lowHiss2.ogg',
Expand All @@ -155,7 +155,7 @@ GLOBAL_LIST_INIT(away_ambience,list(
'sound/ambience/ambiatmos2.ogg',
'sound/ambience/ambidanger.ogg',
'sound/ambience/ambidanger2.ogg',
'sound/ambience/ambimaint.ogg',
'sound/ambience/maintenance/ambimaint.ogg',
'sound/ambience/ambiodd.ogg',
'sound/ambience/ambiruin.ogg',
'sound/ambience/ambiruin2.ogg',
Expand Down
19 changes: 0 additions & 19 deletions code/_globalvars/lists/crafting.dm
Original file line number Diff line number Diff line change
@@ -1,24 +1,5 @@
GLOBAL_LIST_INIT(crafting_category_food, list(
CAT_FOOD,
CAT_BREAD,
CAT_BURGER,
CAT_CAKE,
CAT_EGG,
CAT_LIZARD,
CAT_MEAT,
CAT_SEAFOOD,
CAT_MARTIAN,
CAT_MISCFOOD,
CAT_MEXICAN,
CAT_MOTH,
CAT_PASTRY,
CAT_PIE,
CAT_PIZZA,
CAT_SALAD,
CAT_SANDWICH,
CAT_SOUP,
CAT_SPAGHETTI,
CAT_ICE,
CAT_DRINK,
))

Expand Down
17 changes: 10 additions & 7 deletions code/controllers/subsystem/ambience.dm
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,22 @@ SUBSYSTEM_DEF(ambience)
var/client/client_iterator = cached_clients[cached_clients.len]
cached_clients.len--

//Check to see if the client exists and isn't held by a new player
var/mob/client_mob = client_iterator?.mob
if(isnull(client_iterator) || !client_mob || isnewplayer(client_mob))
//Check to see if the client exists
if(isnull(client_iterator))
ambience_listening_clients -= client_iterator
client_old_areas -= client_iterator
continue

// skip them this tick if they're on the lobby screen or somehow dont have a mob??
var/mob/client_mob = client_iterator?.mob
if(!client_mob || isnewplayer(client_mob))
continue

//Check to see if the client-mob is in a valid area
var/area/current_area = get_area(client_mob)
if(!current_area) //Something's gone horribly wrong
stack_trace("[key_name(client_mob)] has somehow ended up in nullspace. WTF did you do")
ambience_listening_clients -= client_iterator
remove_ambience_client(client_iterator)
continue

if(ambience_listening_clients[client_iterator] > world.time)
Expand All @@ -56,16 +60,15 @@ SUBSYSTEM_DEF(ambience)
new_sound = sound(new_sound, repeat = 0, wait = 0, volume = volume*volume_modifier, channel = CHANNEL_AMBIENCE)
SEND_SOUND(M, new_sound)

return rand(min_ambience_cooldown, max_ambience_cooldown)
var/sound_length = SSsounds.get_sound_length(new_sound.file)
return sound_length + rand(min_ambience_cooldown, max_ambience_cooldown)

/datum/controller/subsystem/ambience/proc/remove_ambience_client(client/to_remove)
ambience_listening_clients -= to_remove
client_old_areas -= to_remove
currentrun -= to_remove

/area/station/maintenance
min_ambience_cooldown = 20 SECONDS
max_ambience_cooldown = 35 SECONDS

///A list of rare sound effects to fuck with players. No, it does not contain actual minecraft sounds anymore.
var/static/list/minecraft_cave_noises = list(
Expand Down
Loading
Loading