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"