diff --git a/code/controllers/subsystem/SSnightshift.dm b/code/controllers/subsystem/SSnightshift.dm
index 49df5c617e5..c6cca6a0cee 100644
--- a/code/controllers/subsystem/SSnightshift.dm
+++ b/code/controllers/subsystem/SSnightshift.dm
@@ -59,4 +59,3 @@ SUBSYSTEM_DEF(nightshift)
var/obj/machinery/power/apc/APC = A
if(is_station_level(APC.z))
APC.set_nightshift(active)
- CHECK_TICK
diff --git a/code/controllers/subsystem/non_firing/SSmapping.dm b/code/controllers/subsystem/non_firing/SSmapping.dm
index 208fc3be4ff..8a7b6a97247 100644
--- a/code/controllers/subsystem/non_firing/SSmapping.dm
+++ b/code/controllers/subsystem/non_firing/SSmapping.dm
@@ -108,9 +108,11 @@ SUBSYSTEM_DEF(mapping)
var/list/pickable_turfs = list()
for(var/turf/turfs in AR)
pickable_turfs += turfs
+ CHECK_TICK
var/turf/picked = safepick(pickable_turfs)
if(picked && is_station_level(picked.z))
teleportlocs[AR.name] = AR
+ CHECK_TICK
teleportlocs = sortAssoc(teleportlocs)
@@ -121,8 +123,10 @@ SUBSYSTEM_DEF(mapping)
var/list/pickable_turfs = list()
for(var/turf/turfs in AR)
pickable_turfs += turfs
+ CHECK_TICK
if(length(pickable_turfs))
ghostteleportlocs[AR.name] = AR
+ CHECK_TICK
ghostteleportlocs = sortAssoc(ghostteleportlocs)
@@ -132,9 +136,11 @@ SUBSYSTEM_DEF(mapping)
var/list/pickable_turfs = list()
for(var/turf/turfs in AR)
pickable_turfs += turfs
+ CHECK_TICK
var/turf/picked = safepick(pickable_turfs)
if(picked && is_station_level(picked.z))
existing_station_areas += AR
+ CHECK_TICK
// World name
if(GLOB.configuration.general.server_name)
diff --git a/code/controllers/subsystem/processing/SSobj_tab_items.dm b/code/controllers/subsystem/processing/SSobj_tab_items.dm
index 617b5e96682..d03fcd24e79 100644
--- a/code/controllers/subsystem/processing/SSobj_tab_items.dm
+++ b/code/controllers/subsystem/processing/SSobj_tab_items.dm
@@ -5,7 +5,7 @@ PROCESSING_SUBSYSTEM_DEF(obj_tab_items)
wait = 0.1 SECONDS
// I know this is mostly copypasta, but I want to change the processing logic
-// Sorry bestie :(
+// Sorry bestie :( // my name is AA and I am putting a ) here to make the bracket pairs right
/datum/controller/subsystem/processing/obj_tab_items/fire(resumed = FALSE)
if(!resumed)
currentrun = processing.Copy()
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index c09d202f866..a10af53d45e 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -159,6 +159,7 @@
/atom/proc/Initialize(mapload, ...)
SHOULD_CALL_PARENT(TRUE)
+ SHOULD_NOT_SLEEP(TRUE)
if(initialized)
stack_trace("Warning: [src]([type]) initialized multiple times!")
initialized = TRUE
@@ -189,6 +190,7 @@
//called if Initialize returns INITIALIZE_HINT_LATELOAD
/atom/proc/LateInitialize()
+ SHOULD_NOT_SLEEP(TRUE)
return
/atom/proc/onCentcom()
diff --git a/code/game/machinery/computer/depot_consoles.dm b/code/game/machinery/computer/depot_consoles.dm
index 1a44d688d6a..a59eb62726b 100644
--- a/code/game/machinery/computer/depot_consoles.dm
+++ b/code/game/machinery/computer/depot_consoles.dm
@@ -14,8 +14,6 @@
light_color = LIGHT_COLOR_PURE_CYAN
req_access = list(ACCESS_SYNDICATE)
bubble_icon = "syndibot"
- var/window_height = 400 // should be roughly 100 per section. Allow extra space for the lockout alert.
- var/window_width = 400
var/security_lockout = FALSE
var/sound_yes = 'sound/machines/twobeep.ogg'
var/sound_no = 'sound/machines/buzz-sigh.ogg'
@@ -149,7 +147,6 @@
/obj/machinery/computer/syndicate_depot/doors
name = "depot door control computer"
req_access = list()
- window_height = 300
var/pub_access = FALSE
/obj/machinery/computer/syndicate_depot/doors/ui_data(mob/user)
@@ -197,7 +194,6 @@
icon_screen = "explosive"
req_access = list()
alerts_when_broken = TRUE
- window_height = 200 // this might appear big, but it has to have space for the lockout alert
/obj/machinery/computer/syndicate_depot/selfdestruct/ui_data(mob/user)
var/list/data = ..()
@@ -227,7 +223,6 @@
icon_screen = "accelerator"
req_access = list(ACCESS_SYNDICATE_LEADER)
alerts_when_broken = TRUE
- window_height = 280
var/area/syndicate_depot/perimeter/perimeterarea
/obj/machinery/computer/syndicate_depot/shieldcontrol/Initialize(mapload)
@@ -291,7 +286,6 @@
icon_screen = "syndishuttle"
req_access = list()
alerts_when_broken = TRUE
- window_height = 300
var/message_sent = FALSE
/obj/machinery/computer/syndicate_depot/syndiecomms/Initialize(mapload)
@@ -394,7 +388,6 @@
name = "syndicate teleporter console"
icon_screen = "telesci"
icon_keyboard = "teleport_key"
- window_height = 300
req_access = list(ACCESS_SYNDICATE_LEADER)
var/obj/machinery/bluespace_beacon/syndicate/mybeacon
var/obj/effect/portal/advanced/myportal
@@ -454,9 +447,8 @@
var/desc = tgui_input_list(usr, "Please select a location to lock in.", "Syndicate Teleporter", L)
return L[desc]
-/obj/machinery/computer/syndicate_depot/teleporter/proc/update_portal()
+/obj/machinery/computer/syndicate_depot/teleporter/proc/update_portal(turf/tele_target)
if(portal_enabled && !myportal)
- var/turf/tele_target = choosetarget()
if(!tele_target)
return
var/turf/portal_turf = get_step(src, portaldir)
@@ -508,21 +500,24 @@
if(!portal_enabled && myportal)
to_chat(user, "Outgoing Teleport Portal: deactivating... please wait...")
return
- toggle_portal()
- to_chat(user, "Outgoing Teleport Portal: [portal_enabled ? "ON" : "OFF"]")
- updateUsrDialog()
- playsound(user, sound_yes, 50, 0)
-/obj/machinery/computer/syndicate_depot/teleporter/proc/toggle_portal()
+ var/turf/tele_target = null
+ if(!portal_enabled)
+ tele_target = choosetarget()
+ if(!tele_target)
+ return
+
portal_enabled = !portal_enabled
- update_portal()
+ update_portal(tele_target)
+
+ to_chat(user, "Outgoing Teleport Portal: [portal_enabled ? "ON" : "OFF"]")
+ playsound(user, sound_yes, 50, 0)
/obj/machinery/computer/syndicate_depot/aiterminal
name = "syndicate ai terminal"
icon_screen = "command"
req_access = list()
- window_height = 750 // has to be very tall since it has many sections which can expand
/obj/machinery/computer/syndicate_depot/aiterminal/ui_data(mob/user)
var/list/data = ..()
diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm
index 017fede1164..567cc838aed 100644
--- a/code/game/machinery/portable_turret.dm
+++ b/code/game/machinery/portable_turret.dm
@@ -962,16 +962,6 @@ GLOBAL_LIST_EMPTY(turret_icons)
build_step = 6
return
- if(is_pen(I)) //you can rename turrets like bots!
- var/t = input(user, "Enter new turret name", name, finish_name) as text
- t = sanitize(copytext_char(t, 1, MAX_MESSAGE_LEN))
- if(!t)
- return
- if(!in_range(src, usr) && loc != usr)
- return
-
- finish_name = t
- return
..()
/obj/machinery/porta_turret_construct/screwdriver_act(mob/living/user, obj/item/I)
diff --git a/code/game/objects/effects/effect_system/effects_chem_smoke.dm b/code/game/objects/effects/effect_system/effects_chem_smoke.dm
index 0dd6e181036..ccc7923c799 100644
--- a/code/game/objects/effects/effect_system/effects_chem_smoke.dm
+++ b/code/game/objects/effects/effect_system/effects_chem_smoke.dm
@@ -45,6 +45,10 @@
/datum/effect_system/smoke_spread/chem
+ var/eff_range = 2
+ var/eff_colour = "#12A5F4" // This is a random blue incase it doesnt get set right
+ var/process_count = 0
+ var/max_process_count = 10
var/obj/chemholder
var/list/smoked_atoms = list()
@@ -94,22 +98,21 @@
/datum/effect_system/smoke_spread/chem/start(effect_range = 2)
- set waitfor = FALSE
+ eff_colour = mix_color_from_reagents(chemholder.reagents.reagent_list)
+ eff_range = effect_range
+ START_PROCESSING(SSprocessing, src)
- var/color = mix_color_from_reagents(chemholder.reagents.reagent_list)
+/datum/effect_system/smoke_spread/chem/process()
+ process_count++
+ if(eff_range < 3)
+ new /obj/effect/particle_effect/chem_smoke/small(location, eff_colour)
+ else
+ new /obj/effect/particle_effect/chem_smoke(location, eff_colour)
- for(var/x in 0 to 99)
- for(var/i = 0, i < rand(2, 6), i++)
- if(effect_range < 3)
- new /obj/effect/particle_effect/chem_smoke/small(location, color)
- else
- new /obj/effect/particle_effect/chem_smoke(location, color)
-
- if(x % 10 == 0) //Once every 10 ticks.
- INVOKE_ASYNC(src, PROC_REF(SmokeEm), effect_range)
-
- sleep(1)
- qdel(src)
+ INVOKE_ASYNC(src, PROC_REF(SmokeEm), eff_range)
+ if(process_count > max_process_count)
+ STOP_PROCESSING(SSprocessing, src)
+ qdel(src)
/datum/effect_system/smoke_spread/chem/proc/SmokeEm(effect_range = 2)
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index af7faad28a0..9c14f705f53 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -428,7 +428,7 @@ GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons
if(isstorage(src)) // Don't tape the bag if we can put the duct tape inside it instead
var/obj/item/storage/bag = src
if(bag.can_be_inserted(I))
- return ..()
+ return
var/obj/item/stack/tape_roll/TR = I
var/list/clickparams = params2list(params)
var/x_offset = text2num(clickparams["icon-x"])
@@ -443,8 +443,6 @@ GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons
user.transfer_fingerprints_to(src)
else
to_chat(user, "You don't have enough tape to do that!")
- else
- return ..()
/obj/item/proc/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
var/signal_result = (SEND_SIGNAL(src, COMSIG_ITEM_HIT_REACT, owner, hitby, damage, attack_type)) + prob(final_block_chance)
diff --git a/code/game/objects/items/devices/autopsy.dm b/code/game/objects/items/devices/autopsy.dm
index af9646366c7..d9304ac3bd9 100644
--- a/code/game/objects/items/devices/autopsy.dm
+++ b/code/game/objects/items/devices/autopsy.dm
@@ -86,7 +86,6 @@
R.name = "Official Coroner's Report - [dead_name]"
R.info = "
[station_name()] - Coroner's Report
Name of Deceased: [dead_name]
Rank of Deceased: [rank]
Time of Death: [tod]
Cause of Death: [cause]
Trace Chemicals: [chems]
Additional Coroner's Notes: [notes]
Coroner's Signature: "
playsound(loc, 'sound/goonstation/machines/printer_thermal.ogg', 50, TRUE)
- sleep(1 SECONDS)
user.put_in_hands(R)
/obj/item/autopsy_scanner/attack_self(mob/user)
diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm
index a21489172e8..e12847d2e64 100644
--- a/code/game/objects/obj_defense.dm
+++ b/code/game/objects/obj_defense.dm
@@ -103,7 +103,7 @@
/obj/attack_animal(mob/living/simple_animal/M)
if((M.a_intent == INTENT_HELP && M.ckey) || (!M.melee_damage_upper && !M.obj_damage))
- M.custom_emote(EMOTE_VISIBLE, "[M.friendly] [src].")
+ M.emote("me", EMOTE_VISIBLE, "[M.friendly] [src].")
return 0
else
var/play_soundeffect = 1
diff --git a/code/modules/food_and_drinks/food/foods/pizza.dm b/code/modules/food_and_drinks/food/foods/pizza.dm
index 0da9469455f..15c7baa3d3b 100644
--- a/code/modules/food_and_drinks/food/foods/pizza.dm
+++ b/code/modules/food_and_drinks/food/foods/pizza.dm
@@ -550,7 +550,6 @@
return
playsound(src, I.usesound, 50, TRUE, 1)
user.visible_message("[user] cuts the [chosen_wire] wire!", "You cut the [chosen_wire] wire!")
- sleep(5)
if(chosen_wire == correct_wire)
audible_message("[bicon(src)] [src] suddenly stops beeping and seems lifeless.")
to_chat(user, "You did it!")
diff --git a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm
index 753b398e6a3..e19832d8500 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm
@@ -111,9 +111,8 @@ GLOBAL_LIST_EMPTY(monkey_recyclers)
animate(src, pixel_x = pixel_x + offset, time = 0.2, loop = 200) //start shaking
use_power(500)
grinded++
- sleep(50)
- pixel_x = initial(pixel_x)
to_chat(user, "The machine now has [grinded] monkey\s worth of material stored.")
+ addtimer(VARSET_CALLBACK(src, pixel_x, initial(pixel_x)), 5 SECONDS)
else
to_chat(user, "The machine only accepts monkeys!")
else
diff --git a/code/modules/food_and_drinks/kitchen_machinery/oven.dm b/code/modules/food_and_drinks/kitchen_machinery/oven.dm
deleted file mode 100644
index 94ebc9c61bb..00000000000
--- a/code/modules/food_and_drinks/kitchen_machinery/oven.dm
+++ /dev/null
@@ -1,80 +0,0 @@
-/obj/machinery/cooking
- name = "oven"
- desc = "Cookies are ready, dear."
- icon = 'icons/obj/cooking_machines.dmi'
- icon_state = "oven_off"
- layer = 2.9
- density = TRUE
- anchored = TRUE
- idle_power_consumption = 5
-
- var/candy = FALSE
- var/on = FALSE //Is it making food already?
- var/list/food_choices = list()
-
-/obj/machinery/cooking/Initialize(mapload)
- . = ..()
- updatefood()
-
-/obj/machinery/cooking/attackby(obj/item/I, mob/user, params)
- if(on)
- to_chat(user, "The machine is already running.")
- return
- else
- var/obj/item/F = I
- var/obj/item/food/snacks/customizable/C
- C = tgui_input_list(user, "Select food to make.", "Cooking", food_choices)
- if(!C)
- return
- else
- to_chat(user, "You put [F] into [src] for cooking.")
- user.drop_item()
- F.loc = src
- on = TRUE
- if(!candy)
- icon_state = "oven_on"
- else
- icon_state = "mixer_on"
- sleep(100)
- on = FALSE
- if(!candy)
- icon_state = "oven_off"
- else
- icon_state = "mixer_off"
- C.loc = get_turf(src)
- C.attackby(F,user, params)
- playsound(loc, 'sound/machines/ding.ogg', 50, 1)
- updatefood()
- return
-
-/obj/machinery/cooking/proc/updatefood()
- return
-
-/obj/machinery/cooking/oven
- name = "oven"
- desc = "Cookies are ready, dear."
- icon = 'icons/obj/cooking_machines.dmi'
- icon_state = "oven_off"
-
-/obj/machinery/cooking/oven/updatefood()
- for(var/U in food_choices)
- food_choices.Remove(U)
- for(var/U in subtypesof(/obj/item/food/snacks/customizable/cook))
- var/obj/item/food/snacks/customizable/cook/V = new U
- food_choices += V
- return
-
-/obj/machinery/cooking/candy
- name = "candy machine"
- desc = "Get yer box of deep fried deep fried deep fried deep fried cotton candy cereal sandwich cookies here!"
- icon = 'icons/obj/cooking_machines.dmi'
- icon_state = "mixer_off"
- candy = TRUE
-
-/obj/machinery/cooking/candy/updatefood()
- for(var/U in food_choices)
- food_choices.Remove(U)
- for(var/U in subtypesof(/obj/item/food/snacks/customizable/candy))
- var/obj/item/food/snacks/customizable/candy/V = new U
- food_choices += V
- return
diff --git a/code/modules/library/book.dm b/code/modules/library/book.dm
index 02316f5a95c..466033801e0 100644
--- a/code/modules/library/book.dm
+++ b/code/modules/library/book.dm
@@ -360,11 +360,14 @@
var/amount = 1
/obj/item/book/random/Initialize()
- ..()
- var/list/books = GLOB.library_catalog.get_random_book(amount, FALSE)
+ . = ..()
+ addtimer(CALLBACK(src, PROC_REF(spawn_books)), 0)
+
+/obj/item/book/random/proc/spawn_books()
+ var/list/books = GLOB.library_catalog.get_random_book(amount)
for(var/datum/cachedbook/book as anything in books)
new /obj/item/book(loc, book, TRUE, FALSE)
- return INITIALIZE_HINT_QDEL
+ qdel(src)
/obj/item/book/random/triple
amount = 3
diff --git a/code/modules/library/library_catalog.dm b/code/modules/library/library_catalog.dm
index 84f097eeea8..cabc94a9c3b 100644
--- a/code/modules/library/library_catalog.dm
+++ b/code/modules/library/library_catalog.dm
@@ -236,7 +236,7 @@
* * range - Amount of books we want to grab at once
* * datum/library_user_data/search_terms - datum with parameters for what we want to query our DB for
*/
-/datum/library_catalog/proc/get_book_by_range(initial = 1, range = 25, datum/library_user_data/search_terms, doAsync = TRUE)
+/datum/library_catalog/proc/get_book_by_range(initial = 1, range = 25, datum/library_user_data/search_terms)
var/list/search_query = build_search_query(search_terms)
var/sql = "SELECT id, author, title, content, summary, rating, raters, primary_category, secondary_category, tertiary_category, ckey, reports FROM library" + search_query[1] + " LIMIT :lowerlimit, :upperlimit"
var/list/sql_params = search_query[2]
@@ -246,7 +246,7 @@
var/datum/db_query/select_query = SSdbcore.NewQuery(sql, sql_params)
- if(!select_query.warn_execute(async = doAsync))
+ if(!select_query.warn_execute())
qdel(select_query)
return
@@ -309,13 +309,13 @@
* Arguments:
* * datum/library_user_data/search_terms - datum with parameters for what we want to query our DB for
*/
-/datum/library_catalog/proc/get_total_books(datum/library_user_data/search_terms, async = TRUE)
+/datum/library_catalog/proc/get_total_books(datum/library_user_data/search_terms)
var/list/search_query = build_search_query(search_terms)
var/sql = "SELECT COUNT(id) FROM library" + search_query[1]
var/list/sql_params = search_query[2]
var/datum/db_query/count_query = SSdbcore.NewQuery(sql, sql_params)
- if(!count_query.warn_execute(async))
+ if(!count_query.warn_execute())
qdel(count_query)
return
@@ -365,7 +365,7 @@
* Arguments:
* * amount - amount of random books to get
*/
-/datum/library_catalog/proc/get_random_book(amount = 1, doAsync = TRUE)
+/datum/library_catalog/proc/get_random_book(amount = 1)
if(!amount)
return
if(!SSdbcore.IsConnected())
@@ -374,7 +374,7 @@
var/list/sql_params = list("amount" = num_books )
var/sql = "SELECT id, author, title, content, summary, rating, primary_category, secondary_category, tertiary_category, ckey, reports FROM library GROUP BY title ORDER BY rand() LIMIT :amount"
var/datum/db_query/query = SSdbcore.NewQuery(sql, sql_params)
- if(!query.warn_execute(async = doAsync)) //this proc is used in initialize in some objects :)
+ if(!query.warn_execute())
qdel(query)
return
diff --git a/code/modules/library/library_computer.dm b/code/modules/library/library_computer.dm
index bf3aa54934e..2bac8221c60 100644
--- a/code/modules/library/library_computer.dm
+++ b/code/modules/library/library_computer.dm
@@ -52,9 +52,7 @@
/obj/machinery/computer/library/Initialize(mapload)
. = ..()
- populate_booklist(async = FALSE)
- //since ui_data screws up when SQL calls are made inside it,
- //we must populate our booklist before ui_act is called for the first time
+ addtimer(CALLBACK(src, PROC_REF(populate_booklist)), 0)
/obj/machinery/computer/library/attack_ai(mob/user)
return attack_hand(user)
@@ -538,11 +536,11 @@
* internal proc that will refresh our cached booklist, it needs to be called everytime we are switching parameters
* that will affect what books will be displayed in our TGUI player book archive.
*/
-/obj/machinery/computer/library/proc/populate_booklist(async = TRUE)
+/obj/machinery/computer/library/proc/populate_booklist()
cached_booklist = list() //clear old list
var/starting_book = (archive_page_num - 1) * LIBRARY_BOOKS_PER_PAGE
var/range = LIBRARY_BOOKS_PER_PAGE
- for(var/datum/cachedbook/CB in GLOB.library_catalog.get_book_by_range(starting_book, range, user_data, async))
+ for(var/datum/cachedbook/CB in GLOB.library_catalog.get_book_by_range(starting_book, range, user_data))
//instead of just adding the datum to the cached_booklist, we want to make it an assoc list so we can just give it to the TGUI
var/list/book_data = list(
@@ -561,13 +559,13 @@
book_data["categories"] += book_category.description //we're displaying the cats onlys, so we don't need the ids
cached_booklist += list(book_data)
- num_pages = getmaxpages(async)
+ num_pages = getmaxpages()
archive_page_num = clamp(archive_page_num, 1, num_pages)
///Returns the amount of pages we will need to hold all the book our DB has found
-/obj/machinery/computer/library/proc/getmaxpages(async = TRUE)
+/obj/machinery/computer/library/proc/getmaxpages()
//if get_total_books doesn't return anything, just set pages to 1 so we don't break stuff
- var/book_count = max(1, GLOB.library_catalog.get_total_books(user_data, async))
+ var/book_count = max(1, GLOB.library_catalog.get_total_books(user_data))
var/page_count = round(book_count / LIBRARY_BOOKS_PER_PAGE)
//Since 'round' gets the floor value it's likely there will be 1 page more than
//the page count amount (almost guaranteed), we check for a remainder because of this
diff --git a/code/modules/library/library_equipment.dm b/code/modules/library/library_equipment.dm
index 00790622c60..82e88b3a1ca 100644
--- a/code/modules/library/library_equipment.dm
+++ b/code/modules/library/library_equipment.dm
@@ -149,7 +149,10 @@
/obj/structure/bookcase/random/Initialize(mapload)
. = ..()
- var/list/books = GLOB.library_catalog.get_random_book(book_count, doAsync = FALSE)
+ addtimer(CALLBACK(src, PROC_REF(load_books)), 0)
+
+/obj/structure/bookcase/random/proc/load_books()
+ var/list/books = GLOB.library_catalog.get_random_book(book_count)
for(var/datum/cachedbook/book as anything in books)
new /obj/item/book(src, book, TRUE, FALSE)
update_icon(UPDATE_ICON_STATE)
diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm
index e5a281851a0..af923e9eaa4 100644
--- a/code/modules/mob/hear_say.dm
+++ b/code/modules/mob/hear_say.dm
@@ -106,7 +106,7 @@
if(speaker == src)
for(var/datum/multilingual_say_piece/SP in message_pieces)
if(SP.speaking && SP.speaking.flags & INNATE)
- custom_emote(EMOTE_AUDIBLE, message_clean, TRUE)
+ emote("me", EMOTE_AUDIBLE, message_clean, TRUE)
return
if(!can_hear())
diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm
index 4c3cf14fd3f..b94de5402a0 100644
--- a/code/modules/mob/living/simple_animal/hostile/hostile.dm
+++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm
@@ -334,7 +334,7 @@
/mob/living/simple_animal/hostile/proc/Aggro()
vision_range = aggro_vision_range
if(target && length(emote_taunt) && prob(taunt_chance))
- custom_emote(EMOTE_VISIBLE, "[pick(emote_taunt)] at [target].")
+ emote("me", EMOTE_VISIBLE, "[pick(emote_taunt)] at [target].")
taunt_chance = max(taunt_chance-7,2)
/mob/living/simple_animal/hostile/proc/LoseAggro()
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm
index 6452c440823..6e33ab51bc9 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm
@@ -240,7 +240,7 @@ Difficulty: Hard
. = ..()
var/newcolor = rgb(241, 137, 172)
add_atom_colour(newcolor, TEMPORARY_COLOUR_PRIORITY)
- beam_it_up()
+ addtimer(CALLBACK(src, PROC_REF(beam_it_up)), 0)
/obj/effect/vetus_laser/ex_act(severity)
return
diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm
index 96f7b7ecf4f..d28e071aa42 100644
--- a/code/modules/paperwork/paper_bundle.dm
+++ b/code/modules/paperwork/paper_bundle.dm
@@ -45,6 +45,7 @@
var/mob/living/carbon/human/H = user
H.update_inv_l_hand()
H.update_inv_r_hand()
+
else if(istype(W, /obj/item/photo))
amount++
photos++
@@ -53,8 +54,10 @@
to_chat(user, "You add [(W.name == "photo") ? "the photo" : W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].")
user.unEquip(W)
W.loc = src
+
else if(W.get_heat())
burnpaper(W, user)
+
else if(istype(W, /obj/item/paper_bundle))
user.unEquip(W)
for(var/obj/O in W)
@@ -65,6 +68,7 @@
screen = 1
to_chat(user, "You add \the [W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].")
qdel(W)
+
else
if(is_pen(W) || istype(W, /obj/item/toy/crayon))
usr << browse("", "window=PaperBundle[UID()]") //Closes the dialog
@@ -72,10 +76,6 @@
P.attackby(W, user, params)
update_icon()
- if(winget(usr, "PaperBundle[UID()]", "is-visible") == "true") // NOT MY FAULT IT IS A BUILT IN PROC PLEASE DO NOT HIT ME
- attack_self(usr) //Update the browsed page.
- add_fingerprint(usr)
- return
/obj/item/paper_bundle/proc/burnpaper(obj/item/heating_object, mob/user)
var/class = "warning"
@@ -136,7 +136,6 @@
/obj/item/paper_bundle/attack_self(mob/user as mob)
show_content(user)
add_fingerprint(usr)
- return
/obj/item/paper_bundle/Topic(href, href_list)
if(..())
diff --git a/code/modules/power/apc/apc.dm b/code/modules/power/apc/apc.dm
index 090c86b5c44..8703241cb0b 100644
--- a/code/modules/power/apc/apc.dm
+++ b/code/modules/power/apc/apc.dm
@@ -911,7 +911,6 @@
if(L.nightshift_allowed)
L.nightshift_enabled = nightshift_lights
L.update(FALSE, play_sound = FALSE)
- CHECK_TICK
/obj/machinery/power/apc/proc/relock_callback()
locked = TRUE
diff --git a/code/modules/power/lights.dm b/code/modules/power/lights.dm
index e0cc4c372a3..6c9db8515ea 100644
--- a/code/modules/power/lights.dm
+++ b/code/modules/power/lights.dm
@@ -825,9 +825,11 @@
// explode the light
/obj/machinery/light/proc/explode()
- var/turf/T = get_turf(loc)
break_light_tube() // break it first to give a warning
- sleep(2)
+ addtimer(CALLBACK(src, PROC_REF(actually_explode)), 2)
+
+/obj/machinery/light/proc/actually_explode()
+ var/turf/T = get_turf(loc)
explosion(T, 0, 0, 2, 2)
qdel(src)
diff --git a/paradise.dme b/paradise.dme
index f9f0d9f53b1..b0fd81970e2 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -1881,7 +1881,6 @@
#include "code\modules\food_and_drinks\kitchen_machinery\kitchen_machine.dm"
#include "code\modules\food_and_drinks\kitchen_machinery\microwave.dm"
#include "code\modules\food_and_drinks\kitchen_machinery\monkeyrecycler.dm"
-#include "code\modules\food_and_drinks\kitchen_machinery\oven.dm"
#include "code\modules\food_and_drinks\kitchen_machinery\oven_new.dm"
#include "code\modules\food_and_drinks\kitchen_machinery\processor.dm"
#include "code\modules\food_and_drinks\kitchen_machinery\smartfridge.dm"