diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm
index 0ae378e07f..75d214722a 100644
--- a/code/controllers/subsystem/job.dm
+++ b/code/controllers/subsystem/job.dm
@@ -566,7 +566,7 @@ SUBSYSTEM_DEF(job)
SendToAtom(M, pick(latejoin_trackers), buckle)
else
//bad mojo
- var/area/shuttle/arrival/A = locate() in GLOB.sortedAreas
+ var/area/shuttle/arrival/A = GLOB.areas_by_type[/area/shuttle/arrival]
if(A)
//first check if we can find a chair
var/obj/structure/chair/C = locate() in A
@@ -583,7 +583,7 @@ SUBSYSTEM_DEF(job)
return
//pick an open spot on arrivals and dump em
- var/list/arrivals_turfs = shuffle(GLOB.areas_by_type[/area/shuttle/arrival]))
+ var/list/arrivals_turfs = shuffle(get_area_turfs(/area/shuttle/arrival))
if(arrivals_turfs.len)
for(var/turf/T in arrivals_turfs)
if(!is_blocked_turf(T, TRUE))
@@ -636,4 +636,4 @@ SUBSYSTEM_DEF(job)
. |= player.mind
/datum/controller/subsystem/job/proc/JobDebug(message)
- log_job_debug(message)
+ log_job_debug(message)
\ No newline at end of file
diff --git a/code/controllers/subsystem/minimap.dm b/code/controllers/subsystem/minimap.dm
deleted file mode 100644
index 6f835d082f..0000000000
--- a/code/controllers/subsystem/minimap.dm
+++ /dev/null
@@ -1,125 +0,0 @@
-SUBSYSTEM_DEF(minimap)
- name = "Minimap"
- init_order = INIT_ORDER_MINIMAP
- flags = SS_NO_FIRE
- var/const/MINIMAP_SIZE = 2048
- var/const/TILE_SIZE = 8
-
- var/list/z_levels
-
-/datum/controller/subsystem/minimap/Initialize(timeofday)
- z_levels = SSmapping.levels_by_trait(ZTRAIT_STATION)
- var/list/hashlist = list()
- for (var/file in SSmapping.config.GetFullMapPaths())
- hashlist += md5(file2text(file))
- var/hash = hashlist.Join("\n")
- if(CONFIG_GET(flag/generate_minimaps))
- if(hash == trim(file2text(hash_path())))
- for(var/z in z_levels) //We have these files cached, let's register them
- register_asset("minimap_[z].png", fcopy_rsc(map_path(z)))
- return ..()
- for(var/z in z_levels)
- generate(z)
- register_asset("minimap_[z].png", fcopy_rsc(map_path(z)))
- fdel(hash_path())
- text2file(hash, hash_path())
- else
- to_chat(world, "Minimap generation disabled. Loading from cache...")
- var/fileloc = 0
- if(check_files(0)) //Let's first check if we have maps cached in the data folder. NOTE: This will override the backup files even if this map is older.
- if(hash != trim(file2text(hash_path())))
- to_chat(world, "Loaded cached minimap is outdated. There may be minor discrepancies in layout." )
- fileloc = 0
- else
- if(!check_files(1))
- to_chat(world, "Failed to load backup minimap file. Aborting." )
- return
- fileloc = 1 //No map image cached with the current map, and we have a backup. Let's fall back to it.
- to_chat(world, "No cached minimaps detected. Backup files loaded.")
- for(var/z in z_levels)
- register_asset("minimap_[z].png", fcopy_rsc(map_path(z,fileloc)))
- ..()
-
-/datum/controller/subsystem/minimap/proc/check_files(backup) // If the backup argument is true, looks in the icons folder. If false looks in the data folder.
- for(var/z in z_levels)
- if(!fexists(file(map_path(z,backup)))) //Let's make sure we have a file for this map
- if(backup)
- log_world("Failed to find backup file for map [SSmapping.config.map_name] on zlevel [z].")
- return FALSE
- return TRUE
-
-
-/datum/controller/subsystem/minimap/proc/hash_path(backup)
- if(backup)
- return "icons/minimaps/[SSmapping.config.map_name].md5"
- else
- return "data/minimaps/[SSmapping.config.map_name].md5"
-
-/datum/controller/subsystem/minimap/proc/map_path(z,backup)
- if(backup)
- return "icons/minimaps/[SSmapping.config.map_name]_[z].png"
- else
- return "data/minimaps/[SSmapping.config.map_name]_[z].png"
-
-/datum/controller/subsystem/minimap/proc/send(client/client)
- for(var/z in z_levels)
- send_asset(client, "minimap_[z].png")
-
-/datum/controller/subsystem/minimap/proc/generate(z, x1 = 1, y1 = 1, x2 = world.maxx, y2 = world.maxy)
- // Load the background.
- var/icon/minimap = new /icon('icons/minimap.dmi')
- // Scale it up to our target size.
- minimap.Scale(MINIMAP_SIZE, MINIMAP_SIZE)
-
- // Loop over turfs and generate icons.
- for(var/T in block(locate(x1, y1, z), locate(x2, y2, z)))
- generate_tile(T, minimap)
-
- // Create a new icon and insert the generated minimap, so that BYOND doesn't generate different directions.
- var/icon/final = new /icon()
- final.Insert(minimap, "", SOUTH, 1, 0)
- fcopy(final, map_path(z))
-
-/datum/controller/subsystem/minimap/proc/generate_tile(turf/tile, icon/minimap)
- var/icon/tile_icon
- var/obj/obj
- var/list/obj_icons
- // Don't use icons for space, just add objects in space if they exist.
- if(isspaceturf(tile))
- obj = locate(/obj/structure/lattice/catwalk) in tile
- if(obj)
- tile_icon = new /icon('icons/obj/smooth_structures/catwalk.dmi', "catwalk", SOUTH)
- obj = locate(/obj/structure/lattice) in tile
- if(obj)
- tile_icon = new /icon('icons/obj/smooth_structures/lattice.dmi', "lattice", SOUTH)
- obj = locate(/obj/structure/grille) in tile
- if(obj)
- tile_icon = new /icon('icons/obj/structures.dmi', "grille", SOUTH)
- obj = locate(/obj/structure/transit_tube) in tile
- if(obj)
- tile_icon = new /icon('icons/obj/atmospherics/pipes/transit_tube.dmi', obj.icon_state, obj.dir)
- else
- tile_icon = new /icon(tile.icon, tile.icon_state, tile.dir)
- obj_icons = list()
-
- obj = locate(/obj/structure) in tile
- if(obj)
- obj_icons += new /icon(obj.icon, obj.icon_state, obj.dir, 1, 0)
- obj = locate(/obj/machinery) in tile
- if(obj)
- obj_icons += new /icon(obj.icon, obj.icon_state, obj.dir, 1, 0)
- obj = locate(/obj/structure/window) in tile
- if(obj)
- obj_icons += new /icon('icons/obj/smooth_structures/window.dmi', "window", SOUTH)
- obj = locate(/obj/structure/table) in tile
- if(obj)
- obj_icons += new /icon('icons/obj/smooth_structures/table.dmi', "table", SOUTH)
- for(var/I in obj_icons)
- var/icon/obj_icon = I
- tile_icon.Blend(obj_icon, ICON_OVERLAY)
-
- if(tile_icon)
- // Scale the icon.
- tile_icon.Scale(TILE_SIZE, TILE_SIZE)
- // Add the tile to the minimap.
- minimap.Blend(tile_icon, ICON_OVERLAY, ((tile.x - 1) * TILE_SIZE), ((tile.y - 1) * TILE_SIZE))
diff --git a/code/controllers/subsystem/research.dm b/code/controllers/subsystem/research.dm
index 56f933724d..4aee87a38f 100644
--- a/code/controllers/subsystem/research.dm
+++ b/code/controllers/subsystem/research.dm
@@ -40,7 +40,8 @@ SUBSYSTEM_DEF(research)
/obj/item/slime_extract/adamantine =list (TECHWEB_POINT_TYPE_GENERIC = 1500),
/obj/item/slime_extract/oil = list(TECHWEB_POINT_TYPE_GENERIC = 1500),
/obj/item/slime_extract/lightpink = list(TECHWEB_POINT_TYPE_GENERIC = 1500),
- /obj/item/slime_extract/rainbow = list(TECHWEB_POINT_TYPE_GENERIC = 2500) // End of Cit changes
+ /obj/item/slime_extract/rainbow = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
+ ) // End of Cit changes
var/list/errored_datums = list()
var/list/point_types = list() //typecache style type = TRUE list
//----------------------------------------------
diff --git a/code/datums/components/squeek.dm b/code/datums/components/squeek.dm
deleted file mode 100644
index 3d88655b73..0000000000
--- a/code/datums/components/squeek.dm
+++ /dev/null
@@ -1,54 +0,0 @@
-/datum/component/squeak
- var/static/list/default_squeak_sounds = list('sound/items/toysqueak1.ogg'=1, 'sound/items/toysqueak2.ogg'=1, 'sound/items/toysqueak3.ogg'=1)
- var/list/override_squeak_sounds
- var/squeak_chance = 100
- var/volume = 30
-
- // This is so shoes don't squeak every step
- var/steps = 0
- var/step_delay = 1
-
- // This is to stop squeak spam from inhand usage
- var/last_use = 0
- var/use_delay = 20
-
-/datum/component/squeak/Initialize(custom_sounds, volume_override, chance_override, step_delay_override, use_delay_override)
- if(custom_sounds)
- override_squeak_sounds = custom_sounds
- if(chance_override)
- squeak_chance = chance_override
- if(volume_override)
- volume = volume_override
- if(step_delay_override)
- step_delay = step_delay_override
- if(use_delay_override)
- use_delay = use_delay_override
-
- RegisterSignal(parent, list(COMSIG_ATOM_ENTERED, COMSIG_ATOM_BLOB_ACT, COMSIG_ATOM_HULK_ATTACK, COMSIG_PARENT_ATTACKBY, COMSIG_MOVABLE_COLLIDE, COMSIG_MOVABLE_IMPACT, COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_OBJ), .proc/play_squeak)
- RegisterSignal(parent, COMSIG_MOVABLE_CROSSED, .proc/play_squeak_turf)
- RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/use_squeak)
- RegisterSignal(parent, COMSIG_SHOES_STEP_ACTION, .proc/step_squeak)
-
-/datum/component/squeak/proc/play_squeak()
- if(prob(squeak_chance))
- if(!override_squeak_sounds)
- playsound(parent, pickweight(default_squeak_sounds), volume, 1, -1)
- else
- playsound(parent, pickweight(override_squeak_sounds), volume, 1, -1)
-
-/datum/component/squeak/proc/step_squeak()
- if(steps > step_delay)
- play_squeak()
- steps = 0
- else
- steps++
-
-/datum/component/squeak/proc/play_squeak_turf()
- var/atom/current_parent = parent
- if(isturf(current_parent.loc))
- play_squeak()
-
-/datum/component/squeak/proc/use_squeak()
- if(last_use + use_delay < world.time)
- last_use = world.time
- play_squeak()
\ No newline at end of file
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 47368a664d..a61cb0d32b 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -71,7 +71,7 @@ GLOBAL_LIST_INIT(admin_verbs_admin, world.AVerbsAdmin())
/client/proc/panicbunker,
/client/proc/stop_sounds,
/client/proc/hide_verbs, /*hides all our adminverbs*/
- /client/proc/hide_most_verbs /*hides all our hideable adminverbs*/
+ /client/proc/hide_most_verbs, /*hides all our hideable adminverbs*/
/datum/admins/proc/open_borgopanel
)
GLOBAL_PROTECT(admin_verbs_ban)
diff --git a/modular_citadel/cit_turfs.dm b/modular_citadel/cit_turfs.dm
index 582552b83b..76a8e75f9c 100644
--- a/modular_citadel/cit_turfs.dm
+++ b/modular_citadel/cit_turfs.dm
@@ -1,72 +1,5 @@
//Yes, hi. This is the file that handles Citadel's turf modifications.
-//But before we touch turfs, we'll take some time to define a couple of things for footstep sounds.
-/mob/living
- var/makesfootstepsounds
- var/footstepcount
-
-/mob/living/carbon/human
- makesfootstepsounds = TRUE
-
-/atom
- var/footstepsoundoverride
-
-//All of these sounds are from CEV Eris as of 11/25/2017, the time when the original PR adding footstep sounds was made.
-GLOBAL_LIST_INIT(turf_footstep_sounds, list(
- "floor" = list('modular_citadel/sound/footstep/floor1.ogg','modular_citadel/sound/footstep/floor2.ogg','modular_citadel/sound/footstep/floor3.ogg','modular_citadel/sound/footstep/floor4.ogg','modular_citadel/sound/footstep/floor5.ogg'),
- "plating" = list('modular_citadel/sound/footstep/plating1.ogg','modular_citadel/sound/footstep/plating2.ogg','modular_citadel/sound/footstep/plating3.ogg','modular_citadel/sound/footstep/plating4.ogg','modular_citadel/sound/footstep/plating5.ogg'),
- "wood" = list('modular_citadel/sound/footstep/wood1.ogg','modular_citadel/sound/footstep/wood2.ogg','modular_citadel/sound/footstep/wood3.ogg','modular_citadel/sound/footstep/wood4.ogg','modular_citadel/sound/footstep/wood5.ogg'),
- "carpet" = list('modular_citadel/sound/footstep/carpet1.ogg','modular_citadel/sound/footstep/carpet2.ogg','modular_citadel/sound/footstep/carpet3.ogg','modular_citadel/sound/footstep/carpet4.ogg','modular_citadel/sound/footstep/carpet5.ogg'),
- "hull" = list('modular_citadel/sound/footstep/hull1.ogg','modular_citadel/sound/footstep/hull2.ogg','modular_citadel/sound/footstep/hull3.ogg','modular_citadel/sound/footstep/hull4.ogg','modular_citadel/sound/footstep/hull5.ogg'),
- "catwalk" = list('modular_citadel/sound/footstep/catwalk1.ogg','modular_citadel/sound/footstep/catwalk2.ogg','modular_citadel/sound/footstep/catwalk3.ogg','modular_citadel/sound/footstep/catwalk4.ogg','modular_citadel/sound/footstep/catwalk5.ogg'),
- "asteroid" = list('modular_citadel/sound/footstep/asteroid1.ogg','modular_citadel/sound/footstep/asteroid2.ogg','modular_citadel/sound/footstep/asteroid3.ogg','modular_citadel/sound/footstep/asteroid4.ogg','modular_citadel/sound/footstep/asteroid5.ogg')
- ))
-
-/turf/open
- var/footstepsounds
-
-/turf/open/floor
- footstepsounds = "floor"
-
-/turf/open/floor/plating
- footstepsounds = "plating"
-
-/turf/open/floor/wood
- footstepsounds = "wood"
-
-/turf/open/floor/plating/asteroid
- footstepsounds = "asteroid"
-
-/turf/open/floor/plating/dirt
- footstepsounds = "asteroid"
-
-/turf/open/floor/grass
- footstepsounds = "asteroid"
-
-/turf/open/floor/carpet
- footstepsounds = "carpet"
-
-/turf/open/floor/plasteel/grimy
- footstepsounds = "carpet"
-
-/obj/machinery/atmospherics/components/unary/vent_pump
- footstepsoundoverride = "catwalk"
-
-/obj/machinery/atmospherics/components/unary/vent_scrubber
- footstepsoundoverride = "catwalk"
-
-/obj/structure/disposalpipe
- footstepsoundoverride = "catwalk"
-
-/obj/machinery/holopad
- footstepsoundoverride = "catwalk"
-
-/obj/structure/table
- footstepsoundoverride = "hull"
-
-/obj/structure/table/wood
- footstepsoundoverride = "wood"
-
/*
/turf/open/floor/Entered(atom/obj, atom/oldloc)
. = ..()
@@ -89,39 +22,3 @@ GLOBAL_LIST_INIT(turf_footstep_sounds, list(
dirtamount += round(spreadindirt.alpha * 0.05)
dirt.alpha = min(dirtamount,255)
return TRUE
-
-//The proc that handles footsteps! It's pure, unfiltered spaghetti code.
-/mob/living/proc/CitFootstep(turf/open/floor)
- if(floor && istype(floor,/turf/open) && floor.footstepsounds)
- if(has_gravity(floor) || prob(25))
- footstepcount++
- if(canmove && !lying && !buckled && makesfootstepsounds && m_intent == MOVE_INTENT_RUN && footstepcount >= 3)
- footstepcount = 0
- var/overriddenfootstepsound
- if(footstepsoundoverride)
- if(isfile(footstepsoundoverride))
- overriddenfootstepsound = list(footstepsoundoverride)
- else
- overriddenfootstepsound = footstepsoundoverride
- if(!overriddenfootstepsound && istype(src, /mob/living/carbon/human))
- var/mob/living/carbon/human/H = src
- if(H && H.shoes)
- var/obj/item/clothing/shoes/S = H.shoes
- if(S && S.footstepsoundoverride)
- if(isfile(S.footstepsoundoverride))
- overriddenfootstepsound = list(S.footstepsoundoverride)
- else
- overriddenfootstepsound = S.footstepsoundoverride
- if(!overriddenfootstepsound && floor.contents)
- var/objschecked
- for(var/atom/childobj in floor.contents)
- if(childobj.footstepsoundoverride && childobj.invisibility < INVISIBILITY_MAXIMUM)
- if(isfile(childobj.footstepsoundoverride))
- overriddenfootstepsound = list(childobj.footstepsoundoverride)
- else
- overriddenfootstepsound = childobj.footstepsoundoverride
- break
- objschecked++
- if(objschecked >= 25)
- break //walking on 50k foam darts didn't crash the server during my testing, but its better to be safe than sorry
- playsound(src,(overriddenfootstepsound ? (islist(overriddenfootstepsound) ? pick(overriddenfootstepsound) : pick(GLOB.turf_footstep_sounds[overriddenfootstepsound])) : (islist(floor.footstepsounds) ? pick(floor.footstepsounds) : pick(GLOB.turf_footstep_sounds[floor.footstepsounds]))),50, 1)
diff --git a/tgstation.dme b/tgstation.dme
index e912ebd6a2..482e830785 100755
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -41,8 +41,10 @@
#include "code\__DEFINES\diseases.dm"
#include "code\__DEFINES\DNA.dm"
#include "code\__DEFINES\events.dm"
+#include "code\__DEFINES\exports.dm"
#include "code\__DEFINES\flags.dm"
#include "code\__DEFINES\food.dm"
+#include "code\__DEFINES\footsteps.dm"
#include "code\__DEFINES\forensics.dm"
#include "code\__DEFINES\hud.dm"
#include "code\__DEFINES\integrated_electronics.dm"
@@ -63,6 +65,7 @@
#include "code\__DEFINES\misc.dm"
#include "code\__DEFINES\mobs.dm"
#include "code\__DEFINES\monkeys.dm"
+#include "code\__DEFINES\movespeed_modification.dm"
#include "code\__DEFINES\nanites.dm"
#include "code\__DEFINES\networks.dm"
#include "code\__DEFINES\obj_flags.dm"
@@ -96,6 +99,7 @@
#include "code\__DEFINES\traits.dm"
#include "code\__DEFINES\turf_flags.dm"
#include "code\__DEFINES\typeids.dm"
+#include "code\__DEFINES\vehicles.dm"
#include "code\__DEFINES\voreconstants.dm"
#include "code\__DEFINES\vv.dm"
#include "code\__DEFINES\wall_dents.dm"
@@ -1635,6 +1639,7 @@
#include "code\modules\holodeck\mobs.dm"
#include "code\modules\holodeck\turfs.dm"
#include "code\modules\hydroponics\biogenerator.dm"
+#include "code\modules\hydroponics\fermenting_barrel.dm"
#include "code\modules\hydroponics\gene_modder.dm"
#include "code\modules\hydroponics\grown.dm"
#include "code\modules\hydroponics\growninedible.dm"
@@ -1696,6 +1701,7 @@
#include "code\modules\integrated_electronics\core\special_pins\list_pin.dm"
#include "code\modules\integrated_electronics\core\special_pins\number_pin.dm"
#include "code\modules\integrated_electronics\core\special_pins\ref_pin.dm"
+#include "code\modules\integrated_electronics\core\special_pins\selfref_pin.dm"
#include "code\modules\integrated_electronics\core\special_pins\string_pin.dm"
#include "code\modules\integrated_electronics\passive\passive.dm"
#include "code\modules\integrated_electronics\passive\power.dm"
@@ -1771,8 +1777,10 @@
#include "code\modules\mapping\dmm_suite.dm"
#include "code\modules\mapping\map_template.dm"
#include "code\modules\mapping\mapping_helpers.dm"
+#include "code\modules\mapping\preloader.dm"
#include "code\modules\mapping\reader.dm"
#include "code\modules\mapping\ruins.dm"
+#include "code\modules\mapping\verify.dm"
#include "code\modules\mapping\space_management\space_level.dm"
#include "code\modules\mapping\space_management\space_reservation.dm"
#include "code\modules\mapping\space_management\space_transition.dm"
@@ -1784,6 +1792,7 @@
#include "code\modules\mining\fulton.dm"
#include "code\modules\mining\machine_processing.dm"
#include "code\modules\mining\machine_redemption.dm"
+#include "code\modules\mining\machine_silo.dm"
#include "code\modules\mining\machine_stacking.dm"
#include "code\modules\mining\machine_unloading.dm"
#include "code\modules\mining\machine_vending.dm"
@@ -1820,6 +1829,7 @@
#include "code\modules\mob\mob_defines.dm"
#include "code\modules\mob\mob_helpers.dm"
#include "code\modules\mob\mob_movement.dm"
+#include "code\modules\mob\mob_movespeed.dm"
#include "code\modules\mob\mob_transformation_simple.dm"
#include "code\modules\mob\say.dm"
#include "code\modules\mob\say_vr.dm"
@@ -1849,6 +1859,7 @@
#include "code\modules\mob\living\living.dm"
#include "code\modules\mob\living\living_defense.dm"
#include "code\modules\mob\living\living_defines.dm"
+#include "code\modules\mob\living\living_movement.dm"
#include "code\modules\mob\living\login.dm"
#include "code\modules\mob\living\logout.dm"
#include "code\modules\mob\living\say.dm"