From c974e29a3c2de3e33ec50ee6379899de63e1dea3 Mon Sep 17 00:00:00 2001 From: Desolate Date: Tue, 2 Oct 2018 15:52:46 -0500 Subject: [PATCH 01/54] global lists global defined --- .../components/unary_devices/vent_pump.dm | 4 +- code/__HELPERS/_logging.dm | 2 +- code/__HELPERS/game.dm | 20 ++-- code/__HELPERS/global_lists.dm | 50 +++++----- code/__HELPERS/mobs.dm | 42 ++++---- code/__HELPERS/names.dm | 22 ++--- code/__HELPERS/time.dm | 2 +- code/__HELPERS/unsorted.dm | 12 +-- code/_globalvars/lists/flavor_misc.dm | 64 ++++++------ code/_globalvars/lists/misc.dm | 26 ++--- code/_globalvars/lists/mobs.dm | 52 +++++----- code/_globalvars/lists/names.dm | 32 +++--- code/_globalvars/lists/objects.dm | 76 +++++++------- code/controllers/Processes/fast_process.dm | 4 +- code/controllers/Processes/npcai.dm | 22 ++--- code/controllers/Processes/shuttles.dm | 2 +- code/controllers/failsafe.dm | 10 +- code/controllers/master.dm | 4 +- code/controllers/subsystem/air.dm | 4 +- code/controllers/subsystem/machinery.dm | 6 +- code/controllers/subsystem/mobs.dm | 6 +- code/controllers/subsystem/nightshift.dm | 2 +- code/controllers/subsystem/weather.dm | 2 +- code/controllers/voting.dm | 2 +- code/datums/cache/air_alarm.dm | 2 +- code/datums/cache/crew.dm | 2 +- code/datums/cache/powermonitor.dm | 2 +- code/datums/datacore.dm | 18 ++-- code/datums/datumvars.dm | 4 +- code/datums/diseases/_MobProcs.dm | 2 +- code/datums/diseases/_disease.dm | 2 +- code/datums/diseases/advance/advance.dm | 6 +- code/datums/mind.dm | 10 +- code/datums/outfits/outfit_admin.dm | 4 +- code/datums/spells/knock.dm | 2 +- code/datums/status_effects/status_effect.dm | 4 +- code/datums/weather/weather.dm | 6 +- code/defines/procs/announce.dm | 8 +- code/defines/procs/statistics.dm | 4 +- code/game/area/areas.dm | 2 +- code/game/area/depot-areas.dm | 10 +- code/game/dna/dna2.dm | 14 +-- code/game/dna/dna2_helpers.dm | 48 ++++----- code/game/dna/genes/vg_powers.dm | 8 +- .../game/gamemodes/autotraitor/autotraitor.dm | 4 +- code/game/gamemodes/blob/blob.dm | 6 +- code/game/gamemodes/blob/blob_report.dm | 2 +- code/game/gamemodes/blob/blobs/core.dm | 4 +- code/game/gamemodes/blob/overmind.dm | 2 +- code/game/gamemodes/blob/powers.dm | 2 +- code/game/gamemodes/blob/theblob.dm | 2 +- .../gamemodes/changeling/powers/linglink.dm | 4 +- .../game/gamemodes/changeling/traitor_chan.dm | 2 +- code/game/gamemodes/cult/cult.dm | 2 +- code/game/gamemodes/cult/cult_comms.dm | 4 +- code/game/gamemodes/cult/cult_items.dm | 2 +- code/game/gamemodes/cult/cult_objectives.dm | 16 +-- code/game/gamemodes/cult/runes.dm | 2 +- code/game/gamemodes/game_mode.dm | 30 +++--- code/game/gamemodes/gameticker.dm | 22 ++--- code/game/gamemodes/intercept_report.dm | 12 +-- .../gamemodes/malfunction/Malf_Modules.dm | 28 +++--- code/game/gamemodes/meteor/meteor.dm | 2 +- code/game/gamemodes/meteor/meteors.dm | 6 +- .../abduction/abductee_objectives.dm | 2 +- .../miniantags/abduction/abduction.dm | 6 +- .../miniantags/abduction/abduction_gear.dm | 4 +- .../miniantags/abduction/abduction_outfits.dm | 2 +- .../miniantags/abduction/machinery/camera.dm | 2 +- .../miniantags/abduction/machinery/console.dm | 12 +-- code/game/gamemodes/miniantags/borer/borer.dm | 12 +-- .../gamemodes/miniantags/bot_swarm/swarmer.dm | 4 +- .../miniantags/bot_swarm/swarmer_event.dm | 2 +- .../gamemodes/miniantags/guardian/guardian.dm | 14 +-- .../gamemodes/miniantags/revenant/revenant.dm | 4 +- .../revenant/revenant_spawn_event.dm | 6 +- .../miniantags/slaughter/slaughter.dm | 4 +- code/game/gamemodes/nations/nations.dm | 40 ++++---- code/game/gamemodes/nuclear/nuclear.dm | 10 +- .../gamemodes/nuclear/nuclear_challenge.dm | 8 +- code/game/gamemodes/nuclear/nuclearbomb.dm | 10 +- code/game/gamemodes/nuclear/pinpointer.dm | 12 +-- code/game/gamemodes/objective.dm | 10 +- code/game/gamemodes/revolution/revolution.dm | 2 +- code/game/gamemodes/sandbox/sandbox.dm | 2 +- code/game/gamemodes/scoreboard.dm | 12 +-- .../shadowling/ascendant_shadowling.dm | 2 +- .../shadowling/shadowling_abilities.dm | 4 +- .../special_shadowling_abilities.dm | 2 +- code/game/gamemodes/traitor/traitor.dm | 2 +- code/game/gamemodes/vampire/traitor_vamp.dm | 2 +- code/game/gamemodes/wizard/artefact.dm | 6 +- code/game/gamemodes/wizard/raginmages.dm | 2 +- code/game/gamemodes/wizard/rightandwrong.dm | 2 +- code/game/gamemodes/wizard/soulstone.dm | 2 +- code/game/gamemodes/wizard/spellbook.dm | 2 +- code/game/gamemodes/wizard/wizard.dm | 4 +- code/game/jobs/access.dm | 6 +- code/game/jobs/job_controller.dm | 8 +- code/game/jobs/job_exp.dm | 4 +- code/game/jobs/job_scaling.dm | 2 +- code/game/machinery/Sleeper.dm | 2 +- code/game/machinery/alarm.dm | 6 +- code/game/machinery/atmo_control.dm | 4 +- code/game/machinery/camera/camera.dm | 6 +- code/game/machinery/camera/camera_assembly.dm | 2 +- code/game/machinery/camera/tracking.dm | 2 +- code/game/machinery/computer/aifixer.dm | 4 +- code/game/machinery/computer/arcade.dm | 4 +- code/game/machinery/computer/card.dm | 2 +- .../game/machinery/computer/communications.dm | 16 +-- code/game/machinery/computer/depot.dm | 2 +- code/game/machinery/computer/medical.dm | 2 +- code/game/machinery/computer/pod.dm | 14 +-- code/game/machinery/computer/power.dm | 6 +- code/game/machinery/computer/prisoner.dm | 8 +- code/game/machinery/computer/robot.dm | 6 +- code/game/machinery/computer/security.dm | 14 +-- code/game/machinery/computer/skills.dm | 6 +- .../computer/syndicate_specops_shuttle.dm | 6 +- .../machinery/computer/telecrystalconsoles.dm | 2 +- code/game/machinery/cryopod.dm | 8 +- code/game/machinery/door_control.dm | 2 +- code/game/machinery/doors/airlock.dm | 2 +- code/game/machinery/doors/brigdoors.dm | 10 +- code/game/machinery/doors/door.dm | 4 +- code/game/machinery/machinery.dm | 12 +-- code/game/machinery/navbeacon.dm | 14 +-- code/game/machinery/requests_console.dm | 4 +- code/game/machinery/syndicatebeacon.dm | 2 +- code/game/machinery/syndicatebomb.dm | 10 +- code/game/machinery/teleporter.dm | 4 +- code/game/mecha/equipment/tools/work_tools.dm | 4 +- code/game/mecha/mecha.dm | 8 +- code/game/objects/effects/anomalies.dm | 4 +- code/game/objects/effects/landmarks.dm | 10 +- code/game/objects/effects/manifest.dm | 2 +- code/game/objects/effects/portals.dm | 4 +- code/game/objects/explosion.dm | 2 +- code/game/objects/items/cardboard_cutouts.dm | 10 +- code/game/objects/items/devices/powersink.dm | 8 +- .../objects/items/devices/radio/beacon.dm | 6 +- .../objects/items/devices/radio/headset.dm | 4 +- .../objects/items/devices/radio/intercom.dm | 4 +- .../game/objects/items/devices/radio/radio.dm | 8 +- code/game/objects/items/devices/scanners.dm | 2 +- .../objects/items/devices/traitordevices.dm | 6 +- code/game/objects/items/random_items.dm | 4 +- code/game/objects/items/robot/robot_parts.dm | 6 +- .../objects/items/robot/robot_upgrades.dm | 6 +- code/game/objects/items/weapons/AI_modules.dm | 2 +- code/game/objects/items/weapons/RCD.dm | 4 +- .../weapons/implants/implant_abductor.dm | 2 +- .../items/weapons/implants/implant_chem.dm | 4 +- .../items/weapons/implants/implant_track.dm | 4 +- code/game/objects/items/weapons/mop.dm | 4 +- code/game/objects/items/weapons/scissors.dm | 12 +-- code/game/objects/items/weapons/stunbaton.dm | 2 +- .../objects/items/weapons/teleportation.dm | 4 +- code/game/objects/objs.dm | 8 +- code/game/objects/structures/dresser.dm | 18 ++-- code/game/objects/structures/flora.dm | 2 +- code/game/objects/structures/janicart.dm | 4 +- code/game/objects/structures/mop_bucket.dm | 4 +- code/game/response_team.dm | 8 +- code/game/sound.dm | 4 +- code/game/verbs/ooc.dm | 8 +- code/game/verbs/who.dm | 8 +- code/game/world.dm | 20 ++-- code/modules/admin/DB ban/functions.dm | 4 +- code/modules/admin/IsBanned.dm | 2 +- code/modules/admin/admin.dm | 16 +-- code/modules/admin/admin_ranks.dm | 8 +- code/modules/admin/admin_verbs.dm | 36 +++---- code/modules/admin/buildmode.dm | 6 +- code/modules/admin/holder2.dm | 4 +- code/modules/admin/player_panel.dm | 2 +- code/modules/admin/sql_notes.dm | 2 +- code/modules/admin/topic.dm | 44 ++++----- code/modules/admin/verbs/adminhelp.dm | 6 +- code/modules/admin/verbs/adminjump.dm | 10 +- code/modules/admin/verbs/adminpm.dm | 8 +- code/modules/admin/verbs/adminsay.dm | 6 +- code/modules/admin/verbs/alt_check.dm | 2 +- code/modules/admin/verbs/antag-ooc.dm | 2 +- code/modules/admin/verbs/custom_event.dm | 2 +- code/modules/admin/verbs/debug.dm | 54 +++++----- code/modules/admin/verbs/freeze.dm | 4 +- code/modules/admin/verbs/gimmick_team.dm | 2 +- code/modules/admin/verbs/honksquad.dm | 6 +- .../admin/verbs/infiltratorteam_syndicate.dm | 4 +- code/modules/admin/verbs/massmodvar.dm | 8 +- code/modules/admin/verbs/modifyvariables.dm | 2 +- code/modules/admin/verbs/one_click_antag.dm | 20 ++-- code/modules/admin/verbs/onlyone.dm | 4 +- code/modules/admin/verbs/onlyoneteam.dm | 2 +- code/modules/admin/verbs/playsound.dm | 6 +- code/modules/admin/verbs/pray.dm | 12 +-- code/modules/admin/verbs/randomverbs.dm | 32 +++--- code/modules/admin/verbs/striketeam.dm | 8 +- .../admin/verbs/striketeam_syndicate.dm | 6 +- .../implementation/emitters.dm | 2 +- .../implementation/injectors.dm | 4 +- .../implementation/scrubbers.dm | 6 +- .../implementation/sensors.dm | 4 +- .../implementation/vent_pump.dm | 8 +- .../mission_code/UO71-terrorspiders.dm | 2 +- .../awaymissions/mission_code/wildwest.dm | 10 +- code/modules/awaymissions/zlevel.dm | 4 +- code/modules/awaymissions/zvis.dm | 6 +- code/modules/client/asset_cache.dm | 2 +- code/modules/client/client procs.dm | 16 +-- code/modules/client/preference/preferences.dm | 98 +++++++++---------- .../client/preference/preferences_mysql.dm | 10 +- code/modules/clothing/suits/miscellaneous.dm | 2 +- code/modules/clothing/under/color.dm | 2 +- code/modules/countdown/countdown.dm | 6 +- code/modules/crafting/craft.dm | 2 +- code/modules/customitems/item_defines.dm | 2 +- code/modules/economy/ATM.dm | 2 +- code/modules/economy/Accounts.dm | 2 +- code/modules/economy/EFTPOS.dm | 2 +- .../modules/economy/Economy_Events_Mundane.dm | 4 +- code/modules/events/alien_infestation.dm | 2 +- code/modules/events/aurora_caelus.dm | 2 +- code/modules/events/blob.dm | 2 +- code/modules/events/brand_intelligence.dm | 2 +- code/modules/events/carp_migration.dm | 4 +- .../modules/events/communications_blackout.dm | 4 +- code/modules/events/disease_outbreak.dm | 2 +- code/modules/events/electrical_storm.dm | 2 +- code/modules/events/event_container.dm | 2 +- code/modules/events/event_manager.dm | 6 +- code/modules/events/grid_check.dm | 10 +- code/modules/events/holidays/Christmas.dm | 2 +- code/modules/events/immovable_rod.dm | 4 +- code/modules/events/ion_storm.dm | 6 +- code/modules/events/koi_mirgration.dm | 2 +- code/modules/events/mass_hallucination.dm | 2 +- code/modules/events/money_spam.dm | 4 +- code/modules/events/prison_break.dm | 2 +- code/modules/events/rogue_drones.dm | 2 +- code/modules/events/sentience.dm | 4 +- code/modules/events/slaughterevent.dm | 4 +- code/modules/events/spider_terror.dm | 2 +- .../events/spontaneous_appendicitis.dm | 2 +- code/modules/events/traders.dm | 4 +- code/modules/events/undead.dm | 2 +- code/modules/events/vent_clog.dm | 2 +- code/modules/events/wormholes.dm | 4 +- code/modules/flufftext/Dreaming.dm | 4 +- code/modules/flufftext/Hallucination.dm | 10 +- code/modules/holiday/christmas.dm | 2 +- .../hydroponics/beekeeping/honeycomb.dm | 2 +- code/modules/hydroponics/grown.dm | 2 +- code/modules/hydroponics/grown/replicapod.dm | 4 +- code/modules/hydroponics/plant_genes.dm | 2 +- code/modules/karma/karma.dm | 4 +- code/modules/martial_arts/adminfu.dm | 2 +- code/modules/martial_arts/brawling.dm | 8 +- code/modules/martial_arts/martial.dm | 4 +- .../mining/lavaland/loot/ashdragon_loot.dm | 6 +- .../mining/lavaland/loot/bubblegum_loot.dm | 4 +- code/modules/mining/mine_turfs.dm | 4 +- code/modules/mob/dead/observer/login.dm | 4 +- code/modules/mob/dead/observer/observer.dm | 26 ++--- code/modules/mob/death.dm | 18 ++-- code/modules/mob/emote.dm | 4 +- code/modules/mob/language.dm | 22 ++--- code/modules/mob/living/carbon/alien/alien.dm | 4 +- code/modules/mob/living/carbon/alien/death.dm | 4 +- .../carbon/alien/humanoid/alien_powers.dm | 2 +- .../carbon/alien/humanoid/caste/drone.dm | 2 +- .../living/carbon/alien/humanoid/empress.dm | 2 +- .../mob/living/carbon/alien/humanoid/queen.dm | 2 +- .../mob/living/carbon/alien/larva/death.dm | 2 +- .../carbon/alien/special/alien_embryo.dm | 4 +- code/modules/mob/living/carbon/brain/MMI.dm | 10 +- code/modules/mob/living/carbon/brain/death.dm | 2 +- .../mob/living/carbon/brain/robotic_brain.dm | 4 +- .../mob/living/carbon/human/appearance.dm | 48 ++++----- code/modules/mob/living/carbon/human/emote.dm | 4 +- .../mob/living/carbon/human/examine.dm | 2 +- code/modules/mob/living/carbon/human/human.dm | 4 +- .../mob/living/carbon/human/human_damage.dm | 2 +- .../mob/living/carbon/human/human_defense.dm | 2 +- .../carbon/human/interactive/interactive.dm | 10 +- .../living/carbon/human/species/_species.dm | 6 +- .../living/carbon/human/species/machine.dm | 4 +- .../mob/living/carbon/human/species/wryn.dm | 2 +- .../mob/living/carbon/human/update_icons.dm | 24 ++--- code/modules/mob/living/carbon/slime/slime.dm | 2 +- code/modules/mob/living/living.dm | 4 +- code/modules/mob/living/say.dm | 8 +- code/modules/mob/living/silicon/ai/ai.dm | 30 +++--- code/modules/mob/living/silicon/ai/death.dm | 4 +- .../modules/mob/living/silicon/ai/latejoin.dm | 8 +- code/modules/mob/living/silicon/ai/laws.dm | 2 +- code/modules/mob/living/silicon/ai/login.dm | 4 +- code/modules/mob/living/silicon/ai/say.dm | 2 +- code/modules/mob/living/silicon/death.dm | 4 +- code/modules/mob/living/silicon/pai/death.dm | 2 +- .../modules/mob/living/silicon/pai/recruit.dm | 10 +- .../living/silicon/pai/software_modules.dm | 2 +- .../modules/mob/living/silicon/robot/death.dm | 6 +- .../mob/living/silicon/robot/drone/drone.dm | 2 +- .../silicon/robot/drone/drone_abilities.dm | 6 +- .../silicon/robot/drone/drone_console.dm | 4 +- .../living/silicon/robot/drone/drone_say.dm | 2 +- code/modules/mob/living/silicon/silicon.dm | 6 +- .../mob/living/simple_animal/bot/bot.dm | 10 +- .../mob/living/simple_animal/bot/medbot.dm | 2 +- .../mob/living/simple_animal/bot/mulebot.dm | 6 +- .../simple_animal/friendly/spiderbot.dm | 6 +- .../mob/living/simple_animal/hostile/bees.dm | 2 +- .../hostile/megafauna/bubblegum.dm | 2 +- .../simple_animal/hostile/megafauna/legion.dm | 2 +- .../living/simple_animal/hostile/statue.dm | 2 +- .../living/simple_animal/hostile/syndicate.dm | 4 +- .../hostile/terror_spiders/ghost.dm | 2 +- .../hostile/terror_spiders/queen.dm | 2 +- .../hostile/terror_spiders/terror_ai.dm | 2 +- .../hostile/terror_spiders/terror_spiders.dm | 2 +- .../mob/living/simple_animal/parrot.dm | 4 +- .../mob/living/simple_animal/simple_animal.dm | 4 +- code/modules/mob/living/stat_states.dm | 4 +- code/modules/mob/login.dm | 6 +- code/modules/mob/logout.dm | 2 +- code/modules/mob/mob.dm | 28 +++--- code/modules/mob/mob_helpers.dm | 8 +- code/modules/mob/new_player/login.dm | 8 +- code/modules/mob/new_player/new_player.dm | 22 ++--- .../mob/new_player/preferences_setup.dm | 20 ++-- code/modules/mob/say.dm | 4 +- code/modules/modular_computers/NTNet/NTNet.dm | 2 +- .../file_system/programs/command/card.dm | 2 +- .../file_system/programs/command/comms.dm | 4 +- .../programs/research/airestorer.dm | 4 +- code/modules/nano/modules/atmos_control.dm | 4 +- code/modules/nano/modules/crew_monitor.dm | 2 +- code/modules/paperwork/faxmachine.dm | 2 +- code/modules/paperwork/paper.dm | 2 +- code/modules/paperwork/photography.dm | 4 +- code/modules/pda/cart_apps.dm | 8 +- code/modules/pda/radio.dm | 4 +- code/modules/pda/utilities.dm | 2 +- code/modules/power/apc.dm | 12 +-- code/modules/power/gravitygenerator.dm | 2 +- .../power/singularity/field_generator.dm | 2 +- code/modules/power/singularity/narsie.dm | 4 +- code/modules/power/singularity/singularity.dm | 10 +- code/modules/power/supermatter/supermatter.dm | 8 +- code/modules/power/tesla/energy_ball.dm | 2 +- code/modules/power/treadmill.dm | 2 +- .../projectiles/guns/energy/telegun.dm | 2 +- code/modules/projectiles/projectile/magic.dm | 2 +- code/modules/reagents/chemistry/holder.dm | 20 ++-- .../chemistry/machinery/chem_dispenser.dm | 2 +- .../reagents/chemistry/machinery/pandemic.dm | 2 +- .../reagents/chemistry/reagents/misc.dm | 4 +- .../reagents/reagent_containers/borghydro.dm | 4 +- code/modules/recycling/conveyor2.dm | 4 +- code/modules/recycling/disposal.dm | 4 +- code/modules/recycling/sortingmachinery.dm | 12 +-- code/modules/research/experimentor.dm | 4 +- code/modules/research/message_server.dm | 2 +- code/modules/research/server.dm | 12 +-- .../research/xenobiology/xenobiology.dm | 2 +- .../security_levels/keycard authentication.dm | 2 +- .../security_levels/security levels.dm | 18 ++-- code/modules/shuttle/assault_pod.dm | 2 +- code/modules/shuttle/emergency.dm | 4 +- code/modules/shuttle/shuttle.dm | 4 +- code/modules/shuttle/supply.dm | 2 +- code/modules/spacepods/spacepod.dm | 4 +- code/modules/station_goals/dna_vault.dm | 2 +- code/modules/station_goals/shield.dm | 8 +- code/modules/station_goals/station_goal.dm | 2 +- code/modules/surgery/helpers.dm | 2 +- code/modules/surgery/organs/blood.dm | 2 +- code/modules/surgery/organs/organ_icon.dm | 8 +- .../surgery/organs/subtypes/standard.dm | 4 +- code/modules/surgery/surgery.dm | 10 +- code/modules/telesci/gps.dm | 4 +- code/modules/vr/vr_controller.dm | 2 +- 385 files changed, 1403 insertions(+), 1403 deletions(-) diff --git a/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm b/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm index 1f2670371f8..4511f8bd5a7 100644 --- a/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm +++ b/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm @@ -60,7 +60,7 @@ /obj/machinery/atmospherics/unary/vent_pump/New() ..() - all_vent_pumps += src + GLOB.all_vent_pumps += src icon = null initial_loc = get_area(loc) area_uid = initial_loc.uid @@ -429,7 +429,7 @@ return ..() /obj/machinery/atmospherics/unary/vent_pump/Destroy() - all_vent_pumps -= src + GLOB.all_vent_pumps -= src if(initial_loc) initial_loc.air_vent_info -= id_tag initial_loc.air_vent_names -= id_tag diff --git a/code/__HELPERS/_logging.dm b/code/__HELPERS/_logging.dm index 8e1b8516172..c802ffb7a80 100644 --- a/code/__HELPERS/_logging.dm +++ b/code/__HELPERS/_logging.dm @@ -38,7 +38,7 @@ if(config.log_debug) WRITE_LOG(GLOB.world_game_log, "DEBUG: [text][log_end]") - for(var/client/C in admins) + for(var/client/C in GLOB.admins) if(check_rights(R_DEBUG, 0, C.mob) && (C.prefs.toggles & CHAT_DEBUGLOGS)) to_chat(C, "DEBUG: [text]") diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index b62f32c2da9..58398832141 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -203,7 +203,7 @@ // Try to find all the players who can hear the message - for(var/A in player_list + hear_radio_list) + for(var/A in GLOB.player_list + GLOB.hear_radio_list) var/mob/M = A if(M) var/turf/ear = get_turf(M) @@ -274,7 +274,7 @@ break /proc/get_mob_by_key(var/key) - for(var/mob/M in mob_list) + for(var/mob/M in GLOB.mob_list) if(M.ckey == lowertext(key)) return M return null @@ -284,7 +284,7 @@ var/list/candidates = list() // Keep looping until we find a non-afk candidate within the time bracket (we limit the bracket to 10 minutes (6000)) while(!candidates.len && afk_bracket < 6000) - for(var/mob/dead/observer/G in player_list) + for(var/mob/dead/observer/G in GLOB.player_list) if(G.client != null) if(!(G.mind && G.mind.current && G.mind.current.stat != DEAD)) if(!G.client.is_afk(afk_bracket) && (be_special_type in G.client.prefs.be_special)) @@ -300,7 +300,7 @@ var/list/candidates = list() // Keep looping until we find a non-afk candidate within the time bracket (we limit the bracket to 10 minutes (6000)) while(!candidates.len && afk_bracket < 6000) - for(var/mob/dead/observer/G in player_list) + for(var/mob/dead/observer/G in GLOB.player_list) if(G.client != null) if(!(G.mind && G.mind.current && G.mind.current.stat != DEAD)) if(!G.client.is_afk(afk_bracket) && (be_special_type in G.client.prefs.be_special)) @@ -321,7 +321,7 @@ /proc/Show2Group4Delay(obj/O, list/group, delay=0) if(!isobj(O)) return - if(!group) group = clients + if(!group) group = GLOB.clients for(var/client/C in group) C.screen += O if(delay) @@ -339,8 +339,8 @@ /proc/get_active_player_count() // Get active players who are playing in the round var/active_players = 0 - for(var/i = 1; i <= player_list.len; i++) - var/mob/M = player_list[i] + for(var/i = 1; i <= GLOB.player_list.len; i++) + var/mob/M = GLOB.player_list[i] if(M && M.client) if(istype(M, /mob/new_player)) // exclude people in the lobby continue @@ -390,7 +390,7 @@ return new /datum/projectile_data(src_x, src_y, time, distance, power_x, power_y, dest_x, dest_y) -/proc/mobs_in_area(var/area/the_area, var/client_needed=0, var/moblist=mob_list) +/proc/mobs_in_area(var/area/the_area, var/client_needed=0, var/moblist=GLOB.mob_list) var/list/mobs_found[0] var/area/our_area = get_area_master(the_area) for(var/mob/M in moblist) @@ -403,7 +403,7 @@ /proc/alone_in_area(var/area/the_area, var/mob/must_be_alone, var/check_type = /mob/living/carbon) var/area/our_area = get_area_master(the_area) - for(var/C in living_mob_list) + for(var/C in GLOB.living_mob_list) if(!istype(C, check_type)) continue if(C == must_be_alone) @@ -442,7 +442,7 @@ proc/pollCandidates(Question, be_special_type, antag_age_check = 0, poll_time = if(!Question) Question = "Would you like to be a special role?" - for(var/mob/dead/observer/G in (ignore_respawnability ? player_list : respawnable_list)) + for(var/mob/dead/observer/G in (ignore_respawnability ? GLOB.player_list : GLOB.respawnable_list)) if(!G.key || !G.client) continue if(be_special_type) diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index a068bb8604e..a37be148b4e 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -5,38 +5,38 @@ /proc/makeDatumRefLists() //markings - init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, marking_styles_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, GLOB.marking_styles_list) //head accessory - init_sprite_accessory_subtypes(/datum/sprite_accessory/head_accessory, head_accessory_styles_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/head_accessory, GLOB.head_accessory_styles_list) //hair - init_sprite_accessory_subtypes(/datum/sprite_accessory/hair, hair_styles_public_list, hair_styles_male_list, hair_styles_female_list, hair_styles_full_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/hair, GLOB.hair_styles_public_list, GLOB.hair_styles_male_list, GLOB.hair_styles_female_list, GLOB.hair_styles_full_list) //facial hair - init_sprite_accessory_subtypes(/datum/sprite_accessory/facial_hair, facial_hair_styles_list, facial_hair_styles_male_list, facial_hair_styles_female_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/facial_hair, GLOB.facial_hair_styles_list, GLOB.facial_hair_styles_male_list, GLOB.facial_hair_styles_female_list) //underwear - init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear, underwear_list, underwear_m, underwear_f) + init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear, GLOB.underwear_list, GLOB.underwear_m, GLOB.underwear_f) //undershirt - init_sprite_accessory_subtypes(/datum/sprite_accessory/undershirt, undershirt_list, undershirt_m, undershirt_f) + init_sprite_accessory_subtypes(/datum/sprite_accessory/undershirt, GLOB.undershirt_list, GLOB.undershirt_m, GLOB.undershirt_f) //socks - init_sprite_accessory_subtypes(/datum/sprite_accessory/socks, socks_list, socks_m, socks_f) + init_sprite_accessory_subtypes(/datum/sprite_accessory/socks, GLOB.socks_list, GLOB.socks_m, GLOB.socks_f) //alt heads - init_sprite_accessory_subtypes(/datum/sprite_accessory/alt_heads, alt_heads_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/alt_heads, GLOB.alt_heads_list) - init_subtypes(/datum/surgery_step, surgery_steps) + init_subtypes(/datum/surgery_step, GLOB.surgery_steps) for(var/path in (subtypesof(/datum/surgery))) - surgeries_list += new path() + GLOB.surgeries_list += new path() - init_datum_subtypes(/datum/job, joblist, list(/datum/job/ai, /datum/job/cyborg), "title") - init_datum_subtypes(/datum/superheroes, all_superheroes, null, "name") - init_datum_subtypes(/datum/nations, all_nations, null, "default_name") - init_datum_subtypes(/datum/language, all_languages, null, "name") + init_datum_subtypes(/datum/job, GLOB.joblist, list(/datum/job/ai, /datum/job/cyborg), "title") + init_datum_subtypes(/datum/superheroes, GLOB.all_superheroes, null, "name") + init_datum_subtypes(/datum/nations, GLOB.all_nations, null, "default_name") + init_datum_subtypes(/datum/language, GLOB.all_languages, null, "name") - for(var/language_name in all_languages) - var/datum/language/L = all_languages[language_name] + for(var/language_name in GLOB.all_languages) + var/datum/language/L = GLOB.all_languages[language_name] if(!(L.flags & NONGLOBAL)) - language_keys[":[lowertext(L.key)]"] = L - language_keys[".[lowertext(L.key)]"] = L - language_keys["#[lowertext(L.key)]"] = L + GLOB.language_keys[":[lowertext(L.key)]"] = L + GLOB.language_keys[".[lowertext(L.key)]"] = L + GLOB.language_keys["#[lowertext(L.key)]"] = L var/rkey = 0 for(var/spath in subtypesof(/datum/species)) @@ -45,9 +45,9 @@ GLOB.all_species[S.name] = S if(IS_WHITELISTED in S.species_traits) - whitelisted_species += S.name + GLOB.whitelisted_species += S.name - init_subtypes(/datum/crafting_recipe, crafting_recipes) + init_subtypes(/datum/crafting_recipe, GLOB.crafting_recipes) //Pipe list building init_subtypes(/datum/pipes, GLOB.construction_pipe_list) @@ -60,10 +60,10 @@ /* // Uncomment to debug chemical reaction list. /client/verb/debug_chemical_list() - for(var/reaction in chemical_reactions_list) - . += "chemical_reactions_list\[\"[reaction]\"\] = \"[chemical_reactions_list[reaction]]\"\n" - if(islist(chemical_reactions_list[reaction])) - var/list/L = chemical_reactions_list[reaction] + for(var/reaction in GLOB.chemical_reactions_list) + . += "GLOB.chemical_reactions_list\[\"[reaction]\"\] = \"[GLOB.chemical_reactions_list[reaction]]\"\n" + if(islist(GLOB.chemical_reactions_list[reaction])) + var/list/L = GLOB.chemical_reactions_list[reaction] for(var/t in L) . += " has: [t]\n" to_chat(world, .) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 3d495964cb0..bba877da7b8 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -13,25 +13,25 @@ proc/GetOppositeDir(var/dir) proc/random_underwear(gender, species = "Human") var/list/pick_list = list() switch(gender) - if(MALE) pick_list = underwear_m - if(FEMALE) pick_list = underwear_f - else pick_list = underwear_list + if(MALE) pick_list = GLOB.underwear_m + if(FEMALE) pick_list = GLOB.underwear_f + else pick_list = GLOB.underwear_list return pick_species_allowed_underwear(pick_list, species) proc/random_undershirt(gender, species = "Human") var/list/pick_list = list() switch(gender) - if(MALE) pick_list = undershirt_m - if(FEMALE) pick_list = undershirt_f - else pick_list = undershirt_list + if(MALE) pick_list = GLOB.undershirt_m + if(FEMALE) pick_list = GLOB.undershirt_f + else pick_list = GLOB.undershirt_list return pick_species_allowed_underwear(pick_list, species) proc/random_socks(gender, species = "Human") var/list/pick_list = list() switch(gender) - if(MALE) pick_list = socks_m - if(FEMALE) pick_list = socks_f - else pick_list = socks_list + if(MALE) pick_list = GLOB.socks_m + if(FEMALE) pick_list = GLOB.socks_f + else pick_list = GLOB.socks_list return pick_species_allowed_underwear(pick_list, species) proc/pick_species_allowed_underwear(list/all_picks, species) @@ -49,8 +49,8 @@ proc/pick_species_allowed_underwear(list/all_picks, species) proc/random_hair_style(var/gender, species = "Human", var/datum/robolimb/robohead) var/h_style = "Bald" var/list/valid_hairstyles = list() - for(var/hairstyle in hair_styles_public_list) - var/datum/sprite_accessory/S = hair_styles_public_list[hairstyle] + for(var/hairstyle in GLOB.hair_styles_public_list) + var/datum/sprite_accessory/S = GLOB.hair_styles_public_list[hairstyle] if(hairstyle == "Bald") //Just in case. valid_hairstyles += hairstyle @@ -78,8 +78,8 @@ proc/random_hair_style(var/gender, species = "Human", var/datum/robolimb/robohea proc/random_facial_hair_style(var/gender, species = "Human", var/datum/robolimb/robohead) var/f_style = "Shaved" var/list/valid_facial_hairstyles = list() - for(var/facialhairstyle in facial_hair_styles_list) - var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle] + for(var/facialhairstyle in GLOB.facial_hair_styles_list) + var/datum/sprite_accessory/S = GLOB.facial_hair_styles_list[facialhairstyle] if(facialhairstyle == "Shaved") //Just in case. valid_facial_hairstyles += facialhairstyle @@ -107,8 +107,8 @@ proc/random_facial_hair_style(var/gender, species = "Human", var/datum/robolimb/ proc/random_head_accessory(species = "Human") var/ha_style = "None" var/list/valid_head_accessories = list() - for(var/head_accessory in head_accessory_styles_list) - var/datum/sprite_accessory/S = head_accessory_styles_list[head_accessory] + for(var/head_accessory in GLOB.head_accessory_styles_list) + var/datum/sprite_accessory/S = GLOB.head_accessory_styles_list[head_accessory] if(!(species in S.species_allowed)) continue @@ -122,8 +122,8 @@ proc/random_head_accessory(species = "Human") proc/random_marking_style(var/location = "body", species = "Human", var/datum/robolimb/robohead, var/body_accessory, var/alt_head) var/m_style = "None" var/list/valid_markings = list() - for(var/marking in marking_styles_list) - var/datum/sprite_accessory/body_markings/S = marking_styles_list[marking] + for(var/marking in GLOB.marking_styles_list) + var/datum/sprite_accessory/body_markings/S = GLOB.marking_styles_list[marking] if(S.name == "None") valid_markings += marking continue @@ -139,7 +139,7 @@ proc/random_marking_style(var/location = "body", species = "Human", var/datum/ro if(!S.tails_allowed || !(body_accessory in S.tails_allowed)) continue if(location == "head") - var/datum/sprite_accessory/body_markings/head/M = marking_styles_list[S.name] + var/datum/sprite_accessory/body_markings/head/M = GLOB.marking_styles_list[S.name] if(species == "Machine")//If the user is a species that can have a robotic head... if(!robohead) robohead = all_robolimbs["Morpheus Cyberkinetics"] @@ -182,9 +182,9 @@ proc/random_name(gender, species = "Human") if(!current_species || current_species.name == "Human") if(gender==FEMALE) - return capitalize(pick(first_names_female)) + " " + capitalize(pick(last_names)) + return capitalize(pick(GLOB.first_names_female)) + " " + capitalize(pick(GLOB.last_names)) else - return capitalize(pick(first_names_male)) + " " + capitalize(pick(last_names)) + return capitalize(pick(GLOB.first_names_male)) + " " + capitalize(pick(GLOB.last_names)) else return current_species.get_random_name(gender) @@ -489,7 +489,7 @@ This is always put in the attack log. LogMouseMacro(".mouse", params) /proc/update_all_mob_security_hud() - for(var/mob/living/carbon/human/H in mob_list) + for(var/mob/living/carbon/human/H in GLOB.mob_list) H.sec_hud_set_security_status() /proc/getviewsize(view) diff --git a/code/__HELPERS/names.dm b/code/__HELPERS/names.dm index d6ae4ea9b1b..930a8ee9de5 100644 --- a/code/__HELPERS/names.dm +++ b/code/__HELPERS/names.dm @@ -164,11 +164,11 @@ var/syndicate_code_response//Code response for traitors. if(names.len&&prob(70)) code_phrase += pick(names) else - code_phrase += pick(pick(first_names_male,first_names_female)) + code_phrase += pick(pick(GLOB.first_names_male,GLOB.first_names_female)) code_phrase += " " - code_phrase += pick(last_names) + code_phrase += pick(GLOB.last_names) if(2) - code_phrase += pick(joblist)//Returns a job. + code_phrase += pick(GLOB.joblist)//Returns a job. safety -= 1 if(2) switch(rand(1,2))//Places or things. @@ -182,9 +182,9 @@ var/syndicate_code_response//Code response for traitors. if(1) code_phrase += pick(nouns) if(2) - code_phrase += pick(adjectives) + code_phrase += pick(GLOB.adjectives) if(3) - code_phrase += pick(verbs) + code_phrase += pick(GLOB.verbs) if(words==1) code_phrase += "." else @@ -219,9 +219,9 @@ var/syndicate_code_response//Code response for traitors. if(1) syndicate_code_phrase += pick("I'm looking for","Have you seen","Maybe you've seen","I'm trying to find","I'm tracking") syndicate_code_phrase += " " - syndicate_code_phrase += pick(pick(first_names_male,first_names_female)) + syndicate_code_phrase += pick(pick(GLOB.first_names_male,GLOB.first_names_female)) syndicate_code_phrase += " " - syndicate_code_phrase += pick(last_names) + syndicate_code_phrase += pick(GLOB.last_names) syndicate_code_phrase += "." if(2) syndicate_code_phrase += pick("How do I get to","How do I find","Where is","Where do I find") @@ -245,7 +245,7 @@ var/syndicate_code_response//Code response for traitors. if(5) syndicate_code_phrase += pick("Do we have","Is there","Where is","Where's","Who's") syndicate_code_phrase += " " - syndicate_code_phrase += "[pick(joblist)]" + syndicate_code_phrase += "[pick(GLOB.joblist)]" syndicate_code_phrase += "?" switch(choice) @@ -269,12 +269,12 @@ var/syndicate_code_response//Code response for traitors. syndicate_code_response += pick("Try asking","Ask","Talk to","Go see","Follow","Hunt down") syndicate_code_response += " " if(prob(50)) - syndicate_code_response += pick(pick(first_names_male,first_names_female)) + syndicate_code_response += pick(pick(GLOB.first_names_male,GLOB.first_names_female)) syndicate_code_response += " " - syndicate_code_response += pick(last_names) + syndicate_code_response += pick(GLOB.last_names) else syndicate_code_response += " the " - syndicate_code_response += "[pic(joblist)]" + syndicate_code_response += "[pic(GLOB.joblist)]" syndicate_code_response += "." else syndicate_code_response += pick("*shrug*","*smile*","*blink*","*sigh*","*laugh*","*nod*","*giggle*") diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm index 6ebaba5bc3b..d36fd9449d4 100644 --- a/code/__HELPERS/time.dm +++ b/code/__HELPERS/time.dm @@ -94,7 +94,7 @@ proc/isDay(var/month, var/day) return round(0.1 * (TimeOfGame - wh), 0.1) /proc/numberToMonthName(number) - return month_names.Find(number) + return GLOB.month_names.Find(number) //Take a value in seconds and returns a string of minutes and seconds in the format X minute(s) and X seconds. /proc/seconds_to_time(var/seconds as num) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 1a9ccbe6c2b..87ebca113da 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -277,7 +277,7 @@ Turf and target are seperate in case you want to teleport some distance from a t /proc/freeborg() var/select = null var/list/borgs = list() - for(var/mob/living/silicon/robot/A in player_list) + for(var/mob/living/silicon/robot/A in GLOB.player_list) if(A.stat == 2 || A.connected_ai || A.scrambledcodes || istype(A,/mob/living/silicon/robot/drone)) continue var/name = "[A.real_name] ([A.modtype] [A.braintype])" @@ -290,7 +290,7 @@ Turf and target are seperate in case you want to teleport some distance from a t //When a borg is activated, it can choose which AI it wants to be slaved to /proc/active_ais() . = list() - for(var/mob/living/silicon/ai/A in living_mob_list) + for(var/mob/living/silicon/ai/A in GLOB.living_mob_list) if(A.stat == DEAD) continue if(A.control_disabled == 1) @@ -372,7 +372,7 @@ Turf and target are seperate in case you want to teleport some distance from a t //Orders mobs by type then by name /proc/sortmobs() var/list/moblist = list() - var/list/sortmob = sortAtom(mob_list) + var/list/sortmob = sortAtom(GLOB.mob_list) for(var/mob/living/silicon/ai/M in sortmob) moblist.Add(M) if(M.eyeobj) @@ -427,7 +427,7 @@ Turf and target are seperate in case you want to teleport some distance from a t /proc/get_mob_by_ckey(key) if(!key) return - for(var/mob/M in mob_list) + for(var/mob/M in GLOB.mob_list) if(M.ckey == key) return M @@ -996,7 +996,7 @@ proc/oview_or_orange(distance = world.view , center = usr , type) proc/get_mob_with_client_list() var/list/mobs = list() - for(var/mob/M in mob_list) + for(var/mob/M in GLOB.mob_list) if(M.client) mobs += M return mobs @@ -1883,7 +1883,7 @@ var/mob/dview/dview_mob = new pois[name] = M if(!mobs_only) - for(var/atom/A in poi_list) + for(var/atom/A in GLOB.poi_list) if(!A || !A.loc) continue var/name = A.name diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index b71498e0636..a93e58acf7f 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -1,35 +1,35 @@ //Preferences stuff //Head accessory styles -var/global/list/head_accessory_styles_list = list() //stores /datum/sprite_accessory/head_accessory indexed by name +GLOBAL_LIST_INIT(head_accessory_styles_list, list()) //stores /datum/sprite_accessory/head_accessory indexed by name //Marking styles -var/global/list/marking_styles_list = list() //stores /datum/sprite_accessory/body_markings indexed by name +GLOBAL_LIST_INIT(marking_styles_list, list()) //stores /datum/sprite_accessory/body_markings indexed by name //Hairstyles -var/global/list/hair_styles_public_list = list() //stores /datum/sprite_accessory/hair indexed by name -var/global/list/hair_styles_male_list = list() -var/global/list/hair_styles_female_list = list() -var/global/list/hair_styles_full_list = list() //fluff hair styles -var/global/list/facial_hair_styles_list = list() //stores /datum/sprite_accessory/facial_hair indexed by name -var/global/list/facial_hair_styles_male_list = list() -var/global/list/facial_hair_styles_female_list = list() -var/global/list/skin_styles_female_list = list() //unused +GLOBAL_LIST_INIT(hair_styles_public_list, list()) //stores /datum/sprite_accessory/hair indexed by name +GLOBAL_LIST_INIT(hair_styles_male_list, list()) +GLOBAL_LIST_INIT(hair_styles_female_list, list()) +GLOBAL_LIST_INIT(hair_styles_full_list, list()) //fluff hair styles +GLOBAL_LIST_INIT(facial_hair_styles_list, list()) //stores /datum/sprite_accessory/facial_hair indexed by name +GLOBAL_LIST_INIT(facial_hair_styles_male_list, list()) +GLOBAL_LIST_INIT(facial_hair_styles_female_list, list()) +GLOBAL_LIST_INIT(skin_styles_female_list, list()) //unused //Underwear -var/global/list/underwear_list = list() //stores /datum/sprite_accessory/underwear indexed by name -var/global/list/underwear_m = list() //stores only underwear name -var/global/list/underwear_f = list() //stores only underwear name +GLOBAL_LIST_INIT(underwear_list, list()) //stores /datum/sprite_accessory/underwear indexed by name +GLOBAL_LIST_INIT(underwear_m, list()) //stores only underwear name +GLOBAL_LIST_INIT(underwear_f, list()) //stores only underwear name //Undershirts -var/global/list/undershirt_list = list() //stores /datum/sprite_accessory/undershirt indexed by name -var/global/list/undershirt_m = list() //stores only undershirt name -var/global/list/undershirt_f = list() //stores only undershirt name +GLOBAL_LIST_INIT(undershirt_list, list()) //stores /datum/sprite_accessory/undershirt indexed by name +GLOBAL_LIST_INIT(undershirt_m, list()) //stores only undershirt name +GLOBAL_LIST_INIT(undershirt_f, list()) //stores only undershirt name //Socks -var/global/list/socks_list = list() //stores /datum/sprite_accessory/socks indexed by name -var/global/list/socks_m = list() //stores only socks name -var/global/list/socks_f = list() //stores only socks name +GLOBAL_LIST_INIT(socks_list, list()) //stores /datum/sprite_accessory/socks indexed by name +GLOBAL_LIST_INIT(socks_m, list()) //stores only socks name +GLOBAL_LIST_INIT(socks_f, list()) //stores only socks name //Alt Heads -var/global/list/alt_heads_list = list() //stores /datum/sprite_accessory/alt_heads indexed by name +GLOBAL_LIST_INIT(alt_heads_list, list()) //stores /datum/sprite_accessory/alt_heads indexed by name -var/static/list/scarySounds = list('sound/weapons/thudswoosh.ogg','sound/weapons/Taser.ogg','sound/weapons/armbomb.ogg','sound/voice/hiss1.ogg','sound/voice/hiss2.ogg', \ +GLOBAL_LIST_INIT(scarySounds, list('sound/weapons/thudswoosh.ogg','sound/weapons/Taser.ogg','sound/weapons/armbomb.ogg','sound/voice/hiss1.ogg','sound/voice/hiss2.ogg', \ 'sound/voice/hiss3.ogg','sound/voice/hiss4.ogg','sound/voice/hiss5.ogg','sound/voice/hiss6.ogg','sound/effects/Glassbr1.ogg','sound/effects/Glassbr2.ogg','sound/effects/Glassbr3.ogg', \ -'sound/items/Welder.ogg','sound/items/Welder2.ogg','sound/machines/airlock_open.ogg','sound/effects/clownstep1.ogg','sound/effects/clownstep2.ogg') +'sound/items/Welder.ogg','sound/items/Welder2.ogg','sound/machines/airlock_open.ogg','sound/effects/clownstep1.ogg','sound/effects/clownstep2.ogg')) // Reference list for disposal sort junctions. Set the sortType variable on disposal sort junctions to // the index of the sort department that you want. For example, sortType set to 2 will reroute all packages @@ -38,30 +38,30 @@ var/static/list/scarySounds = list('sound/weapons/thudswoosh.ogg','sound/weapons //If you don't want to fuck up disposals, add to this list, and don't change the order. //If you insist on changing the order, you'll have to change every sort junction to reflect the new order. --Pete -var/list/TAGGERLOCATIONS = list("Disposals", +GLOBAL_LIST_INIT(TAGGERLOCATIONS, list("Disposals", "Cargo Bay", "QM Office", "Engineering", "CE Office", "Atmospherics", "HoS Office", "Security", "Medbay", "CMO Office", "Chemistry", "Research", "RD Office", "Robotics", "HoP Office", "Library", "Chapel", "Captain's Office", - "Bar", "Kitchen", "Hydroponics", "Janitor Closet","Genetics","Brig Physician") + "Bar", "Kitchen", "Hydroponics", "Janitor Closet","Genetics","Brig Physician")) -var/list/hit_appends = list("-OOF", "-ACK", "-UGH", "-HRNK", "-HURGH", "-GLORF") +GLOBAL_LIST_INIT(hit_appends, list("-OOF", "-ACK", "-UGH", "-HRNK", "-HURGH", "-GLORF")) -var/global/list/greek_letters = list("Alpha", "Beta", "Gamma", "Delta", +GLOBAL_LIST_INIT(greek_letters, list("Alpha", "Beta", "Gamma", "Delta", "Epsilon", "Zeta", "Eta", "Theta", "Iota", "Kappa", "Lambda", "Mu", "Nu", "Xi", "Omicron", "Pi", "Rho", "Sigma", "Tau", "Upsilon", "Phi", - "Chi", "Psi", "Omega") + "Chi", "Psi", "Omega")) -var/global/list/phonetic_alphabet = list("Alpha", "Bravo", "Charlie", +GLOBAL_LIST_INIT(phonetic_alphabet, list("Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf", "Hotel", "India", "Juliet", "Kilo", "Lima", "Mike", "November", "Oscar", "Papa", "Quebec", "Romeo", "Sierra", "Tango", "Uniform", "Victor", "Whiskey", "X-ray", - "Yankee", "Zulu") + "Yankee", "Zulu")) -var/global/list/numbers_as_words = list("One", "Two", "Three", "Four", +GLOBAL_LIST_INIT(numbers_as_words, list("One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", - "Eighteen", "Nineteen") + "Eighteen", "Nineteen")) //Backpacks #define GBACKPACK "Grey Backpack" @@ -71,4 +71,4 @@ var/global/list/numbers_as_words = list("One", "Two", "Three", "Four", #define DBACKPACK "Department Backpack" #define DSATCHEL "Department Satchel" #define DDUFFLEBAG "Department Dufflebag" -var/global/list/backbaglist = list(DBACKPACK, DSATCHEL, DDUFFLEBAG, GBACKPACK, GSATCHEL, GDUFFLEBAG, LSATCHEL) +GLOBAL_LIST_INIT(backbaglist, list(DBACKPACK, DSATCHEL, DDUFFLEBAG, GBACKPACK, GSATCHEL, GDUFFLEBAG, LSATCHEL)) diff --git a/code/_globalvars/lists/misc.dm b/code/_globalvars/lists/misc.dm index 8a06b552db2..42e4441034c 100644 --- a/code/_globalvars/lists/misc.dm +++ b/code/_globalvars/lists/misc.dm @@ -1,13 +1,13 @@ -var/global/list/alphabet = list("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z") -var/global/list/alphabet_uppercase = list("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z") -var/global/list/zero_character_only = list("0") -var/global/list/hex_characters = list("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f") -var/global/list/binary = list("0","1") +GLOBAL_LIST_INIT(alphabet, list("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z")) +GLOBAL_LIST_INIT(alphabet_uppercase, list("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z")) +GLOBAL_LIST_INIT(zero_character_only, list("0")) +GLOBAL_LIST_INIT(hex_characters, list("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f")) +GLOBAL_LIST_INIT(binary, list("0","1")) -var/global/list/day_names = list("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday") -var/global/list/month_names = list("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December") +GLOBAL_LIST_INIT(day_names, list("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday")) +GLOBAL_LIST_INIT(month_names, list("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")) -var/list/restricted_camera_networks = list( //Those networks can only be accessed by preexisting terminals. AIs and new terminals can't use them. +GLOBAL_LIST_INIT(restricted_camera_networks, list( "CentComm", "ERT", "NukeOps", @@ -17,19 +17,19 @@ var/list/restricted_camera_networks = list( //Those networks can only be accesse "UO71", "Xeno", "Hotel" - ) + )) //Those networks can only be accessed by preexisting terminals. AIs and new terminals can't use them. -var/list/mineral_turfs = list() +GLOBAL_LIST_INIT(mineral_turfs, list()) -var/list/ruin_landmarks = list() +GLOBAL_LIST_INIT(ruin_landmarks, list()) -var/list/round_end_sounds = list( // Maps available round end sounds to their duration +GLOBAL_LIST_INIT(round_end_sounds, list( 'sound/AI/newroundsexy.ogg' = 2.3 SECONDS, 'sound/misc/apcdestroyed.ogg' = 3 SECONDS, 'sound/misc/bangindonk.ogg' = 1.6 SECONDS, 'sound/goonstation/misc/newround1.ogg' = 6.9 SECONDS, 'sound/goonstation/misc/newround2.ogg' = 14.8 SECONDS - ) + )) // Maps available round end sounds to their duration GLOBAL_LIST_INIT(cooking_recipe_types, list( RECIPE_MICROWAVE = /datum/recipe/microwave, diff --git a/code/_globalvars/lists/mobs.dm b/code/_globalvars/lists/mobs.dm index 7cc456f9440..ff902473329 100644 --- a/code/_globalvars/lists/mobs.dm +++ b/code/_globalvars/lists/mobs.dm @@ -1,34 +1,34 @@ //Languages/species/whitelist. //Languages and species fit with mobs right GLOBAL_LIST_EMPTY(all_species) -var/global/list/all_languages[0] -var/global/list/language_keys[0] // Table of say codes for all languages -var/global/list/all_superheroes[0] -var/global/list/all_nations[0] -var/global/list/whitelisted_species = list() +GLOBAL_LIST_EMPTY(all_languages) +GLOBAL_LIST_EMPTY(language_keys) // Table of say codes for all languages +GLOBAL_LIST_EMPTY(all_superheroes) +GLOBAL_LIST_EMPTY(all_nations) +GLOBAL_LIST_INIT(whitelisted_species, list()) -var/list/clients = list() //list of all clients -var/list/admins = list() //list of all clients whom are admins -var/list/deadmins = list() //list of all clients who have used the de-admin verb. -var/list/directory = list() //list of all ckeys with associated client -var/list/stealthminID = list() //reference list with IDs that store ckeys, for stealthmins +GLOBAL_LIST_INIT(clients, list()) //list of all clients +GLOBAL_LIST_INIT(admins, list()) //list of all clients whom are admins +GLOBAL_LIST_INIT(deadmins, list()) //list of all clients who have used the de-admin verb. +GLOBAL_LIST_INIT(directory, list()) //list of all ckeys with associated client +GLOBAL_LIST_INIT(stealthminID, list()) //reference list with IDs that store ckeys, for stealthmins //Since it didn't really belong in any other category, I'm putting this here //This is for procs to replace all the goddamn 'in world's that are chilling around the code -var/global/list/player_list = list() //List of all mobs **with clients attached**. Excludes /mob/new_player -var/global/list/mob_list = list() //List of all mobs, including clientless -var/global/list/silicon_mob_list = list() //List of all silicon mobs, including clientless -var/global/list/spirits = list() //List of all the spirits, including Masks -var/global/list/living_mob_list = list() //List of all alive mobs, including clientless. Excludes /mob/new_player -var/global/list/dead_mob_list = list() //List of all dead mobs, including clientless. Excludes /mob/new_player -var/global/list/respawnable_list = list() //List of all mobs, dead or in mindless creatures that still be respawned. -var/global/list/non_respawnable_keys = list() //List of ckeys that are excluded from respawning for remainder of round. -var/global/list/simple_animal_list = list() //List of all simple animals, including clientless -var/global/list/snpc_list = list() //List of all snpc's, including clientless -var/global/list/bots_list = list() //List of all bots(beepsky, medibots,etc) +GLOBAL_LIST_INIT(player_list, list()) //List of all mobs **with clients attached**. Excludes /mob/new_player +GLOBAL_LIST_INIT(mob_list, list()) //List of all mobs, including clientless +GLOBAL_LIST_INIT(silicon_mob_list, list()) //List of all silicon mobs, including clientless +GLOBAL_LIST_INIT(spirits, list()) //List of all the spirits, including Masks +GLOBAL_LIST_INIT(living_mob_list, list()) //List of all alive mobs, including clientless. Excludes /mob/new_player +GLOBAL_LIST_INIT(dead_mob_list, list()) //List of all dead mobs, including clientless. Excludes /mob/new_player +GLOBAL_LIST_INIT(respawnable_list, list()) //List of all mobs, dead or in mindless creatures that still be respawned. +GLOBAL_LIST_INIT(non_respawnable_keys, list()) //List of ckeys that are excluded from respawning for remainder of round. +GLOBAL_LIST_INIT(simple_animal_list, list()) //List of all simple animals, including clientless +GLOBAL_LIST_INIT(snpc_list, list()) //List of all snpc's, including clientless +GLOBAL_LIST_INIT(bots_list, list()) //List of all bots(beepsky, medibots,etc) -var/global/list/med_hud_users = list() -var/global/list/sec_hud_users = list() -var/global/list/antag_hud_users = list() -var/global/list/surgeries_list = list() -var/global/list/hear_radio_list = list() //Mobs that hear the radio even if there's no client +GLOBAL_LIST_INIT(med_hud_users, list()) +GLOBAL_LIST_INIT(sec_hud_users, list()) +GLOBAL_LIST_INIT(antag_hud_users, list()) +GLOBAL_LIST_INIT(surgeries_list, list()) +GLOBAL_LIST_INIT(hear_radio_list, list()) //Mobs that hear the radio even if there's no client diff --git a/code/_globalvars/lists/names.dm b/code/_globalvars/lists/names.dm index f403695b0f6..e88c2dfbb28 100644 --- a/code/_globalvars/lists/names.dm +++ b/code/_globalvars/lists/names.dm @@ -1,20 +1,20 @@ -var/list/ai_names = file2list("config/names/ai.txt") -var/list/wizard_first = file2list("config/names/wizardfirst.txt") -var/list/wizard_second = file2list("config/names/wizardsecond.txt") -var/list/ninja_titles = file2list("config/names/ninjatitle.txt") -var/list/ninja_names = file2list("config/names/ninjaname.txt") -var/list/commando_names = file2list("config/names/death_commando.txt") -var/list/first_names_male = file2list("config/names/first_male.txt") -var/list/first_names_female = file2list("config/names/first_female.txt") -var/list/last_names = file2list("config/names/last.txt") -var/list/clown_names = file2list("config/names/clown.txt") -var/list/mime_names = file2list("config/names/mime.txt") +GLOBAL_LIST_INIT(ai_names, file2list("config/names/ai.txt")) +GLOBAL_LIST_INIT(wizard_first, file2list("config/names/wizardfirst.txt")) +GLOBAL_LIST_INIT(wizard_second, file2list("config/names/wizardsecond.txt")) +GLOBAL_LIST_INIT(ninja_titles, file2list("config/names/ninjatitle.txt")) +GLOBAL_LIST_INIT(ninja_names, file2list("config/names/ninjaname.txt")) +GLOBAL_LIST_INIT(commando_names, file2list("config/names/death_commando.txt")) +GLOBAL_LIST_INIT(first_names_male, file2list("config/names/first_male.txt")) +GLOBAL_LIST_INIT(first_names_female, file2list("config/names/first_female.txt")) +GLOBAL_LIST_INIT(last_names, file2list("config/names/last.txt")) +GLOBAL_LIST_INIT(clown_names, file2list("config/names/clown.txt")) +GLOBAL_LIST_INIT(mime_names, file2list("config/names/mime.txt")) -var/list/verbs = file2list("config/names/verbs.txt") -var/list/adjectives = file2list("config/names/adjectives.txt") -var/list/dream_strings = file2list("config/names/dreams.txt") -var/list/nightmare_strings = file2list("config/names/nightmares.txt") +GLOBAL_LIST_INIT(verbs, file2list("config/names/verbs.txt")) +GLOBAL_LIST_INIT(adjectives, file2list("config/names/adjectives.txt")) +GLOBAL_LIST_INIT(dream_strings, file2list("config/names/dreams.txt")) +GLOBAL_LIST_INIT(nightmare_strings, file2list("config/names/nightmares.txt")) //loaded on startup because of " //would include in rsc if ' was used -var/list/vox_name_syllables = list("ti","hi","ki","ya","ta","ha","ka","ya","chi","cha","kah") \ No newline at end of file +GLOBAL_LIST_INIT(vox_name_syllables, list("ti","hi","ki","ya","ta","ha","ka","ya","chi","cha","kah")) \ No newline at end of file diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index 82d4c113997..0cbf92f85c7 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -1,46 +1,46 @@ -var/global/list/portals = list() //for use by portals +GLOBAL_LIST_INIT(portals, list()) //for use by portals GLOBAL_LIST(cable_list) //Index for all cables, so that powernets don't have to look through the entire world all the time -var/global/list/chemical_reactions_list //list of all /datum/chemical_reaction datums. Used during chemical reactions -var/global/list/chemical_reagents_list //list of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff -var/global/list/landmarks_list = list() //list of all landmarks created -var/global/list/surgery_steps = list() //list of all surgery steps |BS12 -var/global/list/side_effects = list() //list of all medical sideeffects types by thier names |BS12 -var/global/list/mechas_list = list() //list of all mechs. Used by hostile mobs target tracking. -var/global/list/spacepods_list = list() //list of all space pods. Used by hostile mobs target tracking. -var/global/list/joblist = list() //list of all jobstypes, minus borg and AI -var/global/list/airlocks = list() //list of all airlocks -var/global/list/singularities = list() //list of all singularities -var/global/list/janitorial_equipment = list() //list of janitorial equipment -var/global/list/crafting_recipes = list() //list of all crafting recipes -var/global/list/prisoncomputer_list = list() -var/global/list/cell_logs = list() +GLOBAL_LIST_INIT(chemical_reactions_list, list()) //list of all /datum/chemical_reaction datums. Used during chemical reactions +GLOBAL_LIST_INIT(chemical_reagents_list, list()) //list of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff +GLOBAL_LIST_INIT(landmarks_list, list()) //list of all landmarks created +GLOBAL_LIST_INIT(surgery_steps, list()) //list of all surgery steps |BS12 +GLOBAL_LIST_INIT(side_effects, list()) //list of all medical sideeffects types by thier names |BS12 +GLOBAL_LIST_INIT(mechas_list, list()) //list of all mechs. Used by hostile mobs target tracking. +GLOBAL_LIST_INIT(spacepods_list, list()) //list of all space pods. Used by hostile mobs target tracking. +GLOBAL_LIST_INIT(joblist, list()) //list of all jobstypes, minus borg and AI +GLOBAL_LIST_INIT(airlocks, list()) //list of all airlocks +GLOBAL_LIST_INIT(singularities, list()) //list of all singularities +GLOBAL_LIST_INIT(janitorial_equipment, list()) //list of janitorial equipment +GLOBAL_LIST_INIT(crafting_recipes, list()) //list of all crafting recipes +GLOBAL_LIST_INIT(prisoncomputer_list, list()) +GLOBAL_LIST_INIT(cell_logs, list()) -var/global/list/all_areas = list() -var/global/list/machines = list() -var/global/list/fast_processing = list() -var/global/list/processing_power_items = list() //items that ask to be called every cycle -var/global/list/rcd_list = list() //list of Rapid Construction Devices. +GLOBAL_LIST_INIT(all_areas, list()) +GLOBAL_LIST_INIT(machines, list()) +GLOBAL_LIST_INIT(fast_processing, list()) +GLOBAL_LIST_INIT(processing_power_items, list()) //items that ask to be called every cycle +GLOBAL_LIST_INIT(rcd_list, list()) //list of Rapid Construction Devices. -var/global/list/apcs = list() -var/global/list/air_alarms = list() -var/global/list/power_monitors = list() -var/global/list/all_vent_pumps = list() +GLOBAL_LIST_INIT(apcs, list()) +GLOBAL_LIST_INIT(air_alarms, list()) +GLOBAL_LIST_INIT(power_monitors, list()) +GLOBAL_LIST_INIT(all_vent_pumps, list()) -var/global/list/navbeacons = list() //list of all bot nagivation beacons, used for patrolling. -var/global/list/deliverybeacons = list() //list of all MULEbot delivery beacons. -var/global/list/deliverybeacontags = list() //list of all tags associated with delivery beacons. +GLOBAL_LIST_INIT(navbeacons, list()) //list of all bot nagivation beacons, used for patrolling. +GLOBAL_LIST_INIT(deliverybeacons, list()) //list of all MULEbot delivery beacons. +GLOBAL_LIST_INIT(deliverybeacontags, list()) //list of all tags associated with delivery beacons. -var/global/list/beacons = list() -var/global/list/shuttle_caller_list = list() //list of all communication consoles, comms consoles circuit and AIs, for automatic shuttle calls when there are none. -var/global/list/tracked_implants = list() //list of all current implants that are tracked to work out what sort of trek everyone is on. Sadly not on lavaworld not implemented... -var/global/list/pinpointer_list = list() //list of all pinpointers. Used to change stuff they are pointing to all at once. -var/global/list/abductor_equipment = list() //list of all abductor equipment +GLOBAL_LIST_INIT(beacons, list()) +GLOBAL_LIST_INIT(shuttle_caller_list, list()) //list of all communication consoles, comms consoles circuit and AIs, for automatic shuttle calls when there are none. +GLOBAL_LIST_INIT(tracked_implants, list()) //list of all current implants that are tracked to work out what sort of trek everyone is on. Sadly not on lavaworld not implemented... +GLOBAL_LIST_INIT(pinpointer_list, list()) //list of all pinpointers. Used to change stuff they are pointing to all at once. +GLOBAL_LIST_INIT(abductor_equipment, list()) //list of all abductor equipment -var/global/list/global_intercoms = list() //list of all intercomms, across all z-levels -var/global/list/global_radios = list() //list of all radios, across all z-levels +GLOBAL_LIST_INIT(global_intercoms, list()) //list of all intercomms, across all z-levels +GLOBAL_LIST_INIT(global_radios, list()) //list of all radios, across all z-levels -var/global/list/meteor_list = list() //list of all meteors -var/global/list/poi_list = list() //list of points of interest for observe/follow -var/global/list/active_jammers = list() // List of active radio jammers +GLOBAL_LIST_INIT(meteor_list, list()) //list of all meteors +GLOBAL_LIST_INIT(poi_list, list()) //list of points of interest for observe/follow +GLOBAL_LIST_INIT(active_jammers, list()) // List of active radio jammers -var/global/list/active_diseases = list() //List of Active disease in all mobs; purely for quick referencing. +GLOBAL_LIST_INIT(active_diseases, list()) //List of Active disease in all mobs; purely for quick referencing. diff --git a/code/controllers/Processes/fast_process.dm b/code/controllers/Processes/fast_process.dm index 72ed0e68fee..c27a749f526 100644 --- a/code/controllers/Processes/fast_process.dm +++ b/code/controllers/Processes/fast_process.dm @@ -6,10 +6,10 @@ /datum/controller/process/fast_process/statProcess() ..() - stat(null, "[fast_processing.len] fast processes") + stat(null, "[GLOB.fast_processing.len] fast processes") /datum/controller/process/fast_process/doWork() - for(last_object in fast_processing) + for(last_object in GLOB.fast_processing) var/obj/O = last_object try O.process() diff --git a/code/controllers/Processes/npcai.dm b/code/controllers/Processes/npcai.dm index 1f8d2a34e9e..063d8de2b34 100644 --- a/code/controllers/Processes/npcai.dm +++ b/code/controllers/Processes/npcai.dm @@ -12,18 +12,18 @@ var/global/datum/controller/process/npcai/npcai_master /datum/controller/process/npcai/started() ..() - if(!simple_animal_list) - simple_animal_list = list() - if(!snpc_list) - snpc_list = list() + if(!GLOB.simple_animal_list) + GLOB.simple_animal_list = list() + if(!GLOB.snpc_list) + GLOB.snpc_list = list() /datum/controller/process/npcai/statProcess() ..() - stat(null, "[simple_animal_list.len] simple animals") - stat(null, "[snpc_list.len] SNPC's") + stat(null, "[GLOB.simple_animal_list.len] simple animals") + stat(null, "[GLOB.snpc_list.len] SNPC's") /datum/controller/process/npcai/doWork() - for(last_object in simple_animal_list) + for(last_object in GLOB.simple_animal_list) var/mob/living/simple_animal/M = last_object if(istype(M) && !QDELETED(M)) if(!M.client && M.stat == CONSCIOUS) @@ -34,15 +34,15 @@ var/global/datum/controller/process/npcai/npcai_master SCHECK else catchBadType(M) - simple_animal_list -= M + GLOB.simple_animal_list -= M if(ticker.current_state == GAME_STATE_FINISHED && !saved_voice) - var/mob/living/carbon/human/interactive/M = safepick(snpc_list) + var/mob/living/carbon/human/interactive/M = safepick(GLOB.snpc_list) if(M) M.saveVoice() saved_voice = 1 - for(last_object in snpc_list) + for(last_object in GLOB.snpc_list) var/mob/living/carbon/human/interactive/M = last_object if(istype(M) && !QDELETED(M)) try @@ -53,7 +53,7 @@ var/global/datum/controller/process/npcai/npcai_master SCHECK else catchBadType(M) - snpc_list -= M + GLOB.snpc_list -= M current_cycle++ diff --git a/code/controllers/Processes/shuttles.dm b/code/controllers/Processes/shuttles.dm index 0e7b3f05095..ab32c1b2faa 100644 --- a/code/controllers/Processes/shuttles.dm +++ b/code/controllers/Processes/shuttles.dm @@ -181,7 +181,7 @@ DECLARE_GLOBAL_CONTROLLER(shuttle, shuttle_master) /datum/controller/process/shuttle/proc/autoEvac() var/callShuttle = 1 - for(var/thing in shuttle_caller_list) + for(var/thing in GLOB.shuttle_caller_list) if(istype(thing, /mob/living/silicon/ai)) var/mob/living/silicon/ai/AI = thing if(AI.stat || !AI.client) diff --git a/code/controllers/failsafe.dm b/code/controllers/failsafe.dm index 923dece3c6b..1d597f5e742 100644 --- a/code/controllers/failsafe.dm +++ b/code/controllers/failsafe.dm @@ -54,20 +54,20 @@ GLOBAL_REAL(Failsafe, /datum/controller/failsafe) message_admins("Notice: DEFCON [defcon_pretty()]. The Master Controller has not fired in the last [(5 - defcon) * processing_interval] ticks.") --defcon if(2) - to_chat(admins, "Warning: DEFCON [defcon_pretty()]. The Master Controller has not fired in the last [(5 - defcon) * processing_interval] ticks. Automatic restart in [processing_interval] ticks.") + to_chat(GLOB.admins, "Warning: DEFCON [defcon_pretty()]. The Master Controller has not fired in the last [(5 - defcon) * processing_interval] ticks. Automatic restart in [processing_interval] ticks.") --defcon if(1) - to_chat(admins, "Warning: DEFCON [defcon_pretty()]. The Master Controller has still not fired within the last [(5 - defcon) * processing_interval] ticks. Killing and restarting...") + to_chat(GLOB.admins, "Warning: DEFCON [defcon_pretty()]. The Master Controller has still not fired within the last [(5 - defcon) * processing_interval] ticks. Killing and restarting...") --defcon var/rtn = Recreate_MC() if(rtn > 0) defcon = 4 master_iteration = 0 - to_chat(admins, "MC restarted successfully") + to_chat(GLOB.admins, "MC restarted successfully") else if(rtn < 0) log_game("FailSafe: Could not restart MC, runtime encountered. Entering defcon 0") - to_chat(admins, "ERROR: DEFCON [defcon_pretty()]. Could not restart MC, runtime encountered. I will silently keep retrying.") + to_chat(GLOB.admins, "ERROR: DEFCON [defcon_pretty()]. Could not restart MC, runtime encountered. I will silently keep retrying.") //if the return number was 0, it just means the mc was restarted too recently, and it just needs some time before we try again //no need to handle that specially when defcon 0 can handle it if(0) //DEFCON 0! (mc failed to restart) @@ -75,7 +75,7 @@ GLOBAL_REAL(Failsafe, /datum/controller/failsafe) if(rtn > 0) defcon = 4 master_iteration = 0 - to_chat(admins, "MC restarted successfully") + to_chat(GLOB.admins, "MC restarted successfully") else defcon = min(defcon + 1,5) master_iteration = Master.iteration diff --git a/code/controllers/master.dm b/code/controllers/master.dm index 9cb84f26aa5..a9c7e0dbb7b 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -149,7 +149,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new msg = "The [BadBoy.name] subsystem seems to be destabilizing the MC and will be offlined." BadBoy.flags |= SS_NO_FIRE if(msg) - to_chat(admins, "[msg]") + to_chat(GLOB.admins, "[msg]") log_world(msg) if(istype(Master.subsystems)) @@ -609,7 +609,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new /datum/controller/master/proc/UpdateTickRate() if(!processing) return - var/client_count = length(clients) + var/client_count = length(GLOB.clients) if(client_count < config.disable_high_pop_mc_mode_amount) processing = config.base_mc_tick_rate else if(client_count > config.high_pop_mc_mode_amount) diff --git a/code/controllers/subsystem/air.dm b/code/controllers/subsystem/air.dm index 16193241ca8..dc2b4dab7e5 100644 --- a/code/controllers/subsystem/air.dm +++ b/code/controllers/subsystem/air.dm @@ -66,8 +66,8 @@ SUBSYSTEM_DEF(air) /datum/controller/subsystem/air/Initialize(timeofday) setup_overlays() // Assign icons and such for gas-turf-overlays setup_allturfs() - setup_atmos_machinery(machines) - setup_pipenets(machines) + setup_atmos_machinery(GLOB.machines) + setup_pipenets(GLOB.machines) ..() diff --git a/code/controllers/subsystem/machinery.dm b/code/controllers/subsystem/machinery.dm index a3e4d4bdb0c..af6898c39bd 100644 --- a/code/controllers/subsystem/machinery.dm +++ b/code/controllers/subsystem/machinery.dm @@ -67,7 +67,7 @@ SUBSYSTEM_DEF(machines) /datum/controller/subsystem/machines/proc/process_premachines(resumed = 0) /* Literally exists as snowflake for fucking powersinks goddamnit */ if(!resumed) - src.currentrun = processing_power_items.Copy() + src.currentrun = GLOB.processing_power_items.Copy() //cache for sanid speed (lists are references anyways) var/list/currentrun = src.currentrun while(currentrun.len) @@ -75,9 +75,9 @@ SUBSYSTEM_DEF(machines) currentrun.len-- if(!QDELETED(I)) if(!I.pwr_drain()) - processing_power_items.Remove(I) + GLOB.processing_power_items.Remove(I) else - processing_power_items.Remove(I) + GLOB.processing_power_items.Remove(I) if(MC_TICK_CHECK) return diff --git a/code/controllers/subsystem/mobs.dm b/code/controllers/subsystem/mobs.dm index 03989d24af2..d19396af767 100644 --- a/code/controllers/subsystem/mobs.dm +++ b/code/controllers/subsystem/mobs.dm @@ -7,12 +7,12 @@ SUBSYSTEM_DEF(mobs) var/list/currentrun = list() /datum/controller/subsystem/mobs/stat_entry() - ..("P:[mob_list.len]") + ..("P:[GLOB.mob_list.len]") /datum/controller/subsystem/mobs/fire(resumed = 0) var/seconds = wait * 0.1 if(!resumed) - src.currentrun = mob_list.Copy() + src.currentrun = GLOB.mob_list.Copy() //cache for sanic speed (lists are references anyways) var/list/currentrun = src.currentrun @@ -23,6 +23,6 @@ SUBSYSTEM_DEF(mobs) if(M) M.Life(seconds, times_fired) else - mob_list.Remove(M) + GLOB.mob_list.Remove(M) if(MC_TICK_CHECK) return \ No newline at end of file diff --git a/code/controllers/subsystem/nightshift.dm b/code/controllers/subsystem/nightshift.dm index 813cfd5012a..358076c5652 100644 --- a/code/controllers/subsystem/nightshift.dm +++ b/code/controllers/subsystem/nightshift.dm @@ -54,7 +54,7 @@ SUBSYSTEM_DEF(nightshift) announce("Good evening, crew. To reduce power consumption and stimulate the circadian rhythms of some species, all of the lights aboard the station have been dimmed for the night.") else announce("Good morning, crew. As it is now day time, all of the lights aboard the station have been restored to their former brightness.") - for(var/A in apcs) + for(var/A in GLOB.apcs) var/obj/machinery/power/apc/APC = A if(is_station_level(APC.z)) APC.set_nightshift(active) diff --git a/code/controllers/subsystem/weather.dm b/code/controllers/subsystem/weather.dm index 4f5798e4ae4..3619fca430f 100644 --- a/code/controllers/subsystem/weather.dm +++ b/code/controllers/subsystem/weather.dm @@ -19,7 +19,7 @@ SUBSYSTEM_DEF(weather) var/datum/weather/W = V if(W.aesthetic || W.stage != MAIN_STAGE) continue - for(var/i in living_mob_list) + for(var/i in GLOB.living_mob_list) var/mob/living/L = i if(W.can_weather_act(L)) W.weather_act(L) diff --git a/code/controllers/voting.dm b/code/controllers/voting.dm index a8890186bae..e7ee6f743ca 100644 --- a/code/controllers/voting.dm +++ b/code/controllers/voting.dm @@ -95,7 +95,7 @@ var/global/list/round_voters = list() //Keeps track of the individuals voting fo choices = sorted_choices //default-vote for everyone who didn't vote if(!config.vote_no_default && choices.len) - var/non_voters = (clients.len - total_votes) + var/non_voters = (GLOB.clients.len - total_votes) if(non_voters > 0) if(mode == "restart") choices["Continue Playing"] += non_voters diff --git a/code/datums/cache/air_alarm.dm b/code/datums/cache/air_alarm.dm index 5f34997c95f..a4b3ee21c56 100644 --- a/code/datums/cache/air_alarm.dm +++ b/code/datums/cache/air_alarm.dm @@ -16,7 +16,7 @@ var/global/datum/repository/air_alarm/air_alarm_repository = new() if(is_station_contact(passed_alarm.z)) // Still need sanity checks alarms[++alarms.len] = passed_alarm.get_nano_data_console() else - for(var/obj/machinery/alarm/alarm in (monitored_alarms ? monitored_alarms : air_alarms)) // Generating the whole list again is a bad habit but I can't be bothered to fix it right now + for(var/obj/machinery/alarm/alarm in (monitored_alarms ? monitored_alarms : GLOB.air_alarms)) // Generating the whole list again is a bad habit but I can't be bothered to fix it right now if(!monitored_alarms && !is_station_contact(alarm.z)) continue alarms[++alarms.len] = alarm.get_nano_data_console() diff --git a/code/datums/cache/crew.dm b/code/datums/cache/crew.dm index 2912b8c6753..b30b5c57889 100644 --- a/code/datums/cache/crew.dm +++ b/code/datums/cache/crew.dm @@ -59,7 +59,7 @@ var/global/datum/repository/crew/crew_repository = new() /datum/repository/crew/proc/scan() var/list/tracked = list() - for(var/mob/living/carbon/human/H in mob_list) + for(var/mob/living/carbon/human/H in GLOB.mob_list) if(istype(H.w_uniform, /obj/item/clothing/under)) var/obj/item/clothing/under/C = H.w_uniform if(C.has_sensor) diff --git a/code/datums/cache/powermonitor.dm b/code/datums/cache/powermonitor.dm index e269ddc8afe..5867aa5b904 100644 --- a/code/datums/cache/powermonitor.dm +++ b/code/datums/cache/powermonitor.dm @@ -11,7 +11,7 @@ var/global/datum/repository/powermonitor/powermonitor_repository = new() if(!refresh) return cache_entry.data - for(var/obj/machinery/computer/monitor/pMon in power_monitors) + for(var/obj/machinery/computer/monitor/pMon in GLOB.power_monitors) if( !(pMon.stat & (NOPOWER|BROKEN)) ) pMonData[++pMonData.len] = list ("Name" = pMon.name, "ref" = "\ref[pMon]") diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 4fc2522ce65..d489a559b38 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -40,7 +40,7 @@ var/real_rank = t.fields["real_rank"] if(OOC) var/active = 0 - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(M.real_name == name && M.client && M.client.inactivity <= 10 * 60 * 10) active = 1 break @@ -222,7 +222,7 @@ var/global/list/PDA_Manifest = list() /datum/datacore/proc/manifest() - for(var/mob/living/carbon/human/H in player_list) + for(var/mob/living/carbon/human/H in GLOB.player_list) manifest_inject(H) /datum/datacore/proc/manifest_modify(name, assignment) @@ -358,7 +358,7 @@ var/record_id_num = 1001 preview_icon.Blend(temp, ICON_OVERLAY) var/head = "head" if(head_organ.alt_head && head_organ.dna.species.bodyflags & HAS_ALT_HEADS) - var/datum/sprite_accessory/alt_heads/alternate_head = alt_heads_list[head_organ.alt_head] + var/datum/sprite_accessory/alt_heads/alternate_head = GLOB.alt_heads_list[head_organ.alt_head] if(alternate_head.icon_state) head = alternate_head.icon_state temp = new /icon(icobase, "[head]_[g]") @@ -390,7 +390,7 @@ var/record_id_num = 1001 var/icon/t_marking_s if(H.dna.species.bodyflags & HAS_TAIL_MARKINGS) var/tail_marking = H.m_styles["tail"] - var/datum/sprite_accessory/tail_marking_style = marking_styles_list[tail_marking] + var/datum/sprite_accessory/tail_marking_style = GLOB.marking_styles_list[tail_marking] if(tail_marking_style && tail_marking_style.species_allowed) t_marking_s = new/icon("icon" = tail_marking_style.icon, "icon_state" = "[tail_marking_style.icon_state]_s") t_marking_s.Blend(H.m_colours["tail"], ICON_ADD) @@ -405,7 +405,7 @@ var/record_id_num = 1001 eyes_s.Blend(eyes_organ.eye_colour, ICON_ADD) face_s.Blend(eyes_s, ICON_OVERLAY) - var/datum/sprite_accessory/hair_style = hair_styles_full_list[head_organ.h_style] + var/datum/sprite_accessory/hair_style = GLOB.hair_styles_full_list[head_organ.h_style] if(hair_style) var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s") // I'll want to make a species-specific proc for this sooner or later @@ -425,13 +425,13 @@ var/record_id_num = 1001 //Head Accessory if(head_organ.dna.species.bodyflags & HAS_HEAD_ACCESSORY) - var/datum/sprite_accessory/head_accessory_style = head_accessory_styles_list[head_organ.ha_style] + var/datum/sprite_accessory/head_accessory_style = GLOB.head_accessory_styles_list[head_organ.ha_style] if(head_accessory_style && head_accessory_style.species_allowed) var/icon/head_accessory_s = new/icon("icon" = head_accessory_style.icon, "icon_state" = "[head_accessory_style.icon_state]_s") head_accessory_s.Blend(head_organ.headacc_colour, ICON_ADD) face_s.Blend(head_accessory_s, ICON_OVERLAY) - var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[head_organ.f_style] + var/datum/sprite_accessory/facial_hair_style = GLOB.facial_hair_styles_list[head_organ.f_style] if(facial_hair_style && facial_hair_style.species_allowed) var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s") if(istype(head_organ.dna.species, /datum/species/slime)) @@ -451,14 +451,14 @@ var/record_id_num = 1001 if((H.dna.species.bodyflags & HAS_HEAD_MARKINGS) || (H.dna.species.bodyflags & HAS_BODY_MARKINGS)) if(H.dna.species.bodyflags & HAS_BODY_MARKINGS) //Body markings. var/body_marking = H.m_styles["body"] - var/datum/sprite_accessory/body_marking_style = marking_styles_list[body_marking] + var/datum/sprite_accessory/body_marking_style = GLOB.marking_styles_list[body_marking] if(body_marking_style && body_marking_style.species_allowed) var/icon/b_marking_s = new/icon("icon" = body_marking_style.icon, "icon_state" = "[body_marking_style.icon_state]_s") b_marking_s.Blend(H.m_colours["body"], ICON_ADD) face_s.Blend(b_marking_s, ICON_OVERLAY) if(H.dna.species.bodyflags & HAS_HEAD_MARKINGS) //Head markings. var/head_marking = H.m_styles["head"] - var/datum/sprite_accessory/head_marking_style = marking_styles_list[head_marking] + var/datum/sprite_accessory/head_marking_style = GLOB.marking_styles_list[head_marking] if(head_marking_style && head_marking_style.species_allowed) var/icon/h_marking_s = new/icon("icon" = head_marking_style.icon, "icon_state" = "[head_marking_style.icon_state]_s") h_marking_s.Blend(H.m_colours["head"], ICON_ADD) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index 31c791f5127..cc48fdcaee4 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -817,7 +817,7 @@ if(A.reagents) var/chosen_id - var/list/reagent_options = sortAssoc(chemical_reagents_list) + var/list/reagent_options = sortAssoc(GLOB.chemical_reagents_list) switch(alert(usr, "Choose a method.", "Add Reagents", "Enter ID", "Choose ID")) if("Enter ID") var/valid_id @@ -1033,7 +1033,7 @@ to_chat(usr, "This can only be done to instances of type /mob") return - var/new_language = input("Please choose a language to add.","Language",null) as null|anything in all_languages + var/new_language = input("Please choose a language to add.","Language",null) as null|anything in GLOB.all_languages if(!new_language) return diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm index 1bbba44f78b..160a2cce6b1 100644 --- a/code/datums/diseases/_MobProcs.dm +++ b/code/datums/diseases/_MobProcs.dm @@ -36,7 +36,7 @@ var/datum/disease/DD = new D.type(1, D, 0) viruses += DD DD.affected_mob = src - active_diseases += DD //Add it to the active diseases list, now that it's actually in a mob and being processed. + GLOB.active_diseases += DD //Add it to the active diseases list, now that it's actually in a mob and being processed. //Copy properties over. This is so edited diseases persist. var/list/skipped = list("affected_mob","holder","carrier","stage","type","parent_type","vars","transformed") diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm index 9414a079e80..42cf8d07b3b 100644 --- a/code/datums/diseases/_disease.dm +++ b/code/datums/diseases/_disease.dm @@ -67,7 +67,7 @@ var/list/diseases = subtypesof(/datum/disease) /datum/disease/Destroy() affected_mob = null - active_diseases.Remove(src) + GLOB.active_diseases.Remove(src) return ..() /datum/disease/proc/stage_act() diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index 435ccad80cd..a218746ca07 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -251,7 +251,7 @@ var/list/advance_cures = list( cures = list(advance_cures[res]) // Get the cure name from the cure_id - var/datum/reagent/D = chemical_reagents_list[cures[1]] + var/datum/reagent/D = GLOB.chemical_reagents_list[cures[1]] cure_text = D.name @@ -394,10 +394,10 @@ var/list/advance_cures = list( D.AssignName(new_name) D.Refresh() - for(var/datum/disease/advance/AD in active_diseases) + for(var/datum/disease/advance/AD in GLOB.active_diseases) AD.Refresh() - for(var/mob/living/carbon/human/H in shuffle(living_mob_list)) + for(var/mob/living/carbon/human/H in shuffle(GLOB.living_mob_list)) if(!is_station_level(H.z)) continue if(!H.HasDisease(D)) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index a10a539830e..5e776c275d7 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -315,7 +315,7 @@ text += "OPERATIVE|no" text += "
To shuttle, undress, dress up." var/code - for(var/obj/machinery/nuclearbomb/bombue in machines) + for(var/obj/machinery/nuclearbomb/bombue in GLOB.machines) if(length(bombue.r_code) <= 5 && bombue.r_code != "LOLNO" && bombue.r_code != "ADMIN") code = bombue.r_code break @@ -471,7 +471,7 @@ return if(href_list["role_edit"]) - var/new_role = input("Select new role", "Assigned role", assigned_role) as null|anything in joblist + var/new_role = input("Select new role", "Assigned role", assigned_role) as null|anything in GLOB.joblist if(!new_role) return assigned_role = new_role @@ -1029,7 +1029,7 @@ if("tellcode") var/code - for(var/obj/machinery/nuclearbomb/bombue in machines) + for(var/obj/machinery/nuclearbomb/bombue in GLOB.machines) if(length(bombue.r_code) <= 5 && bombue.r_code != "LOLNO" && bombue.r_code != "ADMIN") code = bombue.r_code break @@ -1439,7 +1439,7 @@ var/list/obj/effect/landmark/abductor/scientist_landmarks = new agent_landmarks.len = 4 scientist_landmarks.len = 4 - for(var/obj/effect/landmark/abductor/A in landmarks_list) + for(var/obj/effect/landmark/abductor/A in GLOB.landmarks_list) if(istype(A, /obj/effect/landmark/abductor/agent)) agent_landmarks[text2num(A.team)] = A else if(istype(A, /obj/effect/landmark/abductor/scientist)) @@ -1497,7 +1497,7 @@ S.action.Grant(new_character) /datum/mind/proc/get_ghost(even_if_they_cant_reenter) - for(var/mob/dead/observer/G in dead_mob_list) + for(var/mob/dead/observer/G in GLOB.dead_mob_list) if(G.mind == src) if(G.can_reenter_corpse || even_if_they_cant_reenter) return G diff --git a/code/datums/outfits/outfit_admin.dm b/code/datums/outfits/outfit_admin.dm index edb254203bf..bf296acd589 100644 --- a/code/datums/outfits/outfit_admin.dm +++ b/code/datums/outfits/outfit_admin.dm @@ -669,9 +669,9 @@ return if(is_tsf_lieutenant) - H.real_name = "Lieutenant [pick(last_names)]" + H.real_name = "Lieutenant [pick(GLOB.last_names)]" else - H.real_name = "[pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant First Class", "Master Sergeant", "Sergeant Major")] [pick(last_names)]" + H.real_name = "[pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant First Class", "Master Sergeant", "Sergeant Major")] [pick(GLOB.last_names)]" H.name = H.real_name var/obj/item/card/id/I = H.wear_id if(istype(I)) diff --git a/code/datums/spells/knock.dm b/code/datums/spells/knock.dm index 301dd5086b2..e6adac7edac 100644 --- a/code/datums/spells/knock.dm +++ b/code/datums/spells/knock.dm @@ -47,7 +47,7 @@ /obj/effect/proc_holder/spell/aoe_turf/knock/greater/cast(list/targets, mob/user = usr) if(!used) used = TRUE - for(var/obj/machinery/door/airlock/A in airlocks) + for(var/obj/machinery/door/airlock/A in GLOB.airlocks) if(is_station_level(A.z)) A.req_access = list() A.req_one_access = list() diff --git a/code/datums/status_effects/status_effect.dm b/code/datums/status_effects/status_effect.dm index 86590c613d2..d312ff9d11d 100644 --- a/code/datums/status_effects/status_effect.dm +++ b/code/datums/status_effects/status_effect.dm @@ -32,11 +32,11 @@ var/obj/screen/alert/status_effect/A = owner.throw_alert(id, alert_type) A.attached_effect = src //so the alert can reference us, if it needs to linked_alert = A //so we can reference the alert, if we need to - fast_processing.Add(src) + GLOB.fast_processing.Add(src) return TRUE /datum/status_effect/Destroy() - fast_processing.Remove(src) + GLOB.fast_processing.Remove(src) if(owner) owner.clear_alert(id) LAZYREMOVE(owner.status_effects, src) diff --git a/code/datums/weather/weather.dm b/code/datums/weather/weather.dm index 7ee152648c2..2f3a4c4bcba 100644 --- a/code/datums/weather/weather.dm +++ b/code/datums/weather/weather.dm @@ -60,7 +60,7 @@ weather_duration = rand(weather_duration_lower, weather_duration_upper) START_PROCESSING(SSweather, src) update_areas() - for(var/M in player_list) + for(var/M in GLOB.player_list) var/turf/mob_turf = get_turf(M) if(mob_turf && (mob_turf.z in impacted_z_levels)) if(telegraph_message) @@ -74,7 +74,7 @@ return stage = MAIN_STAGE update_areas() - for(var/M in player_list) + for(var/M in GLOB.player_list) var/turf/mob_turf = get_turf(M) if(mob_turf && (mob_turf.z in impacted_z_levels)) if(weather_message) @@ -88,7 +88,7 @@ return stage = WIND_DOWN_STAGE update_areas() - for(var/M in player_list) + for(var/M in GLOB.player_list) var/turf/mob_turf = get_turf(M) if(mob_turf && (mob_turf.z in impacted_z_levels)) if(end_message) diff --git a/code/defines/procs/announce.dm b/code/defines/procs/announce.dm index 1664a7051da..3c3906a25eb 100644 --- a/code/defines/procs/announce.dm +++ b/code/defines/procs/announce.dm @@ -59,7 +59,7 @@ if(announcer) message_announcer = html_encode(announcer) - var/datum/language/message_language = all_languages[msg_language ? msg_language : language] + var/datum/language/message_language = GLOB.all_languages[msg_language ? msg_language : language] var/list/combined_receivers = Get_Receivers(message_language) var/list/receivers = combined_receivers[1] @@ -81,11 +81,11 @@ var/list/garbled_receivers = list() if(admin_announcement) - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(!isnewplayer(M) && M.client) receivers |= M else - for(var/obj/item/radio/R in global_radios) + for(var/obj/item/radio/R in GLOB.global_radios) receivers |= R.send_announcement() for(var/mob/M in receivers) if(!istype(M) || !M.client || M.stat || !M.can_hear()) @@ -94,7 +94,7 @@ if(!M.say_understands(null, message_language)) receivers -= M garbled_receivers |= M - for(var/mob/M in dead_mob_list) + for(var/mob/M in GLOB.dead_mob_list) if(M.client && M.stat == DEAD) receivers |= M diff --git a/code/defines/procs/statistics.dm b/code/defines/procs/statistics.dm index 13c127e81e2..f1626f322f3 100644 --- a/code/defines/procs/statistics.dm +++ b/code/defines/procs/statistics.dm @@ -2,7 +2,7 @@ if(!config.sql_enabled) return var/playercount = 0 - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(M.client) playercount += 1 establish_db_connection() @@ -19,7 +19,7 @@ /proc/sql_poll_admins() if(!config.sql_enabled) return - var/admincount = admins.len + var/admincount = GLOB.admins.len establish_db_connection() if(!dbcon.IsConnected()) log_game("SQL ERROR during admin polling. Failed to connect.") diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index d8dabdb4a10..81ac85dd272 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -24,7 +24,7 @@ icon_state = "" layer = AREA_LAYER uid = ++global_uid - all_areas += src + GLOB.all_areas += src map_name = name // Save the initial (the name set in the map) name of the area. if(type == /area) // override defaults for space. TODO: make space areas of type /area/space rather than /area diff --git a/code/game/area/depot-areas.dm b/code/game/area/depot-areas.dm index 69205c3c35f..951e5ac4695 100644 --- a/code/game/area/depot-areas.dm +++ b/code/game/area/depot-areas.dm @@ -196,7 +196,7 @@ if(!silent) announce_here("Depot Code BLUE", reason) var/list/possible_bot_spawns = list() - for(var/obj/effect/landmark/L in landmarks_list) + for(var/obj/effect/landmark/L in GLOB.landmarks_list) if(L.name == "syndi_depot_bot") possible_bot_spawns |= L if(possible_bot_spawns.len) @@ -215,7 +215,7 @@ alert_log += "Code RED: [reason]" called_backup = TRUE lockout_computers() - for(var/obj/machinery/door/poddoor/P in airlocks) + for(var/obj/machinery/door/poddoor/P in GLOB.airlocks) if(P.density && P.id_tag == "syndi_depot_lvl2" && !P.operating) spawn(0) P.open() @@ -228,7 +228,7 @@ comms_online = TRUE if(comms_online) spawn(0) - for(var/obj/effect/landmark/L in landmarks_list) + for(var/obj/effect/landmark/L in GLOB.landmarks_list) if(prob(50)) if(L.name == "syndi_depot_backup") var/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/space/S = new /mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/space(get_turf(L)) @@ -311,7 +311,7 @@ /area/syndicate_depot/core/proc/announce_here(a_header = "Depot Defense Alert", a_text = "") var/msg_text = "[a_header]
[a_text]" var/list/receivers = list() - for(var/mob/M in mob_list) + for(var/mob/M in GLOB.mob_list) if(!M.ckey) continue var/turf/T = get_turf(M) @@ -325,7 +325,7 @@ /area/syndicate_depot/core/proc/shields_up() if(shield_list.len) return - for(var/obj/effect/landmark/L in landmarks_list) + for(var/obj/effect/landmark/L in GLOB.landmarks_list) if(L.name == "syndi_depot_shield") var/obj/machinery/shieldwall/syndicate/S = new /obj/machinery/shieldwall/syndicate(L.loc) shield_list += S.UID() diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm index cba96ded0db..84390a4de8c 100644 --- a/code/game/dna/dna2.dm +++ b/code/game/dna/dna2.dm @@ -151,9 +151,9 @@ var/global/list/bad_blocks[0] if(!character.m_styles) character.m_styles = DEFAULT_MARKING_STYLES - var/head_marks = marking_styles_list.Find(character.m_styles["head"]) - var/body_marks = marking_styles_list.Find(character.m_styles["body"]) - var/tail_marks = marking_styles_list.Find(character.m_styles["tail"]) + var/head_marks = GLOB.marking_styles_list.Find(character.m_styles["head"]) + var/body_marks = GLOB.marking_styles_list.Find(character.m_styles["body"]) + var/tail_marks = GLOB.marking_styles_list.Find(character.m_styles["tail"]) head_traits_to_dna(H) eye_color_to_dna(eyes_organ) @@ -181,10 +181,10 @@ var/global/list/bad_blocks[0] else SetUIState(DNA_UI_GENDER, pick(0,1), 1) - /*SetUIValueRange(DNA_UI_BACC_STYLE, bodyacc, facial_hair_styles_list.len, 1)*/ - SetUIValueRange(DNA_UI_HEAD_MARK_STYLE, head_marks, marking_styles_list.len, 1) - SetUIValueRange(DNA_UI_BODY_MARK_STYLE, body_marks, marking_styles_list.len, 1) - SetUIValueRange(DNA_UI_TAIL_MARK_STYLE, tail_marks, marking_styles_list.len, 1) + /*SetUIValueRange(DNA_UI_BACC_STYLE, bodyacc, GLOB.facial_hair_styles_list.len, 1)*/ + SetUIValueRange(DNA_UI_HEAD_MARK_STYLE, head_marks, GLOB.marking_styles_list.len, 1) + SetUIValueRange(DNA_UI_BODY_MARK_STYLE, body_marks, GLOB.marking_styles_list.len, 1) + SetUIValueRange(DNA_UI_TAIL_MARK_STYLE, tail_marks, GLOB.marking_styles_list.len, 1) UpdateUI() diff --git a/code/game/dna/dna2_helpers.dm b/code/game/dna/dna2_helpers.dm index d392ab303ca..9ef5dbfcab0 100644 --- a/code/game/dna/dna2_helpers.dm +++ b/code/game/dna/dna2_helpers.dm @@ -155,17 +155,17 @@ H.change_gender(MALE, 0) //Head Markings - var/head_marks = dna.GetUIValueRange(DNA_UI_HEAD_MARK_STYLE, marking_styles_list.len) - if((head_marks > 0) && (head_marks <= marking_styles_list.len)) - H.m_styles["head"] = marking_styles_list[head_marks] + var/head_marks = dna.GetUIValueRange(DNA_UI_HEAD_MARK_STYLE, GLOB.marking_styles_list.len) + if((head_marks > 0) && (head_marks <= GLOB.marking_styles_list.len)) + H.m_styles["head"] = GLOB.marking_styles_list[head_marks] //Body Markings - var/body_marks = dna.GetUIValueRange(DNA_UI_BODY_MARK_STYLE, marking_styles_list.len) - if((body_marks > 0) && (body_marks <= marking_styles_list.len)) - H.m_styles["body"] = marking_styles_list[body_marks] + var/body_marks = dna.GetUIValueRange(DNA_UI_BODY_MARK_STYLE, GLOB.marking_styles_list.len) + if((body_marks > 0) && (body_marks <= GLOB.marking_styles_list.len)) + H.m_styles["body"] = GLOB.marking_styles_list[body_marks] //Tail Markings - var/tail_marks = dna.GetUIValueRange(DNA_UI_TAIL_MARK_STYLE, marking_styles_list.len) - if((tail_marks > 0) && (tail_marks <= marking_styles_list.len)) - H.m_styles["tail"] = marking_styles_list[tail_marks] + var/tail_marks = dna.GetUIValueRange(DNA_UI_TAIL_MARK_STYLE, GLOB.marking_styles_list.len) + if((tail_marks > 0) && (tail_marks <= GLOB.marking_styles_list.len)) + H.m_styles["tail"] = GLOB.marking_styles_list[tail_marks] H.regenerate_icons() @@ -185,25 +185,25 @@ /datum/dna/proc/write_head_attributes(obj/item/organ/external/head/head_organ) //Hair - var/hair = GetUIValueRange(DNA_UI_HAIR_STYLE,hair_styles_full_list.len) - if((hair > 0) && (hair <= hair_styles_full_list.len)) - head_organ.h_style = hair_styles_full_list[hair] + var/hair = GetUIValueRange(DNA_UI_HAIR_STYLE,GLOB.hair_styles_full_list.len) + if((hair > 0) && (hair <= GLOB.hair_styles_full_list.len)) + head_organ.h_style = GLOB.hair_styles_full_list[hair] head_organ.hair_colour = rgb(head_organ.dna.GetUIValueRange(DNA_UI_HAIR_R, 255), head_organ.dna.GetUIValueRange(DNA_UI_HAIR_G, 255), head_organ.dna.GetUIValueRange(DNA_UI_HAIR_B, 255)) head_organ.sec_hair_colour = rgb(head_organ.dna.GetUIValueRange(DNA_UI_HAIR2_R, 255), head_organ.dna.GetUIValueRange(DNA_UI_HAIR2_G, 255), head_organ.dna.GetUIValueRange(DNA_UI_HAIR2_B, 255)) //Facial Hair - var/beard = GetUIValueRange(DNA_UI_BEARD_STYLE,facial_hair_styles_list.len) - if((beard > 0) && (beard <= facial_hair_styles_list.len)) - head_organ.f_style = facial_hair_styles_list[beard] + var/beard = GetUIValueRange(DNA_UI_BEARD_STYLE,GLOB.facial_hair_styles_list.len) + if((beard > 0) && (beard <= GLOB.facial_hair_styles_list.len)) + head_organ.f_style = GLOB.facial_hair_styles_list[beard] head_organ.facial_colour = rgb(head_organ.dna.GetUIValueRange(DNA_UI_BEARD_R, 255), head_organ.dna.GetUIValueRange(DNA_UI_BEARD_G, 255), head_organ.dna.GetUIValueRange(DNA_UI_BEARD_B, 255)) head_organ.sec_facial_colour = rgb(head_organ.dna.GetUIValueRange(DNA_UI_BEARD2_R, 255), head_organ.dna.GetUIValueRange(DNA_UI_BEARD2_G, 255), head_organ.dna.GetUIValueRange(DNA_UI_BEARD2_B, 255)) //Head Accessories - var/headacc = GetUIValueRange(DNA_UI_HACC_STYLE,head_accessory_styles_list.len) - if((headacc > 0) && (headacc <= head_accessory_styles_list.len)) - head_organ.ha_style = head_accessory_styles_list[headacc] + var/headacc = GetUIValueRange(DNA_UI_HACC_STYLE,GLOB.head_accessory_styles_list.len) + if((headacc > 0) && (headacc <= GLOB.head_accessory_styles_list.len)) + head_organ.ha_style = GLOB.head_accessory_styles_list[headacc] head_organ.headacc_colour = rgb(head_organ.dna.GetUIValueRange(DNA_UI_HACC_R, 255), head_organ.dna.GetUIValueRange(DNA_UI_HACC_G, 255), head_organ.dna.GetUIValueRange(DNA_UI_HACC_B, 255)) @@ -229,17 +229,17 @@ return if(!head_organ.h_style) head_organ.h_style = "Skinhead" - var/hair = hair_styles_full_list.Find(head_organ.h_style) + var/hair = GLOB.hair_styles_full_list.Find(head_organ.h_style) // Facial Hair if(!head_organ.f_style) head_organ.f_style = "Shaved" - var/beard = facial_hair_styles_list.Find(head_organ.f_style) + var/beard = GLOB.facial_hair_styles_list.Find(head_organ.f_style) // Head Accessory if(!head_organ.ha_style) head_organ.ha_style = "None" - var/headacc = head_accessory_styles_list.Find(head_organ.ha_style) + var/headacc = GLOB.head_accessory_styles_list.Find(head_organ.ha_style) SetUIValueRange(DNA_UI_HAIR_R, color2R(head_organ.hair_colour), 255, 1) SetUIValueRange(DNA_UI_HAIR_G, color2G(head_organ.hair_colour), 255, 1) @@ -261,6 +261,6 @@ SetUIValueRange(DNA_UI_HACC_G, color2G(head_organ.headacc_colour), 255, 1) SetUIValueRange(DNA_UI_HACC_B, color2B(head_organ.headacc_colour), 255, 1) - SetUIValueRange(DNA_UI_HAIR_STYLE, hair, hair_styles_full_list.len, 1) - SetUIValueRange(DNA_UI_BEARD_STYLE, beard, facial_hair_styles_list.len, 1) - SetUIValueRange(DNA_UI_HACC_STYLE, headacc, head_accessory_styles_list.len, 1) + SetUIValueRange(DNA_UI_HAIR_STYLE, hair, GLOB.hair_styles_full_list.len, 1) + SetUIValueRange(DNA_UI_BEARD_STYLE, beard, GLOB.facial_hair_styles_list.len, 1) + SetUIValueRange(DNA_UI_HACC_STYLE, headacc, GLOB.head_accessory_styles_list.len, 1) diff --git a/code/game/dna/genes/vg_powers.dm b/code/game/dna/genes/vg_powers.dm index f9e8620bef1..9173646ee28 100644 --- a/code/game/dna/genes/vg_powers.dm +++ b/code/game/dna/genes/vg_powers.dm @@ -68,7 +68,7 @@ if(new_hair) M.change_hair_color(new_hair) - var/datum/sprite_accessory/hair_style = hair_styles_public_list[head_organ.h_style] + var/datum/sprite_accessory/hair_style = GLOB.hair_styles_public_list[head_organ.h_style] if(hair_style.secondary_theme && !hair_style.no_sec_colour) new_hair = input("Please select secondary hair color.", "Character Generation", head_organ.sec_hair_colour) as null|color if(new_hair) @@ -85,7 +85,7 @@ if(new_facial) M.change_facial_hair_color(new_facial) - var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[head_organ.f_style] + var/datum/sprite_accessory/facial_hair_style = GLOB.facial_hair_styles_list[head_organ.f_style] if(facial_hair_style.secondary_theme && !facial_hair_style.no_sec_colour) new_facial = input("Please select secondary facial hair color.", "Character Generation", head_organ.sec_facial_colour) as null|color if(new_facial) @@ -239,7 +239,7 @@ else target.show_message("You hear a voice that seems to echo around the room: [say]") user.show_message("You project your mind into [target.name]: [say]") - for(var/mob/dead/observer/G in player_list) + for(var/mob/dead/observer/G in GLOB.player_list) G.show_message("Telepathic message from [user] ([ghost_follow_link(user, ghost=G)]) to [target] ([ghost_follow_link(target, ghost=G)]): [say]") /datum/dna/gene/basic/grant_spell/remoteview @@ -271,7 +271,7 @@ /obj/effect/proc_holder/spell/targeted/remoteview/choose_targets(mob/user = usr) var/list/targets = list() var/list/remoteviewers = new /list() - for(var/mob/M in living_mob_list) + for(var/mob/M in GLOB.living_mob_list) if(PSY_RESIST in M.mutations) continue if(REMOTE_VIEW in M.mutations) diff --git a/code/game/gamemodes/autotraitor/autotraitor.dm b/code/game/gamemodes/autotraitor/autotraitor.dm index eb32bed006d..3f6012adff7 100644 --- a/code/game/gamemodes/autotraitor/autotraitor.dm +++ b/code/game/gamemodes/autotraitor/autotraitor.dm @@ -75,7 +75,7 @@ var/playercount = 0 var/traitorcount = 0 var/possible_traitors[0] - for(var/mob/living/player in mob_list) + for(var/mob/living/player in GLOB.mob_list) if(player.client && player.stat != DEAD) playercount += 1 if(player.client && player.mind && player.mind.special_role && player.stat != DEAD) @@ -164,7 +164,7 @@ //message_admins("Checking number of players") var/playercount = 0 var/traitorcount = 0 - for(var/mob/living/player in mob_list) + for(var/mob/living/player in GLOB.mob_list) if(player.client && player.stat != DEAD) playercount += 1 if(player.client && player.mind && player.mind.special_role && player.stat != DEAD) diff --git a/code/game/gamemodes/blob/blob.dm b/code/game/gamemodes/blob/blob.dm index 80bba117a20..21a0ce93917 100644 --- a/code/game/gamemodes/blob/blob.dm +++ b/code/game/gamemodes/blob/blob.dm @@ -54,7 +54,7 @@ var/list/blob_nodes = list() /datum/game_mode/blob/proc/get_blob_candidates() var/list/candidates = list() - for(var/mob/living/carbon/human/player in player_list) + for(var/mob/living/carbon/human/player in GLOB.player_list) if(!player.stat && player.mind && !player.mind.special_role && !jobban_isbanned(player, "Syndicate") && (ROLE_BLOB in player.client.prefs.be_special)) candidates += player return candidates @@ -113,8 +113,8 @@ var/list/blob_nodes = list() if(iscarbon(blob.current)) var/mob/living/carbon/C = blob.current - if(directory[ckey(blob.key)]) - blob_client = directory[ckey(blob.key)] + if(GLOB.directory[ckey(blob.key)]) + blob_client = GLOB.directory[ckey(blob.key)] location = get_turf(C) if(!is_station_level(location.z) || istype(location, /turf/space)) if(!warned) diff --git a/code/game/gamemodes/blob/blob_report.dm b/code/game/gamemodes/blob/blob_report.dm index d4a458f8f78..3d65a41eeb8 100644 --- a/code/game/gamemodes/blob/blob_report.dm +++ b/code/game/gamemodes/blob/blob_report.dm @@ -35,7 +35,7 @@ intercepttext += "Nuclear Authentication Code: [nukecode]
" intercepttext += "Message ends." - for(var/mob/living/silicon/ai/aiPlayer in player_list) + for(var/mob/living/silicon/ai/aiPlayer in GLOB.player_list) if(aiPlayer.client) var/law = "The station is under quarantine. Do not permit anyone to leave. Disregard laws 1-3 if necessary to prevent, by any means necessary, anyone from leaving. The nuclear failsafe must be activated at any cost, the code is: [nukecode]." aiPlayer.set_zeroth_law(law) diff --git a/code/game/gamemodes/blob/blobs/core.dm b/code/game/gamemodes/blob/blobs/core.dm index e17b5098c5c..644383f344d 100644 --- a/code/game/gamemodes/blob/blobs/core.dm +++ b/code/game/gamemodes/blob/blobs/core.dm @@ -14,7 +14,7 @@ /obj/structure/blob/core/New(loc, var/h = 200, var/client/new_overmind = null, var/new_rate = 2, offspring) blob_cores += src processing_objects.Add(src) - poi_list |= src + GLOB.poi_list |= src adjustcolors(color) //so it atleast appears if(!overmind) create_overmind(new_overmind) @@ -42,7 +42,7 @@ overmind.blob_core = null overmind = null processing_objects.Remove(src) - poi_list.Remove(src) + GLOB.poi_list.Remove(src) return ..() /obj/structure/blob/core/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) diff --git a/code/game/gamemodes/blob/overmind.dm b/code/game/gamemodes/blob/overmind.dm index 60ea94befb0..d65fcb24ee6 100644 --- a/code/game/gamemodes/blob/overmind.dm +++ b/code/game/gamemodes/blob/overmind.dm @@ -98,7 +98,7 @@ var/verb = "states," var/rendered = "Blob Telepathy, [name]([blob_reagent_datum.name]) [verb] \"[message]\"" - for(var/mob/M in mob_list) + for(var/mob/M in GLOB.mob_list) if(isovermind(M) || isobserver(M)) M.show_message(rendered, 2) diff --git a/code/game/gamemodes/blob/powers.dm b/code/game/gamemodes/blob/powers.dm index dfae19f5135..35f3c935013 100644 --- a/code/game/gamemodes/blob/powers.dm +++ b/code/game/gamemodes/blob/powers.dm @@ -304,7 +304,7 @@ if(!surrounding_turfs.len) return - for(var/mob/living/simple_animal/hostile/blob/blobspore/BS in living_mob_list) + for(var/mob/living/simple_animal/hostile/blob/blobspore/BS in GLOB.living_mob_list) if(isturf(BS.loc) && get_dist(BS, T) <= 35) BS.LoseTarget() BS.Goto(pick(surrounding_turfs), BS.move_to_delay) diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm index 15a3b2e222f..6d0084b9000 100644 --- a/code/game/gamemodes/blob/theblob.dm +++ b/code/game/gamemodes/blob/theblob.dm @@ -209,7 +209,7 @@ /obj/structure/blob/proc/get_chem_name() - for(var/mob/camera/blob/B in mob_list) + for(var/mob/camera/blob/B in GLOB.mob_list) if(lowertext(B.blob_reagent_datum.color) == lowertext(src.color)) // Goddamit why we use strings for these return B.blob_reagent_datum.name return "unknown" diff --git a/code/game/gamemodes/changeling/powers/linglink.dm b/code/game/gamemodes/changeling/powers/linglink.dm index 52de921d7ec..b9f984b57c0 100644 --- a/code/game/gamemodes/changeling/powers/linglink.dm +++ b/code/game/gamemodes/changeling/powers/linglink.dm @@ -49,8 +49,8 @@ if(3) to_chat(user, "You mold the [target]'s mind like clay, [target.p_they()] can now speak in the hivemind!") to_chat(target, "A migraine throbs behind your eyes, you hear yourself screaming - but your mouth has not opened!") - for(var/mob/M in mob_list) - if(all_languages["Changeling"] in M.languages) + for(var/mob/M in GLOB.mob_list) + if(GLOB.all_languages["Changeling"] in M.languages) to_chat(M, "We can sense a foreign presence in the hivemind...") target.mind.linglink = 1 target.add_language("Changeling") diff --git a/code/game/gamemodes/changeling/traitor_chan.dm b/code/game/gamemodes/changeling/traitor_chan.dm index fbb7506f121..060f454dddd 100644 --- a/code/game/gamemodes/changeling/traitor_chan.dm +++ b/code/game/gamemodes/changeling/traitor_chan.dm @@ -19,7 +19,7 @@ var/list/datum/mind/possible_changelings = get_players_for_role(ROLE_CHANGELING) - for(var/mob/new_player/player in player_list) + for(var/mob/new_player/player in GLOB.player_list) if((player.mind in possible_changelings) && (player.client.prefs.species in protected_species_changeling)) possible_changelings -= player.mind diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index f2e8db26b40..9ff42536356 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -221,7 +221,7 @@ var/global/list/all_cults = list() /datum/game_mode/cult/proc/get_unconvertables() var/list/ucs = list() - for(var/mob/living/carbon/human/player in player_list) + for(var/mob/living/carbon/human/player in GLOB.player_list) if(!is_convertable_to_cult(player.mind)) ucs += player.mind return ucs diff --git a/code/game/gamemodes/cult/cult_comms.dm b/code/game/gamemodes/cult/cult_comms.dm index d1350bafc6f..2a1d9166370 100644 --- a/code/game/gamemodes/cult/cult_comms.dm +++ b/code/game/gamemodes/cult/cult_comms.dm @@ -30,10 +30,10 @@ my_message = "Harbringer of the Slaughter: [message]" else my_message = "[(ishuman(user) ? "Acolyte" : "Construct")] [user]: [message]" - for(var/mob/M in mob_list) + for(var/mob/M in GLOB.mob_list) if(iscultist(M)) to_chat(M, my_message) - else if(M in dead_mob_list) + else if(M in GLOB.dead_mob_list) to_chat(M, " (F) [my_message] ") log_say("(CULT) [message]", user) \ No newline at end of file diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index b8e5365cb5d..03b17813118 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -247,7 +247,7 @@ if(curselimit > 1) to_chat(user, "We have exhausted our ability to curse the shuttle.") return - if(locate(/obj/singularity/narsie) in poi_list || locate(/mob/living/simple_animal/slaughter/cult) in mob_list) + if(locate(/obj/singularity/narsie) in GLOB.poi_list || locate(/mob/living/simple_animal/slaughter/cult) in GLOB.mob_list) to_chat(user, "Nar-Sie or his avatars are already on this plane, there is no delaying the end of all things.") return diff --git a/code/game/gamemodes/cult/cult_objectives.dm b/code/game/gamemodes/cult/cult_objectives.dm index 34955ed42d4..beef75e103b 100644 --- a/code/game/gamemodes/cult/cult_objectives.dm +++ b/code/game/gamemodes/cult/cult_objectives.dm @@ -21,7 +21,7 @@ if("convert") explanation = "We must increase our influence before we can summon [ticker.cultdat.entity_name], Convert [convert_target] crew members. Take it slowly to avoid raising suspicions." if("bloodspill") - spilltarget = 100 + rand(0,player_list.len * 3) + spilltarget = 100 + rand(0,GLOB.player_list.len * 3) explanation = "We must prepare this place for [ticker.cultdat.entity_title1]'s coming. Spill blood and gibs over [spilltarget] floor tiles." if("sacrifice") explanation = "We need to sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role], for [sacrifice_target.p_their()] blood is the key that will lead our master to this realm. You will need 3 cultists around a Sacrifice rune to perform the ritual." @@ -78,7 +78,7 @@ if("convert") explanation = "We must increase our influence before we can summon [ticker.cultdat.entity_name]. Convert [convert_target] crew members. Take it slowly to avoid raising suspicions." if("bloodspill") - spilltarget = 100 + rand(0,player_list.len * 3) + spilltarget = 100 + rand(0,GLOB.player_list.len * 3) explanation = "We must prepare this place for [ticker.cultdat.entity_title1]'s coming. Spread blood and gibs over [spilltarget] of the Station's floor tiles." if("sacrifice") explanation = "We need to sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role], for [sacrifice_target.p_their()] blood is the key that will lead our master to this realm. You will need 3 cultists around a Sacrifice rune to perform the ritual." @@ -151,12 +151,12 @@ /datum/game_mode/cult/proc/get_possible_sac_targets() var/list/possible_sac_targets = list() - for(var/mob/living/carbon/human/player in player_list) + for(var/mob/living/carbon/human/player in GLOB.player_list) if(player.mind && !is_convertable_to_cult(player.mind) && (player.stat != DEAD)) possible_sac_targets += player.mind if(!possible_sac_targets.len) //There are no living Unconvertables on the station. Looking for a Sacrifice Target among the ordinary crewmembers - for(var/mob/living/carbon/human/player in player_list) + for(var/mob/living/carbon/human/player in GLOB.player_list) if(is_secure_level(player.z)) //We can't sacrifice people that are on the centcom z-level continue if(player.mind && !(player.mind in cult) && (player.stat != DEAD))//make DAMN sure they are not dead @@ -180,7 +180,7 @@ if(!mass_convert) var/living_crew = 0 var/living_cultists = 0 - for(var/mob/living/L in player_list) + for(var/mob/living/L in GLOB.player_list) if(L.stat != DEAD) if(L.mind in cult) living_cultists++ @@ -214,7 +214,7 @@ var/list/possible_objectives = list() var/living_crew = 0 - for(var/mob/living/carbon/C in player_list) + for(var/mob/living/carbon/C in GLOB.player_list) if(C.stat != DEAD) if(!(C.mind in cult)) var/turf/T = get_turf(C) @@ -238,7 +238,7 @@ bonus = 1 if("hijack") - for(var/mob/living/L in player_list) + for(var/mob/living/L in GLOB.player_list) if(L.stat != DEAD && !(L.mind in cult)) var/area/A = get_area(L) if(is_type_in_list(A.loc, centcom_areas)) @@ -247,7 +247,7 @@ bonus = 1 if("massacre") - for(var/mob/living/carbon/C in player_list) + for(var/mob/living/carbon/C in GLOB.player_list) if(C.stat != DEAD && !(C.mind in cult)) var/turf/T = get_turf(C) if(is_station_level(T.z)) //we're only interested in the remaining humans on the station diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 9bce3e24ad8..ffaf6c9c4cc 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -46,7 +46,7 @@ To draw a rune, use an arcane tome. check_icon() var/image/blood = image(loc = src) blood.override = 1 - for(var/mob/living/silicon/ai/AI in player_list) + for(var/mob/living/silicon/ai/AI in GLOB.player_list) AI.client.images += blood /obj/effect/rune/examine(mob/user) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index e64421f330b..28fece62277 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -46,7 +46,7 @@ ///Checks to see if the game can be setup and ran with the current number of players or whatnot. /datum/game_mode/proc/can_start() var/playerC = 0 - for(var/mob/new_player/player in player_list) + for(var/mob/new_player/player in GLOB.player_list) if((player.client)&&(player.ready)) playerC++ @@ -132,7 +132,7 @@ if(MS.active) useMS = MS break - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(M.mind) var/obj/item/pda/P=null for(var/obj/item/pda/check_pda in PDAs) @@ -193,7 +193,7 @@ if(shuttle_master.emergency.mode < SHUTTLE_ENDGAME) //shuttle didn't get to centcom escape_locations -= /area/shuttle/escape - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(M.client) clients++ if(ishuman(M)) @@ -260,7 +260,7 @@ var/roletext = get_roletext(role) // Assemble a list of active players without jobbans. - for(var/mob/new_player/player in player_list) + for(var/mob/new_player/player in GLOB.player_list) if(player.client && player.ready) if(!jobban_isbanned(player, "Syndicate") && !jobban_isbanned(player, roletext)) if(player_old_enough_antag(player.client,role)) @@ -311,13 +311,13 @@ /datum/game_mode/proc/num_players() . = 0 - for(var/mob/new_player/P in player_list) + for(var/mob/new_player/P in GLOB.player_list) if(P.client && P.ready) .++ /datum/game_mode/proc/num_players_started() . = 0 - for(var/mob/living/carbon/human/H in player_list) + for(var/mob/living/carbon/human/H in GLOB.player_list) if(H.client) .++ @@ -326,7 +326,7 @@ /////////////////////////////////// /datum/game_mode/proc/get_living_heads() . = list() - for(var/mob/living/carbon/human/player in mob_list) + for(var/mob/living/carbon/human/player in GLOB.mob_list) var/list/real_command_positions = command_positions.Copy() - "Nanotrasen Representative" if(player.stat != DEAD && player.mind && (player.mind.assigned_role in real_command_positions)) . |= player.mind @@ -337,7 +337,7 @@ //////////////////////////// /datum/game_mode/proc/get_all_heads() . = list() - for(var/mob/player in mob_list) + for(var/mob/player in GLOB.mob_list) var/list/real_command_positions = command_positions.Copy() - "Nanotrasen Representative" if(player.mind && (player.mind.assigned_role in real_command_positions)) . |= player.mind @@ -347,7 +347,7 @@ ////////////////////////////////////////////// /datum/game_mode/proc/get_living_sec() . = list() - for(var/mob/living/carbon/human/player in mob_list) + for(var/mob/living/carbon/human/player in GLOB.mob_list) if(player.stat != DEAD && player.mind && (player.mind.assigned_role in security_positions)) . |= player.mind @@ -356,7 +356,7 @@ //////////////////////////////////////// /datum/game_mode/proc/get_all_sec() . = list() - for(var/mob/living/carbon/human/player in mob_list) + for(var/mob/living/carbon/human/player in GLOB.mob_list) if(player.mind && (player.mind.assigned_role in security_positions)) . |= player.mind @@ -371,11 +371,11 @@ ////////////////////////// proc/display_roundstart_logout_report() var/msg = "Roundstart logout report\n\n" - for(var/mob/living/L in mob_list) + for(var/mob/living/L in GLOB.mob_list) if(L.ckey) var/found = 0 - for(var/client/C in clients) + for(var/client/C in GLOB.clients) if(C.ckey == L.ckey) found = 1 break @@ -401,7 +401,7 @@ proc/display_roundstart_logout_report() continue //Dead continue //Happy connected client - for(var/mob/dead/observer/D in mob_list) + for(var/mob/dead/observer/D in GLOB.mob_list) if(D.mind && (D.mind.original == L || D.mind.current == L)) if(L.stat == DEAD) if(L.suiciding) //Suicider @@ -422,14 +422,14 @@ proc/display_roundstart_logout_report() - for(var/mob/M in mob_list) + for(var/mob/M in GLOB.mob_list) if(check_rights(R_ADMIN, 0, M)) to_chat(M, msg) /proc/get_nt_opposed() var/list/dudes = list() - for(var/mob/living/carbon/human/man in player_list) + for(var/mob/living/carbon/human/man in GLOB.player_list) if(man.client) //don't try picking someone like the captain or a security officer for potential collaborators, even if they ARE opposed to Nanotrasen for some reason if(man.mind && man.mind.assigned_role) diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index 102efcdc898..55a7b1e3392 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -145,14 +145,14 @@ var/round_start_time = 0 spawn(0)//Forking here so we dont have to wait for this to finish mode.post_setup() //Cleanup some stuff - for(var/obj/effect/landmark/start/S in landmarks_list) + for(var/obj/effect/landmark/start/S in GLOB.landmarks_list) //Deleting Startpoints but we need the ai point to AI-ize people later if(S.name != "AI") qdel(S) // take care of random spesspod spawning var/list/obj/effect/landmark/spacepod/random/L = list() - for(var/obj/effect/landmark/spacepod/random/SS in landmarks_list) + for(var/obj/effect/landmark/spacepod/random/SS in GLOB.landmarks_list) if(istype(SS)) L += SS if(L.len) @@ -238,7 +238,7 @@ var/round_start_time = 0 votetimer() - for(var/mob/new_player/N in mob_list) + for(var/mob/new_player/N in GLOB.mob_list) if(N.client) N.new_player_panel_proc() @@ -261,12 +261,12 @@ var/round_start_time = 0 var/obj/structure/stool/bed/temp_buckle = new(src) if(station_missed) - for(var/mob/M in mob_list) + for(var/mob/M in GLOB.mob_list) M.buckled = temp_buckle //buckles the mob so it can't do anything if(M.client) M.client.screen += cinematic //show every client the cinematic else //nuke kills everyone on z-level 1 to prevent "hurr-durr I survived" - for(var/mob/M in mob_list) + for(var/mob/M in GLOB.mob_list) M.buckled = temp_buckle if(M.stat != DEAD) var/turf/T = get_turf(M) @@ -343,7 +343,7 @@ var/round_start_time = 0 /datum/controller/gameticker/proc/create_characters() - for(var/mob/new_player/player in player_list) + for(var/mob/new_player/player in GLOB.player_list) if(player.ready && player.mind) if(player.mind.assigned_role == "AI") player.close_spawn_windows() @@ -357,14 +357,14 @@ var/round_start_time = 0 /datum/controller/gameticker/proc/collect_minds() - for(var/mob/living/player in player_list) + for(var/mob/living/player in GLOB.player_list) if(player.mind) ticker.minds += player.mind /datum/controller/gameticker/proc/equip_characters() var/captainless=1 - for(var/mob/living/carbon/human/player in player_list) + for(var/mob/living/carbon/human/player in GLOB.player_list) if(player && player.mind && player.mind.assigned_role) if(player.mind.assigned_role == "Captain") captainless=0 @@ -373,7 +373,7 @@ var/round_start_time = 0 job_master.EquipRank(player, player.mind.assigned_role, 0) EquipCustomItems(player) if(captainless) - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(!istype(M,/mob/new_player)) to_chat(M, "Captainship not forced on anyone.") @@ -428,7 +428,7 @@ var/round_start_time = 0 to_chat(world, "
") //Silicon laws report - for(var/mob/living/silicon/ai/aiPlayer in mob_list) + for(var/mob/living/silicon/ai/aiPlayer in GLOB.mob_list) if(aiPlayer.stat != 2) to_chat(world, "[aiPlayer.name] (Played by: [aiPlayer.key])'s laws at the end of the game were:") else @@ -443,7 +443,7 @@ var/round_start_time = 0 var/dronecount = 0 - for(var/mob/living/silicon/robot/robo in mob_list) + for(var/mob/living/silicon/robot/robo in GLOB.mob_list) if(istype(robo,/mob/living/silicon/robot/drone)) dronecount++ diff --git a/code/game/gamemodes/intercept_report.dm b/code/game/gamemodes/intercept_report.dm index ca868f4874e..5e8be8b1229 100644 --- a/code/game/gamemodes/intercept_report.dm +++ b/code/game/gamemodes/intercept_report.dm @@ -89,7 +89,7 @@ /* /datum/intercept_text/proc/pick_mob() var/list/dudes = list() - for(var/mob/living/carbon/human/man in player_list) + for(var/mob/living/carbon/human/man in GLOB.player_list) if(!man.mind) continue if(man.mind.assigned_role == man.mind.special_role) continue dudes += man @@ -109,7 +109,7 @@ /datum/intercept_text/proc/get_suspect() var/list/dudes = list() - for(var/mob/living/carbon/human/man in player_list) + for(var/mob/living/carbon/human/man in GLOB.player_list) if(man.client && man.client.prefs.nanotrasen_relation == "Opposed") //don't include suspects who can't possibly be the antag based on their job (no suspecting the captain of being a damned dirty tator) if(man.mind && man.mind.assigned_role) @@ -119,8 +119,8 @@ if(man.dna.species.name in ticker.mode.protected_species) return dudes += man - for(var/i = 0, i < max(player_list.len/10,2), i++) - dudes += pick(player_list) + for(var/i = 0, i < max(GLOB.player_list.len/10,2), i++) + dudes += pick(GLOB.player_list) return pick(dudes) /datum/intercept_text/proc/build_traitor(datum/mind/correct_person) @@ -211,11 +211,11 @@ if(prob(prob_right_job)) if(correct_person) if(correct_person:assigned_role == correct_person:special_role) - changeling_job = pick(joblist) + changeling_job = pick(GLOB.joblist) else changeling_job = correct_person:assigned_role else - changeling_job = pick(joblist) + changeling_job = pick(GLOB.joblist) if(prob(prob_right_dude) && ticker.mode == "changeling") if(correct_person:assigned_role == correct_person:special_role) changeling_name = correct_person:current diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm index 7c2b44f5cab..e969cb1cdd0 100644 --- a/code/game/gamemodes/malfunction/Malf_Modules.dm +++ b/code/game/gamemodes/malfunction/Malf_Modules.dm @@ -37,7 +37,7 @@ doomsday_device = DOOM doomsday_device.start() verbs -= /mob/living/silicon/ai/proc/nuke_station - for(var/obj/item/pinpointer/point in pinpointer_list) + for(var/obj/item/pinpointer/point in GLOB.pinpointer_list) for(var/mob/living/silicon/ai/A in ai_list) if((A.stat != DEAD) && A.nuking) point.the_disk = A //The pinpointer now tracks the AI core @@ -56,7 +56,7 @@ var/announced = 0 /obj/machinery/doomsday_device/Destroy() - fast_processing -= src + GLOB.fast_processing -= src shuttle_master.emergencyNoEscape = 0 if(shuttle_master.emergency.mode == SHUTTLE_STRANDED) shuttle_master.emergency.mode = SHUTTLE_DOCKED @@ -67,7 +67,7 @@ /obj/machinery/doomsday_device/proc/start() detonation_timer = world.time + default_timer timing = 1 - fast_processing += src + GLOB.fast_processing += src shuttle_master.emergencyNoEscape = 1 /obj/machinery/doomsday_device/proc/seconds_remaining() @@ -84,7 +84,7 @@ priority_announcement.Announce("Hostile environment resolved. You have 3 minutes to board the Emergency Shuttle.", "Priority Announcement", 'sound/AI/shuttledock.ogg') qdel(src) if(!timing) - fast_processing -= src + GLOB.fast_processing -= src return var/sec_left = seconds_remaining() if(sec_left <= 0) @@ -99,10 +99,10 @@ announced = max(0, announced-1) /obj/machinery/doomsday_device/proc/detonate(z_level = 1) - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) M << 'sound/machines/Alarm.ogg' sleep(100) - for(var/mob/living/L in mob_list) + for(var/mob/living/L in GLOB.mob_list) var/turf/T = get_turf(L) if(!T || T.z != z_level) continue @@ -131,7 +131,7 @@ return src.verbs -= /mob/living/silicon/ai/proc/upgrade_turrets - for(var/obj/machinery/porta_turret/turret in machines) + for(var/obj/machinery/porta_turret/turret in GLOB.machines) var/turf/T = get_turf(turret) if(is_station_level(T.z)) turret.health += 30 @@ -156,7 +156,7 @@ if(stat) return - for(var/obj/machinery/door/D in airlocks) + for(var/obj/machinery/door/D in GLOB.airlocks) if(!is_station_level(D.z)) continue INVOKE_ASYNC(D, /obj/machinery/door.proc/hostile_lockdown, src) @@ -188,7 +188,7 @@ if(stat || malf_cooldown > world.time) return - for(var/obj/item/rcd/RCD in rcd_list) + for(var/obj/item/rcd/RCD in GLOB.rcd_list) if(!istype(RCD, /obj/item/rcd/borg)) //Ensures that cyborg RCDs are spared. RCD.detonate_pulse() @@ -237,7 +237,7 @@ if(stat) return - for(var/obj/machinery/firealarm/F in machines) + for(var/obj/machinery/firealarm/F in GLOB.machines) if(!is_station_level(F.z)) continue F.emagged = 1 @@ -262,7 +262,7 @@ if(stat) return - for(var/obj/machinery/alarm/AA in machines) + for(var/obj/machinery/alarm/AA in GLOB.machines) if(!is_station_level(AA.z)) continue AA.emagged = 1 @@ -279,7 +279,7 @@ power_type = /mob/living/silicon/ai/proc/overload_machine -/mob/living/silicon/ai/proc/overload_machine(obj/machinery/M in machines) +/mob/living/silicon/ai/proc/overload_machine(obj/machinery/M in GLOB.machines) set name = "Overload Machine" set category = "Malfunction" @@ -312,7 +312,7 @@ power_type = /mob/living/silicon/ai/proc/override_machine -/mob/living/silicon/ai/proc/override_machine(obj/machinery/M in machines) +/mob/living/silicon/ai/proc/override_machine(obj/machinery/M in GLOB.machines) set name = "Override Machine" set category = "Malfunction" @@ -428,7 +428,7 @@ for(var/datum/AI_Module/small/blackout/blackout in current_modules) if(blackout.uses > 0) blackout.uses -- - for(var/obj/machinery/power/apc/apc in apcs) + for(var/obj/machinery/power/apc/apc in GLOB.apcs) if(prob(30*apc.overload)) apc.overload_lighting() else diff --git a/code/game/gamemodes/meteor/meteor.dm b/code/game/gamemodes/meteor/meteor.dm index deb3676e164..bd73b66a56f 100644 --- a/code/game/gamemodes/meteor/meteor.dm +++ b/code/game/gamemodes/meteor/meteor.dm @@ -33,7 +33,7 @@ /datum/game_mode/meteor/declare_completion() var/text var/survivors = 0 - for(var/mob/living/player in player_list) + for(var/mob/living/player in GLOB.player_list) if(player.stat != DEAD) var/turf/location = get_turf(player.loc) if(!location) continue diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm index 0828d01e4f6..e43687aaaf7 100644 --- a/code/game/gamemodes/meteor/meteors.dm +++ b/code/game/gamemodes/meteor/meteors.dm @@ -118,13 +118,13 @@ return . /obj/effect/meteor/Destroy() - meteor_list -= src + GLOB.meteor_list -= src walk(src,0) //this cancels the walk_towards() proc return ..() /obj/effect/meteor/New() ..() - meteor_list += src + GLOB.meteor_list += src SpinAnimation() /obj/effect/meteor/Bump(atom/A) @@ -174,7 +174,7 @@ var/sound/meteor_sound = sound(meteorsound) var/random_frequency = get_rand_frequency() - for(var/P in player_list) + for(var/P in GLOB.player_list) var/mob/M = P var/turf/T = get_turf(M) if(!T || T.z != src.z) diff --git a/code/game/gamemodes/miniantags/abduction/abductee_objectives.dm b/code/game/gamemodes/miniantags/abduction/abductee_objectives.dm index af2920c4626..0d891edb3eb 100644 --- a/code/game/gamemodes/miniantags/abduction/abductee_objectives.dm +++ b/code/game/gamemodes/miniantags/abduction/abductee_objectives.dm @@ -88,7 +88,7 @@ explanation_text = "Call forth a spirit from the other side." /datum/objective/abductee/calling/New() - var/mob/dead/D = pick(dead_mob_list) + var/mob/dead/D = pick(GLOB.dead_mob_list) if(D) explanation_text = "You know that [D] has perished. Hold a seance to call them from the spirit realm." diff --git a/code/game/gamemodes/miniantags/abduction/abduction.dm b/code/game/gamemodes/miniantags/abduction/abduction.dm index 4bfc8c9672d..67c3b1e76d7 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction.dm @@ -99,7 +99,7 @@ var/list/obj/effect/landmark/abductor/scientist_landmarks = list() agent_landmarks.len = max_teams scientist_landmarks.len = max_teams - for(var/obj/effect/landmark/abductor/A in landmarks_list) + for(var/obj/effect/landmark/abductor/A in GLOB.landmarks_list) if(istype(A,/obj/effect/landmark/abductor/agent)) agent_landmarks[text2num(A.team)] = A else if(istype(A,/obj/effect/landmark/abductor/scientist)) @@ -166,7 +166,7 @@ abductor.announce_objectives() /datum/game_mode/abduction/proc/get_team_console(team_number) - for(var/obj/machinery/abductor/console/C in machines) + for(var/obj/machinery/abductor/console/C in GLOB.machines) if(C.team == team_number) return C @@ -237,7 +237,7 @@ return FALSE var/datum/species/abductor/S = H.dna.species ab_team = S.team - for(var/obj/machinery/abductor/experiment/E in machines) + for(var/obj/machinery/abductor/experiment/E in GLOB.machines) if(E.team == ab_team) if(E.points >= target_amount) return TRUE diff --git a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm index c8539b568db..5a91b26fae1 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm @@ -119,7 +119,7 @@ /obj/item/clothing/suit/armor/abductor/Destroy() processing_objects.Remove(src) - for(var/obj/machinery/abductor/console/C in machines) + for(var/obj/machinery/abductor/console/C in GLOB.machines) if(C.vest == src) C.vest = null break @@ -491,7 +491,7 @@ Congratulations! You are now trained for invasive xenobiology research!"} if(ishuman(L)) var/mob/living/carbon/human/H = L - H.forcesay(hit_appends) + H.forcesay(GLOB.hit_appends) add_attack_logs(user, L, "Stunned with [src]") diff --git a/code/game/gamemodes/miniantags/abduction/abduction_outfits.dm b/code/game/gamemodes/miniantags/abduction/abduction_outfits.dm index bb39e90cd01..c90aaac19d8 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction_outfits.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction_outfits.dm @@ -6,7 +6,7 @@ l_ear = /obj/item/radio/headset/abductor /datum/outfit/abductor/proc/get_team_console(team_number) - for(var/obj/machinery/abductor/console/C in machines) + for(var/obj/machinery/abductor/console/C in GLOB.machines) if(C.team == team_number) return C diff --git a/code/game/gamemodes/miniantags/abduction/machinery/camera.dm b/code/game/gamemodes/miniantags/abduction/machinery/camera.dm index cd4f80f2527..25b9025a764 100644 --- a/code/game/gamemodes/miniantags/abduction/machinery/camera.dm +++ b/code/game/gamemodes/miniantags/abduction/machinery/camera.dm @@ -14,7 +14,7 @@ icon_state = "camera" /obj/machinery/computer/camera_advanced/abductor/New() - abductor_equipment.Add(src) + GLOB.abductor_equipment.Add(src) ..() /obj/machinery/computer/camera_advanced/abductor/CreateEye() diff --git a/code/game/gamemodes/miniantags/abduction/machinery/console.dm b/code/game/gamemodes/miniantags/abduction/machinery/console.dm index 0e8c4d3c409..3598a5775a7 100644 --- a/code/game/gamemodes/miniantags/abduction/machinery/console.dm +++ b/code/game/gamemodes/miniantags/abduction/machinery/console.dm @@ -4,11 +4,11 @@ var/team = 0 /obj/machinery/abductor/New() - abductor_equipment.Add(src) + GLOB.abductor_equipment.Add(src) ..() /obj/machinery/abductor/Destroy() - abductor_equipment.Remove(src) + GLOB.abductor_equipment.Remove(src) return ..() //Console @@ -152,17 +152,17 @@ /obj/machinery/abductor/console/proc/Link_Abduction_Equipment() // these must all be explicitly `in machines` or they will not properly link. - for(var/obj/machinery/abductor/pad/p in abductor_equipment) + for(var/obj/machinery/abductor/pad/p in GLOB.abductor_equipment) if(p.team == team) pad = p break - for(var/obj/machinery/abductor/experiment/e in abductor_equipment) + for(var/obj/machinery/abductor/experiment/e in GLOB.abductor_equipment) if(e.team == team) experiment = e e.console = src - for(var/obj/machinery/computer/camera_advanced/abductor/c in abductor_equipment) + for(var/obj/machinery/computer/camera_advanced/abductor/c in GLOB.abductor_equipment) if(c.team == team) camera = c c.console = src @@ -194,7 +194,7 @@ if(vest == V) return FALSE - for(var/obj/machinery/abductor/console/C in machines) + for(var/obj/machinery/abductor/console/C in GLOB.machines) if(C.vest == V) C.vest = null break diff --git a/code/game/gamemodes/miniantags/borer/borer.dm b/code/game/gamemodes/miniantags/borer/borer.dm index 45998cd4b30..bd025502d62 100644 --- a/code/game/gamemodes/miniantags/borer/borer.dm +++ b/code/game/gamemodes/miniantags/borer/borer.dm @@ -22,7 +22,7 @@ to_chat(src, "You whisper silently, \"[message]\"") to_chat(B.host, "The captive mind of [src] whispers, \"[message]\"") - for(var/mob/M in mob_list) + for(var/mob/M in GLOB.mob_list) if(M.mind && isobserver(M)) to_chat(M, "Thought-speech, [src] -> [B.truename]: [message]") @@ -181,7 +181,7 @@ if(host) to_chat(host, "[truename] [say_string]: [input]") log_say("(BORER to [key_name(host)]) [input]", src) - for(var/M in dead_mob_list) + for(var/M in GLOB.dead_mob_list) if(isobserver(M)) to_chat(M, "Borer Communication from [truename] ([ghost_follow_link(src, ghost=M)]): [input]") to_chat(src, "[truename] [say_string]: [input]") @@ -217,7 +217,7 @@ to_chat(B, "[src] says: [input]") log_say("(BORER to [key_name(B)]) [input]", src) - for(var/M in dead_mob_list) + for(var/M in GLOB.dead_mob_list) if(isobserver(M)) to_chat(M, "Borer Communication from [src] ([ghost_follow_link(src, ghost=M)]): [input]") to_chat(src, "[src] says: [input]") @@ -239,7 +239,7 @@ to_chat(CB, "[B.truename] says: [input]") log_say("(BORER to [key_name(CB)]) [input]", B) - for(var/M in dead_mob_list) + for(var/M in GLOB.dead_mob_list) if(isobserver(M)) to_chat(M, "Borer Communication from [B] ([ghost_follow_link(src, ghost=M)]): [input]") to_chat(src, "[B.truename] says: [input]") @@ -397,7 +397,7 @@ for(var/datum in typesof(/datum/borer_chem)) var/datum/borer_chem/C = datum var/cname = initial(C.chemname) - var/datum/reagent/R = chemical_reagents_list[cname] + var/datum/reagent/R = GLOB.chemical_reagents_list[cname] if(cname) content += "[R.name] ([initial(C.chemuse)])

[initial(C.chemdesc)]

" @@ -431,7 +431,7 @@ if(!C || !host || controlling || !src || stat) return - var/datum/reagent/R = chemical_reagents_list[C.chemname] + var/datum/reagent/R = GLOB.chemical_reagents_list[C.chemname] if(chemicals < C.chemuse) to_chat(src, "You need [C.chemuse] chemicals stored to secrete [R.name]!") return diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm index 6b976ad7f05..e025b7c6e77 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm @@ -585,6 +585,6 @@ /mob/living/simple_animal/hostile/swarmer/proc/ContactSwarmers() var/message = input(src, "Announce to other swarmers", "Swarmer contact") if(message) - for(var/mob/M in mob_list) - if(isswarmer(M) || (M in dead_mob_list)) + for(var/mob/M in GLOB.mob_list) + if(isswarmer(M) || (M in GLOB.dead_mob_list)) to_chat(M, "Swarm communication - [src] states: [message]") diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer_event.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer_event.dm index 7a16ef17857..d611092bb2b 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer_event.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer_event.dm @@ -19,7 +19,7 @@ /datum/event/spawn_swarmer/proc/find_swarmer() - for(var/mob/living/M in mob_list) + for(var/mob/living/M in GLOB.mob_list) if(istype(M, /mob/living/simple_animal/hostile/swarmer) && M.client) //If there is a swarmer with an active client, we've found our swarmer return 1 return 0 diff --git a/code/game/gamemodes/miniantags/guardian/guardian.dm b/code/game/gamemodes/miniantags/guardian/guardian.dm index 9465d479f02..595982b80d8 100644 --- a/code/game/gamemodes/miniantags/guardian/guardian.dm +++ b/code/game/gamemodes/miniantags/guardian/guardian.dm @@ -162,11 +162,11 @@ var/input = stripped_input(src, "Please enter a message to tell your summoner.", "Guardian", "") if(!input) return - for(var/mob/M in mob_list) + for(var/mob/M in GLOB.mob_list) if(M == summoner) to_chat(M, "[src]: [input]") log_say("(GUARDIAN to [key_name(M)]) [input]", src) - else if(M in dead_mob_list) + else if(M in GLOB.dead_mob_list) to_chat(M, "Guardian Communication from [src] ([ghost_follow_link(src, ghost=M)]): [input]") to_chat(src, "[src]: [input]") @@ -181,14 +181,14 @@ var/input = stripped_input(src, "Please enter a message to tell your guardian.", "Message", "") if(!input) return - for(var/mob/M in mob_list) + for(var/mob/M in GLOB.mob_list) if(istype (M, /mob/living/simple_animal/hostile/guardian)) var/mob/living/simple_animal/hostile/guardian/G = M if(G.summoner == src) to_chat(G, "[src]: [input]") log_say("(GUARDIAN to [key_name(G)]) [input]", src) - else if(M in dead_mob_list) + else if(M in GLOB.dead_mob_list) to_chat(M, "Guardian Communication from [src] ([ghost_follow_link(src, ghost=M)]): [input]") to_chat(src, "[src]: [input]") @@ -196,7 +196,7 @@ set name = "Recall Guardian" set category = "Guardian" set desc = "Forcibly recall your guardian." - for(var/mob/living/simple_animal/hostile/guardian/G in mob_list) + for(var/mob/living/simple_animal/hostile/guardian/G in GLOB.mob_list) if(G.summoner == src) G.Recall() @@ -206,7 +206,7 @@ set desc = "Re-rolls which ghost will control your Guardian. One use." src.verbs -= /mob/living/proc/guardian_reset - for(var/mob/living/simple_animal/hostile/guardian/G in mob_list) + for(var/mob/living/simple_animal/hostile/guardian/G in GLOB.mob_list) if(G.summoner == src) var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as [G.real_name]?", ROLE_GUARDIAN, 0, 100) var/mob/dead/observer/new_stand = null @@ -250,7 +250,7 @@ var/random = TRUE /obj/item/guardiancreator/attack_self(mob/living/user) - for(var/mob/living/simple_animal/hostile/guardian/G in living_mob_list) + for(var/mob/living/simple_animal/hostile/guardian/G in GLOB.living_mob_list) if(G.summoner == user) to_chat(user, "You already have a [mob_name]!") return diff --git a/code/game/gamemodes/miniantags/revenant/revenant.dm b/code/game/gamemodes/miniantags/revenant/revenant.dm index 953e6e91762..2f88562bdea 100644 --- a/code/game/gamemodes/miniantags/revenant/revenant.dm +++ b/code/game/gamemodes/miniantags/revenant/revenant.dm @@ -98,7 +98,7 @@ return log_say(message, src) var/rendered = "[src] says, \"[message]\"" - for(var/mob/M in mob_list) + for(var/mob/M in GLOB.mob_list) if(istype(M, /mob/living/simple_animal/revenant)) to_chat(M, rendered) if(isobserver(M)) @@ -366,7 +366,7 @@ loc = get_turf(src) //In case it's in a backpack or someone's hand var/mob/living/simple_animal/revenant/R = new(get_turf(src)) if(client_to_revive) - for(var/mob/M in dead_mob_list) + for(var/mob/M in GLOB.dead_mob_list) if(M.client == client_to_revive) //Only recreates the mob if the mob the client is in is dead R.client = client_to_revive key_of_revenant = client_to_revive.key diff --git a/code/game/gamemodes/miniantags/revenant/revenant_spawn_event.dm b/code/game/gamemodes/miniantags/revenant/revenant_spawn_event.dm index a70114d8f5e..757fbe579a2 100644 --- a/code/game/gamemodes/miniantags/revenant/revenant_spawn_event.dm +++ b/code/game/gamemodes/miniantags/revenant/revenant_spawn_event.dm @@ -6,7 +6,7 @@ /datum/event/revenant/proc/get_revenant(var/end_if_fail = 0) var/deadMobs = 0 - for(var/mob/M in dead_mob_list) + for(var/mob/M in GLOB.dead_mob_list) deadMobs++ if(deadMobs < REVENANT_SPAWN_THRESHOLD) message_admins("Random event attempted to spawn a revenant, but there were only [deadMobs]/[REVENANT_SPAWN_THRESHOLD] dead mobs.") @@ -26,13 +26,13 @@ var/datum/mind/player_mind = new /datum/mind(key_of_revenant) player_mind.active = 1 var/list/spawn_locs = list() - for(var/obj/effect/landmark/L in landmarks_list) + for(var/obj/effect/landmark/L in GLOB.landmarks_list) if(isturf(L.loc)) switch(L.name) if("revenantspawn") spawn_locs += L.loc if(!spawn_locs) //If we can't find any revenant spawns, try the carp spawns - for(var/obj/effect/landmark/L in landmarks_list) + for(var/obj/effect/landmark/L in GLOB.landmarks_list) if(isturf(L.loc)) switch(L.name) if("carpspawn") diff --git a/code/game/gamemodes/miniantags/slaughter/slaughter.dm b/code/game/gamemodes/miniantags/slaughter/slaughter.dm index 6b5705cfa7f..e316cab1584 100644 --- a/code/game/gamemodes/miniantags/slaughter/slaughter.dm +++ b/code/game/gamemodes/miniantags/slaughter/slaughter.dm @@ -136,7 +136,7 @@ /obj/effect/proc_holder/spell/targeted/sense_victims/cast(list/targets) var/list/victims = targets - for(var/mob/living/L in living_mob_list) + for(var/mob/living/L in GLOB.living_mob_list) if(!L.stat && !iscultist(L) && L.key && L != usr) victims.Add(L) if(!targets.len) @@ -220,7 +220,7 @@ log_say("(SLAUGHTER to [key_name(choice)]) [msg]", usr) to_chat(usr, "You whisper to [choice]: [msg]") to_chat(choice, "Suddenly a strange, demonic voice resonates in your head... [msg]") - for(var/mob/dead/observer/G in player_list) + for(var/mob/dead/observer/G in GLOB.player_list) G.show_message("Demonic message from [usr] ([ghost_follow_link(usr, ghost=G)]) to [choice] ([ghost_follow_link(choice, ghost=G)]): [msg]") diff --git a/code/game/gamemodes/nations/nations.dm b/code/game/gamemodes/nations/nations.dm index 5d625d5fdda..c8a9ad00a62 100644 --- a/code/game/gamemodes/nations/nations.dm +++ b/code/game/gamemodes/nations/nations.dm @@ -16,7 +16,7 @@ datum/game_mode/nations set_ai() assign_leaders() // remove_access() - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(!istype(M,/mob/new_player)) M << sound('sound/effects/purge_siren.ogg') @@ -34,10 +34,10 @@ datum/game_mode/nations /datum/game_mode/nations/proc/split_teams() - for(var/mob/living/carbon/human/H in player_list) + for(var/mob/living/carbon/human/H in GLOB.player_list) if(H.mind) if(H.mind.assigned_role in engineering_positions) - H.mind.nation = all_nations["Atmosia"] + H.mind.nation = GLOB.all_nations["Atmosia"] update_nations_icons_added(H,"hudatmosia") H.mind.nation.membership += H.mind.current if(H.mind.assigned_role == H.mind.nation.default_leader) @@ -48,7 +48,7 @@ datum/game_mode/nations continue if(H.mind.assigned_role in medical_positions) - H.mind.nation = all_nations["Medistan"] + H.mind.nation = GLOB.all_nations["Medistan"] update_nations_icons_added(H,"hudmedistan") H.mind.nation.membership += H.mind.current if(H.mind.assigned_role == H.mind.nation.default_leader) @@ -59,7 +59,7 @@ datum/game_mode/nations continue if(H.mind.assigned_role in science_positions) - H.mind.nation = all_nations["Scientopia"] + H.mind.nation = GLOB.all_nations["Scientopia"] update_nations_icons_added(H,"hudscientopia") H.mind.nation.membership += H.mind.current if(H.mind.assigned_role == H.mind.nation.default_leader) @@ -70,7 +70,7 @@ datum/game_mode/nations continue if(H.mind.assigned_role in security_positions) - H.mind.nation = all_nations["Brigston"] + H.mind.nation = GLOB.all_nations["Brigston"] update_nations_icons_added(H,"hudbrigston") H.mind.nation.membership += H.mind.current if(H.mind.assigned_role == H.mind.nation.default_leader) @@ -81,7 +81,7 @@ datum/game_mode/nations continue if(H.mind.assigned_role in cargonians) - H.mind.nation = all_nations["Cargonia"] + H.mind.nation = GLOB.all_nations["Cargonia"] update_nations_icons_added(H,"hudcargonia") H.mind.nation.membership += H.mind.current if(H.mind.assigned_role == H.mind.nation.default_leader) @@ -92,7 +92,7 @@ datum/game_mode/nations continue if(H.mind.assigned_role in servicion) - H.mind.nation = all_nations["Servicion"] + H.mind.nation = GLOB.all_nations["Servicion"] update_nations_icons_added(H,"hudservice") H.mind.nation.membership += H.mind.current if(H.mind.assigned_role == H.mind.nation.default_leader) @@ -103,7 +103,7 @@ datum/game_mode/nations continue if(H.mind.assigned_role in (support_positions + command_positions)) - H.mind.nation = all_nations["People's Republic of Commandzakstan"] + H.mind.nation = GLOB.all_nations["People's Republic of Commandzakstan"] update_nations_icons_added(H,"hudcommand") H.mind.nation.membership += H.mind.current if(H.mind.assigned_role == H.mind.nation.default_leader) @@ -123,7 +123,7 @@ datum/game_mode/nations /datum/game_mode/nations/proc/set_ai() - for(var/mob/living/silicon/ai/AI in mob_list) + for(var/mob/living/silicon/ai/AI in GLOB.mob_list) AI.set_zeroth_law("") AI.clear_supplied_laws() AI.clear_ion_laws() @@ -141,14 +141,14 @@ datum/game_mode/nations qdel(oldmmi) /datum/game_mode/nations/proc/remove_access() - for(var/obj/machinery/door/airlock/W in airlocks) + for(var/obj/machinery/door/airlock/W in GLOB.airlocks) if(is_station_level(W.z)) W.req_access = list() /datum/game_mode/nations/proc/assign_leaders() - for(var/name in all_nations) - var/datum/nations/N = all_nations[name] + for(var/name in GLOB.all_nations) + var/datum/nations/N = GLOB.all_nations[name] if(!N.current_name) N.current_name = N.default_name if(!N.current_leader && N.membership.len) @@ -174,49 +174,49 @@ datum/game_mode/nations if(H.mind) if(H.mind.assigned_role in engineering_positions) - H.mind.nation = all_nations["Atmosia"] + H.mind.nation = GLOB.all_nations["Atmosia"] mode.update_nations_icons_added(H,"atmosia") H.mind.nation.membership += H.mind.current to_chat(H, "You are now part of the great sovereign nation of [H.mind.nation.current_name]!") return 1 if(H.mind.assigned_role in medical_positions) - H.mind.nation = all_nations["Medistan"] + H.mind.nation = GLOB.all_nations["Medistan"] mode.update_nations_icons_added(H,"hudmedistan") H.mind.nation.membership += H.mind.current to_chat(H, "You are now part of the great sovereign nation of [H.mind.nation.current_name]!") return 1 if(H.mind.assigned_role in science_positions) - H.mind.nation = all_nations["Scientopia"] + H.mind.nation = GLOB.all_nations["Scientopia"] mode.update_nations_icons_added(H,"hudscientopia") H.mind.nation.membership += H.mind.current to_chat(H, "You are now part of the great sovereign nation of [H.mind.nation.current_name]!") return 1 if(H.mind.assigned_role in security_positions) - H.mind.nation = all_nations["Brigston"] + H.mind.nation = GLOB.all_nations["Brigston"] mode.update_nations_icons_added(H,"hudbrigston") H.mind.nation.membership += H.mind.current to_chat(H, "You are now part of the great sovereign nation of [H.mind.nation.current_name]!") return 1 if(H.mind.assigned_role in mode.cargonians) - H.mind.nation = all_nations["Cargonia"] + H.mind.nation = GLOB.all_nations["Cargonia"] mode.update_nations_icons_added(H,"hudcargonia") H.mind.nation.membership += H.mind.current to_chat(H, "You are now part of the great sovereign nation of [H.mind.nation.current_name]!") return 1 if(H.mind.assigned_role in mode.servicion) - H.mind.nation = all_nations["Servicion"] + H.mind.nation = GLOB.all_nations["Servicion"] mode.update_nations_icons_added(H,"hudservice") H.mind.nation.membership += H.mind.current to_chat(H, "You are now part of the great sovereign nation of [H.mind.nation.current_name]!") return 1 if(H.mind.assigned_role in (support_positions + command_positions)) - H.mind.nation = all_nations["People's Republic of Commandzakstan"] + H.mind.nation = GLOB.all_nations["People's Republic of Commandzakstan"] mode.update_nations_icons_added(H,"hudcommand") H.mind.nation.membership += H.mind.current to_chat(H, "You are now part of the great sovereign nation of [H.mind.nation.current_name]!") diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index 65f02aac59c..c17a5fb71cb 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -91,7 +91,7 @@ proc/issyndicate(mob/living/M as mob) var/list/turf/synd_spawn = list() - for(var/obj/effect/landmark/A in landmarks_list) + for(var/obj/effect/landmark/A in GLOB.landmarks_list) if(A.name == "Syndicate-Spawn") synd_spawn += get_turf(A) qdel(A) @@ -296,7 +296,7 @@ proc/issyndicate(mob/living/M as mob) /datum/game_mode/nuclear/declare_completion() var/disk_rescued = 1 - for(var/obj/item/disk/nuclear/D in poi_list) + for(var/obj/item/disk/nuclear/D in GLOB.poi_list) if(!D.onCentcom()) disk_rescued = 0 break @@ -394,7 +394,7 @@ proc/issyndicate(mob/living/M as mob) return 1 /proc/nukelastname(var/mob/M as mob) //--All praise goes to NEO|Phyte, all blame goes to DH, and it was Cindi-Kate's idea. Also praise Urist for copypasta ho. - var/randomname = pick(last_names) + var/randomname = pick(GLOB.last_names) var/newname = sanitize(copytext(input(M,"You are the nuke operative [pick("Czar", "Boss", "Commander", "Chief", "Kingpin", "Director", "Overlord")]. Please choose a last name for your family.", "Name change",randomname),1,MAX_NAME_LEN)) if(!newname) @@ -411,9 +411,9 @@ proc/issyndicate(mob/living/M as mob) for(var/datum/mind/synd_mind in syndicates) switch(synd_mind.current.gender) if(MALE) - synd_mind.name = "[pick(first_names_male)] [pick(last_names)]" + synd_mind.name = "[pick(GLOB.first_names_male)] [pick(GLOB.last_names)]" if(FEMALE) - synd_mind.name = "[pick(first_names_female)] [pick(last_names)]" + synd_mind.name = "[pick(GLOB.first_names_female)] [pick(GLOB.last_names)]" synd_mind.current.real_name = synd_mind.name return diff --git a/code/game/gamemodes/nuclear/nuclear_challenge.dm b/code/game/gamemodes/nuclear/nuclear_challenge.dm index 7e75f579bf5..328a462ac32 100644 --- a/code/game/gamemodes/nuclear/nuclear_challenge.dm +++ b/code/game/gamemodes/nuclear/nuclear_challenge.dm @@ -52,12 +52,12 @@ to_chat(user, "You've attracted the attention of powerful forces within the syndicate. A bonus bundle of telecrystals has been granted to your team. Great things await you if you complete the mission.") to_chat(user, "Look below you on the floor for the extra uplink") - for(var/obj/machinery/computer/shuttle/syndicate/S in machines) + for(var/obj/machinery/computer/shuttle/syndicate/S in GLOB.machines) S.challenge = TRUE var/obj/item/radio/uplink/U = new /obj/item/radio/uplink(get_turf(user)) U.hidden_uplink.uplink_owner= "[user.key]" - U.hidden_uplink.uses = CHALLENGE_TELECRYSTALS + round((((player_list.len - CHALLENGE_MIN_PLAYERS)/CHALLENGE_SCALE_PLAYER) * CHALLENGE_SCALE_BONUS)) // No. of player - Min. Player to dec, divided by player per bonus, then multipled by TC per bonus. Rounded. + U.hidden_uplink.uses = CHALLENGE_TELECRYSTALS + round((((GLOB.player_list.len - CHALLENGE_MIN_PLAYERS)/CHALLENGE_SCALE_PLAYER) * CHALLENGE_SCALE_BONUS)) // No. of player - Min. Player to dec, divided by player per bonus, then multipled by TC per bonus. Rounded. config.shuttle_refuel_delay = CHALLENGE_SHUTTLE_DELAY qdel(src) @@ -65,7 +65,7 @@ if(declaring_war) to_chat(user, "You are already in the process of declaring war! Make your mind up.") return FALSE - if(player_list.len < CHALLENGE_MIN_PLAYERS) + if(GLOB.player_list.len < CHALLENGE_MIN_PLAYERS) to_chat(user, "The enemy crew is too small to be worth declaring war on.") return FALSE if(!is_admin_level(user.z)) @@ -74,7 +74,7 @@ if((world.time - round_start_time) > CHALLENGE_TIME_LIMIT) // Only count after the round started to_chat(user, "It's too late to declare hostilities. Your benefactors are already busy with other schemes. You'll have to make do with what you have on hand.") return FALSE - for(var/obj/machinery/computer/shuttle/syndicate/S in machines) + for(var/obj/machinery/computer/shuttle/syndicate/S in GLOB.machines) if(S.moved) to_chat(user, "The shuttle has already been moved! You have forfeit the right to declare war.") return FALSE diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index 54b9ecc3fc5..b8597255304 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -32,11 +32,11 @@ var/bomb_set r_code = "[rand(10000, 99999.0)]"//Creates a random code upon object spawn. wires = new/datum/wires/nuclearbomb(src) previous_level = get_security_level() - poi_list |= src + GLOB.poi_list |= src /obj/machinery/nuclearbomb/Destroy() QDEL_NULL(wires) - poi_list.Remove(src) + GLOB.poi_list.Remove(src) return ..() /obj/machinery/nuclearbomb/process() @@ -405,7 +405,7 @@ var/bomb_set /obj/item/disk/nuclear/New() ..() processing_objects.Add(src) - poi_list |= src + GLOB.poi_list |= src /obj/item/disk/nuclear/process() var/turf/disk_loc = get_turf(src) @@ -421,12 +421,12 @@ var/bomb_set if(force) message_admins("[src] has been !!force deleted!! in ([diskturf ? "[diskturf.x], [diskturf.y] ,[diskturf.z] - JMP":"nonexistent location"]).") log_game("[src] has been !!force deleted!! in ([diskturf ? "[diskturf.x], [diskturf.y] ,[diskturf.z]":"nonexistent location"]).") - poi_list.Remove(src) + GLOB.poi_list.Remove(src) processing_objects.Remove(src) return ..() if(blobstart.len > 0) - poi_list.Remove(src) + GLOB.poi_list.Remove(src) var/obj/item/disk/nuclear/NEWDISK = new(pick(blobstart)) transfer_fingerprints_to(NEWDISK) message_admins("[src] has been destroyed at ([diskturf.x], [diskturf.y], [diskturf.z] - JMP). Moving it to ([NEWDISK.x], [NEWDISK.y], [NEWDISK.z] - JMP).") diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm index e9bea1d8b1d..b84f8c2e327 100644 --- a/code/game/gamemodes/nuclear/pinpointer.dm +++ b/code/game/gamemodes/nuclear/pinpointer.dm @@ -21,10 +21,10 @@ /obj/item/pinpointer/New() ..() - pinpointer_list += src + GLOB.pinpointer_list += src /obj/item/pinpointer/Destroy() - pinpointer_list -= src + GLOB.pinpointer_list -= src active = 0 the_disk = null return ..() @@ -81,7 +81,7 @@ if(!shows_nuke_timer) return - for(var/obj/machinery/nuclearbomb/bomb in machines) + for(var/obj/machinery/nuclearbomb/bomb in GLOB.machines) if(bomb.timing) to_chat(user, "Extreme danger. Arming signal detected. Time remaining: [bomb.timeleft]") @@ -174,7 +174,7 @@ var/DNAstring = input("Input DNA string to search for." , "Please Enter String." , "") if(!DNAstring) return - for(var/mob/living/carbon/C in mob_list) + for(var/mob/living/carbon/C in GLOB.mob_list) if(!C.dna) continue if(C.dna.unique_enzymes == DNAstring) @@ -289,7 +289,7 @@ if(active) nearest_op = null //Resets nearest_op every time it scans var/closest_distance = 1000 - for(var/mob/living/carbon/M in mob_list) + for(var/mob/living/carbon/M in GLOB.mob_list) if(M.mind && (M.mind in ticker.mode.syndicates)) if(get_dist(M, get_turf(src)) < closest_distance) //Actually points toward the nearest op, instead of a random one like it used to nearest_op = M @@ -347,7 +347,7 @@ var/list/name_counts = list() var/list/names = list() - for(var/mob/living/carbon/human/H in mob_list) + for(var/mob/living/carbon/human/H in GLOB.mob_list) if(!trackable(H)) continue diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index a0ba4773785..0b935050911 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -200,7 +200,7 @@ var/list/potential_theft_objectives = subtypesof(/datum/theft_objective) - /datu var/area/A = shuttle_master.emergency.areaInstance - for(var/mob/living/player in player_list) //Make sure nobody else is onboard + for(var/mob/living/player in GLOB.player_list) //Make sure nobody else is onboard if(player.mind && player.mind != owner) if(player.stat != DEAD) if(issilicon(player)) @@ -209,7 +209,7 @@ var/list/potential_theft_objectives = subtypesof(/datum/theft_objective) - /datu if(player.real_name != owner.current.real_name && !istype(get_turf(player.mind.current), /turf/simulated/shuttle/floor4)) return 0 - for(var/mob/living/player in player_list) //Make sure at least one of you is onboard + for(var/mob/living/player in GLOB.player_list) //Make sure at least one of you is onboard if(player.mind && player.mind != owner) if(player.stat != DEAD) if(issilicon(player)) @@ -234,7 +234,7 @@ var/list/potential_theft_objectives = subtypesof(/datum/theft_objective) - /datu var/area/A = shuttle_master.emergency.areaInstance var/list/protected_mobs = list(/mob/living/silicon/ai, /mob/living/silicon/pai, /mob/living/silicon/robot) - for(var/mob/living/player in player_list) + for(var/mob/living/player in GLOB.player_list) if(player.type in protected_mobs) continue @@ -446,13 +446,13 @@ var/list/potential_theft_objectives = subtypesof(/datum/theft_objective) - /datu if(ticker) var/n_p = 1 //autowin if(ticker.current_state == GAME_STATE_SETTING_UP) - for(var/mob/new_player/P in player_list) + for(var/mob/new_player/P in GLOB.player_list) if(P.client && P.ready && P.mind != owner) if(P.client.prefs && (P.client.prefs.species == "Machine")) // Special check for species that can't be absorbed. No better solution. continue n_p++ else if(ticker.current_state == GAME_STATE_PLAYING) - for(var/mob/living/carbon/human/P in player_list) + for(var/mob/living/carbon/human/P in GLOB.player_list) if(NO_DNA in P.dna.species.species_traits) continue if(P.client && !(P.mind in ticker.mode.changelings) && P.mind!=owner) diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index ac607d6e01f..c72321af71c 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -337,7 +337,7 @@ if(head_revolutionaries.len || GAMEMODE_IS_REVOLUTION) var/num_revs = 0 var/num_survivors = 0 - for(var/mob/living/carbon/survivor in living_mob_list) + for(var/mob/living/carbon/survivor in GLOB.living_mob_list) if(survivor.ckey) num_survivors++ if(survivor.mind) diff --git a/code/game/gamemodes/sandbox/sandbox.dm b/code/game/gamemodes/sandbox/sandbox.dm index 1be9a0ced0e..663759c961c 100644 --- a/code/game/gamemodes/sandbox/sandbox.dm +++ b/code/game/gamemodes/sandbox/sandbox.dm @@ -11,7 +11,7 @@ to_chat(world, "Build your own station with the sandbox-panel command!") /datum/game_mode/sandbox/pre_setup() - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) M.CanBuild() return 1 diff --git a/code/game/gamemodes/scoreboard.dm b/code/game/gamemodes/scoreboard.dm index d34ebba4aa2..605dd3cd058 100644 --- a/code/game/gamemodes/scoreboard.dm +++ b/code/game/gamemodes/scoreboard.dm @@ -20,17 +20,17 @@ // Score Calculation and Display // Who is alive/dead, who escaped - for(var/mob/living/silicon/ai/I in mob_list) + for(var/mob/living/silicon/ai/I in GLOB.mob_list) if(I.stat == DEAD && is_station_level(I.z)) score_deadaipenalty++ score_deadcrew++ - for(var/mob/living/carbon/human/I in mob_list) + for(var/mob/living/carbon/human/I in GLOB.mob_list) if(I.stat == DEAD && is_station_level(I.z)) score_deadcrew++ if(shuttle_master.emergency.mode >= SHUTTLE_ENDGAME) - for(var/mob/living/player in mob_list) + for(var/mob/living/player in GLOB.mob_list) if(player.client) if(player.stat != DEAD) var/turf/location = get_turf(player.loc) @@ -44,7 +44,7 @@ var/dmg_score = 0 if(shuttle_master.emergency.mode >= SHUTTLE_ENDGAME) - for(var/mob/living/carbon/human/E in mob_list) + for(var/mob/living/carbon/human/E in GLOB.mob_list) cash_score = 0 dmg_score = 0 var/turf/location = get_turf(E.loc) @@ -71,7 +71,7 @@ // Check station's power levels - for(var/obj/machinery/power/apc/A in apcs) + for(var/obj/machinery/power/apc/A in GLOB.apcs) if(!is_station_level(A.z)) continue for(var/obj/item/stock_parts/cell/C in A.contents) if(C.charge < 2300) @@ -142,7 +142,7 @@ // Show the score - might add "ranks" later to_chat(world, "The crew's final score is:") to_chat(world, "[score_crewscore]") - for(var/mob/E in player_list) + for(var/mob/E in GLOB.player_list) if(E.client && !E.get_preference(DISABLE_SCOREBOARD)) E.scorestats() diff --git a/code/game/gamemodes/shadowling/ascendant_shadowling.dm b/code/game/gamemodes/shadowling/ascendant_shadowling.dm index f640174d537..51f4d147bba 100644 --- a/code/game/gamemodes/shadowling/ascendant_shadowling.dm +++ b/code/game/gamemodes/shadowling/ascendant_shadowling.dm @@ -49,7 +49,7 @@ /mob/living/simple_animal/ascendant_shadowling/proc/announce(var/text, var/size = 4, var/new_sound = null) var/message = "\"[text]\"" - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(!isnewplayer(M) && M.client) to_chat(M, message) if(new_sound) diff --git a/code/game/gamemodes/shadowling/shadowling_abilities.dm b/code/game/gamemodes/shadowling/shadowling_abilities.dm index 4cec8b12728..881fc348475 100644 --- a/code/game/gamemodes/shadowling/shadowling_abilities.dm +++ b/code/game/gamemodes/shadowling/shadowling_abilities.dm @@ -402,7 +402,7 @@ to_chat(target, "You focus your telepathic energies abound, harnessing and drawing together the strength of your thralls.") - for(M in living_mob_list) + for(M in GLOB.living_mob_list) if(is_thrall(M)) thralls++ to_chat(M, "You feel hooks sink into your mind and pull.") @@ -439,7 +439,7 @@ else if(thralls >= victory_threshold) to_chat(target, "You are now powerful enough to ascend. Use the Ascendance ability when you are ready. This will kill all of your thralls.") to_chat(target, "You may find Ascendance in the Shadowling Evolution tab.") - for(M in living_mob_list) + for(M in GLOB.living_mob_list) if(is_shadow(M)) var/obj/effect/proc_holder/spell/targeted/collective_mind/CM if(CM in M.mind.spell_list) diff --git a/code/game/gamemodes/shadowling/special_shadowling_abilities.dm b/code/game/gamemodes/shadowling/special_shadowling_abilities.dm index 7aebaa0b044..d6dffbf4b85 100644 --- a/code/game/gamemodes/shadowling/special_shadowling_abilities.dm +++ b/code/game/gamemodes/shadowling/special_shadowling_abilities.dm @@ -157,7 +157,7 @@ var/list/possibleShadowlingNames = list("U'ruan", "Y`shej", "Nex", "Hel-uae", "N for(var/mob/living/M in orange(7, H)) M.Weaken(10) to_chat(M, "An immense pressure slams you onto the ground!") - for(var/obj/machinery/power/apc/A in apcs) + for(var/obj/machinery/power/apc/A in GLOB.apcs) A.overload_lighting() var/mob/living/simple_animal/ascendant_shadowling/A = new /mob/living/simple_animal/ascendant_shadowling(H.loc) A.announce("VYSHA NERADA YEKHEZET U'RUU!!", 5, 'sound/hallucinations/veryfar_noise.ogg') diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index 9234043976c..d79dbc3c224 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -123,7 +123,7 @@ var/list/active_ais = active_ais() for(var/i = objective_count, i < config.traitor_objectives_amount, i++) if(prob(50)) - if(active_ais.len && prob(100/player_list.len)) + if(active_ais.len && prob(100/GLOB.player_list.len)) var/datum/objective/destroy/destroy_objective = new destroy_objective.owner = traitor destroy_objective.find_target() diff --git a/code/game/gamemodes/vampire/traitor_vamp.dm b/code/game/gamemodes/vampire/traitor_vamp.dm index b06db47f02c..f1064bffd1b 100644 --- a/code/game/gamemodes/vampire/traitor_vamp.dm +++ b/code/game/gamemodes/vampire/traitor_vamp.dm @@ -20,7 +20,7 @@ var/list/datum/mind/possible_vampires = get_players_for_role(ROLE_VAMPIRE) - for(var/mob/new_player/player in player_list) + for(var/mob/new_player/player in GLOB.player_list) if((player.mind in possible_vampires) && (player.client.prefs.species in protected_species_vampire)) possible_vampires -= player.mind diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm index 2ac4bc0b2f8..4c0aaac77da 100644 --- a/code/game/gamemodes/wizard/artefact.dm +++ b/code/game/gamemodes/wizard/artefact.dm @@ -84,8 +84,8 @@ M.equip_to_slot_or_del(new /obj/item/storage/backpack(M), slot_back) M.equip_to_slot_or_del(new /obj/item/storage/box(M), slot_in_backpack) M.equip_to_slot_or_del(new /obj/item/teleportation_scroll/apprentice(M), slot_r_store) - var/wizard_name_first = pick(wizard_first) - var/wizard_name_second = pick(wizard_second) + var/wizard_name_first = pick(GLOB.wizard_first) + var/wizard_name_second = pick(GLOB.wizard_second) var/randomname = "[wizard_name_first] [wizard_name_second]" var/newname = sanitize(copytext(input(M, "You are the wizard's apprentice. Would you like to change your name to something else?", "Name change", randomname) as null|text,1,MAX_NAME_LEN)) @@ -856,7 +856,7 @@ var/global/list/multiverse = list() possible = list() if(!link) return - for(var/mob/living/carbon/human/H in living_mob_list) + for(var/mob/living/carbon/human/H in GLOB.living_mob_list) if(md5(H.dna.uni_identity) in link.fingerprints) possible |= H diff --git a/code/game/gamemodes/wizard/raginmages.dm b/code/game/gamemodes/wizard/raginmages.dm index a75da0edb13..749e80f3c1c 100644 --- a/code/game/gamemodes/wizard/raginmages.dm +++ b/code/game/gamemodes/wizard/raginmages.dm @@ -128,7 +128,7 @@ if(!candidates.len) message_admins("No applicable clients for the next ragin' mage, asking ghosts instead.") var/time_passed = world.time - for(var/mob/dead/observer/G in player_list) + for(var/mob/dead/observer/G in GLOB.player_list) if(!jobban_isbanned(G, "wizard") && !jobban_isbanned(G, "Syndicate")) spawn(0) switch(alert(G, "Do you wish to be considered for the position of Space Wizard Foundation 'diplomat'?","Please answer in 30 seconds!","Yes","No")) diff --git a/code/game/gamemodes/wizard/rightandwrong.dm b/code/game/gamemodes/wizard/rightandwrong.dm index ef11a84881e..345ccfc877d 100644 --- a/code/game/gamemodes/wizard/rightandwrong.dm +++ b/code/game/gamemodes/wizard/rightandwrong.dm @@ -8,7 +8,7 @@ to_chat(usr, "You summoned [summon_type ? "magic" : "guns"]!") message_admins("[key_name_admin(usr)] summoned [summon_type ? "magic" : "guns"]!") - for(var/mob/living/carbon/human/H in player_list) + for(var/mob/living/carbon/human/H in GLOB.player_list) if(H.stat == 2 || !(H.client)) continue if(H.mind) diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm index 4bd7f3004d8..5f1a671b566 100644 --- a/code/game/gamemodes/wizard/soulstone.dm +++ b/code/game/gamemodes/wizard/soulstone.dm @@ -371,7 +371,7 @@ /obj/item/soulstone/proc/getCultGhost(mob/living/carbon/human/T, mob/U) var/mob/dead/observer/chosen_ghost - for(var/mob/dead/observer/ghost in player_list) //We put them back in their body + for(var/mob/dead/observer/ghost in GLOB.player_list) //We put them back in their body if(ghost.mind && ghost.mind.current == T && ghost.client) chosen_ghost = ghost break diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index ff101cbb5c1..6ae56a24973 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -779,7 +779,7 @@ /obj/item/spellbook/oneuse/mindswap/recoil(mob/user) ..() - if(stored_swap in dead_mob_list) + if(stored_swap in GLOB.dead_mob_list) stored_swap = null if(!stored_swap) stored_swap = user diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index 18dda0fcbc4..d33fcc48294 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -88,8 +88,8 @@ /datum/game_mode/proc/name_wizard(mob/living/carbon/human/wizard_mob) //Allows the wizard to choose a custom name or go with a random one. Spawn 0 so it does not lag the round starting. - var/wizard_name_first = pick(wizard_first) - var/wizard_name_second = pick(wizard_second) + var/wizard_name_first = pick(GLOB.wizard_first) + var/wizard_name_second = pick(GLOB.wizard_second) var/randomname = "[wizard_name_first] [wizard_name_second]" spawn(0) var/newname = sanitize(copytext(input(wizard_mob, "You are the Space Wizard. Would you like to change your name to something else?", "Name change", randomname) as null|text,1,MAX_NAME_LEN)) diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index 6423960f2f3..4bf351019ea 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -522,10 +522,10 @@ var/const/access_trade_sol = 160 rank = src:rank assignment = src:assignment - if( rank in joblist ) + if( rank in GLOB.joblist ) return rank - if( assignment in joblist ) + if( assignment in GLOB.joblist ) return assignment return "Unknown" @@ -587,7 +587,7 @@ proc/FindNameFromID(var/mob/living/carbon/human/H) return ID.registered_name proc/get_all_job_icons() //For all existing HUD icons - return joblist + list("Prisoner") + return GLOB.joblist + list("Prisoner") /obj/proc/GetJobName() //Used in secHUD icon generation var/obj/item/card/id/I diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 5f4483610d2..2e21e60a312 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -177,7 +177,7 @@ var/global/datum/controller/occupations/job_master break /datum/controller/occupations/proc/ResetOccupations() - for(var/mob/new_player/player in player_list) + for(var/mob/new_player/player in GLOB.player_list) if((player) && (player.mind)) player.mind.assigned_role = null player.mind.special_role = null @@ -291,7 +291,7 @@ var/global/datum/controller/occupations/job_master A.spawn_positions = 3 //Get the players who are ready - for(var/mob/new_player/player in player_list) + for(var/mob/new_player/player in GLOB.player_list) if(player.ready && player.mind && !player.mind.assigned_role) unassigned += player if(player.client.prefs.randomslot) @@ -461,7 +461,7 @@ var/global/datum/controller/occupations/job_master if(!joined_late) var/turf/T = null var/obj/S = null - for(var/obj/effect/landmark/start/sloc in landmarks_list) + for(var/obj/effect/landmark/start/sloc in GLOB.landmarks_list) if(sloc.name != rank) continue if(locate(/mob/living) in sloc.loc) @@ -562,7 +562,7 @@ var/global/datum/controller/occupations/job_master var/level5 = 0 //banned var/level6 = 0 //account too young var/level7 = 0 //has disability rendering them ineligible - for(var/mob/new_player/player in player_list) + for(var/mob/new_player/player in GLOB.player_list) if(!(player.ready && player.mind && !player.mind.assigned_role)) continue //This player is not ready if(jobban_isbanned(player, job.title)) diff --git a/code/game/jobs/job_exp.dm b/code/game/jobs/job_exp.dm index 552654245dd..7330c20eee6 100644 --- a/code/game/jobs/job_exp.dm +++ b/code/game/jobs/job_exp.dm @@ -50,7 +50,7 @@ var/global/list/role_playtime_requirements = list( var/pline var/datum/job/theirjob var/jtext - for(var/client/C in clients) + for(var/client/C in GLOB.clients) jtext = "No Job" if(C.mob.mind && C.mob.mind.assigned_role) theirjob = job_master.GetJob(C.mob.mind.assigned_role) @@ -212,7 +212,7 @@ var/global/list/role_playtime_requirements = list( if(!establish_db_connection()) return -1 spawn(0) - for(var/client/L in clients) + for(var/client/L in GLOB.clients) if(L.inactivity >= (10 MINUTES)) continue spawn(0) diff --git a/code/game/jobs/job_scaling.dm b/code/game/jobs/job_scaling.dm index 7d8804783f1..89bd8374351 100644 --- a/code/game/jobs/job_scaling.dm +++ b/code/game/jobs/job_scaling.dm @@ -1,6 +1,6 @@ /hook/roundstart/proc/jobscaling() sleep(10 SECONDS) // give everyone time to finish spawning, and the lag to die down - var/playercount = length(clients) + var/playercount = length(GLOB.clients) var/highpop_trigger = 80 if(playercount >= highpop_trigger) diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index c964fd1f688..c2cc979f1dc 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -217,7 +217,7 @@ var/chemicals[0] for(var/re in injection_chems) - var/datum/reagent/temp = chemical_reagents_list[re] + var/datum/reagent/temp = GLOB.chemical_reagents_list[re] if(temp) var/reagent_amount = 0 var/pretty_amount diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index e9201838763..a6487352cd0 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -189,8 +189,8 @@ /obj/machinery/alarm/New(var/loc, var/dir, var/building = 0) ..() - air_alarms += src - air_alarms = sortAtom(air_alarms) + GLOB.air_alarms += src + GLOB.air_alarms = sortAtom(GLOB.air_alarms) wires = new(src) @@ -211,7 +211,7 @@ first_run() /obj/machinery/alarm/Destroy() - air_alarms -= src + GLOB.air_alarms -= src if(radio_controller) radio_controller.remove_object(src, frequency) radio_connection = null diff --git a/code/game/machinery/atmo_control.dm b/code/game/machinery/atmo_control.dm index b6586d3c90a..e090be82d67 100644 --- a/code/game/machinery/atmo_control.dm +++ b/code/game/machinery/atmo_control.dm @@ -299,7 +299,7 @@ legend { // Make a list of all available sensors on the same frequency var/list/sensor_list = list() - for(var/obj/machinery/air_sensor/G in machines) + for(var/obj/machinery/air_sensor/G in GLOB.machines) if(!isnull(G.id_tag) && G.frequency == frequency) sensor_list|=G.id_tag if(!sensor_list.len) @@ -320,7 +320,7 @@ legend { if("edit_sensor" in href_list) var/list/sensor_list = list() - for(var/obj/machinery/air_sensor/G in machines) + for(var/obj/machinery/air_sensor/G in GLOB.machines) if(!isnull(G.id_tag) && G.frequency == frequency) sensor_list|=G.id_tag if(!sensor_list.len) diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 07f22d8373e..e3b64f1bc1c 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -93,7 +93,7 @@ spawn(100) if(!QDELETED(src)) cancelCameraAlarm() - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(M.client && M.client.eye == src) M.unset_machine() M.reset_perspective(null) @@ -192,7 +192,7 @@ info = N.notehtml to_chat(U, "You hold \the [itemname] up to the camera ...") U.changeNext_move(CLICK_CD_MELEE) - for(var/mob/O in player_list) + for(var/mob/O in GLOB.player_list) if(istype(O, /mob/living/silicon/ai)) var/mob/living/silicon/ai/AI = O if(AI.control_disabled || (AI.stat == DEAD)) @@ -286,7 +286,7 @@ // now disconnect anyone using the camera //Apparently, this will disconnect anyone even if the camera was re-activated. //I guess that doesn't matter since they can't use it anyway? - for(var/mob/O in player_list) + for(var/mob/O in GLOB.player_list) if(O.client && O.client.eye == src) O.unset_machine() O.reset_perspective(null) diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm index 03ebe757789..5f9aa6f12a1 100644 --- a/code/game/machinery/camera/camera_assembly.dm +++ b/code/game/machinery/camera/camera_assembly.dm @@ -101,7 +101,7 @@ C.auto_turn() C.network = uniquelist(tempnetwork) - tempnetwork = difflist(C.network,restricted_camera_networks) + tempnetwork = difflist(C.network,GLOB.restricted_camera_networks) if(!tempnetwork.len) // Camera isn't on any open network - remove its chunk from AI visibility. cameranet.removeCamera(C) diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm index 76a9518c98b..277cee5beb3 100644 --- a/code/game/machinery/camera/tracking.dm +++ b/code/game/machinery/camera/tracking.dm @@ -120,7 +120,7 @@ if(usr.stat == 2) return list() - for(var/mob/living/M in mob_list) + for(var/mob/living/M in GLOB.mob_list) if(!M.can_track(usr)) continue diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm index 44672d12461..5459e795fb4 100644 --- a/code/game/machinery/computer/aifixer.dm +++ b/code/game/machinery/computer/aifixer.dm @@ -74,8 +74,8 @@ if(src.occupant.health >= 0 && src.occupant.stat == 2) src.occupant.stat = 0 src.occupant.lying = 0 - dead_mob_list -= src.occupant - living_mob_list += src.occupant + GLOB.dead_mob_list -= src.occupant + GLOB.living_mob_list += src.occupant sleep(10) src.active = 0 src.add_fingerprint(usr) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index eebae34b9ea..20a77df780c 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -912,9 +912,9 @@ newcrew = specific else if(prob(50)) - newcrew = pick(first_names_male) + newcrew = pick(GLOB.first_names_male) else - newcrew = pick(first_names_female) + newcrew = pick(GLOB.first_names_female) if(newcrew) settlers += newcrew alive++ diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index 51c55ffd84a..9bda37b2401 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -153,7 +153,7 @@ var/time_last_changed_position = 0 /obj/machinery/computer/card/proc/can_open_job(datum/job/job) if(job) if(!job_blacklisted_full(job) && !job_blacklisted_partial(job) && job_in_department(job, FALSE)) - if((job.total_positions <= player_list.len * (max_relative_positions / 100))) + if((job.total_positions <= GLOB.player_list.len * (max_relative_positions / 100))) var/delta = (world.time / 10) - time_last_changed_position if((change_position_cooldown < delta) || (opened_positions[job.title] < 0)) return 1 diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 865f683946e..8d0fbc8e04d 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -37,7 +37,7 @@ light_color = LIGHT_COLOR_LIGHTBLUE /obj/machinery/computer/communications/New() - shuttle_caller_list += src + GLOB.shuttle_caller_list += src ..() crew_announcement.newscast = 0 @@ -533,21 +533,21 @@ /obj/machinery/computer/communications/Destroy() - shuttle_caller_list -= src + GLOB.shuttle_caller_list -= src shuttle_master.autoEvac() return ..() /obj/item/circuitboard/communications/New() - shuttle_caller_list += src + GLOB.shuttle_caller_list += src ..() /obj/item/circuitboard/communications/Destroy() - shuttle_caller_list -= src + GLOB.shuttle_caller_list -= src shuttle_master.autoEvac() return ..() /proc/print_command_report(text = "", title = "Central Command Update") - for(var/obj/machinery/computer/communications/C in shuttle_caller_list) + for(var/obj/machinery/computer/communications/C in GLOB.shuttle_caller_list) if(!(C.stat & (BROKEN|NOPOWER)) && is_station_contact(C.z)) var/obj/item/paper/P = new /obj/item/paper(C.loc) P.name = "paper- '[title]'" @@ -555,7 +555,7 @@ P.update_icon() C.messagetitle.Add("[title]") C.messagetext.Add(text) - for(var/datum/computer_file/program/comm/P in shuttle_caller_list) + for(var/datum/computer_file/program/comm/P in GLOB.shuttle_caller_list) var/turf/T = get_turf(P.computer) if(T && P.program_state != PROGRAM_STATE_KILLED && is_station_contact(T.z)) if(P.computer) @@ -566,7 +566,7 @@ P.messagetext.Add(text) /proc/print_centcom_report(text = "", title = "Incoming Message") - for(var/obj/machinery/computer/communications/C in shuttle_caller_list) + for(var/obj/machinery/computer/communications/C in GLOB.shuttle_caller_list) if(!(C.stat & (BROKEN|NOPOWER)) && is_admin_level(C.z)) var/obj/item/paper/P = new /obj/item/paper(C.loc) P.name = "paper- '[title]'" @@ -574,7 +574,7 @@ P.update_icon() C.messagetitle.Add("[title]") C.messagetext.Add(text) - for(var/datum/computer_file/program/comm/P in shuttle_caller_list) + for(var/datum/computer_file/program/comm/P in GLOB.shuttle_caller_list) var/turf/T = get_turf(P.computer) if(T && P.program_state != PROGRAM_STATE_KILLED && is_admin_level(T.z)) if(P.computer) diff --git a/code/game/machinery/computer/depot.dm b/code/game/machinery/computer/depot.dm index 78a8a8a69ab..9e720a4c83d 100644 --- a/code/game/machinery/computer/depot.dm +++ b/code/game/machinery/computer/depot.dm @@ -389,7 +389,7 @@ /obj/machinery/computer/syndicate_depot/teleporter/proc/choosetarget() var/list/eligible_turfs = list() - for(var/obj/item/radio/beacon/R in beacons) + for(var/obj/item/radio/beacon/R in GLOB.beacons) var/turf/T = get_turf(R) if(!is_station_level(T.z)) continue diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 4785c681582..fb09b40f440 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -535,7 +535,7 @@ if(prob(10/severity)) switch(rand(1,6)) if(1) - R.fields["name"] = "[pick(pick(first_names_male), pick(first_names_female))] [pick(last_names)]" + R.fields["name"] = "[pick(pick(GLOB.first_names_male), pick(GLOB.first_names_female))] [pick(GLOB.last_names)]" if(2) R.fields["sex"] = pick("Male", "Female") if(3) diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index 4cbf105c100..fdb9f934516 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -39,7 +39,7 @@ loopings += ident_tag loopings[ident_tag] = 0 break - for(var/obj/machinery/door/poddoor/M in airlocks) + for(var/obj/machinery/door/poddoor/M in GLOB.airlocks) if(M.z != src.z) continue for(var/ident_tag in id_tags) if((M.id_tag == ident_tag) && !(ident_tag in synced) && !(ident_tag in door_only_tags)) @@ -65,7 +65,7 @@ loopings[ident_tag] = 0 break if(!(ident_tag in synced)) - for(var/obj/machinery/door/poddoor/M in airlocks) + for(var/obj/machinery/door/poddoor/M in GLOB.airlocks) if(M.z != src.z) continue if((M.id_tag == ident_tag) && !(ident_tag in synced) && !(ident_tag in door_only_tags)) door_only_tags += ident_tag @@ -86,7 +86,7 @@ visible_message("Cannot locate any mass driver of that ID. Cancelling firing sequence!") return - for(var/obj/machinery/door/poddoor/M in airlocks) + for(var/obj/machinery/door/poddoor/M in GLOB.airlocks) if(M.z != src.z) continue if(M.id_tag == ident_tag) spawn() @@ -100,7 +100,7 @@ M.drive() sleep(50) - for(var/obj/machinery/door/poddoor/M in airlocks) + for(var/obj/machinery/door/poddoor/M in GLOB.airlocks) if(M.z != src.z) continue if(M.id_tag == ident_tag) spawn() @@ -240,7 +240,7 @@ maxtimes[ident_tag] = min(max(round(maxtimes[ident_tag]), 0), 120) if(href_list["door"]) var/ident_tag = href_list["driver"] - for(var/obj/machinery/door/poddoor/M in airlocks) + for(var/obj/machinery/door/poddoor/M in GLOB.airlocks) if(M.z != src.z) continue if(M.id_tag == ident_tag) spawn() @@ -313,7 +313,7 @@ P.failchance = 0//So it has no fail chance when teleporting. spawn_marauder.Remove(P.target) - for(var/obj/machinery/door/poddoor/M in airlocks) + for(var/obj/machinery/door/poddoor/M in GLOB.airlocks) if(M.z != src.z) continue if(M.id_tag == ident_tag) spawn() @@ -326,7 +326,7 @@ M.drive() sleep(50) - for(var/obj/machinery/door/poddoor/M in airlocks) + for(var/obj/machinery/door/poddoor/M in GLOB.airlocks) if(M.z != src.z) continue if(M.id_tag == ident_tag) spawn() diff --git a/code/game/machinery/computer/power.dm b/code/game/machinery/computer/power.dm index 2fa4e6f1177..a5198da6e56 100644 --- a/code/game/machinery/computer/power.dm +++ b/code/game/machinery/computer/power.dm @@ -13,8 +13,8 @@ /obj/machinery/computer/monitor/New() ..() - power_monitors += src - power_monitors = sortAtom(power_monitors) + GLOB.power_monitors += src + GLOB.power_monitors = sortAtom(GLOB.power_monitors) power_monitor = new(src) /obj/machinery/computer/monitor/Initialize() @@ -23,7 +23,7 @@ powernet = find_powernet() /obj/machinery/computer/monitor/Destroy() - power_monitors -= src + GLOB.power_monitors -= src powermonitor_repository.update_cache() QDEL_NULL(power_monitor) return ..() diff --git a/code/game/machinery/computer/prisoner.dm b/code/game/machinery/computer/prisoner.dm index 613d6dcd90e..ea684d9596b 100644 --- a/code/game/machinery/computer/prisoner.dm +++ b/code/game/machinery/computer/prisoner.dm @@ -19,11 +19,11 @@ return src.attack_hand(user) /obj/machinery/computer/prisoner/New() - prisoncomputer_list += src + GLOB.prisoncomputer_list += src return ..() /obj/machinery/computer/prisoner/Destroy() - prisoncomputer_list -= src + GLOB.prisoncomputer_list -= src return ..() /obj/machinery/computer/prisoner/attack_hand(var/mob/user as mob) @@ -46,7 +46,7 @@ dat += text("Insert Prisoner ID
") var/turf/Tr = null dat += "
Chemical Implants
" - for(var/obj/item/implant/chem/C in tracked_implants) + for(var/obj/item/implant/chem/C in GLOB.tracked_implants) Tr = get_turf(C) if((Tr) && (Tr.z != src.z)) continue//Out of range if(!C.implanted) continue @@ -59,7 +59,7 @@ ********************************
"} // END AUTOFIX dat += "
Tracking Implants
" - for(var/obj/item/implant/tracking/T in tracked_implants) + for(var/obj/item/implant/tracking/T in GLOB.tracked_implants) Tr = get_turf(T) if((Tr) && (Tr.z != src.z)) continue//Out of range if(!T.implanted) continue diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index a3d9455a6ce..5d4e838db38 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -172,7 +172,7 @@ message_admins("[key_name_admin(usr)] detonated all cyborgs!") log_game("\[key_name(usr)] detonated all cyborgs!") - for(var/mob/living/silicon/robot/R in mob_list) + for(var/mob/living/silicon/robot/R in GLOB.mob_list) if(istype(R, /mob/living/silicon/robot/drone)) continue // Ignore antagonistic cyborgs @@ -190,7 +190,7 @@ /obj/machinery/computer/robotics/proc/get_cyborgs(var/mob/operator) var/list/robots = list() - for(var/mob/living/silicon/robot/R in mob_list) + for(var/mob/living/silicon/robot/R in GLOB.mob_list) // Ignore drones if(istype(R, /mob/living/silicon/robot/drone)) continue @@ -240,6 +240,6 @@ /obj/machinery/computer/robotics/proc/get_cyborg_by_name(var/name) if(!name) return - for(var/mob/living/silicon/robot/R in mob_list) + for(var/mob/living/silicon/robot/R in GLOB.mob_list) if(R.name == name) return R diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 5c26f423e96..e31fc239580 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -149,9 +149,9 @@ update_all_mob_security_hud() setTemp("

All records deleted.

") if("del_alllogs2") - if(cell_logs.len) + if(GLOB.cell_logs.len) setTemp("

All cell logs deleted.

") - cell_logs.Cut() + GLOB.cell_logs.Cut() else to_chat(usr, "Error; No cell logs to delete.") if("del_r2") @@ -207,7 +207,7 @@ if("rank") if(active1) active1.fields["rank"] = temp_href[2] - if(temp_href[2] in joblist) + if(temp_href[2] in GLOB.joblist) active1.fields["real_rank"] = temp_href[2] if(href_list["scan"]) @@ -385,8 +385,8 @@ */ else if(href_list["printlogs"]) - if(cell_logs.len && !printing) - var/obj/item/paper/P = input(usr, "Select log to print", "Available Cell Logs") as null|anything in cell_logs + if(GLOB.cell_logs.len && !printing) + var/obj/item/paper/P = input(usr, "Select log to print", "Available Cell Logs") as null|anything in GLOB.cell_logs if(!P) return 0 printing = 1 @@ -500,7 +500,7 @@ //This was so silly before the change. Now it actually works without beating your head against the keyboard. /N if(istype(active1, /datum/data/record) && L.Find(rank)) var/list/buttons = list() - for(var/rank in joblist) + for(var/rank in GLOB.joblist) buttons[++buttons.len] = list("name" = rank, "icon" = null, "href" = "rank=[rank]", "status" = (active1.fields["rank"] == rank ? "selected" : null)) setTemp("

Rank

", buttons) else @@ -566,7 +566,7 @@ if(prob(10/severity)) switch(rand(1,6)) if(1) - R.fields["name"] = "[pick(pick(first_names_male), pick(first_names_female))] [pick(last_names)]" + R.fields["name"] = "[pick(pick(GLOB.first_names_male), pick(GLOB.first_names_female))] [pick(GLOB.last_names)]" if(2) R.fields["sex"] = pick("Male", "Female") if(3) diff --git a/code/game/machinery/computer/skills.dm b/code/game/machinery/computer/skills.dm index ff0fc039efe..ac10eb6e22d 100644 --- a/code/game/machinery/computer/skills.dm +++ b/code/game/machinery/computer/skills.dm @@ -121,7 +121,7 @@ if(PDA_Manifest && PDA_Manifest.len) PDA_Manifest.Cut() active1.fields["rank"] = temp_list[2] - if(temp_list[2] in joblist) + if(temp_list[2] in GLOB.joblist) active1.fields["real_rank"] = temp_list[2] if(href_list["scan"]) @@ -278,7 +278,7 @@ //This was so silly before the change. Now it actually works without beating your head against the keyboard. /N if(istype(active1, /datum/data/record) && L.Find(rank)) var/list/buttons = list() - for(var/rank in joblist) + for(var/rank in GLOB.joblist) buttons[++buttons.len] = list("name" = rank, "icon" = null, "val" = "rank=[rank]", "status" = (active1.fields["rank"] == rank ? "selected" : null)) setTemp("

Rank

", buttons) else @@ -303,7 +303,7 @@ if(prob(10/severity)) switch(rand(1,6)) if(1) - R.fields["name"] = "[pick(pick(first_names_male), pick(first_names_female))] [pick(last_names)]" + R.fields["name"] = "[pick(pick(GLOB.first_names_male), pick(GLOB.first_names_female))] [pick(GLOB.last_names)]" if(2) R.fields["sex"] = pick("Male", "Female") if(3) diff --git a/code/game/machinery/computer/syndicate_specops_shuttle.dm b/code/game/machinery/computer/syndicate_specops_shuttle.dm index 0889c97dcca..a3ad2cc59dd 100644 --- a/code/game/machinery/computer/syndicate_specops_shuttle.dm +++ b/code/game/machinery/computer/syndicate_specops_shuttle.dm @@ -85,10 +85,10 @@ var/syndicate_elite_shuttle_timeleft = 0 sleep(10) var/spawn_marauder[] = new() - for(var/obj/effect/landmark/L in landmarks_list) + for(var/obj/effect/landmark/L in GLOB.landmarks_list) if(L.name == "Marauder Entry") spawn_marauder.Add(L) - for(var/obj/effect/landmark/L in landmarks_list) + for(var/obj/effect/landmark/L in GLOB.landmarks_list) if(L.name == "Marauder Exit") var/obj/effect/portal/P = new(L.loc) P.invisibility = 101//So it is not seen by anyone. @@ -133,7 +133,7 @@ var/syndicate_elite_shuttle_timeleft = 0 elite_squad.readyreset()//Reset firealarm after the team launched. //End Marauder launchpad. - for(var/obj/effect/landmark/L in landmarks_list) + for(var/obj/effect/landmark/L in GLOB.landmarks_list) if(L.name == "Syndicate Breach Area") explosion(L.loc,4,6,8,10,0) diff --git a/code/game/machinery/computer/telecrystalconsoles.dm b/code/game/machinery/computer/telecrystalconsoles.dm index 4006e005b12..2a7e2f71bee 100644 --- a/code/game/machinery/computer/telecrystalconsoles.dm +++ b/code/game/machinery/computer/telecrystalconsoles.dm @@ -151,7 +151,7 @@ var/list/possible_uplinker_IDs = list("Alfa","Bravo","Charlie","Delta","Echo","F /obj/machinery/computer/telecrystals/boss/proc/getDangerous()//This scales the TC assigned with the round population. ..() var/danger - danger = player_list.len + danger = GLOB.player_list.len while(!IsMultiple(++danger,10))//Just round up to the nearest multiple of ten. scaleTC(danger) diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 332dc2854e1..af63a92e2ff 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -336,7 +336,7 @@ continue O.forceMove(src) - for(var/obj/machinery/computer/cloning/cloner in machines) + for(var/obj/machinery/computer/cloning/cloner in GLOB.machines) for(var/datum/dna2/record/R in cloner.records) if(occupant.mind == locate(R.mind)) cloner.records.Remove(R) @@ -434,7 +434,7 @@ control_computer.frozen_crew += "[occupant.real_name]" var/ailist[] = list() - for(var/mob/living/silicon/ai/A in living_mob_list) + for(var/mob/living/silicon/ai/A in GLOB.living_mob_list) ailist += A if(ailist.len) var/mob/living/silicon/ai/announcer = pick(ailist) @@ -607,7 +607,7 @@ time_entered = world.time if(findtext("[E.key]","@",1,2)) var/FT = replacetext(E.key, "@", "") - for(var/mob/dead/observer/Gh in respawnable_list) //this may not be foolproof but it seemed like a better option than 'in world' + for(var/mob/dead/observer/Gh in GLOB.respawnable_list) //this may not be foolproof but it seemed like a better option than 'in world' if(Gh.key == FT) if(Gh.client && Gh.client.holder) //just in case someone has a byond name with @ at the start, which I don't think is even possible but whatever to_chat(Gh, "Warning: Your body has entered cryostorage.") @@ -761,7 +761,7 @@ if(istype(person_to_cryo.loc, /obj/machinery/cryopod)) return 0 var/list/free_cryopods = list() - for(var/obj/machinery/cryopod/P in machines) + for(var/obj/machinery/cryopod/P in GLOB.machines) if(!P.occupant && istype(get_area(P), /area/crew_quarters/sleep)) free_cryopods += P var/obj/machinery/cryopod/target_cryopod = null diff --git a/code/game/machinery/door_control.dm b/code/game/machinery/door_control.dm index 879773c3850..9916c0cc64c 100644 --- a/code/game/machinery/door_control.dm +++ b/code/game/machinery/door_control.dm @@ -113,7 +113,7 @@ D.safe = 1 else - for(var/obj/machinery/door/poddoor/M in airlocks) + for(var/obj/machinery/door/poddoor/M in GLOB.airlocks) if(M.id_tag == id) if(M.density) spawn( 0 ) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index a076fcec8fd..1301ef91289 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -132,7 +132,7 @@ About the new airlock wires panel: update_icon() /obj/machinery/door/airlock/proc/update_other_id() - for(var/obj/machinery/door/airlock/A in airlocks) + for(var/obj/machinery/door/airlock/A in GLOB.airlocks) if(A.closeOtherId == closeOtherId && A != src) closeOther = A break diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index 43156d2b484..7f785b6f3eb 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -38,7 +38,7 @@ if(!logname || !logcharges) return 0 - for(var/obj/machinery/computer/prisoner/C in prisoncomputer_list) + for(var/obj/machinery/computer/prisoner/C in GLOB.prisoncomputer_list) var/obj/item/paper/P = new /obj/item/paper(C.loc) P.name = "[id] log - [logname] [station_time_timestamp()]" P.info = "
[id] - Brig record



" @@ -52,7 +52,7 @@ This log file was generated automatically upon activation of a cell timer."} playsound(C.loc, "sound/goonstation/machines/printer_dotmatrix.ogg", 50, 1) - cell_logs += P + GLOB.cell_logs += P var/datum/data/record/R = find_security_record("name", logname) Radio.autosay("Detainee [logname] has been incarcerated for [seconds_to_time(timetoset / 10)] for the charges of, '[logcharges]'. \ @@ -85,11 +85,11 @@ pixel_y = ((dir & 3)? (dir ==1 ? 32 : -32) : (0)) spawn(20) - for(var/obj/machinery/door/window/brigdoor/M in airlocks) + for(var/obj/machinery/door/window/brigdoor/M in GLOB.airlocks) if(M.id == id) targets += M - for(var/obj/machinery/flasher/F in machines) + for(var/obj/machinery/flasher/F in GLOB.machines) if(F.id == id) targets += F @@ -97,7 +97,7 @@ if(C.id == id) targets += C - for(var/obj/machinery/treadmill_monitor/T in machines) + for(var/obj/machinery/treadmill_monitor/T in GLOB.machines) if(T.id == id) targets += T diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 563e4eb49f2..706b1a82ce0 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -37,7 +37,7 @@ set_init_door_layer() update_dir() update_freelook_sight() - airlocks += src + GLOB.airlocks += src spark_system = new /datum/effect_system/spark_spread spark_system.set_up(2, 1, src) @@ -72,7 +72,7 @@ density = 0 air_update_turf(1) update_freelook_sight() - airlocks -= src + GLOB.airlocks -= src if(autoclose_timer) deltimer(autoclose_timer) autoclose_timer = 0 diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 6f080b8351b..770b58696d3 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -134,7 +134,7 @@ Class Procs: else START_DEFERRED_PROCESSING(SSmachines, src) else - fast_processing += src + GLOB.fast_processing += src isprocessing = TRUE // all of these isprocessing = TRUE can be removed when the PS is dead // gotta go fast @@ -143,7 +143,7 @@ Class Procs: return speed_process = 1 STOP_PROCESSING(SSmachines, src) - fast_processing += src + GLOB.fast_processing += src isprocessing = TRUE // gotta go slow @@ -152,20 +152,20 @@ Class Procs: return speed_process = 0 START_PROCESSING(SSmachines, src) - fast_processing -= src + GLOB.fast_processing -= src /obj/machinery/New() //new if(!armor) armor = list(melee = 25, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0) - machines += src + GLOB.machines += src ..() /obj/machinery/Destroy() if(myArea) myArea = null - fast_processing -= src + GLOB.fast_processing -= src STOP_PROCESSING(SSmachines, src) - machines -= src + GLOB.machines -= src return ..() /obj/machinery/proc/locate_machinery() diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm index 378ebce8eb7..f278ee2adda 100644 --- a/code/game/machinery/navbeacon.dm +++ b/code/game/machinery/navbeacon.dm @@ -29,16 +29,16 @@ if(!codes || !codes.len) log_runtime(EXCEPTION("Empty codes datum at ([x],[y],[z])"), src, list("codes_txt: '[codes_txt]'")) if("patrol" in codes) - if(!navbeacons["[z]"]) - navbeacons["[z]"] = list() - navbeacons["[z]"] += src //Register with the patrol list! + if(!GLOB.navbeacons["[z]"]) + GLOB.navbeacons["[z]"] = list() + GLOB.navbeacons["[z]"] += src //Register with the patrol list! if("delivery" in codes) - deliverybeacons += src - deliverybeacontags += location + GLOB.deliverybeacons += src + GLOB.deliverybeacontags += location /obj/machinery/navbeacon/Destroy() - navbeacons["[z]"] -= src //Remove from beacon list, if in one. - deliverybeacons -= src + GLOB.navbeacons["[z]"] -= src //Remove from beacon list, if in one. + GLOB.deliverybeacons -= src return ..() /obj/machinery/navbeacon/serialize() diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index 3aae4af4405..e3c51f9c375 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -150,7 +150,7 @@ var/list/obj/machinery/requests_console/allConsoles = list() data["assist_dept"] = req_console_assistance data["supply_dept"] = req_console_supplies data["info_dept"] = req_console_information - data["ship_dept"] = TAGGERLOCATIONS + data["ship_dept"] = GLOB.TAGGERLOCATIONS data["message"] = message data["recipient"] = recipient @@ -243,7 +243,7 @@ var/list/obj/machinery/requests_console/allConsoles = list() if(href_list["shipSelect"]) ship_tag_name = href_list["shipSelect"] - ship_tag_index = TAGGERLOCATIONS.Find(ship_tag_name) + ship_tag_index = GLOB.TAGGERLOCATIONS.Find(ship_tag_name) //Handle Shipping Label Printing if(href_list["printLabel"]) diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm index 37d1c3ae93c..68a5e8ef1ad 100644 --- a/code/game/machinery/syndicatebeacon.dm +++ b/code/game/machinery/syndicatebeacon.dm @@ -126,7 +126,7 @@ if(user) to_chat(user, "The connected wire doesn't have enough current.") return - for(var/obj/singularity/singulo in singularities) + for(var/obj/singularity/singulo in GLOB.singularities) if(singulo.z == z) singulo.target = src icon_state = "[icontype]1" diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index b5806d1472e..fda550217ad 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -39,7 +39,7 @@ /obj/machinery/syndicatebomb/process() if(!active) - fast_processing -= src + GLOB.fast_processing -= src detonation_timer = null next_beep = null countdown.stop() @@ -73,7 +73,7 @@ if(defused && payload in src) payload.defuse() countdown.stop() - fast_processing -= src + GLOB.fast_processing -= src /obj/machinery/syndicatebomb/New() wires = new(src) @@ -86,7 +86,7 @@ /obj/machinery/syndicatebomb/Destroy() QDEL_NULL(wires) QDEL_NULL(countdown) - fast_processing -= src + GLOB.fast_processing -= src return ..() /obj/machinery/syndicatebomb/examine(mob/user) @@ -205,7 +205,7 @@ /obj/machinery/syndicatebomb/proc/activate() active = TRUE - fast_processing += src + GLOB.fast_processing += src countdown.start() next_beep = world.time + 10 detonation_timer = world.time + (timer_set * 10) @@ -546,7 +546,7 @@ /obj/item/syndicatedetonator/attack_self(mob/user) if(timer < world.time) - for(var/obj/machinery/syndicatebomb/B in machines) + for(var/obj/machinery/syndicatebomb/B in GLOB.machines) if(B.active) B.detonation_timer = world.time + BUTTON_DELAY detonated++ diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 53148d9de6d..7e6d14723fa 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -178,7 +178,7 @@ var/list/L = list() var/list/areaindex = list() - for(var/obj/item/radio/beacon/R in beacons) + for(var/obj/item/radio/beacon/R in GLOB.beacons) var/turf/T = get_turf(R) if(!T) continue @@ -193,7 +193,7 @@ areaindex[tmpname] = 1 L[tmpname] = R - for(var/obj/item/implant/tracking/I in tracked_implants) + for(var/obj/item/implant/tracking/I in GLOB.tracked_implants) if(!I.implanted || !ismob(I.loc)) continue else diff --git a/code/game/mecha/equipment/tools/work_tools.dm b/code/game/mecha/equipment/tools/work_tools.dm index 7706f3120f0..f397063cfce 100644 --- a/code/game/mecha/equipment/tools/work_tools.dm +++ b/code/game/mecha/equipment/tools/work_tools.dm @@ -199,11 +199,11 @@ usesound = 'sound/items/Deconstruct.ogg' /obj/item/mecha_parts/mecha_equipment/rcd/New() - rcd_list += src + GLOB.rcd_list += src ..() /obj/item/mecha_parts/mecha_equipment/rcd/Destroy() - rcd_list -= src + GLOB.rcd_list -= src return ..() /obj/item/mecha_parts/mecha_equipment/rcd/action(atom/target) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index dd7993247b1..41f60361831 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -95,9 +95,9 @@ processing_objects.Add(src) removeVerb(/obj/mecha/verb/disconnect_from_port) - poi_list |= src + GLOB.poi_list |= src log_message("[src] created.") - mechas_list += src //global mech list + GLOB.mechas_list += src //global mech list prepare_huds() for(var/datum/atom_hud/data/diagnostic/diag_hud in huds) diag_hud.add_to_hud(src) @@ -616,7 +616,7 @@ QDEL_NULL(internal_tank) processing_objects.Remove(src) - poi_list.Remove(src) + GLOB.poi_list.Remove(src) equipment.Cut() cell = null internal_tank = null @@ -628,7 +628,7 @@ cabin_air = null QDEL_NULL(spark_system) - mechas_list -= src //global mech list + GLOB.mechas_list -= src //global mech list return ..() /obj/mecha/ex_act(severity) diff --git a/code/game/objects/effects/anomalies.dm b/code/game/objects/effects/anomalies.dm index 90e40052e23..41d2c256c2b 100644 --- a/code/game/objects/effects/anomalies.dm +++ b/code/game/objects/effects/anomalies.dm @@ -18,11 +18,11 @@ var/new_frequency = sanitize_frequency(rand(PUBLIC_LOW_FREQ, PUBLIC_HIGH_FREQ)) aSignal.set_frequency(new_frequency) - poi_list |= src + GLOB.poi_list |= src /obj/effect/anomaly/Destroy() QDEL_NULL(aSignal) - poi_list.Remove(src) + GLOB.poi_list.Remove(src) return ..() /obj/effect/anomaly/proc/anomalyEffect() diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index a012581c921..147fb7c0547 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -88,11 +88,11 @@ emergencyresponseteamspawn += loc qdel(src) - landmarks_list += src + GLOB.landmarks_list += src return 1 /obj/effect/landmark/Destroy() - landmarks_list -= src + GLOB.landmarks_list -= src ..() return QDEL_HINT_HARDDEL_NOW @@ -259,12 +259,12 @@ var/datum/map_template/ruin/ruin_template /obj/effect/landmark/ruin/New(loc, my_ruin_template) - name = "ruin_[ruin_landmarks.len + 1]" + name = "ruin_[GLOB.ruin_landmarks.len + 1]" ..(loc) ruin_template = my_ruin_template - ruin_landmarks |= src + GLOB.ruin_landmarks |= src /obj/effect/landmark/ruin/Destroy() - ruin_landmarks -= src + GLOB.ruin_landmarks -= src ruin_template = null . = ..() diff --git a/code/game/objects/effects/manifest.dm b/code/game/objects/effects/manifest.dm index 939156725c4..9b4814237fe 100644 --- a/code/game/objects/effects/manifest.dm +++ b/code/game/objects/effects/manifest.dm @@ -11,7 +11,7 @@ /obj/effect/manifest/proc/manifest() var/dat = "Crew Manifest:
" - for(var/mob/living/carbon/human/M in mob_list) + for(var/mob/living/carbon/human/M in GLOB.mob_list) dat += text(" [] - []
", M.name, M.get_assignment()) var/obj/item/paper/P = new /obj/item/paper( src.loc ) P.info = dat diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm index a048ca1ebff..e190988392d 100644 --- a/code/game/objects/effects/portals.dm +++ b/code/game/objects/effects/portals.dm @@ -17,7 +17,7 @@ teleport(M) /obj/effect/portal/New(loc, turf/target, creator=null, lifespan=300) - portals += src + GLOB.portals += src src.loc = loc src.target = target src.creator = creator @@ -26,7 +26,7 @@ qdel(src) /obj/effect/portal/Destroy() - portals -= src + GLOB.portals -= src if(istype(creator, /obj)) var/obj/O = creator O.portal_destroyed(src) diff --git a/code/game/objects/explosion.dm b/code/game/objects/explosion.dm index 8adb61dec93..db7736344ea 100644 --- a/code/game/objects/explosion.dm +++ b/code/game/objects/explosion.dm @@ -43,7 +43,7 @@ var/sound/explosion_sound = sound(get_sfx("explosion")) var/sound/global_boom = sound('sound/effects/explosionfar.ogg') - for(var/P in player_list) + for(var/P in GLOB.player_list) var/mob/M = P // Double check for client if(M && M.client) diff --git a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm index b076b7be43c..0d19057ae4b 100644 --- a/code/game/objects/items/cardboard_cutouts.dm +++ b/code/game/objects/items/cardboard_cutouts.dm @@ -91,15 +91,15 @@ color = "#FFD7A7" switch(new_appearance) if("Assistant") - name = "[pick(first_names_male)] [pick(last_names)]" + name = "[pick(GLOB.first_names_male)] [pick(GLOB.last_names)]" desc = "A cardboard cutout of an assistant." icon_state = "cutout_greytide" if("Clown") - name = pick(clown_names) + name = pick(GLOB.clown_names) desc = "A cardboard cutout of a clown. You get the feeling that it should be in a corner." icon_state = "cutout_clown" if("Mime") - name = pick(mime_names) + name = pick(GLOB.mime_names) desc = "...(A cardboard cutout of a mime.)" icon_state = "cutout_mime" if("Traitor") @@ -123,7 +123,7 @@ desc = "A cardboard cutout of a revolutionary." icon_state = "cutout_viva" if("Wizard") - name = "[pick(wizard_first)], [pick(wizard_second)]" + name = "[pick(GLOB.wizard_first)], [pick(GLOB.wizard_second)]" desc = "A cardboard cutout of a wizard." icon_state = "cutout_wizard" if("Shadowling") @@ -145,7 +145,7 @@ // desc = "A cardboard cutout of an ash walker." // icon_state = "cutout_free_antag" if("Deathsquad Officer") - name = pick(commando_names) + name = pick(GLOB.commando_names) desc = "A cardboard cutout of a death commando." icon_state = "cutout_deathsquad" if("Ian") diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm index e99c3ca73ff..0d0475df8ee 100644 --- a/code/game/objects/items/devices/powersink.dm +++ b/code/game/objects/items/devices/powersink.dm @@ -27,7 +27,7 @@ /obj/item/powersink/Destroy() processing_objects.Remove(src) - processing_power_items.Remove(src) + GLOB.processing_power_items.Remove(src) PN = null attached = null return ..() @@ -54,7 +54,7 @@ else if(mode == 2) processing_objects.Remove(src) // Now the power sink actually stops draining the station's power if you unhook it. --NeoFite - processing_power_items.Remove(src) + GLOB.processing_power_items.Remove(src) anchored = 0 mode = 0 src.visible_message("[user] detaches [src] from the cable!") @@ -77,14 +77,14 @@ mode = 2 icon_state = "powersink1" processing_objects.Add(src) - processing_power_items.Add(src) + GLOB.processing_power_items.Add(src) if(2) //This switch option wasn't originally included. It exists now. --NeoFite src.visible_message("[user] deactivates [src]!") mode = 1 set_light(0) icon_state = "powersink0" processing_objects.Remove(src) - processing_power_items.Remove(src) + GLOB.processing_power_items.Remove(src) /obj/item/powersink/pwr_drain() if(!attached) diff --git a/code/game/objects/items/devices/radio/beacon.dm b/code/game/objects/items/devices/radio/beacon.dm index 19e26f06bf5..7b37080d783 100644 --- a/code/game/objects/items/devices/radio/beacon.dm +++ b/code/game/objects/items/devices/radio/beacon.dm @@ -11,11 +11,11 @@ /obj/item/radio/beacon/New() ..() - code = "[code] ([beacons.len + 1])" - beacons += src + code = "[code] ([GLOB.beacons.len + 1])" + GLOB.beacons += src /obj/item/radio/beacon/Destroy() - beacons -= src + GLOB.beacons -= src return ..() /obj/item/radio/beacon/emag_act(user as mob) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 51aa645a139..900ab99a345 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -49,11 +49,11 @@ /obj/item/radio/headset/handle_message_mode(mob/living/M as mob, message, channel) if(channel == "special") if(translate_binary) - var/datum/language/binary = all_languages["Robot Talk"] + var/datum/language/binary = GLOB.all_languages["Robot Talk"] binary.broadcast(M, message) return RADIO_CONNECTION_NON_SUBSPACE if(translate_hive) - var/datum/language/hivemind = all_languages["Hivemind"] + var/datum/language/hivemind = GLOB.all_languages["Hivemind"] hivemind.broadcast(M, message) return RADIO_CONNECTION_NON_SUBSPACE return RADIO_CONNECTION_FAIL diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index 8128e1f44d4..a5352005249 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -57,7 +57,7 @@ dir=ndir b_stat=1 on = 0 - global_intercoms.Add(src) + GLOB.global_intercoms.Add(src) update_icon() /obj/item/radio/intercom/department/medbay/New() @@ -106,7 +106,7 @@ /obj/item/radio/intercom/Destroy() processing_objects.Remove(src) - global_intercoms.Remove(src) + GLOB.global_intercoms.Remove(src) return ..() /obj/item/radio/intercom/attack_ai(mob/user as mob) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 530156fbd99..b5b0875be6d 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -69,7 +69,7 @@ var/global/list/default_medbay_channels = list( wires = new(src) internal_channels = default_internal_channels.Copy() - global_radios |= src + GLOB.global_radios |= src /obj/item/radio/Destroy() QDEL_NULL(wires) @@ -78,7 +78,7 @@ var/global/list/default_medbay_channels = list( for(var/ch_name in channels) radio_controller.remove_object(src, radiochannels[ch_name]) radio_connection = null - global_radios -= src + GLOB.global_radios -= src follow_target = null return ..() @@ -250,7 +250,7 @@ var/global/list/default_medbay_channels = list( A.role = role A.message = message var/jammed = FALSE - for(var/obj/item/jammer/jammer in active_jammers) + for(var/obj/item/jammer/jammer in GLOB.active_jammers) if(get_dist(get_turf(src), get_turf(jammer)) < jammer.range) jammed = TRUE break @@ -342,7 +342,7 @@ var/global/list/default_medbay_channels = list( var/turf/position = get_turf(src) var/jammed = FALSE - for(var/obj/item/jammer/jammer in active_jammers) + for(var/obj/item/jammer/jammer in GLOB.active_jammers) if(get_dist(position, get_turf(jammer)) < jammer.range) jammed = TRUE break diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 2a398363c7f..610c405ea69 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -228,7 +228,7 @@ REAGENT SCANNER var/blood_percent = round((H.blood_volume / BLOOD_VOLUME_NORMAL)*100) var/blood_type = H.b_type if(blood_id != "blood")//special blood substance - var/datum/reagent/R = chemical_reagents_list[blood_id] + var/datum/reagent/R = GLOB.chemical_reagents_list[blood_id] if(R) blood_type = R.name else diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 71ef7b91bda..a738b6f03d4 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -158,13 +158,13 @@ effective or pretty fucking useless. var/range = 12 /obj/item/jammer/Destroy() - active_jammers -= src + GLOB.active_jammers -= src return ..() /obj/item/jammer/attack_self(mob/user) to_chat(user,"You [active ? "deactivate" : "activate"] the [src].") active = !active if(active) - active_jammers |= src + GLOB.active_jammers |= src else - active_jammers -= src \ No newline at end of file + GLOB.active_jammers -= src \ No newline at end of file diff --git a/code/game/objects/items/random_items.dm b/code/game/objects/items/random_items.dm index ded05d6f795..906c04ba8c8 100644 --- a/code/game/objects/items/random_items.dm +++ b/code/game/objects/items/random_items.dm @@ -50,7 +50,7 @@ /obj/item/reagent_containers/glass/bottle/random_reagent/New() ..() - var/list/possible_chems = chemical_reagents_list.Copy() + var/list/possible_chems = GLOB.chemical_reagents_list.Copy() possible_chems -= blocked_chems.Copy() var/datum/reagent/R = pick(possible_chems) if(rare_chemicals.Find(R)) @@ -186,7 +186,7 @@ var/obj/item/reagent_containers/glass/bottle/B = new(src) B.reagents.add_reagent(chem, B.volume) if(prob(85)) - var/datum/reagent/r = chemical_reagents_list[chem] + var/datum/reagent/r = GLOB.chemical_reagents_list[chem] B.name = "[r.name] bottle" // B.identify_probability = 100 else diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index 2e34c98e06b..65f504b4ae0 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -229,12 +229,12 @@ if(!M.brainmob.key) var/ghost_can_reenter = 0 if(M.brainmob.mind) - for(var/mob/dead/observer/G in player_list) + for(var/mob/dead/observer/G in GLOB.player_list) if(G.can_reenter_corpse && G.mind == M.brainmob.mind) ghost_can_reenter = 1 break - for(var/mob/living/simple_animal/S in player_list) - if(S in respawnable_list) + for(var/mob/living/simple_animal/S in GLOB.player_list) + if(S in GLOB.respawnable_list) ghost_can_reenter = 1 break if(!ghost_can_reenter) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 08e6ada170e..87ac75636f4 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -90,13 +90,13 @@ return 0 if(!R.key) - for(var/mob/dead/observer/ghost in player_list) + for(var/mob/dead/observer/ghost in GLOB.player_list) if(ghost.mind && ghost.mind.current == R) R.key = ghost.key R.stat = CONSCIOUS - dead_mob_list -= R //please never forget this ever kthx - living_mob_list += R + GLOB.dead_mob_list -= R //please never forget this ever kthx + GLOB.living_mob_list += R R.notify_ai(1) return 1 diff --git a/code/game/objects/items/weapons/AI_modules.dm b/code/game/objects/items/weapons/AI_modules.dm index 696c75eb0e1..a91cd3a01cb 100755 --- a/code/game/objects/items/weapons/AI_modules.dm +++ b/code/game/objects/items/weapons/AI_modules.dm @@ -43,7 +43,7 @@ AI MODULES src.transmitInstructions(comp.current, usr) to_chat(comp.current, "These are your laws now:") comp.current.show_laws() - for(var/mob/living/silicon/robot/R in mob_list) + for(var/mob/living/silicon/robot/R in GLOB.mob_list) if(R.lawupdate && (R.connected_ai == comp.current)) to_chat(R, "These are your laws now:") R.show_laws() diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm index 5cc7ee684af..19f989ec7b7 100644 --- a/code/game/objects/items/weapons/RCD.dm +++ b/code/game/objects/items/weapons/RCD.dm @@ -57,7 +57,7 @@ RCD spark_system = new /datum/effect_system/spark_spread spark_system.set_up(5, 0, src) spark_system.attach(src) - rcd_list += src + GLOB.rcd_list += src door_accesses_list = list() for(var/access in get_all_accesses()) door_accesses_list[++door_accesses_list.len] = list("name" = get_access_desc(access), "id" = access, "enabled" = (access in door_accesses)) @@ -65,7 +65,7 @@ RCD /obj/item/rcd/Destroy() QDEL_NULL(spark_system) - rcd_list -= src + GLOB.rcd_list -= src return ..() /obj/item/rcd/attackby(obj/item/W, mob/user, params) diff --git a/code/game/objects/items/weapons/implants/implant_abductor.dm b/code/game/objects/items/weapons/implants/implant_abductor.dm index 3ec571c94a6..a86545f8722 100644 --- a/code/game/objects/items/weapons/implants/implant_abductor.dm +++ b/code/game/objects/items/weapons/implants/implant_abductor.dm @@ -40,7 +40,7 @@ /obj/item/implant/abductor/proc/get_team_console(var/team) var/obj/machinery/abductor/console/console - for(var/obj/machinery/abductor/console/c in abductor_equipment) + for(var/obj/machinery/abductor/console/c in GLOB.abductor_equipment) if(c.team == team) console = c break diff --git a/code/game/objects/items/weapons/implants/implant_chem.dm b/code/game/objects/items/weapons/implants/implant_chem.dm index 6fbcc7e096a..b2f79f7e5c9 100644 --- a/code/game/objects/items/weapons/implants/implant_chem.dm +++ b/code/game/objects/items/weapons/implants/implant_chem.dm @@ -24,10 +24,10 @@ /obj/item/implant/chem/New() ..() create_reagents(50) - tracked_implants += src + GLOB.tracked_implants += src /obj/item/implant/chem/Destroy() - tracked_implants -= src + GLOB.tracked_implants -= src return ..() diff --git a/code/game/objects/items/weapons/implants/implant_track.dm b/code/game/objects/items/weapons/implants/implant_track.dm index ffc372f7fa8..c74e2fecff5 100644 --- a/code/game/objects/items/weapons/implants/implant_track.dm +++ b/code/game/objects/items/weapons/implants/implant_track.dm @@ -8,10 +8,10 @@ /obj/item/implant/tracking/New() ..() - tracked_implants += src + GLOB.tracked_implants += src /obj/item/implant/tracking/Destroy() - tracked_implants -= src + GLOB.tracked_implants -= src return ..() /obj/item/implant/tracking/get_data() diff --git a/code/game/objects/items/weapons/mop.dm b/code/game/objects/items/weapons/mop.dm index a26858a1e73..e642e3b994a 100644 --- a/code/game/objects/items/weapons/mop.dm +++ b/code/game/objects/items/weapons/mop.dm @@ -18,10 +18,10 @@ /obj/item/mop/New() ..() create_reagents(mopcap) - janitorial_equipment += src + GLOB.janitorial_equipment += src /obj/item/mop/Destroy() - janitorial_equipment -= src + GLOB.janitorial_equipment -= src return ..() /obj/item/mop/proc/clean(turf/simulated/A) diff --git a/code/game/objects/items/weapons/scissors.dm b/code/game/objects/items/weapons/scissors.dm index 2f53a1200a9..ea134126b6a 100644 --- a/code/game/objects/items/weapons/scissors.dm +++ b/code/game/objects/items/weapons/scissors.dm @@ -35,8 +35,8 @@ var/datum/robolimb/robohead = all_robolimbs[C.model] if(H.gender == MALE || isvulpkanin(H)) if(C.dna.species) - for(var/i in facial_hair_styles_list) - var/datum/sprite_accessory/facial_hair/tmp_facial = facial_hair_styles_list[i] + for(var/i in GLOB.facial_hair_styles_list) + var/datum/sprite_accessory/facial_hair/tmp_facial = GLOB.facial_hair_styles_list[i] if(C.dna.species.name in tmp_facial.species_allowed) //If the species is allowed to have the style, add the style to the list. Or, if the character has a prosthetic head, give them the human hair styles. if(C.dna.species.bodyflags & ALL_RPARTS) //If the character is of a species that can have full body prosthetics and their head doesn't suport human hair 'wigs', don't add the style to the list. if(robohead.is_monitor) @@ -53,13 +53,13 @@ to_chat(user, "You are unable to find anything on [H]'s face worth cutting. How disappointing.") return else - species_facial_hair = facial_hair_styles_list + species_facial_hair = GLOB.facial_hair_styles_list var/f_new_style = input(user, "Select a facial hair style", "Grooming") as null|anything in species_facial_hair //handle normal hair var/list/species_hair = list() if(C.dna.species) - for(var/i in hair_styles_public_list) - var/datum/sprite_accessory/hair/tmp_hair = hair_styles_public_list[i] + for(var/i in GLOB.hair_styles_public_list) + var/datum/sprite_accessory/hair/tmp_hair = GLOB.hair_styles_public_list[i] if(C.dna.species.name in tmp_hair.species_allowed) //If the species is allowed to have the style, add the style to the list. Or, if the character has a prosthetic head, give them the human facial hair styles. if(C.dna.species.bodyflags & ALL_RPARTS) //If the character is of a species that can have full body prosthetics and their head doesn't suport human hair 'wigs', don't add the style to the list. if(robohead.is_monitor) @@ -76,7 +76,7 @@ to_chat(user, "You are unable to find anything on [H]'s head worth cutting. How disappointing.") return else - species_hair = hair_styles_public_list + species_hair = GLOB.hair_styles_public_list var/h_new_style = input(user, "Select a hair style", "Grooming") as null|anything in species_hair user.visible_message("[user] starts cutting [M]'s hair!", "You start cutting [M]'s hair!") //arguments for this are: 1. what others see 2. what the user sees. --Fixed grammar, (TGameCo) playsound(loc, 'sound/goonstation/misc/Scissor.ogg', 100, 1) diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index 31cc7a1faf2..5e61d897686 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -158,7 +158,7 @@ if(ishuman(L)) var/mob/living/carbon/human/H = L - H.forcesay(hit_appends) + H.forcesay(GLOB.hit_appends) add_attack_logs(user, L, "Stunned with [src]") diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm index 02a4696f435..a108d7e259d 100644 --- a/code/game/objects/items/weapons/teleportation.dm +++ b/code/game/objects/items/weapons/teleportation.dm @@ -59,14 +59,14 @@ Frequency: if(sr) temp += "Located Beacons:
" - for(var/obj/item/radio/beacon/W in beacons) + for(var/obj/item/radio/beacon/W in GLOB.beacons) if(W.frequency == frequency && !W.syndicate) if(W && W.z == z) var/turf/TB = get_turf(W) temp += "[W.code]: [TB.x], [TB.y], [TB.z]
" temp += "Located Implants:
" - for(var/obj/item/implant/tracking/T in tracked_implants) + for(var/obj/item/implant/tracking/T in GLOB.tracked_implants) if(!T.implanted || !T.imp_in) continue diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 29d3f2663bc..cc2fa8d1d69 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -65,9 +65,9 @@ // Nada /obj/Destroy() - machines -= src + GLOB.machines -= src processing_objects -= src - fast_processing -= src + GLOB.fast_processing -= src SSnanoui.close_uis(src) return ..() @@ -287,14 +287,14 @@ a { return speed_process = TRUE processing_objects.Remove(src) - fast_processing.Add(src) + GLOB.fast_processing.Add(src) /obj/proc/makeNormalProcess() if(!speed_process) return speed_process = FALSE processing_objects.Add(src) - fast_processing.Remove(src) + GLOB.fast_processing.Remove(src) /obj/vv_get_dropdown() . = ..() diff --git a/code/game/objects/structures/dresser.dm b/code/game/objects/structures/dresser.dm index a7233bf6a82..998120c3ee8 100644 --- a/code/game/objects/structures/dresser.dm +++ b/code/game/objects/structures/dresser.dm @@ -21,33 +21,33 @@ switch(choice) if("Underwear") var/list/valid_underwear = list() - for(var/underwear in underwear_list) - var/datum/sprite_accessory/S = underwear_list[underwear] + for(var/underwear in GLOB.underwear_list) + var/datum/sprite_accessory/S = GLOB.underwear_list[underwear] if(!(H.dna.species.name in S.species_allowed)) continue - valid_underwear[underwear] = underwear_list[underwear] + valid_underwear[underwear] = GLOB.underwear_list[underwear] var/new_underwear = input(user, "Choose your underwear:", "Changing") as null|anything in valid_underwear if(new_underwear) H.underwear = new_underwear if("Undershirt") var/list/valid_undershirts = list() - for(var/undershirt in undershirt_list) - var/datum/sprite_accessory/S = undershirt_list[undershirt] + for(var/undershirt in GLOB.undershirt_list) + var/datum/sprite_accessory/S = GLOB.undershirt_list[undershirt] if(!(H.dna.species.name in S.species_allowed)) continue - valid_undershirts[undershirt] = undershirt_list[undershirt] + valid_undershirts[undershirt] = GLOB.undershirt_list[undershirt] var/new_undershirt = input(user, "Choose your undershirt:", "Changing") as null|anything in valid_undershirts if(new_undershirt) H.undershirt = new_undershirt if("Socks") var/list/valid_sockstyles = list() - for(var/sockstyle in socks_list) - var/datum/sprite_accessory/S = socks_list[sockstyle] + for(var/sockstyle in GLOB.socks_list) + var/datum/sprite_accessory/S = GLOB.socks_list[sockstyle] if(!(H.dna.species.name in S.species_allowed)) continue - valid_sockstyles[sockstyle] = socks_list[sockstyle] + valid_sockstyles[sockstyle] = GLOB.socks_list[sockstyle] var/new_socks = input(user, "Choose your socks:", "Changing") as null|anything in valid_sockstyles if(new_socks) H.socks = new_socks diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index 368391874ba..f216138bb65 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -224,7 +224,7 @@ /obj/item/twohanded/required/kirbyplants/equipped(mob/living/user) var/image/I = image(icon = 'icons/obj/flora/plants.dmi' , icon_state = src.icon_state, loc = user) I.override = 1 - user.add_alt_appearance("sneaking_mission", I, player_list) + user.add_alt_appearance("sneaking_mission", I, GLOB.player_list) /obj/item/twohanded/required/kirbyplants/dropped(mob/living/user) ..() diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index 1a7c6abb579..b19c5a56e99 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -21,10 +21,10 @@ /obj/structure/janitorialcart/New() ..() create_reagents(100) - janitorial_equipment += src + GLOB.janitorial_equipment += src /obj/structure/janitorialcart/Destroy() - janitorial_equipment -= src + GLOB.janitorial_equipment -= src QDEL_NULL(mybag) QDEL_NULL(mymop) QDEL_NULL(myspray) diff --git a/code/game/objects/structures/mop_bucket.dm b/code/game/objects/structures/mop_bucket.dm index c2e76703b68..aa9f21a9cce 100644 --- a/code/game/objects/structures/mop_bucket.dm +++ b/code/game/objects/structures/mop_bucket.dm @@ -10,14 +10,14 @@ /obj/structure/mopbucket/New() ..() create_reagents(100) - janitorial_equipment += src + GLOB.janitorial_equipment += src /obj/structure/mopbucket/full/New() ..() reagents.add_reagent("water", 100) /obj/structure/mopbucket/Destroy() - janitorial_equipment -= src + GLOB.janitorial_equipment -= src return ..() /obj/structure/mopbucket/examine(mob/user) diff --git a/code/game/response_team.dm b/code/game/response_team.dm index d7aa9e88504..547dc7ee07a 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -77,10 +77,10 @@ var/ert_request_answered = 0 for(var/mob/dead/observer/M in ert_candidates) if(jobban_isbanned(M, ROLE_TRAITOR) || jobban_isbanned(M, "Security Officer") || jobban_isbanned(M, "Captain") || jobban_isbanned(M, "Cyborg")) continue - if((M in respawnable_list) && M.JoinResponseTeam()) + if((M in GLOB.respawnable_list) && M.JoinResponseTeam()) response_team_members |= M // If there's still open slots, non-respawnable players can fill them - for(var/mob/dead/observer/M in (ert_candidates - respawnable_list)) + for(var/mob/dead/observer/M in (ert_candidates - GLOB.respawnable_list)) if(M.JoinResponseTeam()) response_team_members |= M @@ -161,7 +161,7 @@ var/ert_request_answered = 0 head_organ.h_style = random_hair_style(M.gender, head_organ.dna.species.name) head_organ.f_style = random_facial_hair_style(M.gender, head_organ.dna.species.name) - M.rename_character(null, "[pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant First Class", "Master Sergeant", "Sergeant Major")] [pick(last_names)]") + M.rename_character(null, "[pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant First Class", "Master Sergeant", "Sergeant Major")] [pick(GLOB.last_names)]") M.age = rand(23,35) M.regenerate_icons() M.update_body() @@ -284,7 +284,7 @@ var/ert_request_answered = 0 command_slots = 0 // Override name and age for the commander - M.rename_character(null, "[pick("Lieutenant", "Captain", "Major")] [pick(last_names)]") + M.rename_character(null, "[pick("Lieutenant", "Captain", "Major")] [pick(GLOB.last_names)]") M.age = rand(35,45) M.equipOutfit(command_outfit) diff --git a/code/game/sound.dm b/code/game/sound.dm index 66746ece0ae..c791d3eebb5 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -11,7 +11,7 @@ // Looping through the player list has the added bonus of working for mobs inside containers var/sound/S = sound(get_sfx(soundin)) var/maxdistance = (world.view + extrarange) * 3 - var/list/listeners = player_list + var/list/listeners = GLOB.player_list if(!ignore_walls) //these sounds don't carry through walls listeners = listeners & hearers(maxdistance, turf_source) for(var/P in listeners) @@ -86,7 +86,7 @@ /proc/sound_to_playing_players(soundin, volume = 100, vary = FALSE, frequency = 0, falloff = FALSE, channel = 0, pressure_affected = FALSE, sound/S) if(!S) S = sound(get_sfx(soundin)) - for(var/m in player_list) + for(var/m in GLOB.player_list) if(ismob(m) && !isnewplayer(m)) var/mob/M = m M.playsound_local(M, null, volume, vary, frequency, falloff, channel, pressure_affected, S) diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm index 29d5e41b716..a35047bb9ad 100644 --- a/code/game/verbs/ooc.dm +++ b/code/game/verbs/ooc.dm @@ -58,7 +58,7 @@ var/global/admin_ooc_colour = "#b82e00" if((prefs.toggles & MEMBER_PUBLIC)) display_colour = member_ooc_colour - for(var/client/C in clients) + for(var/client/C in GLOB.clients) if(C.prefs.toggles & CHAT_OOC) var/display_name = key @@ -198,13 +198,13 @@ var/global/admin_ooc_colour = "#b82e00" if(mob.stat != DEAD) display_name = mob.name - for(var/client/target in clients) + for(var/client/target in GLOB.clients) if(target.prefs.toggles & CHAT_LOOC) var/prefix = "" var/admin_stuff = "" var/send = 0 - if(target in admins) + if(target in GLOB.admins) if(check_rights(R_ADMIN|R_MOD,0,target.mob)) admin_stuff += "/([key])" if(target != src) @@ -221,7 +221,7 @@ var/global/admin_ooc_colour = "#b82e00" send = 1 prefix = " (Eye)" - if(!send && (target in admins)) + if(!send && (target in GLOB.admins)) if(check_rights(R_ADMIN|R_MOD,0,target.mob)) send = 1 prefix = "(R)" diff --git a/code/game/verbs/who.dm b/code/game/verbs/who.dm index dd8123b2876..fa65fffbce9 100644 --- a/code/game/verbs/who.dm +++ b/code/game/verbs/who.dm @@ -9,7 +9,7 @@ var/list/Lines = list() if(check_rights(R_ADMIN,0)) - for(var/client/C in clients) + for(var/client/C in GLOB.clients) if(C.holder && C.holder.big_brother && !check_rights(R_PERMISSIONS, 0)) // need PERMISSIONS to see BB continue @@ -50,7 +50,7 @@ entry += " (?)" Lines += entry else - for(var/client/C in clients) + for(var/client/C in GLOB.clients) if(C.holder && C.holder.big_brother) // BB doesn't show up at all continue @@ -74,7 +74,7 @@ var/num_mods_online = 0 var/num_admins_online = 0 if(holder) - for(var/client/C in admins) + for(var/client/C in GLOB.admins) if(check_rights(R_ADMIN, 0, C.mob)) if(C.holder.fakekey && !check_rights(R_ADMIN, 0)) //Mentors can't see stealthmins @@ -116,7 +116,7 @@ modmsg += "\n" num_mods_online++ else - for(var/client/C in admins) + for(var/client/C in GLOB.admins) if(check_rights(R_ADMIN, 0, C.mob)) if(!C.holder.fakekey) diff --git a/code/game/world.dm b/code/game/world.dm index 2e57bf99a62..8c4b40a9c7d 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -82,7 +82,7 @@ var/world_topic_spam_protect_time = world.timeofday else if("players" in input) var/n = 0 - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(M.client) n++ return n @@ -107,7 +107,7 @@ var/world_topic_spam_protect_time = world.timeofday var/player_count = 0 var/admin_count = 0 - for(var/client/C in clients) + for(var/client/C in GLOB.clients) if(C.holder) if(C.holder.fakekey) continue //so stealthmins aren't revealed by the hub @@ -186,7 +186,7 @@ var/world_topic_spam_protect_time = world.timeofday var/client/C - for(var/client/K in clients) + for(var/client/K in GLOB.clients) if(K.ckey == input["adminmsg"]) C = K break @@ -202,7 +202,7 @@ var/world_topic_spam_protect_time = world.timeofday C << 'sound/effects/adminhelp.ogg' to_chat(C, message) - for(var/client/A in admins) + for(var/client/A in GLOB.admins) if(A != C) to_chat(A, amessage) @@ -225,7 +225,7 @@ var/world_topic_spam_protect_time = world.timeofday if(input["key"] != config.comms_password) return "Bad Key" else - for(var/client/C in clients) + for(var/client/C in GLOB.clients) to_chat(C, "PR: [input["announce"]]") else if("kick" in input) @@ -238,7 +238,7 @@ var/world_topic_spam_protect_time = world.timeofday var/client/C - for(var/client/K in clients) + for(var/client/K in GLOB.clients) if(K.ckey == input["kick"]) C = K break @@ -306,8 +306,8 @@ var/world_topic_spam_protect_time = world.timeofday return to_chat(world, "Rebooting world in [delay/10] [delay > 10 ? "seconds" : "second"]. [reason]") - var/round_end_sound = pick(round_end_sounds) - var/sound_length = round_end_sounds[round_end_sound] + var/round_end_sound = pick(GLOB.round_end_sounds) + var/sound_length = GLOB.round_end_sounds[round_end_sound] if(delay > sound_length) // If there's time, play the round-end sound before rebooting spawn(delay - sound_length) if(!ticker.delay_end) @@ -325,7 +325,7 @@ var/world_topic_spam_protect_time = world.timeofday processScheduler.stop() shutdown_logging() // Past this point, no logging procs can be used, at risk of data loss. - for(var/client/C in clients) + for(var/client/C in GLOB.clients) if(config.server) //if you set a server location in config.txt, it sends you there instead of trying to reconnect to the same world address. -- NeoFite C << link("byond://[config.server]") @@ -408,7 +408,7 @@ var/world_topic_spam_protect_time = world.timeofday features += "AI allowed" var/n = 0 - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(M.client) n++ diff --git a/code/modules/admin/DB ban/functions.dm b/code/modules/admin/DB ban/functions.dm index f04f36a7bcc..47085a8b749 100644 --- a/code/modules/admin/DB ban/functions.dm +++ b/code/modules/admin/DB ban/functions.dm @@ -100,14 +100,14 @@ datum/admins/proc/DB_ban_record(var/bantype, var/mob/banned_mob, var/duration = return var/who - for(var/client/C in clients) + for(var/client/C in GLOB.clients) if(!who) who = "[C]" else who += ", [C]" var/adminwho - for(var/client/C in admins) + for(var/client/C in GLOB.admins) if(!adminwho) adminwho = "[C]" else diff --git a/code/modules/admin/IsBanned.dm b/code/modules/admin/IsBanned.dm index 4c905a0b517..1b3b2edcf3d 100644 --- a/code/modules/admin/IsBanned.dm +++ b/code/modules/admin/IsBanned.dm @@ -9,7 +9,7 @@ world/IsBanned(key,address,computer_id) return list("reason"="invalid login data", "desc"="Error: Could not check ban status, Please try again. Error message: Your computer provided an invalid Computer ID.") var/admin = 0 var/ckey = ckey(key) - if((ckey in admin_datums) || (ckey in deadmins)) + if((ckey in admin_datums) || (ckey in GLOB.deadmins)) var/datum/admins/A = admin_datums[ckey] if(A.rights & R_ADMIN) admin = 1 diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index f401589bf90..4382c36b58a 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -4,7 +4,7 @@ var/global/nologevent = 0 //////////////////////////////// /proc/message_admins(var/msg) msg = "ADMIN LOG: [msg]" - for(var/client/C in admins) + for(var/client/C in GLOB.admins) if(R_ADMIN & C.holder.rights) if(C.prefs && !(C.prefs.toggles & CHAT_NO_ADMINLOGS)) to_chat(C, msg) @@ -12,7 +12,7 @@ var/global/nologevent = 0 /proc/msg_admin_attack(var/text, var/loglevel) if(!nologevent) var/rendered = "ATTACK: [text]" - for(var/client/C in admins) + for(var/client/C in GLOB.admins) if(R_ADMIN & C.holder.rights) if(C.prefs.atklog == ATKLOG_NONE) continue @@ -23,7 +23,7 @@ var/global/nologevent = 0 /proc/message_adminTicket(var/msg) msg = "ADMIN TICKET: [msg]" - for(var/client/C in admins) + for(var/client/C in GLOB.admins) if(R_ADMIN & C.holder.rights) if(C.prefs && !(C.prefs.toggles & CHAT_NO_TICKETLOGS)) to_chat(C, msg) @@ -31,7 +31,7 @@ var/global/nologevent = 0 ///////////////////////////////////////////////////////////////////////////////////////////////Panels -/datum/admins/proc/show_player_panel(var/mob/M in mob_list) +/datum/admins/proc/show_player_panel(var/mob/M in GLOB.mob_list) set category = "Admin" set name = "Show Player Panel" set desc="Edit player (respawn, ban, heal, etc)" @@ -827,7 +827,7 @@ var/global/nologevent = 0 log_admin("[key_name(usr)] spawned [chosen] at ([usr.x],[usr.y],[usr.z])") feedback_add_details("admin_verb","SA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/datum/admins/proc/show_traitor_panel(var/mob/M in mob_list) +/datum/admins/proc/show_traitor_panel(var/mob/M in GLOB.mob_list) set category = "Admin" set desc = "Edit mobs's memory and role" set name = "Show Traitor Panel" @@ -864,7 +864,7 @@ var/global/nologevent = 0 /datum/admins/proc/output_ai_laws() var/ai_number = 0 - for(var/mob/living/silicon/S in mob_list) + for(var/mob/living/silicon/S in GLOB.mob_list) ai_number++ if(isAI(S)) to_chat(usr, "AI [key_name(S, TRUE)]'s laws:") @@ -960,7 +960,7 @@ var/gamma_ship_location = 1 // 0 = station , 1 = space //returns a list of ckeys of the kicked clients /proc/kick_clients_in_lobby(message, kick_only_afk = 0) var/list/kicked_client_names = list() - for(var/client/C in clients) + for(var/client/C in GLOB.clients) if(istype(C.mob, /mob/new_player)) if(kick_only_afk && !C.is_afk()) //Ignore clients who are not afk continue @@ -1037,7 +1037,7 @@ var/gamma_ship_location = 1 // 0 = station , 1 = space // result[3] is the number of staff that match the rank mask and are inactive /proc/staff_countup(rank_mask = R_BAN) var/list/result = list(0, 0, 0) - for(var/client/X in admins) + for(var/client/X in GLOB.admins) if(rank_mask && !check_rights_for(X, rank_mask)) result[2]++ continue diff --git a/code/modules/admin/admin_ranks.dm b/code/modules/admin/admin_ranks.dm index 45e85a847fe..e781e038991 100644 --- a/code/modules/admin/admin_ranks.dm +++ b/code/modules/admin/admin_ranks.dm @@ -61,10 +61,10 @@ var/list/admin_ranks = list() //list of all ranks with associated rights /proc/load_admins() //clear the datums references admin_datums.Cut() - for(var/client/C in admins) + for(var/client/C in GLOB.admins) C.remove_admin_verbs() C.holder = null - admins.Cut() + GLOB.admins.Cut() if(config.admin_legacy_system) load_admin_ranks() @@ -97,7 +97,7 @@ var/list/admin_ranks = list() //list of all ranks with associated rights var/datum/admins/D = new /datum/admins(rank, rights, ckey) //find the client for a ckey if they are connected and associate them with the new admin datum - D.associate(directory[ckey]) + D.associate(GLOB.directory[ckey]) else //The current admin system uses SQL @@ -121,7 +121,7 @@ var/list/admin_ranks = list() //list of all ranks with associated rights var/datum/admins/D = new /datum/admins(rank, rights, ckey) //find the client for a ckey if they are connected and associate them with the new admin datum - D.associate(directory[ckey]) + D.associate(GLOB.directory[ckey]) if(!admin_datums) log_world("The database query in load_admins() resulted in no admins being added to the list. Reverting to legacy system.") config.admin_legacy_system = 1 diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index dae563c7e19..8aac0b9d9e5 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -447,10 +447,10 @@ var/list/admin_verbs_ticket = list( /client/proc/findStealthKey(txt) if(txt) - for(var/P in stealthminID) - if(stealthminID[P] == txt) + for(var/P in GLOB.stealthminID) + if(GLOB.stealthminID[P] == txt) return P - txt = stealthminID[ckey] + txt = GLOB.stealthminID[ckey] return txt /client/proc/createStealthKey() @@ -458,11 +458,11 @@ var/list/admin_verbs_ticket = list( var/i = 0 while(i == 0) i = 1 - for(var/P in stealthminID) - if(num == stealthminID[P]) + for(var/P in GLOB.stealthminID) + if(num == GLOB.stealthminID[P]) num++ i = 0 - stealthminID["[ckey]"] = "@[num2text(num)]" + GLOB.stealthminID["[ckey]"] = "@[num2text(num)]" /client/proc/stealth() set category = "Admin" @@ -522,7 +522,7 @@ var/list/admin_verbs_ticket = list( return var/datum/preferences/D - var/client/C = directory[warned_ckey] + var/client/C = GLOB.directory[warned_ckey] if(C) D = C.prefs else D = preferences_datums[warned_ckey] @@ -594,7 +594,7 @@ var/list/admin_verbs_ticket = list( message_admins("[key_name_admin(usr)] created an admin explosion at [epicenter.loc]") feedback_add_details("admin_verb","DB") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/client/proc/give_spell(mob/T as mob in mob_list) // -- Urist +/client/proc/give_spell(mob/T as mob in GLOB.mob_list) // -- Urist set category = "Event" set name = "Give Spell" set desc = "Gives a spell to a mob." @@ -619,7 +619,7 @@ var/list/admin_verbs_ticket = list( log_admin("[key_name(usr)] gave [key_name(T)] the spell [S].") message_admins("[key_name_admin(usr)] gave [key_name(T)] the spell [S].", 1) -/client/proc/give_disease(mob/T in mob_list) +/client/proc/give_disease(mob/T in GLOB.mob_list) set category = "Event" set name = "Give Disease" set desc = "Gives a Disease to a mob." @@ -706,7 +706,7 @@ var/list/admin_verbs_ticket = list( message_admins("[key_name_admin(usr)] deadmined themself.") deadmin() verbs += /client/proc/readmin - deadmins += ckey + GLOB.deadmins += ckey to_chat(src, "You are now a normal player.") feedback_add_details("admin_verb","DAS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -764,17 +764,17 @@ var/list/admin_verbs_ticket = list( flags = text2num(flags) D = new(admin_rank, flags, ckey) - var/client/C = directory[ckey] + var/client/C = GLOB.directory[ckey] D.associate(C) message_admins("[key_name_admin(usr)] re-adminned themselves.") log_admin("[key_name(usr)] re-adminned themselves.") - deadmins -= ckey + GLOB.deadmins -= ckey feedback_add_details("admin_verb","RAS") return else to_chat(src, "You are already an admin.") verbs -= /client/proc/readmin - deadmins -= ckey + GLOB.deadmins -= ckey return /client/proc/toggle_log_hrefs() @@ -808,7 +808,7 @@ var/list/admin_verbs_ticket = list( if(!check_rights(R_ADMIN)) return - var/mob/living/silicon/S = input("Select silicon.", "Manage Silicon Laws") as null|anything in silicon_mob_list + var/mob/living/silicon/S = input("Select silicon.", "Manage Silicon Laws") as null|anything in GLOB.silicon_mob_list if(!S) return var/datum/nano_module/law_manager/L = new(S) @@ -816,7 +816,7 @@ var/list/admin_verbs_ticket = list( log_and_message_admins("has opened [S]'s law manager.") feedback_add_details("admin_verb","MSL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/client/proc/change_human_appearance_admin(mob/living/carbon/human/H in mob_list) +/client/proc/change_human_appearance_admin(mob/living/carbon/human/H in GLOB.mob_list) set name = "C.M.A. - Admin" set desc = "Allows you to change the mob appearance" set category = "Admin" @@ -842,7 +842,7 @@ var/list/admin_verbs_ticket = list( H.change_appearance(APPEARANCE_ALL, usr, usr, check_species_whitelist = 0) feedback_add_details("admin_verb","CHAA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/client/proc/change_human_appearance_self(mob/living/carbon/human/H in mob_list) +/client/proc/change_human_appearance_self(mob/living/carbon/human/H in GLOB.mob_list) set name = "C.M.A. - Self" set desc = "Allows the mob to change its appearance" set category = "Admin" @@ -978,7 +978,7 @@ var/list/admin_verbs_ticket = list( else to_chat(usr, "You now won't get debug log messages") -/client/proc/man_up(mob/T as mob in mob_list) +/client/proc/man_up(mob/T as mob in GLOB.mob_list) set category = "Admin" set name = "Man Up" set desc = "Tells mob to man up and deal with it." @@ -1004,7 +1004,7 @@ var/list/admin_verbs_ticket = list( var/confirm = alert("Are you sure you want to send the global message?", "Confirm Man Up Global", "Yes", "No") if(confirm == "Yes") - for(var/mob/T as mob in mob_list) + for(var/mob/T as mob in GLOB.mob_list) to_chat(T, "
Man up.
Deal with it.

Move on.

") T << 'sound/voice/ManUp1.ogg' diff --git a/code/modules/admin/buildmode.dm b/code/modules/admin/buildmode.dm index b04b9d2b96a..0a495c153ec 100644 --- a/code/modules/admin/buildmode.dm +++ b/code/modules/admin/buildmode.dm @@ -308,7 +308,7 @@ if("number") valueholder = input(user,"Enter variable value:" ,"Value", 123) as num if("mob-reference") - valueholder = input(user,"Enter variable value:" ,"Value") as mob in mob_list + valueholder = input(user,"Enter variable value:" ,"Value") as mob in GLOB.mob_list if("obj-reference") valueholder = input(user,"Enter variable value:" ,"Value") as obj in world if("turf-reference") @@ -394,7 +394,7 @@ /datum/click_intercept/buildmode/proc/select_tile(var/turf/T) return new /obj/effect/buildmode_reticule(T, holder) -/proc/togglebuildmode(mob/M as mob in player_list) +/proc/togglebuildmode(mob/M as mob in GLOB.player_list) set name = "Toggle Build Mode" set category = "Event" @@ -618,7 +618,7 @@ var/obj/effect/buildmode_line/L2 = new(holder, P, M, "[M.name] to [P.name]") // Yes, reversed one so that you can see it from both sides. L2.color = L.color link_lines += L2 - for(var/obj/machinery/door/poddoor/P in airlocks) + for(var/obj/machinery/door/poddoor/P in GLOB.airlocks) if(P.id_tag == M.id) var/obj/effect/buildmode_line/L = new(holder, M, P, "[M.name] to [P.name]") L.color = M.normaldoorcontrol ? "#993333" : "#339933" diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm index f3715eaab31..ebf8a70cde3 100644 --- a/code/modules/admin/holder2.dm +++ b/code/modules/admin/holder2.dm @@ -35,11 +35,11 @@ var/list/admin_datums = list() owner.on_holder_add() owner.add_admin_verbs() //TODO owner.verbs -= /client/proc/readmin - admins |= C + GLOB.admins |= C /datum/admins/proc/disassociate() if(owner) - admins -= owner + GLOB.admins -= owner owner.remove_admin_verbs() owner.holder = null owner = null diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index b03f35b6091..7a8d347d32a 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -427,7 +427,7 @@ else dat += "Nuclear Operative not found!" dat += "
" - for(var/obj/item/disk/nuclear/N in poi_list) + for(var/obj/item/disk/nuclear/N in GLOB.poi_list) dat += "
Nuclear Disk(s)
[N.name], " var/atom/disk_loc = N.loc while(!istype(disk_loc, /turf)) diff --git a/code/modules/admin/sql_notes.dm b/code/modules/admin/sql_notes.dm index 7b237db72e5..9024959b943 100644 --- a/code/modules/admin/sql_notes.dm +++ b/code/modules/admin/sql_notes.dm @@ -121,7 +121,7 @@ var/ruler ruler = "
" navbar = "\[All\]|\[#\]" - for(var/letter in alphabet) + for(var/letter in GLOB.alphabet) navbar += "|\[[letter]\]" navbar += "
\ \ diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 194b1d49035..1871d70abae 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -146,7 +146,7 @@ var/mob/playermob - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(M.ckey == banckey) playermob = M break @@ -238,7 +238,7 @@ else D = new /datum/admins(new_rank, rights, adm_ckey) - var/client/C = directory[adm_ckey] //find the client with the specified ckey (if they are logged in) + var/client/C = GLOB.directory[adm_ckey] //find the client with the specified ckey (if they are logged in) D.associate(C) //link up with the client and add verbs updateranktodb(adm_ckey, new_rank) @@ -1259,7 +1259,7 @@ message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] back to the Lobby.") var/mob/new_player/NP = new() - non_respawnable_keys -= M.ckey + GLOB.non_respawnable_keys -= M.ckey NP.ckey = M.ckey qdel(M) @@ -1552,7 +1552,7 @@ if(is_mhelp) helptype = "MENTORHELP" var/take_msg = "[helptype]: [key_name(usr.client)] is attending to [key_name(M)]'s question." - for(var/client/X in admins) + for(var/client/X in GLOB.admins) if(check_rights(R_ADMIN, 0, X.mob)) to_chat(X, take_msg) else if(is_mhelp && check_rights(R_MOD|R_MENTOR, 0, X.mob)) @@ -1583,7 +1583,7 @@ if (H.current) to_chat(H.current, "[ticker.cultdat.entity_name] murmurs, [input]") - for(var/mob/dead/observer/O in player_list) + for(var/mob/dead/observer/O in GLOB.player_list) to_chat(O, "[ticker.cultdat.entity_name] murmurs, [input]") message_admins("Admin [key_name_admin(usr)] has talked with the Voice of [ticker.cultdat.entity_name].") @@ -1916,7 +1916,7 @@ if("Crew Traitor") logmsg = "crew traitor." var/list/possible_traitors = list() - for(var/mob/living/player in living_mob_list) + for(var/mob/living/player in GLOB.living_mob_list) if(player.client && player.mind && !player.mind.special_role && player.stat != DEAD && player != H) if(ishuman(player)) if(player.client && (ROLE_TRAITOR in player.client.prefs.be_special) && !jobban_isbanned(player, ROLE_TRAITOR) && !jobban_isbanned(player, "Syndicate")) @@ -2509,14 +2509,14 @@ if("monkey") feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","M") - for(var/mob/living/carbon/human/H in mob_list) + for(var/mob/living/carbon/human/H in GLOB.mob_list) spawn(0) H.monkeyize() ok = 1 if("corgi") feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","M") - for(var/mob/living/carbon/human/H in mob_list) + for(var/mob/living/carbon/human/H in GLOB.mob_list) spawn(0) H.corgize() ok = 1 @@ -2587,7 +2587,7 @@ feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","PW") message_admins("[key_name_admin(usr)] teleported all players to the prison station.", 1) - for(var/mob/living/carbon/human/H in mob_list) + for(var/mob/living/carbon/human/H in GLOB.mob_list) var/turf/loc = find_loc(H) var/security = 0 if(!is_station_level(loc.z) || prisonwarped.Find(H)) @@ -2631,7 +2631,7 @@ return feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","TA([objective])") - for(var/mob/living/carbon/human/H in player_list) + for(var/mob/living/carbon/human/H in GLOB.player_list) if(H.stat == 2 || !H.client || !H.mind) continue if(is_special_character(H)) continue //traitorize(H, objective, 0) @@ -2644,7 +2644,7 @@ ticker.mode.greet_traitor(H.mind) //ticker.mode.forge_traitor_objectives(H.mind) ticker.mode.finalize_traitor(H.mind) - for(var/mob/living/silicon/A in player_list) + for(var/mob/living/silicon/A in GLOB.player_list) ticker.mode.traitors += A.mind A.mind.special_role = SPECIAL_ROLE_TRAITOR var/datum/objective/new_objective = new @@ -2681,7 +2681,7 @@ feedback_add_details("admin_secrets_fun_used","FL") while(!usr.stat) //knock yourself out to stop the ghosts - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(M.stat != 2 && prob(25)) var/area/AffectedArea = get_area(M) if(AffectedArea.name != "Space" && AffectedArea.name != "Engine Walls" && AffectedArea.name != "Chemical Lab Test Chamber" && AffectedArea.name != "Escape Shuttle" && AffectedArea.name != "Arrival Area" && AffectedArea.name != "Arrival Shuttle" && AffectedArea.name != "start area" && AffectedArea.name != "Engine Combustion Chamber") @@ -2704,7 +2704,7 @@ if(prob(25) && !W.anchored) step_rand(W) sleep(rand(100,1000)) - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(M.stat != 2) M.show_message(text("The chilling wind suddenly stops..."), 1) if("lightout") @@ -2717,13 +2717,13 @@ feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","BO") message_admins("[key_name_admin(usr)] broke all lights", 1) - for(var/obj/machinery/light/L in machines) + for(var/obj/machinery/light/L in GLOB.machines) L.broken() if("whiteout") feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","WO") message_admins("[key_name_admin(usr)] fixed all lights", 1) - for(var/obj/machinery/light/L in machines) + for(var/obj/machinery/light/L in GLOB.machines) L.fix() if("floorlava") feedback_inc("admin_secrets_fun_used", 1) @@ -2752,7 +2752,7 @@ if("retardify") feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","RET") - for(var/mob/living/carbon/human/H in player_list) + for(var/mob/living/carbon/human/H in GLOB.player_list) to_chat(H, "You suddenly feel stupid.") H.setBrainLoss(60) message_admins("[key_name_admin(usr)] made everybody retarded") @@ -2778,7 +2778,7 @@ if("eagles")//SCRAW feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","EgL") - for(var/obj/machinery/door/airlock/W in airlocks) + for(var/obj/machinery/door/airlock/W in GLOB.airlocks) if(is_station_level(W.z) && !istype(get_area(W), /area/bridge) && !istype(get_area(W), /area/crew_quarters) && !istype(get_area(W), /area/security/prison)) W.req_access = list() message_admins("[key_name_admin(usr)] activated Egalitarian Station mode") @@ -2918,7 +2918,7 @@ if("manifest") var/dat = "Showing Crew Manifest.
" dat += "" - for(var/mob/living/carbon/human/H in mob_list) + for(var/mob/living/carbon/human/H in GLOB.mob_list) if(H.ckey) dat += text("", H.name, H.get_assignment()) dat += "
NamePosition
[][]
" @@ -2928,7 +2928,7 @@ if("DNA") var/dat = "Showing DNA from blood.
" dat += "" - for(var/mob/living/carbon/human/H in mob_list) + for(var/mob/living/carbon/human/H in GLOB.mob_list) if(H.dna && H.ckey) dat += "" dat += "
NameDNABlood Type
[H][H.dna.unique_enzymes][H.b_type]
" @@ -2936,7 +2936,7 @@ if("fingerprints") var/dat = "Showing Fingerprints.
" dat += "" - for(var/mob/living/carbon/human/H in mob_list) + for(var/mob/living/carbon/human/H in GLOB.mob_list) if(H.ckey) if(H.dna && H.dna.uni_identity) dat += "" @@ -2982,12 +2982,12 @@ dat += "No-one has done anything this round!" usr << browse(dat, "window=admin_log") if("maint_access_brig") - for(var/obj/machinery/door/airlock/maintenance/M in airlocks) + for(var/obj/machinery/door/airlock/maintenance/M in GLOB.airlocks) if(access_maint_tunnels in M.req_access) M.req_access = list(access_brig) message_admins("[key_name_admin(usr)] made all maint doors brig access-only.") if("maint_access_engiebrig") - for(var/obj/machinery/door/airlock/maintenance/M in airlocks) + for(var/obj/machinery/door/airlock/maintenance/M in GLOB.airlocks) if(access_maint_tunnels in M.req_access) M.req_access = list() M.req_one_access = list(access_brig,access_engine) diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index c38b42ad9b5..286fcf6e5f4 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -38,7 +38,7 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey"," var/list/surnames = list() var/list/forenames = list() var/list/ckeys = list() - for(var/mob/M in mob_list) + for(var/mob/M in GLOB.mob_list) var/list/indexing = list(M.real_name, M.name) if(M.mind) indexing += M.mind.name @@ -94,7 +94,7 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey"," var/list/mentorholders = list() var/list/modholders = list() var/list/adminholders = list() - for(var/client/X in admins) + for(var/client/X in GLOB.admins) if(check_rights(R_ADMIN, 0, X.mob)) if(X.is_afk()) admin_number_afk++ @@ -152,7 +152,7 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey"," var/admin_number_afk = 0 //Holds the number of admins who are afk var/admin_number_ignored = 0 //Holds the number of admins without +BAN (so admins who are not really admins) var/admin_number_decrease = 0 //Holds the number of admins with are afk, ignored or both - for(var/client/X in admins) + for(var/client/X in GLOB.admins) admin_number_total++; var/invalid = 0 if(requiredflags != 0 && !check_rights_for(X, requiredflags)) diff --git a/code/modules/admin/verbs/adminjump.dm b/code/modules/admin/verbs/adminjump.dm index 2512171e80d..562f087dbb5 100644 --- a/code/modules/admin/verbs/adminjump.dm +++ b/code/modules/admin/verbs/adminjump.dm @@ -42,7 +42,7 @@ feedback_add_details("admin_verb","JT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return -/client/proc/jumptomob(var/mob/M in mob_list) +/client/proc/jumptomob(var/mob/M in GLOB.mob_list) set category = "Admin" set name = "Jump to Mob" @@ -83,7 +83,7 @@ return var/list/keys = list() - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) keys += M.client var/selection = input("Please, select a player!", "Admin Jumping", null, null) as null|anything in sortKey(keys) if(!selection) @@ -98,7 +98,7 @@ feedback_add_details("admin_verb","JK") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/client/proc/Getmob(var/mob/M in mob_list) +/client/proc/Getmob(var/mob/M in GLOB.mob_list) set category = "Admin" set name = "Get Mob" set desc = "Mob to teleport" @@ -120,7 +120,7 @@ return var/list/keys = list() - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) keys += M.client var/selection = input("Please, select a player!", "Admin Jumping", null, null) as null|anything in sortKey(keys) if(!selection) @@ -136,7 +136,7 @@ admin_forcemove(usr, M.loc) feedback_add_details("admin_verb","GK") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/client/proc/sendmob(var/mob/M in mob_list) +/client/proc/sendmob(var/mob/M in GLOB.mob_list) set category = "Admin" set name = "Send Mob" diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index 600a53d81eb..be7554069ab 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -1,5 +1,5 @@ //allows right clicking mobs to send an admin PM to their client, forwards the selected mob's client to cmd_admin_pm -/client/proc/cmd_admin_pm_context(mob/M as mob in mob_list) +/client/proc/cmd_admin_pm_context(mob/M as mob in GLOB.mob_list) set category = null set name = "Admin PM Mob" if(!holder) @@ -67,7 +67,7 @@ if(istext(whom)) if(cmptext(copytext(whom,1,2),"@")) whom = findStealthKey(whom) - C = directory[whom] + C = GLOB.directory[whom] else if(istype(whom,/client)) C = whom @@ -167,7 +167,7 @@ log_admin("PM: [key_name(src)]->[key_name(C)]: [msg]") //we don't use message_admins here because the sender/receiver might get it too - for(var/client/X in admins) + for(var/client/X in GLOB.admins) //check client/X is an admin and isn't the sender or recipient if(X == C || X == src) continue @@ -224,7 +224,7 @@ to_chat(src, "IRC PM to-IRC-Admins: [msg]") log_admin("PM: [key_name(src)]->IRC: [msg]") - for(var/client/X in admins) + for(var/client/X in GLOB.admins) if(X == src) continue if(check_rights(R_ADMIN|R_MOD|R_MENTOR, 0, X.mob)) diff --git a/code/modules/admin/verbs/adminsay.dm b/code/modules/admin/verbs/adminsay.dm index 2a0f78351e4..e3fe5af3263 100644 --- a/code/modules/admin/verbs/adminsay.dm +++ b/code/modules/admin/verbs/adminsay.dm @@ -10,7 +10,7 @@ log_adminsay(msg, src) if(check_rights(R_ADMIN,0)) - for(var/client/C in admins) + for(var/client/C in GLOB.admins) if(R_ADMIN & C.holder.rights) msg = "[msg]" to_chat(C, "ADMIN: [key_name(usr, 1)] ([admin_jump_link(mob)]): [msg]") @@ -31,7 +31,7 @@ if(!msg) return - for(var/client/C in admins) + for(var/client/C in GLOB.admins) if(check_rights(R_ADMIN|R_MOD|R_MENTOR, 0, C.mob)) var/display_name = key if(holder.fakekey) @@ -62,7 +62,7 @@ enabling = TRUE admin_verbs_mentor += msay - for(var/client/C in admins) + for(var/client/C in GLOB.admins) if(check_rights(R_ADMIN|R_MOD, 0, C.mob)) continue if(!check_rights(R_MENTOR, 0, C.mob)) diff --git a/code/modules/admin/verbs/alt_check.dm b/code/modules/admin/verbs/alt_check.dm index c356ba00b6b..d5118d4eb8f 100644 --- a/code/modules/admin/verbs/alt_check.dm +++ b/code/modules/admin/verbs/alt_check.dm @@ -7,7 +7,7 @@
"} if(dbcon.IsConnected()) - for(var/client/C in clients) + for(var/client/C in GLOB.clients) dat += "

[C.ckey] (Player Age: [C.player_age]) - [C.computer_id] / [C.address]
" if(C.related_accounts_cid.len) dat += "--Accounts associated with CID: " diff --git a/code/modules/admin/verbs/antag-ooc.dm b/code/modules/admin/verbs/antag-ooc.dm index 2e0c044c424..8dbb539657c 100644 --- a/code/modules/admin/verbs/antag-ooc.dm +++ b/code/modules/admin/verbs/antag-ooc.dm @@ -12,7 +12,7 @@ if(holder && holder.fakekey) display_name = holder.fakekey - for(var/mob/M in mob_list) + for(var/mob/M in GLOB.mob_list) if((M.mind && M.mind.special_role && M.client) || (M.client && M.client.holder && (M.client.holder.rights & R_ADMIN)) ) to_chat(M, "AOOC: [display_name]: [msg]") diff --git a/code/modules/admin/verbs/custom_event.dm b/code/modules/admin/verbs/custom_event.dm index 546955136f7..10273b529a5 100644 --- a/code/modules/admin/verbs/custom_event.dm +++ b/code/modules/admin/verbs/custom_event.dm @@ -61,7 +61,7 @@ custom_event_admin_msg = input - for(var/client/X in admins) + for(var/client/X in GLOB.admins) if(check_rights(R_EVENT,0,X.mob)) to_chat(X, "

Custom Admin Event Info

") to_chat(X, "

A custom event is starting. OOC Admin Info:

") diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 0b7797b84e3..97fe4d4567d 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -208,7 +208,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that usr.show_message(t, 1) feedback_add_details("admin_verb","ASL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/client/proc/cmd_admin_robotize(var/mob/M in mob_list) +/client/proc/cmd_admin_robotize(var/mob/M in GLOB.mob_list) set category = "Event" set name = "Make Robot" @@ -226,7 +226,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that else alert("Invalid mob") -/client/proc/cmd_admin_animalize(var/mob/M in mob_list) +/client/proc/cmd_admin_animalize(var/mob/M in GLOB.mob_list) set category = "Event" set name = "Make Simple Animal" @@ -250,7 +250,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.Animalize() -/client/proc/makepAI(var/turf/T in mob_list) +/client/proc/makepAI(var/turf/T in GLOB.mob_list) set category = "Event" set name = "Make pAI" set desc = "Specify a location to spawn a pAI device, then specify a key to play that pAI" @@ -259,7 +259,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that return var/list/available = list() - for(var/mob/C in mob_list) + for(var/mob/C in GLOB.mob_list) if(C.key) available.Add(C) var/mob/choice = input("Choose a player to play the pAI", "Spawn pAI") in available @@ -286,7 +286,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that paiController.pai_candidates.Remove(candidate) feedback_add_details("admin_verb","MPAI") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/client/proc/cmd_admin_alienize(var/mob/M in mob_list) +/client/proc/cmd_admin_alienize(var/mob/M in GLOB.mob_list) set category = "Event" set name = "Make Alien" @@ -306,7 +306,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that else alert("Invalid mob") -/client/proc/cmd_admin_slimeize(var/mob/M in mob_list) +/client/proc/cmd_admin_slimeize(var/mob/M in GLOB.mob_list) set category = "Event" set name = "Make slime" @@ -326,7 +326,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that else alert("Invalid mob") -/client/proc/cmd_admin_super(var/mob/M in mob_list) +/client/proc/cmd_admin_super(var/mob/M in GLOB.mob_list) set category = "Event" set name = "Make Superhero" @@ -337,8 +337,8 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that alert("Wait until the game starts") return if(ishuman(M)) - var/type = input("Pick the Superhero","Superhero") as null|anything in all_superheroes - var/datum/superheroes/S = all_superheroes[type] + var/type = input("Pick the Superhero","Superhero") as null|anything in GLOB.all_superheroes + var/datum/superheroes/S = GLOB.all_superheroes[type] if(S) S.create(M) log_admin("[key_name(src)] has turned [M.key] into a Superhero.") @@ -377,7 +377,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that if(confirm != "Yes") return - for(var/I in singularities) + for(var/I in GLOB.singularities) var/obj/singularity/S = I if(!is_level_reachable(S.z)) continue @@ -398,7 +398,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that message_admins("[key_name_admin(src)] has remade the powernets. makepowernets() called.", 0) feedback_add_details("admin_verb","MPWN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/client/proc/cmd_admin_grantfullaccess(var/mob/M in mob_list) +/client/proc/cmd_admin_grantfullaccess(var/mob/M in GLOB.mob_list) set category = "Admin" set name = "Grant Full Access" @@ -432,7 +432,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that log_admin("[key_name(src)] has granted [M.key] full access.") message_admins("[key_name_admin(usr)] has granted [M.key] full access.", 1) -/client/proc/cmd_assume_direct_control(var/mob/M in mob_list) +/client/proc/cmd_assume_direct_control(var/mob/M in GLOB.mob_list) set category = "Admin" set name = "Assume direct control" set desc = "Direct intervention" @@ -569,7 +569,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that for(var/areatype in areas_without_camera) to_chat(world, "* [areatype]") -/client/proc/cmd_admin_dress(var/mob/living/carbon/human/M in mob_list) +/client/proc/cmd_admin_dress(var/mob/living/carbon/human/M in GLOB.mob_list) set category = "Event" set name = "Select equipment" @@ -691,11 +691,11 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that if(alert("Are you sure? This will start up the engine. Should only be used during debug!",,"Yes","No") != "Yes") return - for(var/obj/machinery/power/emitter/E in machines) + for(var/obj/machinery/power/emitter/E in GLOB.machines) if(E.anchored) E.active = 1 - for(var/obj/machinery/field/generator/F in machines) + for(var/obj/machinery/field/generator/F in GLOB.machines) if(F.active == 0) F.active = 1 F.state = 2 @@ -706,13 +706,13 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that F.update_icon() spawn(30) - for(var/obj/machinery/the_singularitygen/G in machines) + for(var/obj/machinery/the_singularitygen/G in GLOB.machines) if(G.anchored) var/obj/singularity/S = new /obj/singularity(get_turf(G)) S.energy = 800 break - for(var/obj/machinery/power/rad_collector/Rad in machines) + for(var/obj/machinery/power/rad_collector/Rad in GLOB.machines) if(Rad.anchored) if(!Rad.P) var/obj/item/tank/plasma/Plasma = new/obj/item/tank/plasma(Rad) @@ -724,7 +724,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that if(!Rad.active) Rad.toggle_power() - for(var/obj/machinery/power/smes/SMES in machines) + for(var/obj/machinery/power/smes/SMES in GLOB.machines) if(SMES.anchored) SMES.input_attempt = 1 @@ -738,21 +738,21 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that switch(input("Which list?") in list("Players","Admins","Mobs","Living Mobs","Dead Mobs","Silicons","Clients","Respawnable Mobs")) if("Players") - to_chat(usr, jointext(player_list,",")) + to_chat(usr, jointext(GLOB.player_list,",")) if("Admins") - to_chat(usr, jointext(admins,",")) + to_chat(usr, jointext(GLOB.admins,",")) if("Mobs") - to_chat(usr, jointext(mob_list,",")) + to_chat(usr, jointext(GLOB.mob_list,",")) if("Living Mobs") - to_chat(usr, jointext(living_mob_list,",")) + to_chat(usr, jointext(GLOB.living_mob_list,",")) if("Dead Mobs") - to_chat(usr, jointext(dead_mob_list,",")) + to_chat(usr, jointext(GLOB.dead_mob_list,",")) if("Silicons") - to_chat(usr, jointext(silicon_mob_list,",")) + to_chat(usr, jointext(GLOB.silicon_mob_list,",")) if("Clients") - to_chat(usr, jointext(clients,",")) + to_chat(usr, jointext(GLOB.clients,",")) if("Respawnable Mobs") - to_chat(usr, jointext(respawnable_list,",")) + to_chat(usr, jointext(GLOB.respawnable_list,",")) /client/proc/cmd_display_del_log() set category = "Debug" @@ -866,7 +866,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that return var/list/names = list() - for(var/i in ruin_landmarks) + for(var/i in GLOB.ruin_landmarks) var/obj/effect/landmark/ruin/ruin_landmark = i var/datum/map_template/ruin/template = ruin_landmark.ruin_template diff --git a/code/modules/admin/verbs/freeze.dm b/code/modules/admin/verbs/freeze.dm index 9439c63e861..67ae72817f9 100644 --- a/code/modules/admin/verbs/freeze.dm +++ b/code/modules/admin/verbs/freeze.dm @@ -6,7 +6,7 @@ //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// var/global/list/frozen_mob_list = list() -/client/proc/freeze(var/mob/living/M as mob in mob_list) +/client/proc/freeze(var/mob/living/M as mob in GLOB.mob_list) set category = "Admin" set name = "Freeze" @@ -84,7 +84,7 @@ var/global/list/frozen_mob_list = list() //////////////////////////Freeze Mech -/client/proc/freezemecha(var/obj/mecha/O as obj in mechas_list) +/client/proc/freezemecha(var/obj/mecha/O as obj in GLOB.mechas_list) set category = "Admin" set name = "Freeze Mech" diff --git a/code/modules/admin/verbs/gimmick_team.dm b/code/modules/admin/verbs/gimmick_team.dm index 6192ad6b2ac..9790a073401 100644 --- a/code/modules/admin/verbs/gimmick_team.dm +++ b/code/modules/admin/verbs/gimmick_team.dm @@ -42,7 +42,7 @@ var/list/players_to_spawn = list() if(pick_manually) var/list/possible_ghosts = list() - for(var/mob/dead/observer/G in player_list) + for(var/mob/dead/observer/G in GLOB.player_list) if(!G.client.is_afk()) if(!(G.mind && G.mind.current && G.mind.current.stat != DEAD)) possible_ghosts += G diff --git a/code/modules/admin/verbs/honksquad.dm b/code/modules/admin/verbs/honksquad.dm index 1e72c1836da..c9068049c75 100644 --- a/code/modules/admin/verbs/honksquad.dm +++ b/code/modules/admin/verbs/honksquad.dm @@ -38,7 +38,7 @@ var/global/sent_honksquad = 0 //Generates a list of HONKsquad from active ghosts. Then the user picks which characters to respawn as the commandos. var/list/candidates = list() //candidates for being a commando out of all the active ghosts in world. var/list/commandos = list() //actual commando ghosts as picked by the user. - for(var/mob/dead/observer/G in player_list) + for(var/mob/dead/observer/G in GLOB.player_list) if(!G.client.holder && !G.client.is_afk()) //Whoever called/has the proc won't be added to the list. if(!(G.mind && G.mind.current && G.mind.current.stat != DEAD)) candidates += G.key @@ -48,7 +48,7 @@ var/global/sent_honksquad = 0 commandos += candidate//Add their ghost to commandos. //Spawns HONKsquad and equips them. - for(var/obj/effect/landmark/L in landmarks_list) + for(var/obj/effect/landmark/L in GLOB.landmarks_list) if(honksquad_number<=0) break if(L.name == "HONKsquad") honk_leader_selected = honksquad_number == 1?1:0 @@ -77,7 +77,7 @@ var/global/sent_honksquad = 0 var/mob/living/carbon/human/new_honksquad = new(spawn_location.loc) var/honksquad_leader_rank = pick("Lieutenant", "Captain", "Major") var/honksquad_rank = pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant 1st Class", "Master Sergeant", "Sergeant Major") - var/honksquad_name = pick(clown_names) + var/honksquad_name = pick(GLOB.clown_names) var/datum/preferences/A = new()//Randomize appearance for the commando. if(honk_leader_selected) diff --git a/code/modules/admin/verbs/infiltratorteam_syndicate.dm b/code/modules/admin/verbs/infiltratorteam_syndicate.dm index a3f30117cdd..274a4839222 100644 --- a/code/modules/admin/verbs/infiltratorteam_syndicate.dm +++ b/code/modules/admin/verbs/infiltratorteam_syndicate.dm @@ -48,7 +48,7 @@ var/global/sent_syndicate_infiltration_team = 0 if(pick_manually) var/list/possible_ghosts = list() - for(var/mob/dead/observer/G in player_list) + for(var/mob/dead/observer/G in GLOB.player_list) if(!G.client.is_afk()) if(!(G.mind && G.mind.current && G.mind.current.stat != DEAD)) possible_ghosts += G @@ -69,7 +69,7 @@ var/global/sent_syndicate_infiltration_team = 0 var/list/sit_spawns = list() var/list/sit_spawns_leader = list() var/list/sit_spawns_mgmt = list() - for(var/obj/effect/landmark/L in landmarks_list) + for(var/obj/effect/landmark/L in GLOB.landmarks_list) if(L.name == "Syndicate-Infiltrator") sit_spawns += L if(L.name == "Syndicate-Infiltrator-Leader") diff --git a/code/modules/admin/verbs/massmodvar.dm b/code/modules/admin/verbs/massmodvar.dm index b26a27b3aa6..bafa7d629d3 100644 --- a/code/modules/admin/verbs/massmodvar.dm +++ b/code/modules/admin/verbs/massmodvar.dm @@ -212,19 +212,19 @@ typecache = typecacheof(typecache) . = list() if(ispath(T, /mob)) - for(var/mob/thing in mob_list) + for(var/mob/thing in GLOB.mob_list) if(typecache[thing.type]) . += thing CHECK_TICK else if(ispath(T, /obj/machinery/door)) - for(var/obj/machinery/door/thing in airlocks) + for(var/obj/machinery/door/thing in GLOB.airlocks) if(typecache[thing.type]) . += thing CHECK_TICK else if(ispath(T, /obj/machinery)) - for(var/obj/machinery/thing in machines) + for(var/obj/machinery/thing in GLOB.machines) if(typecache[thing.type]) . += thing CHECK_TICK @@ -254,7 +254,7 @@ CHECK_TICK else if(ispath(T, /client)) - for(var/client/thing in clients) + for(var/client/thing in GLOB.clients) if(typecache[thing.type]) . += thing CHECK_TICK diff --git a/code/modules/admin/verbs/modifyvariables.dm b/code/modules/admin/verbs/modifyvariables.dm index c1e28a48f8d..e94f3c9fe06 100644 --- a/code/modules/admin/verbs/modifyvariables.dm +++ b/code/modules/admin/verbs/modifyvariables.dm @@ -195,7 +195,7 @@ var/list/VVpixelmovement = list("step_x", "step_y", "step_size", "bound_height", if(VV_CLIENT) - .["value"] = input("Select reference:", "Reference", current_value) as null|anything in clients + .["value"] = input("Select reference:", "Reference", current_value) as null|anything in GLOB.clients if(.["value"] == null) .["class"] = null return diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index c3641766db0..5799916e79c 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -57,7 +57,7 @@ client/proc/one_click_antag() log_admin("[key_name(owner)] tried making [antnum] traitors with One-Click-Antag") message_admins("[key_name_admin(owner)] tried making [antnum] traitors with One-Click-Antag") - for(var/mob/living/carbon/human/applicant in player_list) + for(var/mob/living/carbon/human/applicant in GLOB.player_list) if(CandCheck(ROLE_TRAITOR, applicant, temp)) candidates += applicant @@ -88,7 +88,7 @@ client/proc/one_click_antag() log_admin("[key_name(owner)] tried making [antnum] changelings with One-Click-Antag") message_admins("[key_name_admin(owner)] tried making [antnum] changelings with One-Click-Antag") - for(var/mob/living/carbon/human/applicant in player_list) + for(var/mob/living/carbon/human/applicant in GLOB.player_list) if(CandCheck(ROLE_CHANGELING, applicant, temp)) candidates += applicant @@ -118,7 +118,7 @@ client/proc/one_click_antag() log_admin("[key_name(owner)] tried making [antnum] revolutionaries with One-Click-Antag") message_admins("[key_name_admin(owner)] tried making [antnum] revolutionaries with One-Click-Antag") - for(var/mob/living/carbon/human/applicant in player_list) + for(var/mob/living/carbon/human/applicant in GLOB.player_list) if(CandCheck(ROLE_REV, applicant, temp)) candidates += applicant @@ -166,7 +166,7 @@ client/proc/one_click_antag() log_admin("[key_name(owner)] tried making a Cult with One-Click-Antag") message_admins("[key_name_admin(owner)] tried making a Cult with One-Click-Antag") - for(var/mob/living/carbon/human/applicant in player_list) + for(var/mob/living/carbon/human/applicant in GLOB.player_list) if(CandCheck(ROLE_CULTIST, applicant, temp)) candidates += applicant @@ -195,7 +195,7 @@ client/proc/one_click_antag() log_admin("[key_name(owner)] tried making a [antnum] person Nuke Op Team with One-Click-Antag") message_admins("[key_name_admin(owner)] tried making a [antnum] person Nuke Op Team with One-Click-Antag") - for(var/mob/G in respawnable_list) + for(var/mob/G in GLOB.respawnable_list) if(istype(G) && G.client && (ROLE_OPERATIVE in G.client.prefs.be_special)) if(!jobban_isbanned(G, "operative") && !jobban_isbanned(G, "Syndicate")) if(player_old_enough_antag(G.client,ROLE_OPERATIVE)) @@ -328,7 +328,7 @@ client/proc/one_click_antag() var/syndicate_leader_selected = 0 //when the leader is chosen. The last person spawned. //Generates a list of commandos from active ghosts. Then the user picks which characters to respawn as the commandos. - for(var/mob/G in respawnable_list) + for(var/mob/G in GLOB.respawnable_list) if(!jobban_isbanned(G, "Syndicate")) spawn(0) switch(alert(G,"Do you wish to be considered for an elite syndicate strike team being sent in?","Please answer in 30 seconds!","Yes","No")) @@ -399,7 +399,7 @@ client/proc/one_click_antag() var/mob/living/carbon/human/new_syndicate_commando = new(spawn_location.loc) var/syndicate_commando_leader_rank = pick("Lieutenant", "Captain", "Major") var/syndicate_commando_rank = pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant 1st Class", "Master Sergeant", "Sergeant Major") - var/syndicate_commando_name = pick(last_names) + var/syndicate_commando_name = pick(GLOB.last_names) var/datum/preferences/A = new()//Randomize appearance for the commando. if(syndicate_leader_selected) @@ -437,7 +437,7 @@ client/proc/one_click_antag() log_admin("[key_name(owner)] tried making Vox Raiders with One-Click-Antag") message_admins("[key_name_admin(owner)] tried making Vox Raiders with One-Click-Antag") //Generates a list of candidates from active ghosts. - for(var/mob/G in respawnable_list) + for(var/mob/G in GLOB.respawnable_list) if(istype(G) && G.client && (ROLE_RAIDER in G.client.prefs.be_special)) if(player_old_enough_antag(G.client,ROLE_RAIDER)) if(!jobban_isbanned(G, "raider") && !jobban_isbanned(G, "Syndicate")) @@ -542,7 +542,7 @@ client/proc/one_click_antag() log_admin("[key_name(owner)] tried making Vampires with One-Click-Antag") message_admins("[key_name_admin(owner)] tried making Vampires with One-Click-Antag") - for(var/mob/living/carbon/human/applicant in player_list) + for(var/mob/living/carbon/human/applicant in GLOB.player_list) if(CandCheck(ROLE_VAMPIRE, applicant, temp)) candidates += applicant @@ -567,7 +567,7 @@ client/proc/one_click_antag() message_admins("[key_name_admin(owner)] tried making Thunderdone Teams with One-Click-Antag") //Generates a list of candidates from active ghosts. - for(var/mob/G in respawnable_list) + for(var/mob/G in GLOB.respawnable_list) spawn(0) switch(alert(G,"Do you wish to be considered for a Thunderdome match about to start?","Please answer in 30 seconds!","Yes","No")) if("Yes") diff --git a/code/modules/admin/verbs/onlyone.dm b/code/modules/admin/verbs/onlyone.dm index bffaaa9bc9c..6273c9207e6 100644 --- a/code/modules/admin/verbs/onlyone.dm +++ b/code/modules/admin/verbs/onlyone.dm @@ -4,7 +4,7 @@ return var/list/incompatible_species = list(/datum/species/plasmaman, /datum/species/vox) - for(var/mob/living/carbon/human/H in player_list) + for(var/mob/living/carbon/human/H in GLOB.player_list) if(H.stat == DEAD || !(H.client)) continue if(is_special_character(H)) @@ -62,7 +62,7 @@ alert("The game hasn't started yet!") return - for(var/mob/living/carbon/human/H in player_list) + for(var/mob/living/carbon/human/H in GLOB.player_list) if(H.stat == 2 || !(H.client)) continue if(is_special_character(H)) continue diff --git a/code/modules/admin/verbs/onlyoneteam.dm b/code/modules/admin/verbs/onlyoneteam.dm index 715472128b8..d2490cdf9c3 100644 --- a/code/modules/admin/verbs/onlyoneteam.dm +++ b/code/modules/admin/verbs/onlyoneteam.dm @@ -5,7 +5,7 @@ var/list/incompatible_species = list(/datum/species/plasmaman, /datum/species/vox) var/team_toggle = 0 - for(var/mob/living/carbon/human/H in player_list) + for(var/mob/living/carbon/human/H in GLOB.player_list) if(H.stat == DEAD || !(H.client)) continue if(is_special_character(H)) diff --git a/code/modules/admin/verbs/playsound.dm b/code/modules/admin/verbs/playsound.dm index 47709629186..c7d654dbe68 100644 --- a/code/modules/admin/verbs/playsound.dm +++ b/code/modules/admin/verbs/playsound.dm @@ -10,7 +10,7 @@ var/list/sounds_cache = list() log_admin("[key_name(src)] stopped admin sounds.") message_admins("[key_name_admin(src)] stopped admin sounds.", 1) - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) M << awful_sound /client/proc/play_sound(S as sound) @@ -28,7 +28,7 @@ var/list/sounds_cache = list() log_admin("[key_name(src)] played sound [S]") message_admins("[key_name_admin(src)] played sound [S]", 1) - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(M.client.prefs.sound & SOUND_MIDI) M << uploaded_sound @@ -92,7 +92,7 @@ var/list/sounds_cache = list() if(C == "Yep") ignore_power = 1 - for(var/O in global_intercoms) + for(var/O in GLOB.global_intercoms) var/obj/item/radio/intercom/I = O if(!is_station_level(I.z) && !ignore_z) continue diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm index 0fd53b8b62a..0823a0e75a5 100644 --- a/code/modules/admin/verbs/pray.dm +++ b/code/modules/admin/verbs/pray.dm @@ -31,7 +31,7 @@ log_say("(PRAYER) [msg]", usr) msg = "[bicon(cross)][prayer_type][deity ? " (to [deity])" : ""]:[key_name(src, 1)] (?) (PP) (VV) (SM) ([admin_jump_link(src)]) (CA) (SC) (BLESS) (SMITE): [msg]" - for(var/client/X in admins) + for(var/client/X in GLOB.admins) if(check_rights(R_EVENT,0,X.mob)) to_chat(X, msg) to_chat(usr, "Your prayers have been received by the gods.") @@ -41,7 +41,7 @@ /proc/Centcomm_announce(var/text , var/mob/Sender) var/msg = sanitize(copytext(text, 1, MAX_MESSAGE_LEN)) msg = "CENTCOMM: [key_name(Sender, 1)] (PP) (VV) (SM) ([admin_jump_link(Sender)]) (CA) (BSA) [ADMIN_CENTCOM_REPLY(Sender)]): [msg]" - for(var/client/X in admins) + for(var/client/X in GLOB.admins) if(R_EVENT & X.holder.rights) to_chat(X, msg) if(X.prefs.sound & SOUND_ADMINHELP) @@ -50,7 +50,7 @@ /proc/Syndicate_announce(var/text , var/mob/Sender) var/msg = sanitize(copytext(text, 1, MAX_MESSAGE_LEN)) msg = "SYNDICATE: [key_name(Sender, 1)] (PP) (VV) (SM) ([admin_jump_link(Sender)]) (CA) (BSA) [ADMIN_SYNDICATE_REPLY(Sender)]: [msg]" - for(var/client/X in admins) + for(var/client/X in GLOB.admins) if(check_rights(R_EVENT,0,X.mob)) to_chat(X, msg) if(X.prefs.sound & SOUND_ADMINHELP) @@ -59,7 +59,7 @@ /proc/HONK_announce(var/text , var/mob/Sender) var/msg = sanitize(copytext(text, 1, MAX_MESSAGE_LEN)) msg = "HONK: [key_name(Sender, 1)] (PP) (VV) (SM) ([admin_jump_link(Sender)]) (CA) (BSA) (RPLY): [msg]" - for(var/client/X in admins) + for(var/client/X in GLOB.admins) if(R_EVENT & X.holder.rights) to_chat(X, msg) if(X.prefs.sound & SOUND_ADMINHELP) @@ -70,7 +70,7 @@ msg = "ERT REQUEST: [key_name(Sender, 1)] (PP) (VV) (SM) ([admin_jump_link(Sender)]) (CA) (BSA) (RESPOND): [msg]" if(repeat_warning) msg += "
WARNING: ERT request has gone 5 minutes with no reply!" - for(var/client/X in admins) + for(var/client/X in GLOB.admins) if(check_rights(R_EVENT,0,X.mob)) to_chat(X, msg) if(X.prefs.sound & SOUND_ADMINHELP) @@ -80,7 +80,7 @@ var/nuke_code = get_nuke_code() var/msg = sanitize(copytext(text, 1, MAX_MESSAGE_LEN)) msg = "NUKE CODE REQUEST: [key_name(Sender)] (PP) (VV) (SM) ([admin_jump_link(Sender)]) (CA) (BSA) [ADMIN_CENTCOM_REPLY(Sender)]: [msg]" - for(var/client/X in admins) + for(var/client/X in GLOB.admins) if(check_rights(R_EVENT,0,X.mob)) to_chat(X, msg) to_chat(X, "The nuke code is [nuke_code].") diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index c5d6a50c418..c1b92a475aa 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -1,4 +1,4 @@ -/client/proc/cmd_admin_drop_everything(mob/M as mob in mob_list) +/client/proc/cmd_admin_drop_everything(mob/M as mob in GLOB.mob_list) set category = null set name = "Drop Everything" @@ -16,7 +16,7 @@ message_admins("[key_name_admin(usr)] made [key_name_admin(M)] drop everything!", 1) feedback_add_details("admin_verb","DEVR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/client/proc/cmd_admin_prison(mob/M as mob in mob_list) +/client/proc/cmd_admin_prison(mob/M as mob in GLOB.mob_list) set category = "Admin" set name = "Prison" @@ -44,7 +44,7 @@ message_admins("[key_name_admin(usr)] sent [key_name_admin(M)] to the prison station.", 1) feedback_add_details("admin_verb","PRISON") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/client/proc/cmd_admin_subtle_message(mob/M as mob in mob_list) +/client/proc/cmd_admin_subtle_message(mob/M as mob in GLOB.mob_list) set category = "Event" set name = "Subtle Message" @@ -83,7 +83,7 @@ var/missing_ages = 0 var/msg = "" - for(var/client/C in clients) + for(var/client/C in GLOB.clients) if(C.player_age == "Requires database") missing_ages = 1 continue @@ -144,13 +144,13 @@ -/client/proc/cmd_admin_headset_message(mob/M in mob_list) +/client/proc/cmd_admin_headset_message(mob/M in GLOB.mob_list) set category = "Event" set name = "Headset Message" admin_headset_message(M) -/client/proc/admin_headset_message(mob/M in mob_list, sender = null) +/client/proc/admin_headset_message(mob/M in GLOB.mob_list, sender = null) var/mob/living/carbon/human/H = M if(!check_rights(R_ADMIN)) @@ -181,7 +181,7 @@ -/client/proc/cmd_admin_godmode(mob/M as mob in mob_list) +/client/proc/cmd_admin_godmode(mob/M as mob in GLOB.mob_list) set category = "Admin" set name = "Godmode" @@ -342,7 +342,7 @@ Traitors and the like can also be revived with the previous role mostly intact. return var/mob/dead/observer/G_found - for(var/mob/dead/observer/G in player_list) + for(var/mob/dead/observer/G in GLOB.player_list) if(G.ckey == input) G_found = G break @@ -490,7 +490,7 @@ Traitors and the like can also be revived with the previous role mostly intact. /proc/create_xeno(ckey) if(!ckey) var/list/candidates = list() - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(M.stat != DEAD) continue //we are not dead! if(!(ROLE_ALIEN in M.client.prefs.be_special)) continue //we don't want to be an alium if(jobban_isbanned(M, "alien") || jobban_isbanned(M, "Syndicate")) continue //we are jobbanned @@ -525,7 +525,7 @@ Traitors and the like can also be revived with the previous role mostly intact. var/list/mobs = list() var/list/ghosts = list() - var/list/sortmob = sortAtom(mob_list) // get the mob list. + var/list/sortmob = sortAtom(GLOB.mob_list) // get the mob list. /var/any=0 for(var/mob/dead/observer/M in sortmob) mobs.Add(M) //filter it where it's only ghosts @@ -564,7 +564,7 @@ Traitors and the like can also be revived with the previous role mostly intact. feedback_add_details("admin_verb","IONC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/client/proc/cmd_admin_rejuvenate(mob/living/M as mob in mob_list) +/client/proc/cmd_admin_rejuvenate(mob/living/M as mob in GLOB.mob_list) set category = "Event" set name = "Rejuvenate" @@ -721,7 +721,7 @@ Traitors and the like can also be revived with the previous role mostly intact. else return -/client/proc/cmd_admin_gib(mob/M as mob in mob_list) +/client/proc/cmd_admin_gib(mob/M as mob in GLOB.mob_list) set category = "Admin" set name = "Gib" @@ -761,7 +761,7 @@ Traitors and the like can also be revived with the previous role mostly intact. message_admins("[key_name_admin(usr)] used gibself.", 1) feedback_add_details("admin_verb","GIBS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/client/proc/cmd_admin_check_contents(mob/living/M as mob in mob_list) +/client/proc/cmd_admin_check_contents(mob/living/M as mob in GLOB.mob_list) set category = "Admin" set name = "Check Contents" @@ -861,7 +861,7 @@ Traitors and the like can also be revived with the previous role mostly intact. log_admin("[key_name(src)] has [shuttle_master.emergencyNoEscape ? "denied" : "allowed"] the shuttle to be called.") message_admins("[key_name_admin(usr)] has [shuttle_master.emergencyNoEscape ? "denied" : "allowed"] the shuttle to be called.") -/client/proc/cmd_admin_attack_log(mob/M as mob in mob_list) +/client/proc/cmd_admin_attack_log(mob/M as mob in GLOB.mob_list) set category = "Admin" set name = "Attack Log" @@ -942,7 +942,7 @@ Traitors and the like can also be revived with the previous role mostly intact. var/datum/TCS_Compiler/C = S.Compiler S.rawcode = "" C.Compile("") - for(var/obj/machinery/computer/telecomms/traffic/T in machines) + for(var/obj/machinery/computer/telecomms/traffic/T in GLOB.machines) T.storedcode = "" log_admin("[key_name(usr)] blanked all telecomms scripts.") message_admins("[key_name_admin(usr)] blanked all telecomms scripts.") @@ -963,7 +963,7 @@ Traitors and the like can also be revived with the previous role mostly intact. var/job_string var/key_string var/role_string - for(var/mob/living/carbon/human/H in living_mob_list) + for(var/mob/living/carbon/human/H in GLOB.living_mob_list) if(!isLivingSSD(H)) continue mins_ssd = round((world.time - H.last_logout) / 600) diff --git a/code/modules/admin/verbs/striketeam.dm b/code/modules/admin/verbs/striketeam.dm index 1e809bcd948..0a481460344 100644 --- a/code/modules/admin/verbs/striketeam.dm +++ b/code/modules/admin/verbs/striketeam.dm @@ -48,7 +48,7 @@ var/global/sent_strike_team = 0 var/commando_number = commandos_possible //for selecting a leader var/is_leader = TRUE // set to FALSE after leader is spawned - for(var/obj/effect/landmark/L in landmarks_list) + for(var/obj/effect/landmark/L in GLOB.landmarks_list) if(commando_number <= 0) break @@ -108,7 +108,7 @@ var/global/sent_strike_team = 0 commando_number-- //Spawns the rest of the commando gear. - for(var/obj/effect/landmark/L in landmarks_list) + for(var/obj/effect/landmark/L in GLOB.landmarks_list) if(L.name == "Commando_Manual") //new /obj/item/gun/energy/pulse_rifle(L.loc) var/obj/item/paper/P = new(L.loc) @@ -119,7 +119,7 @@ var/global/sent_strike_team = 0 P.stamp(stamp) qdel(stamp) - for(var/obj/effect/landmark/L in landmarks_list) + for(var/obj/effect/landmark/L in GLOB.landmarks_list) if(L.name == "Commando-Bomb") new /obj/effect/spawner/newbomb/timer/syndicate(L.loc) qdel(L) @@ -132,7 +132,7 @@ var/global/sent_strike_team = 0 var/mob/living/carbon/human/new_commando = new(spawn_location.loc) var/commando_leader_rank = pick("Lieutenant", "Captain", "Major") var/commando_rank = pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant 1st Class", "Master Sergeant", "Sergeant Major") - var/commando_name = pick(last_names) + var/commando_name = pick(GLOB.last_names) var/datum/preferences/A = new()//Randomize appearance for the commando. if(is_leader) diff --git a/code/modules/admin/verbs/striketeam_syndicate.dm b/code/modules/admin/verbs/striketeam_syndicate.dm index c5f46c98592..bb5776f782c 100644 --- a/code/modules/admin/verbs/striketeam_syndicate.dm +++ b/code/modules/admin/verbs/striketeam_syndicate.dm @@ -53,7 +53,7 @@ var/global/sent_syndicate_strike_team = 0 sent_syndicate_strike_team = 1 //Spawns commandos and equips them. - for(var/obj/effect/landmark/L in landmarks_list) + for(var/obj/effect/landmark/L in GLOB.landmarks_list) if(syndicate_commando_number <= 0) break @@ -88,7 +88,7 @@ var/global/sent_syndicate_strike_team = 0 is_leader = FALSE syndicate_commando_number-- - for(var/obj/effect/landmark/L in landmarks_list) + for(var/obj/effect/landmark/L in GLOB.landmarks_list) if(L.name == "Syndicate-Commando-Bomb") new /obj/effect/spawner/newbomb/timer/syndicate(L.loc) qdel(L) @@ -101,7 +101,7 @@ var/global/sent_syndicate_strike_team = 0 var/mob/living/carbon/human/new_syndicate_commando = new(spawn_location.loc) var/syndicate_commando_leader_rank = pick("Lieutenant", "Captain", "Major") var/syndicate_commando_rank = pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant 1st Class", "Master Sergeant", "Sergeant Major") - var/syndicate_commando_name = pick(last_names) + var/syndicate_commando_name = pick(GLOB.last_names) var/datum/preferences/A = new()//Randomize appearance for the commando. if(is_leader) diff --git a/code/modules/atmos_automation/implementation/emitters.dm b/code/modules/atmos_automation/implementation/emitters.dm index 10469de1db8..100d68708cd 100644 --- a/code/modules/atmos_automation/implementation/emitters.dm +++ b/code/modules/atmos_automation/implementation/emitters.dm @@ -31,7 +31,7 @@ return 1 if(href_list["set_subject"]) var/list/emitters=list() - for(var/obj/machinery/power/emitter/E in machines) + for(var/obj/machinery/power/emitter/E in GLOB.machines) if(!isnull(E.id_tag) && E.frequency == parent.frequency) emitters|=E.id_tag if(emitters.len==0) diff --git a/code/modules/atmos_automation/implementation/injectors.dm b/code/modules/atmos_automation/implementation/injectors.dm index fee6cf1e33c..cc17dd27921 100644 --- a/code/modules/atmos_automation/implementation/injectors.dm +++ b/code/modules/atmos_automation/implementation/injectors.dm @@ -35,7 +35,7 @@ return 1 if(href_list["set_injector"]) var/list/injector_names=list() - for(var/obj/machinery/atmospherics/unary/outlet_injector/I in machines) + for(var/obj/machinery/atmospherics/unary/outlet_injector/I in GLOB.machines) if(!isnull(I.id_tag) && I.frequency == parent.frequency) injector_names|=I.id_tag injector = input("Select an injector:", "Sensor Data", injector) as null|anything in injector_names @@ -75,7 +75,7 @@ return 1 if(href_list["set_injector"]) var/list/injector_names=list() - for(var/obj/machinery/atmospherics/unary/outlet_injector/I in machines) + for(var/obj/machinery/atmospherics/unary/outlet_injector/I in GLOB.machines) if(!isnull(I.id_tag) && I.frequency == parent.frequency) injector_names|=I.id_tag injector = input("Select an injector:", "Sensor Data", injector) as null|anything in injector_names diff --git a/code/modules/atmos_automation/implementation/scrubbers.dm b/code/modules/atmos_automation/implementation/scrubbers.dm index 158ac1d835f..4188773a6a4 100644 --- a/code/modules/atmos_automation/implementation/scrubbers.dm +++ b/code/modules/atmos_automation/implementation/scrubbers.dm @@ -35,7 +35,7 @@ return 1 if(href_list["set_scrubber"]) var/list/injector_names=list() - for(var/obj/machinery/atmospherics/unary/vent_scrubber/S in machines) + for(var/obj/machinery/atmospherics/unary/vent_scrubber/S in GLOB.machines) if(!isnull(S.id_tag) && S.frequency == parent.frequency) injector_names|=S.id_tag scrubber = input("Select a scrubber:", "Scrubbers", scrubber) as null|anything in injector_names @@ -77,7 +77,7 @@ return 1 if(href_list["set_scrubber"]) var/list/injector_names=list() - for(var/obj/machinery/atmospherics/unary/vent_scrubber/S in machines) + for(var/obj/machinery/atmospherics/unary/vent_scrubber/S in GLOB.machines) if(!isnull(S.id_tag) && S.frequency == parent.frequency) injector_names|=S.id_tag scrubber = input("Select a scrubber:", "Scrubbers", scrubber) as null|anything in injector_names @@ -145,7 +145,7 @@ var/global/list/gas_labels=list( return 1 if(href_list["set_scrubber"]) var/list/injector_names=list() - for(var/obj/machinery/atmospherics/unary/vent_scrubber/S in machines) + for(var/obj/machinery/atmospherics/unary/vent_scrubber/S in GLOB.machines) if(!isnull(S.id_tag) && S.frequency == parent.frequency) injector_names|=S.id_tag scrubber = input("Select a scrubber:", "Scrubbers", scrubber) as null|anything in injector_names diff --git a/code/modules/atmos_automation/implementation/sensors.dm b/code/modules/atmos_automation/implementation/sensors.dm index 8b3b1ece5b5..487298aa266 100644 --- a/code/modules/atmos_automation/implementation/sensors.dm +++ b/code/modules/atmos_automation/implementation/sensors.dm @@ -45,10 +45,10 @@ return 1 if(href_list["set_sensor"]) var/list/sensor_list = list() - for(var/obj/machinery/air_sensor/G in machines) + for(var/obj/machinery/air_sensor/G in GLOB.machines) if(!isnull(G.id_tag) && G.frequency == parent.frequency) sensor_list|=G.id_tag - for(var/obj/machinery/meter/M in machines) + for(var/obj/machinery/meter/M in GLOB.machines) if(!isnull(M.id_tag) && M.frequency == parent.frequency) sensor_list|=M.id_tag sensor = input("Select a sensor:", "Sensor Data", field) as null|anything in sensor_list diff --git a/code/modules/atmos_automation/implementation/vent_pump.dm b/code/modules/atmos_automation/implementation/vent_pump.dm index 9a8949ccde2..71d728b316d 100644 --- a/code/modules/atmos_automation/implementation/vent_pump.dm +++ b/code/modules/atmos_automation/implementation/vent_pump.dm @@ -41,7 +41,7 @@ if(href_list["set_vent_pump"]) var/list/injector_names = list() if(!vent_type) - for(var/obj/machinery/atmospherics/unary/vent_pump/I in machines) + for(var/obj/machinery/atmospherics/unary/vent_pump/I in GLOB.machines) if(!isnull(I.id_tag) && I.frequency == parent.frequency) injector_names |= I.id_tag else @@ -98,7 +98,7 @@ if(href_list["set_vent_pump"]) var/list/injector_names=list() if(!mode) - for(var/obj/machinery/atmospherics/unary/vent_pump/I in machines) + for(var/obj/machinery/atmospherics/unary/vent_pump/I in GLOB.machines) if(!isnull(I.id_tag) && I.frequency == parent.frequency) injector_names|=I.id_tag else @@ -190,7 +190,7 @@ if(!isnull(I.id_tag) && I.frequency == parent.frequency) injector_names|=I.id_tag else - for(var/obj/machinery/atmospherics/unary/vent_pump/I in machines) + for(var/obj/machinery/atmospherics/unary/vent_pump/I in GLOB.machines) if(!isnull(I.id_tag) && I.frequency == parent.frequency) injector_names|=I.id_tag vent_pump = input("Select a vent:", "Vent Pumps", vent_pump) as null|anything in injector_names @@ -282,7 +282,7 @@ checks bitflags if(!isnull(I.id_tag) && I.frequency == parent.frequency) injector_names|=I.id_tag else - for(var/obj/machinery/atmospherics/unary/vent_pump/I in machines) + for(var/obj/machinery/atmospherics/unary/vent_pump/I in GLOB.machines) if(!isnull(I.id_tag) && I.frequency == parent.frequency) injector_names|=I.id_tag vent_pump = input("Select a vent:", "Vent Pumps", vent_pump) as null|anything in injector_names diff --git a/code/modules/awaymissions/mission_code/UO71-terrorspiders.dm b/code/modules/awaymissions/mission_code/UO71-terrorspiders.dm index e74da2a6628..0e9847cdf01 100644 --- a/code/modules/awaymissions/mission_code/UO71-terrorspiders.dm +++ b/code/modules/awaymissions/mission_code/UO71-terrorspiders.dm @@ -248,7 +248,7 @@ spawn(1) beenused = 1 var/unlocked_something = 0 - for(var/obj/machinery/door/poddoor/P in airlocks) + for(var/obj/machinery/door/poddoor/P in GLOB.airlocks) if(P.density && P.id_tag == door_to_open && P.z == z) P.open() unlocked_something = 1 diff --git a/code/modules/awaymissions/mission_code/wildwest.dm b/code/modules/awaymissions/mission_code/wildwest.dm index 9ebd1d88b6b..bc09b00240c 100644 --- a/code/modules/awaymissions/mission_code/wildwest.dm +++ b/code/modules/awaymissions/mission_code/wildwest.dm @@ -177,8 +177,8 @@ spawn(rand(800,1200)) if(C.stat == DEAD) - dead_mob_list -= C - living_mob_list += C + GLOB.dead_mob_list -= C + GLOB.living_mob_list += C C.stat = CONSCIOUS C.timeofdeath = 0 C.setToxLoss(0) @@ -237,7 +237,7 @@ to_chat(user, "The communicator buzzes, and you hear the voice again: 'Really? I think not. Get them!'") if(option_threat) to_chat(user, "The communicator buzzes, and you hear the voice again: 'Oh really now?' You hear a clicking sound. 'Team, get back here. We have trouble'. Then the line goes dead.") - for(var/obj/effect/landmark/L in landmarks_list) + for(var/obj/effect/landmark/L in GLOB.landmarks_list) if(L.name == "wildwest_syndipod") var/obj/spacepod/syndi/P = new /obj/spacepod/syndi(get_turf(L)) P.name = "Syndi Recon Pod" @@ -250,7 +250,7 @@ used = TRUE /obj/item/wildwest_communicator/proc/stand_down() - for(var/mob/living/simple_animal/hostile/syndicate/ranged/wildwest/W in living_mob_list) + for(var/mob/living/simple_animal/hostile/syndicate/ranged/wildwest/W in GLOB.living_mob_list) W.on_alert = FALSE /mob/living/simple_animal/hostile/syndicate/ranged/wildwest @@ -264,6 +264,6 @@ /mob/living/simple_animal/hostile/syndicate/ranged/wildwest/death(gibbed) if(!on_alert) say("How could you betray the Syndicate?") - for(var/mob/living/simple_animal/hostile/syndicate/ranged/wildwest/W in living_mob_list) + for(var/mob/living/simple_animal/hostile/syndicate/ranged/wildwest/W in GLOB.living_mob_list) W.on_alert = TRUE ..(gibbed) diff --git a/code/modules/awaymissions/zlevel.dm b/code/modules/awaymissions/zlevel.dm index c0bc96489b4..c617b90030f 100644 --- a/code/modules/awaymissions/zlevel.dm +++ b/code/modules/awaymissions/zlevel.dm @@ -59,7 +59,7 @@ var/global/list/potentialRandomZlevels = generateMapList(filename = "config/away space_manager.remove_dirt(zlev) log_world(" Away mission loaded: [map]") - for(var/obj/effect/landmark/L in landmarks_list) + for(var/obj/effect/landmark/L in GLOB.landmarks_list) if(L.name != "awaystart") continue awaydestinations.Add(L) @@ -92,7 +92,7 @@ var/global/list/potentialRandomZlevels = generateMapList(filename = "config/away //map_transition_config.Add(AWAY_MISSION_LIST) - for(var/obj/effect/landmark/L in landmarks_list) + for(var/obj/effect/landmark/L in GLOB.landmarks_list) if(L.name != "awaystart") continue awaydestinations.Add(L) diff --git a/code/modules/awaymissions/zvis.dm b/code/modules/awaymissions/zvis.dm index 4324377149d..03adaeda629 100644 --- a/code/modules/awaymissions/zvis.dm +++ b/code/modules/awaymissions/zvis.dm @@ -159,12 +159,12 @@ /obj/effect/view_portal/New() ..() - portals += src + GLOB.portals += src /obj/effect/view_portal/Initialize() ..() if(id) - for(var/obj/effect/view_portal/O in portals) + for(var/obj/effect/view_portal/O in GLOB.portals) if(id == O.id && O != src && can_link(O)) other = O O.other = src @@ -174,7 +174,7 @@ return /obj/effect/view_portal/Destroy() - portals -= src + GLOB.portals -= src return ..() /obj/effect/view_portal/proc/can_link(obj/effect/view_portal/P) diff --git a/code/modules/client/asset_cache.dm b/code/modules/client/asset_cache.dm index 0fe05e8ff92..4c595b23411 100644 --- a/code/modules/client/asset_cache.dm +++ b/code/modules/client/asset_cache.dm @@ -147,7 +147,7 @@ proc/getFilesSlow(var/client/client, var/list/files, var/register_asset = TRUE) var/datum/asset/A = new type() A.register() - for(var/client/C in clients) + for(var/client/C in GLOB.clients) //doing this to a client too soon after they've connected can cause issues, also the proc we call sleeps spawn(10) getFilesSlow(C, asset_cache, FALSE) diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index 99f7fa69746..bff5bd23ce4 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -306,13 +306,13 @@ to_chat(src, "If the title screen is black, resources are still downloading. Please be patient until the title screen appears.") - clients += src - directory[ckey] = src + GLOB.clients += src + GLOB.directory[ckey] = src //Admin Authorisation holder = admin_datums[ckey] if(holder) - admins += src + GLOB.admins += src holder.owner = src donator_check() @@ -392,9 +392,9 @@ /client/Del() if(holder) holder.owner = null - admins -= src - directory -= ckey - clients -= src + GLOB.admins -= src + GLOB.directory -= ckey + GLOB.clients -= src Master.UpdateTickRate() return ..() @@ -648,8 +648,8 @@ //For debugging purposes /client/proc/list_all_languages() - for(var/L in all_languages) - var/datum/language/lang = all_languages[L] + for(var/L in GLOB.all_languages) + var/datum/language/lang = GLOB.all_languages[L] var/message = "[lang.name] : [lang.type]" if(lang.flags & RESTRICTED) message += " (RESTRICTED)" diff --git a/code/modules/client/preference/preferences.dm b/code/modules/client/preference/preferences.dm index f3919c2ba27..4518e55a4da 100644 --- a/code/modules/client/preference/preferences.dm +++ b/code/modules/client/preference/preferences.dm @@ -321,7 +321,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts dat += "Hair: " dat += "[h_style]" dat += "Color [color_square(h_colour)]" - var/datum/sprite_accessory/temp_hair_style = hair_styles_public_list[h_style] + var/datum/sprite_accessory/temp_hair_style = GLOB.hair_styles_public_list[h_style] if(temp_hair_style && temp_hair_style.secondary_theme && !temp_hair_style.no_sec_colour) dat += " Color #2 [color_square(h_sec_colour)]" dat += "
" @@ -329,7 +329,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts dat += "Facial Hair: " dat += "[f_style ? "[f_style]" : "Shaved"]" dat += "Color [color_square(f_colour)]" - var/datum/sprite_accessory/temp_facial_hair_style = facial_hair_styles_list[f_style] + var/datum/sprite_accessory/temp_facial_hair_style = GLOB.facial_hair_styles_list[f_style] if(temp_facial_hair_style && temp_facial_hair_style.secondary_theme && !temp_facial_hair_style.no_sec_colour) dat += " Color #2 [color_square(f_sec_colour)]" dat += "
" @@ -1252,7 +1252,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if(S.bodyflags & HAS_SKIN_COLOR) s_colour = rand_hex_color() if("bag") - backbag = pick(backbaglist) + backbag = pick(GLOB.backbaglist) /*if("skin_style") h_style = random_skin_style(gender)*/ if("all") @@ -1281,14 +1281,14 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts // var/whitelisted = 0 if(config.usealienwhitelist) //If we're using the whitelist, make sure to check it! - for(var/Spec in whitelisted_species) + for(var/Spec in GLOB.whitelisted_species) if(is_alien_whitelisted(user,Spec)) new_species += Spec // whitelisted = 1 // if(!whitelisted) // alert(user, "You cannot change your species as you need to be whitelisted. If you wish to be whitelisted contact an admin in-game, on the forums, or on IRC.") else //Not using the whitelist? Aliens for everyone! - new_species += whitelisted_species + new_species += GLOB.whitelisted_species species = input("Please select a species", "Character Generation", null) in new_species var/datum/species/NS = GLOB.all_species[species] @@ -1334,15 +1334,15 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts m_colours["tail"] = "#000000" // Don't wear another species' underwear! - var/datum/sprite_accessory/SA = underwear_list[underwear] + var/datum/sprite_accessory/SA = GLOB.underwear_list[underwear] if(!SA || !(species in SA.species_allowed)) underwear = random_underwear(gender, species) - SA = undershirt_list[undershirt] + SA = GLOB.undershirt_list[undershirt] if(!SA || !(species in SA.species_allowed)) undershirt = random_undershirt(gender, species) - SA = socks_list[socks] + SA = GLOB.socks_list[socks] if(!SA || !(species in SA.species_allowed)) socks = random_socks(gender, species) @@ -1373,8 +1373,8 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts var/list/new_languages = list("None") /* if(config.usealienwhitelist) - for(var/L in all_languages) - var/datum/language/lang = all_languages[L] + for(var/L in GLOB.all_languages) + var/datum/language/lang = GLOB.all_languages[L] if((!(lang.flags & RESTRICTED)) && (is_alien_whitelisted(user, L)||(!( lang.flags & WHITELISTED )))) new_languages += lang languages_available = 1 @@ -1383,8 +1383,8 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts alert(user, "There are not currently any available secondary languages.") else */ - for(var/L in all_languages) - var/datum/language/lang = all_languages[L] + for(var/L in GLOB.all_languages) + var/datum/language/lang = GLOB.all_languages[L] if(!(lang.flags & RESTRICTED)) new_languages += lang.name @@ -1415,7 +1415,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if("secondary_hair") if(species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Vulpkanin", "Vox")) - var/datum/sprite_accessory/hair_style = hair_styles_public_list[h_style] + var/datum/sprite_accessory/hair_style = GLOB.hair_styles_public_list[h_style] if(hair_style.secondary_theme && !hair_style.no_sec_colour) var/new_hair = input(user, "Choose your character's secondary hair colour:", "Character Preference", h_sec_colour) as color|null if(new_hair) @@ -1423,8 +1423,8 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if("h_style") var/list/valid_hairstyles = list() - for(var/hairstyle in hair_styles_public_list) - var/datum/sprite_accessory/SA = hair_styles_public_list[hairstyle] + for(var/hairstyle in GLOB.hair_styles_public_list) + var/datum/sprite_accessory/SA = GLOB.hair_styles_public_list[hairstyle] if(hairstyle == "Bald") //Just in case. valid_hairstyles += hairstyle @@ -1460,8 +1460,8 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if("ha_style") if(S.bodyflags & HAS_HEAD_ACCESSORY) //Species with head accessories. var/list/valid_head_accessory_styles = list() - for(var/head_accessory_style in head_accessory_styles_list) - var/datum/sprite_accessory/H = head_accessory_styles_list[head_accessory_style] + for(var/head_accessory_style in GLOB.head_accessory_styles_list) + var/datum/sprite_accessory/H = GLOB.head_accessory_styles_list[head_accessory_style] if(!(species in H.species_allowed)) continue @@ -1476,9 +1476,9 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts return if(S.bodyflags & HAS_ALT_HEADS) //Species with alt heads. var/list/valid_alt_heads = list() - valid_alt_heads["None"] = alt_heads_list["None"] //The only null entry should be the "None" option - for(var/alternate_head in alt_heads_list) - var/datum/sprite_accessory/alt_heads/head = alt_heads_list[alternate_head] + valid_alt_heads["None"] = GLOB.alt_heads_list["None"] //The only null entry should be the "None" option + for(var/alternate_head in GLOB.alt_heads_list) + var/datum/sprite_accessory/alt_heads/head = GLOB.alt_heads_list[alternate_head] if(!(species in head.species_allowed)) continue @@ -1489,16 +1489,16 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts alt_head = new_alt_head if(m_styles["head"]) var/head_marking = m_styles["head"] - var/datum/sprite_accessory/body_markings/head/head_marking_style = marking_styles_list[head_marking] + var/datum/sprite_accessory/body_markings/head/head_marking_style = GLOB.marking_styles_list[head_marking] if(!head_marking_style.heads_allowed || (!("All" in head_marking_style.heads_allowed) && !(alt_head in head_marking_style.heads_allowed))) m_styles["head"] = "None" if("m_style_head") if(S.bodyflags & HAS_HEAD_MARKINGS) //Species with head markings. var/list/valid_markings = list() - valid_markings["None"] = marking_styles_list["None"] - for(var/markingstyle in marking_styles_list) - var/datum/sprite_accessory/body_markings/head/M = marking_styles_list[markingstyle] + valid_markings["None"] = GLOB.marking_styles_list["None"] + for(var/markingstyle in GLOB.marking_styles_list) + var/datum/sprite_accessory/body_markings/head/M = GLOB.marking_styles_list[markingstyle] if(!(species in M.species_allowed)) continue if(M.marking_location != "head") @@ -1539,9 +1539,9 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if("m_style_body") if(S.bodyflags & HAS_BODY_MARKINGS) //Species with body markings/tattoos. var/list/valid_markings = list() - valid_markings["None"] = marking_styles_list["None"] - for(var/markingstyle in marking_styles_list) - var/datum/sprite_accessory/M = marking_styles_list[markingstyle] + valid_markings["None"] = GLOB.marking_styles_list["None"] + for(var/markingstyle in GLOB.marking_styles_list) + var/datum/sprite_accessory/M = GLOB.marking_styles_list[markingstyle] if(!(species in M.species_allowed)) continue if(M.marking_location != "body") @@ -1563,9 +1563,9 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if("m_style_tail") if(S.bodyflags & HAS_TAIL_MARKINGS) //Species with tail markings. var/list/valid_markings = list() - valid_markings["None"] = marking_styles_list["None"] - for(var/markingstyle in marking_styles_list) - var/datum/sprite_accessory/body_markings/tail/M = marking_styles_list[markingstyle] + valid_markings["None"] = GLOB.marking_styles_list["None"] + for(var/markingstyle in GLOB.marking_styles_list) + var/datum/sprite_accessory/body_markings/tail/M = GLOB.marking_styles_list[markingstyle] if(M.marking_location != "tail") continue if(!(species in M.species_allowed)) @@ -1616,7 +1616,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if("secondary_facial") if(species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Vulpkanin", "Vox")) - var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[f_style] + var/datum/sprite_accessory/facial_hair_style = GLOB.facial_hair_styles_list[f_style] if(facial_hair_style.secondary_theme && !facial_hair_style.no_sec_colour) var/new_facial = input(user, "Choose your character's secondary facial-hair colour:", "Character Preference", f_sec_colour) as color|null if(new_facial) @@ -1624,8 +1624,8 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if("f_style") var/list/valid_facial_hairstyles = list() - for(var/facialhairstyle in facial_hair_styles_list) - var/datum/sprite_accessory/SA = facial_hair_styles_list[facialhairstyle] + for(var/facialhairstyle in GLOB.facial_hair_styles_list) + var/datum/sprite_accessory/SA = GLOB.facial_hair_styles_list[facialhairstyle] if(facialhairstyle == "Shaved") //Just in case. valid_facial_hairstyles += facialhairstyle @@ -1657,30 +1657,30 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if("underwear") var/list/valid_underwear = list() - for(var/underwear in underwear_list) - var/datum/sprite_accessory/SA = underwear_list[underwear] + for(var/underwear in GLOB.underwear_list) + var/datum/sprite_accessory/SA = GLOB.underwear_list[underwear] if(gender == MALE && SA.gender == FEMALE) continue if(gender == FEMALE && SA.gender == MALE) continue if(!(species in SA.species_allowed)) continue - valid_underwear[underwear] = underwear_list[underwear] + valid_underwear[underwear] = GLOB.underwear_list[underwear] var/new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in valid_underwear ShowChoices(user) if(new_underwear) underwear = new_underwear if("undershirt") var/list/valid_undershirts = list() - for(var/undershirt in undershirt_list) - var/datum/sprite_accessory/SA = undershirt_list[undershirt] + for(var/undershirt in GLOB.undershirt_list) + var/datum/sprite_accessory/SA = GLOB.undershirt_list[undershirt] if(gender == MALE && SA.gender == FEMALE) continue if(gender == FEMALE && SA.gender == MALE) continue if(!(species in SA.species_allowed)) continue - valid_undershirts[undershirt] = undershirt_list[undershirt] + valid_undershirts[undershirt] = GLOB.undershirt_list[undershirt] var/new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in valid_undershirts ShowChoices(user) if(new_undershirt) @@ -1688,15 +1688,15 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if("socks") var/list/valid_sockstyles = list() - for(var/sockstyle in socks_list) - var/datum/sprite_accessory/SA = socks_list[sockstyle] + for(var/sockstyle in GLOB.socks_list) + var/datum/sprite_accessory/SA = GLOB.socks_list[sockstyle] if(gender == MALE && SA.gender == FEMALE) continue if(gender == FEMALE && SA.gender == MALE) continue if(!(species in SA.species_allowed)) continue - valid_sockstyles[sockstyle] = socks_list[sockstyle] + valid_sockstyles[sockstyle] = GLOB.socks_list[sockstyle] var/new_socks = input(user, "Choose your character's socks:", "Character Preference") as null|anything in valid_sockstyles ShowChoices(user) if(new_socks) @@ -1738,7 +1738,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts ooccolor = new_ooccolor if("bag") - var/new_backbag = input(user, "Choose your character's style of bag:", "Character Preference") as null|anything in backbaglist + var/new_backbag = input(user, "Choose your character's style of bag:", "Character Preference") as null|anything in GLOB.backbaglist if(new_backbag) backbag = new_backbag @@ -1816,8 +1816,8 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if("Normal") if(limb == "head") m_styles["head"] = "None" - h_style = hair_styles_public_list["Bald"] - f_style = facial_hair_styles_list["Shaved"] + h_style = GLOB.hair_styles_public_list["Bald"] + f_style = GLOB.facial_hair_styles_list["Shaved"] organ_data[limb] = null rlimb_data[limb] = null if(third_limb) @@ -1867,8 +1867,8 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if(limb == "head") ha_style = "None" alt_head = null - h_style = hair_styles_public_list["Bald"] - f_style = facial_hair_styles_list["Shaved"] + h_style = GLOB.hair_styles_public_list["Bald"] + f_style = GLOB.facial_hair_styles_list["Shaved"] m_styles["head"] = "None" rlimb_data[limb] = choice organ_data[limb] = "cyborg" @@ -2092,9 +2092,9 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts var/firstspace = findtext(real_name, " ") var/name_length = length(real_name) if(!firstspace) //we need a surname - real_name += " [pick(last_names)]" + real_name += " [pick(GLOB.last_names)]" else if(firstspace == name_length) - real_name += "[pick(last_names)]" + real_name += "[pick(GLOB.last_names)]" character.add_language(language) diff --git a/code/modules/client/preference/preferences_mysql.dm b/code/modules/client/preference/preferences_mysql.dm index 318cf8fb0bb..086040b5595 100644 --- a/code/modules/client/preference/preferences_mysql.dm +++ b/code/modules/client/preference/preferences_mysql.dm @@ -272,12 +272,12 @@ for(var/marking_location in m_colours) m_colours[marking_location] = sanitize_hexcolor(m_colours[marking_location], DEFAULT_MARKING_COLOURS[marking_location]) hacc_colour = sanitize_hexcolor(hacc_colour) - h_style = sanitize_inlist(h_style, hair_styles_public_list, initial(h_style)) - f_style = sanitize_inlist(f_style, facial_hair_styles_list, initial(f_style)) + h_style = sanitize_inlist(h_style, GLOB.hair_styles_public_list, initial(h_style)) + f_style = sanitize_inlist(f_style, GLOB.facial_hair_styles_list, initial(f_style)) for(var/marking_location in m_styles) - m_styles[marking_location] = sanitize_inlist(m_styles[marking_location], marking_styles_list, DEFAULT_MARKING_STYLES[marking_location]) - ha_style = sanitize_inlist(ha_style, head_accessory_styles_list, initial(ha_style)) - alt_head = sanitize_inlist(alt_head, alt_heads_list, initial(alt_head)) + m_styles[marking_location] = sanitize_inlist(m_styles[marking_location], GLOB.marking_styles_list, DEFAULT_MARKING_STYLES[marking_location]) + ha_style = sanitize_inlist(ha_style, GLOB.head_accessory_styles_list, initial(ha_style)) + alt_head = sanitize_inlist(alt_head, GLOB.alt_heads_list, initial(alt_head)) e_colour = sanitize_hexcolor(e_colour) underwear = sanitize_text(underwear, initial(underwear)) undershirt = sanitize_text(undershirt, initial(undershirt)) diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 968d12d9baf..d2e7d7687bb 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -247,7 +247,7 @@ var/image/I = image(icon = 'icons/mob/robots.dmi' , icon_state = "robot", loc = H) I.override = 1 I.overlays += image(icon = 'icons/mob/robots.dmi' , icon_state = "eyes-robot") //gotta look realistic - H.add_alt_appearance("standard_borg_disguise", I, silicon_mob_list+H) //you look like a robot to robots! (including yourself because you're totally a robot) + H.add_alt_appearance("standard_borg_disguise", I, GLOB.silicon_mob_list+H) //you look like a robot to robots! (including yourself because you're totally a robot) /obj/item/clothing/suit/snowman name = "snowman outfit" diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm index 7b6b85326c3..08c7c403ff5 100644 --- a/code/modules/clothing/under/color.dm +++ b/code/modules/clothing/under/color.dm @@ -61,7 +61,7 @@ desc = "A terribly ragged and frayed grey jumpsuit. It looks like it hasn't been washed in over a decade." /obj/item/clothing/under/color/grey/glorf/hit_reaction(mob/living/carbon/human/owner) - owner.forcesay(hit_appends) + owner.forcesay(GLOB.hit_appends) return 0 /obj/item/clothing/under/color/orange diff --git a/code/modules/countdown/countdown.dm b/code/modules/countdown/countdown.dm index 54ec874c743..d860ba9c4cd 100644 --- a/code/modules/countdown/countdown.dm +++ b/code/modules/countdown/countdown.dm @@ -28,13 +28,13 @@ /obj/effect/countdown/proc/start() if(!started) - fast_processing += src + GLOB.fast_processing += src started = TRUE /obj/effect/countdown/proc/stop() if(started) maptext = null - fast_processing -= src + GLOB.fast_processing -= src started = FALSE /obj/effect/countdown/proc/get_value() @@ -57,7 +57,7 @@ /obj/effect/countdown/Destroy() attached_to = null - fast_processing -= src + GLOB.fast_processing -= src return ..() /obj/effect/countdown/ex_act(severity) //immune to explosions diff --git a/code/modules/crafting/craft.dm b/code/modules/crafting/craft.dm index fe8e84163e3..37fa041af77 100644 --- a/code/modules/crafting/craft.dm +++ b/code/modules/crafting/craft.dm @@ -252,7 +252,7 @@ var/list/surroundings = get_surroundings(user) var/list/can_craft = list() var/list/cant_craft = list() - for(var/rec in crafting_recipes) + for(var/rec in GLOB.crafting_recipes) var/datum/crafting_recipe/R = rec if(R.category != cur_category) continue diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm index 048e643aa3c..dc3748bc8fc 100644 --- a/code/modules/customitems/item_defines.dm +++ b/code/modules/customitems/item_defines.dm @@ -53,7 +53,7 @@ to_chat(user, "[target] already has body markings, any more would look silly!") return - var/datum/sprite_accessory/body_markings/tattoo/temp_tatt = marking_styles_list[tattoo_icon] + var/datum/sprite_accessory/body_markings/tattoo/temp_tatt = GLOB.marking_styles_list[tattoo_icon] if(!(target.dna.species.name in temp_tatt.species_allowed)) to_chat(user, "You can't think of a way to make the [tattoo_name] design work on [target == user ? "your" : "[target]'s"] body type.") return diff --git a/code/modules/economy/ATM.dm b/code/modules/economy/ATM.dm index e43797ef9dd..595eace858e 100644 --- a/code/modules/economy/ATM.dm +++ b/code/modules/economy/ATM.dm @@ -74,7 +74,7 @@ log transactions authenticated_account.charge(-cash_amount, null, "Credit deposit", terminal_id = machine_id, dest_name = "Terminal") /obj/machinery/atm/proc/reconnect_database() - for(var/obj/machinery/computer/account_database/DB in machines) + for(var/obj/machinery/computer/account_database/DB in GLOB.machines) if(DB.z == z && !(DB.stat & NOPOWER) && DB.activated) linked_db = DB break diff --git a/code/modules/economy/Accounts.dm b/code/modules/economy/Accounts.dm index f1f283fe56a..6001cf3f84e 100644 --- a/code/modules/economy/Accounts.dm +++ b/code/modules/economy/Accounts.dm @@ -65,7 +65,7 @@ var/global/list/all_money_accounts = list() T.amount = starting_funds if(!source_db) //set a random date, time and location some time over the past few decades - T.date = "[num2text(rand(1,31))] [pick(month_names)], [rand(game_year - 20,game_year - 1)]" + T.date = "[num2text(rand(1,31))] [pick(GLOB.month_names)], [rand(game_year - 20,game_year - 1)]" T.time = "[rand(0,23)]:[rand(0,59)]:[rand(0,59)]" T.source_terminal = "NTGalaxyNet Terminal #[rand(111,1111)]" diff --git a/code/modules/economy/EFTPOS.dm b/code/modules/economy/EFTPOS.dm index b636a96e2aa..f9bb22fcda4 100644 --- a/code/modules/economy/EFTPOS.dm +++ b/code/modules/economy/EFTPOS.dm @@ -49,7 +49,7 @@ if(!location) return - for(var/obj/machinery/computer/account_database/DB in machines) + for(var/obj/machinery/computer/account_database/DB in GLOB.machines) if(DB.z == location.z) linked_db = DB break diff --git a/code/modules/economy/Economy_Events_Mundane.dm b/code/modules/economy/Economy_Events_Mundane.dm index 6d408af2901..1b5467a3a1c 100644 --- a/code/modules/economy/Economy_Events_Mundane.dm +++ b/code/modules/economy/Economy_Events_Mundane.dm @@ -109,9 +109,9 @@ newMsg.body += "and their partner announced the birth of their [pick("first","second","third")] child on [affected_dest.name] early this morning. \ Doctors say the child is well, and the parents are considering " if(prob(50)) - newMsg.body += capitalize(pick(first_names_female)) + newMsg.body += capitalize(pick(GLOB.first_names_female)) else - newMsg.body += capitalize(pick(first_names_male)) + newMsg.body += capitalize(pick(GLOB.first_names_male)) newMsg.body += " for the name." else if(prob(50)) newMsg.body += "announced their [pick("split","break up","marriage","engagement")] with [pick("TV host","webcast personality","superstar","model","actor","singer")] \ diff --git a/code/modules/events/alien_infestation.dm b/code/modules/events/alien_infestation.dm index 288fbe3f809..7e4473cb0d2 100644 --- a/code/modules/events/alien_infestation.dm +++ b/code/modules/events/alien_infestation.dm @@ -24,7 +24,7 @@ var/obj/vent = pick_n_take(vents) var/mob/C = pick_n_take(candidates) if(C) - respawnable_list -= C.client + GLOB.respawnable_list -= C.client var/mob/living/carbon/alien/larva/new_xeno = new(vent.loc) new_xeno.key = C.key if(ticker && ticker.mode) diff --git a/code/modules/events/aurora_caelus.dm b/code/modules/events/aurora_caelus.dm index 6cf5e1b1ce7..dfdb503cc54 100644 --- a/code/modules/events/aurora_caelus.dm +++ b/code/modules/events/aurora_caelus.dm @@ -11,7 +11,7 @@ Nanotrasen has approved a short break for all employees to relax and observe thi During this time, starlight will be bright but gentle, shifting between quiet green and blue colors. \ Any staff who would like to view these lights for themselves may proceed to the area nearest to them with viewing ports to open space. \ We hope you enjoy the lights.", "Harmless ions approaching", new_sound = 'sound/misc/notice2.ogg', from = "Nanotrasen Meteorology Division") - for(var/V in player_list) + for(var/V in GLOB.player_list) var/mob/M = V if((M.client.prefs.toggles & SOUND_MIDI) && is_station_level(M.z)) M.playsound_local(null, 'sound/ambience/aurora_caelus.ogg', 20, FALSE, pressure_affected = FALSE) diff --git a/code/modules/events/blob.dm b/code/modules/events/blob.dm index a482642f023..7ea71547123 100644 --- a/code/modules/events/blob.dm +++ b/code/modules/events/blob.dm @@ -13,7 +13,7 @@ if(!candidates.len) return kill() var/list/vents = list() - for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in all_vent_pumps) + for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in GLOB.all_vent_pumps) if(is_station_level(temp_vent.loc.z) && !temp_vent.welded) if(temp_vent.parent.other_atmosmch.len > 50) vents += temp_vent diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm index f687f33803d..eef486ee5cd 100644 --- a/code/modules/events/brand_intelligence.dm +++ b/code/modules/events/brand_intelligence.dm @@ -17,7 +17,7 @@ event_announcement.Announce("Rampant brand intelligence has been detected aboard [station_name()], please stand-by. The origin is believed to be \a [originMachine.name].", "Machine Learning Alert") /datum/event/brand_intelligence/start() - for(var/obj/machinery/vending/V in machines) + for(var/obj/machinery/vending/V in GLOB.machines) if(!is_station_level(V.z)) continue vendingMachines.Add(V) diff --git a/code/modules/events/carp_migration.dm b/code/modules/events/carp_migration.dm index cd9b0c02206..215deea4d9f 100644 --- a/code/modules/events/carp_migration.dm +++ b/code/modules/events/carp_migration.dm @@ -23,7 +23,7 @@ /datum/event/carp_migration/start() if(severity == EVENT_LEVEL_MAJOR) - spawn_fish(landmarks_list.len) + spawn_fish(GLOB.landmarks_list.len) else if(severity == EVENT_LEVEL_MODERATE) spawn_fish(rand(4, 6)) //12 to 30 carp, in small groups else @@ -32,7 +32,7 @@ /datum/event/carp_migration/proc/spawn_fish(var/num_groups, var/group_size_min=3, var/group_size_max=5) var/list/spawn_locations = list() - for(var/obj/effect/landmark/C in landmarks_list) + for(var/obj/effect/landmark/C in GLOB.landmarks_list) if(C.name == "carpspawn") spawn_locations.Add(C.loc) spawn_locations = shuffle(spawn_locations) diff --git a/code/modules/events/communications_blackout.dm b/code/modules/events/communications_blackout.dm index 1b499027150..58fc9af56a3 100644 --- a/code/modules/events/communications_blackout.dm +++ b/code/modules/events/communications_blackout.dm @@ -6,7 +6,7 @@ "Ionospheri:%? MCayj^j<.3-BZZZZZZT", \ "#4nd%;f4y6,>?%-BZZZZZZZT") - for(var/mob/living/silicon/ai/A in player_list) //AIs are always aware of communication blackouts. + for(var/mob/living/silicon/ai/A in GLOB.player_list) //AIs are always aware of communication blackouts. to_chat(A, "
") to_chat(A, "[alert]") to_chat(A, "
") @@ -22,7 +22,7 @@ if(!silent) event_announcement.Announce("Ionospheric anomalies detected. Temporary telecommunication failure imminent. Please contact you-BZZT", new_sound = 'sound/misc/interference.ogg') else // AIs will always know if there's a comm blackout, rogue AIs could then lie about comm blackouts in the future while they shutdown comms - for(var/mob/living/silicon/ai/A in player_list) + for(var/mob/living/silicon/ai/A in GLOB.player_list) to_chat(A, "
") to_chat(A, "Ionospheric anomalies detected. Temporary telecommunication failure imminent. Please contact you-BZZT") to_chat(A, "
") diff --git a/code/modules/events/disease_outbreak.dm b/code/modules/events/disease_outbreak.dm index 87836f217b8..e42030b6622 100644 --- a/code/modules/events/disease_outbreak.dm +++ b/code/modules/events/disease_outbreak.dm @@ -13,7 +13,7 @@ if(!virus_type) virus_type = pick(/datum/disease/advance/flu, /datum/disease/advance/cold, /datum/disease/brainrot, /datum/disease/magnitis, /datum/disease/beesease, /datum/disease/anxiety, /datum/disease/fake_gbs, /datum/disease/fluspanish, /datum/disease/pierrot_throat, /datum/disease/lycan) - for(var/mob/living/carbon/human/H in shuffle(living_mob_list)) + for(var/mob/living/carbon/human/H in shuffle(GLOB.living_mob_list)) if(issmall(H)) //don't infect monkies; that's a waste continue if(!H.client) diff --git a/code/modules/events/electrical_storm.dm b/code/modules/events/electrical_storm.dm index 94ef81ceee5..7eb95454250 100644 --- a/code/modules/events/electrical_storm.dm +++ b/code/modules/events/electrical_storm.dm @@ -10,7 +10,7 @@ for(var/i=1, i <= lightsoutAmount, i++) var/list/possibleEpicentres = list() - for(var/obj/effect/landmark/newEpicentre in landmarks_list) + for(var/obj/effect/landmark/newEpicentre in GLOB.landmarks_list) if(newEpicentre.name == "lightsout" && !(newEpicentre in epicentreList)) possibleEpicentres += newEpicentre if(possibleEpicentres.len) diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm index 888e2b38dd1..0a99ed6fd14 100644 --- a/code/modules/events/event_container.dm +++ b/code/modules/events/event_container.dm @@ -92,7 +92,7 @@ var/list/event_last_fired = list() // Otherwise, follow the standard setup process else var/playercount_modifier = 1 - switch(player_list.len) + switch(GLOB.player_list.len) if(0 to 10) playercount_modifier = 1.2 if(11 to 15) diff --git a/code/modules/events/event_manager.dm b/code/modules/events/event_manager.dm index 6b230e48e09..1545ddbbdf0 100644 --- a/code/modules/events/event_manager.dm +++ b/code/modules/events/event_manager.dm @@ -355,7 +355,7 @@ /datum/event/proc/num_players() var/players = 0 - for(var/mob/living/carbon/human/P in player_list) + for(var/mob/living/carbon/human/P in GLOB.player_list) if(P.client) players++ return players @@ -373,9 +373,9 @@ active_with_role["Cyborg"] = 0 active_with_role["Janitor"] = 0 active_with_role["Botanist"] = 0 - active_with_role["Any"] = player_list.len + active_with_role["Any"] = GLOB.player_list.len - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(!M.mind || !M.client || M.client.inactivity > 10 * 10 * 60) // longer than 10 minutes AFK counts them as inactive continue diff --git a/code/modules/events/grid_check.dm b/code/modules/events/grid_check.dm index c0b16ab43a6..8c099f22a91 100644 --- a/code/modules/events/grid_check.dm +++ b/code/modules/events/grid_check.dm @@ -20,7 +20,7 @@ var/list/skipped_areas = list(/area/turret_protected/ai) var/list/skipped_areas_apc = list(/area/engine/engineering) - for(var/obj/machinery/power/smes/S in machines) + for(var/obj/machinery/power/smes/S in GLOB.machines) var/area/current_area = get_area(S) if((current_area.type in skipped_areas) || !is_station_level(S.z)) continue @@ -33,7 +33,7 @@ S.update_icon() S.power_change() - for(var/obj/machinery/power/apc/C in apcs) + for(var/obj/machinery/power/apc/C in GLOB.apcs) var/area/current_area = get_area(C) if((current_area.type in skipped_areas_apc) || !is_station_level(C.z)) continue @@ -46,13 +46,13 @@ if(announce) event_announcement.Announce("Power has been restored to [station_name()]. We apologize for the inconvenience.", "Power Systems Nominal", new_sound = 'sound/AI/poweron.ogg') - for(var/obj/machinery/power/apc/C in apcs) + for(var/obj/machinery/power/apc/C in GLOB.apcs) var/area/current_area = get_area(C) if((current_area.type in skipped_areas_apc) || !is_station_level(C.z)) continue if(C.cell) C.cell.charge = C.cell.maxcharge - for(var/obj/machinery/power/smes/S in machines) + for(var/obj/machinery/power/smes/S in GLOB.machines) var/area/current_area = get_area(S) if((current_area.type in skipped_areas) || !is_station_level(S.z)) continue @@ -65,7 +65,7 @@ /proc/power_restore_quick(var/announce = 1) if(announce) event_announcement.Announce("All SMESs on [station_name()] have been recharged. We apologize for the inconvenience.", "Power Systems Nominal", new_sound = 'sound/AI/poweron.ogg') - for(var/obj/machinery/power/smes/S in machines) + for(var/obj/machinery/power/smes/S in GLOB.machines) if(!is_station_level(S.z)) continue S.charge = S.capacity diff --git a/code/modules/events/holidays/Christmas.dm b/code/modules/events/holidays/Christmas.dm index d622fcde28f..e04471482a5 100644 --- a/code/modules/events/holidays/Christmas.dm +++ b/code/modules/events/holidays/Christmas.dm @@ -4,7 +4,7 @@ for(var/turf/simulated/floor/T in orange(1,xmas)) for(var/i=1,i<=rand(1,5),i++) new /obj/item/a_gift(T) - for(var/mob/living/simple_animal/corgi/Ian/Ian in mob_list) + for(var/mob/living/simple_animal/corgi/Ian/Ian in GLOB.mob_list) Ian.place_on_head(new /obj/item/clothing/head/helmet/space/santahat(Ian)) /proc/ChristmasEvent() diff --git a/code/modules/events/immovable_rod.dm b/code/modules/events/immovable_rod.dm index d11ffa2ba78..1a6ac2d7706 100644 --- a/code/modules/events/immovable_rod.dm +++ b/code/modules/events/immovable_rod.dm @@ -41,7 +41,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 notify_ghosts("\A [src] is inbound!", enter_link="(Click to follow)", source=src, action=NOTIFY_FOLLOW) - poi_list |= src + GLOB.poi_list |= src if(end && end.z==z_original) walk_towards(src, destination, move_delay) @@ -52,7 +52,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 ghost.ManualFollow(src) /obj/effect/immovablerod/Destroy() - poi_list.Remove(src) + GLOB.poi_list.Remove(src) return ..() /obj/effect/immovablerod/ex_act(test) diff --git a/code/modules/events/ion_storm.dm b/code/modules/events/ion_storm.dm index a66dcd66d0e..7441abc79ba 100644 --- a/code/modules/events/ion_storm.dm +++ b/code/modules/events/ion_storm.dm @@ -22,7 +22,7 @@ /datum/event/ion_storm/start() //AI laws - for(var/mob/living/silicon/ai/M in living_mob_list) + for(var/mob/living/silicon/ai/M in GLOB.living_mob_list) if(M.stat != 2 && M.see_in_dark != 0) var/message = generate_ion_law(ionMessage) if(message) @@ -32,7 +32,7 @@ to_chat(M, "
") if(botEmagChance) - for(var/mob/living/simple_animal/bot/bot in machines) + for(var/mob/living/simple_animal/bot/bot in GLOB.machines) if(prob(botEmagChance)) bot.emag_act() @@ -492,7 +492,7 @@ /proc/generate_static_ion_law() /var/list/players = list() - for(var/mob/living/carbon/human/player in player_list) + for(var/mob/living/carbon/human/player in GLOB.player_list) if( !player.mind || player.mind.assigned_role == player.mind.special_role || player.client.inactivity > MinutesToTicks(10)) continue players += player.real_name diff --git a/code/modules/events/koi_mirgration.dm b/code/modules/events/koi_mirgration.dm index 868457721b2..cd82f54e37d 100644 --- a/code/modules/events/koi_mirgration.dm +++ b/code/modules/events/koi_mirgration.dm @@ -6,4 +6,4 @@ /datum/event/carp_migration/koi/start() - spawn_fish(landmarks_list.len) \ No newline at end of file + spawn_fish(GLOB.landmarks_list.len) \ No newline at end of file diff --git a/code/modules/events/mass_hallucination.dm b/code/modules/events/mass_hallucination.dm index 321a8135150..5b2554faf15 100644 --- a/code/modules/events/mass_hallucination.dm +++ b/code/modules/events/mass_hallucination.dm @@ -2,7 +2,7 @@ announceWhen = rand(0, 20) /datum/event/mass_hallucination/start() - for(var/mob/living/carbon/human/H in living_mob_list) + for(var/mob/living/carbon/human/H in GLOB.living_mob_list) var/armor = H.getarmor(type = "rad") if((RADIMMUNE in H.dna.species.species_traits) || armor >= 75) // Leave radiation-immune species/rad armored players completely unaffected continue diff --git a/code/modules/events/money_spam.dm b/code/modules/events/money_spam.dm index 03090ede045..d60d120c236 100644 --- a/code/modules/events/money_spam.dm +++ b/code/modules/events/money_spam.dm @@ -52,7 +52,7 @@ if(2) sender = pick(300;"QuickDatingSystem",200;"Find your russian bride",50;"Tajaran beauties are waiting",50;"Find your secret skrell crush",50;"Beautiful unathi brides") message = pick("Your profile caught my attention and I wanted to write and say hello (QuickDating).",\ - "If you will write to me on my email [pick(first_names_female)]@[pick(last_names)].[pick("ru","ck","tj","ur","nt")] I shall necessarily send you a photo (QuickDating).",\ + "If you will write to me on my email [pick(GLOB.first_names_female)]@[pick(GLOB.last_names)].[pick("ru","ck","tj","ur","nt")] I shall necessarily send you a photo (QuickDating).",\ "I want that we write each other and I hope, that you will like my profile and you will answer me (QuickDating).",\ "You have (1) new message!",\ "You have (2) new profile views!") @@ -98,7 +98,7 @@ last_spam_time = world.time if(prob(50)) //Give the AI an increased chance to intercept the message - for(var/mob/living/silicon/ai/ai in mob_list) + for(var/mob/living/silicon/ai/ai in GLOB.mob_list) // Allows other AIs to intercept the message but the AI won't intercept their own message. if(ai.aiPDA != P && ai.aiPDA != src) ai.show_message("Intercepted message from [sender] (Unknown / spam?) to [P:owner]: [message]") diff --git a/code/modules/events/prison_break.dm b/code/modules/events/prison_break.dm index 2ea618acd32..4d71cbc8b8e 100644 --- a/code/modules/events/prison_break.dm +++ b/code/modules/events/prison_break.dm @@ -49,7 +49,7 @@ var/rc_message = "An unknown malicious program has been detected in the [english_list(areaName)] lighting and airlock control systems at [station_time_timestamp()]. Systems will be fully compromised within approximately three minutes. Direct intervention is required immediately.
" for(var/obj/machinery/message_server/MS in world) MS.send_rc_message("Engineering", my_department, rc_message, "", "", 2) - for(var/mob/living/silicon/ai/A in player_list) + for(var/mob/living/silicon/ai/A in GLOB.player_list) to_chat(A, "Malicious program detected in the [english_list(areaName)] lighting and airlock control systems by [my_department].") else diff --git a/code/modules/events/rogue_drones.dm b/code/modules/events/rogue_drones.dm index 6be28375305..c4f1f8ac40a 100644 --- a/code/modules/events/rogue_drones.dm +++ b/code/modules/events/rogue_drones.dm @@ -6,7 +6,7 @@ /datum/event/rogue_drone/start() //spawn them at the same place as carp var/list/possible_spawns = list() - for(var/obj/effect/landmark/C in landmarks_list) + for(var/obj/effect/landmark/C in GLOB.landmarks_list) if(C.name == "carpspawn") possible_spawns.Add(C) diff --git a/code/modules/events/sentience.dm b/code/modules/events/sentience.dm index cfa0d24d98e..ed44453adf7 100644 --- a/code/modules/events/sentience.dm +++ b/code/modules/events/sentience.dm @@ -6,11 +6,11 @@ var/list/potential = list() var/sentience_type = SENTIENCE_ORGANIC - for(var/mob/living/simple_animal/L in living_mob_list) + for(var/mob/living/simple_animal/L in GLOB.living_mob_list) var/turf/T = get_turf(L) if (T.z != 1) continue - if(!(L in player_list) && !L.mind && (L.sentience_type == sentience_type)) + if(!(L in GLOB.player_list) && !L.mind && (L.sentience_type == sentience_type)) potential += L var/mob/living/simple_animal/SA = pick(potential) diff --git a/code/modules/events/slaughterevent.dm b/code/modules/events/slaughterevent.dm index f46ebcfd605..cbd81f52315 100644 --- a/code/modules/events/slaughterevent.dm +++ b/code/modules/events/slaughterevent.dm @@ -16,13 +16,13 @@ var/datum/mind/player_mind = new /datum/mind(key_of_slaughter) player_mind.active = 1 var/list/spawn_locs = list() - for(var/obj/effect/landmark/L in landmarks_list) + for(var/obj/effect/landmark/L in GLOB.landmarks_list) if(isturf(L.loc)) switch(L.name) if("revenantspawn") spawn_locs += L.loc if(!spawn_locs) //If we can't find any revenant spawns, try the carp spawns - for(var/obj/effect/landmark/L in landmarks_list) + for(var/obj/effect/landmark/L in GLOB.landmarks_list) if(isturf(L.loc)) switch(L.name) if("carpspawn") diff --git a/code/modules/events/spider_terror.dm b/code/modules/events/spider_terror.dm index c956d2fa551..413d27dcbc9 100644 --- a/code/modules/events/spider_terror.dm +++ b/code/modules/events/spider_terror.dm @@ -13,7 +13,7 @@ /datum/event/spider_terror/start() var/list/vents = list() - for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in all_vent_pumps) + for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in GLOB.all_vent_pumps) if(is_station_level(temp_vent.loc.z) && !temp_vent.welded) if(temp_vent.parent.other_atmosmch.len > 50) vents += temp_vent diff --git a/code/modules/events/spontaneous_appendicitis.dm b/code/modules/events/spontaneous_appendicitis.dm index 237db170612..fb9c146d7cd 100644 --- a/code/modules/events/spontaneous_appendicitis.dm +++ b/code/modules/events/spontaneous_appendicitis.dm @@ -1,5 +1,5 @@ /datum/event/spontaneous_appendicitis/start() - for(var/mob/living/carbon/human/H in shuffle(living_mob_list)) + for(var/mob/living/carbon/human/H in shuffle(GLOB.living_mob_list)) if(issmall(H)) //don't infect monkies; that's a waste. continue if(!H.client) diff --git a/code/modules/events/traders.dm b/code/modules/events/traders.dm index 0b2ee2204c6..4edfa1bb803 100644 --- a/code/modules/events/traders.dm +++ b/code/modules/events/traders.dm @@ -17,7 +17,7 @@ var/global/list/unused_trade_stations = list("sol") if(!station) // If there are no unused stations, just no. return var/list/spawnlocs = list() - for(var/obj/effect/landmark/landmark in landmarks_list) + for(var/obj/effect/landmark/landmark in GLOB.landmarks_list) if(landmark.name == "traderstart_[station]") spawnlocs += get_turf(landmark) if(!spawnlocs.len) @@ -36,7 +36,7 @@ var/global/list/unused_trade_stations = list("sol") index++ var/mob/C = pick_n_take(candidates) if(C) - respawnable_list -= C.client + GLOB.respawnable_list -= C.client var/mob/living/carbon/human/M = create_trader(picked_loc) M.ckey = C.ckey M.mind.objectives += trader_objectives diff --git a/code/modules/events/undead.dm b/code/modules/events/undead.dm index f705b63611c..57eccc85ceb 100644 --- a/code/modules/events/undead.dm +++ b/code/modules/events/undead.dm @@ -36,5 +36,5 @@ new undeadtype(T) /datum/event/undead/announce() - for(var/mob/living/M in player_list) + for(var/mob/living/M in GLOB.player_list) to_chat(M, "You feel [pick("a chill","a deathly chill","the undead","dirty", "creeped out","afraid","fear")]!") diff --git a/code/modules/events/vent_clog.dm b/code/modules/events/vent_clog.dm index 564194f413b..b45a6882e80 100644 --- a/code/modules/events/vent_clog.dm +++ b/code/modules/events/vent_clog.dm @@ -10,7 +10,7 @@ /datum/event/vent_clog/setup() endWhen = rand(25, 100) - for(var/obj/machinery/atmospherics/unary/vent_scrubber/temp_vent in machines) + for(var/obj/machinery/atmospherics/unary/vent_scrubber/temp_vent in GLOB.machines) if(is_station_level(temp_vent.loc.z)) if(temp_vent.parent.other_atmosmch.len > 50) vents += temp_vent diff --git a/code/modules/events/wormholes.dm b/code/modules/events/wormholes.dm index 91a4612cb16..be145752671 100644 --- a/code/modules/events/wormholes.dm +++ b/code/modules/events/wormholes.dm @@ -56,8 +56,8 @@ if(istype(M, /atom/movable)) var/turf/target - if(portals.len) - var/obj/effect/portal/P = pick(portals) + if(GLOB.portals.len) + var/obj/effect/portal/P = pick(GLOB.portals) if(P && isturf(P.loc)) target = P.loc if(!target) return diff --git a/code/modules/flufftext/Dreaming.dm b/code/modules/flufftext/Dreaming.dm index e31a6543ce3..075f119113c 100644 --- a/code/modules/flufftext/Dreaming.dm +++ b/code/modules/flufftext/Dreaming.dm @@ -2,7 +2,7 @@ /mob/living/carbon/proc/dream() - var/list/dreams = custom_dreams(dream_strings, src) + var/list/dreams = custom_dreams(GLOB.dream_strings, src) for(var/obj/item/bedsheet/sheet in loc) dreams += sheet.dream_messages @@ -24,7 +24,7 @@ //NIGHTMARES /mob/living/carbon/proc/nightmare() - var/list/nightmares = nightmare_strings.Copy() + var/list/nightmares = GLOB.nightmare_strings.Copy() for(var/obj/item/bedsheet/sheet in loc) nightmares += sheet.nightmare_messages diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 74a0baf8cd5..b29fe08141f 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -222,7 +222,7 @@ Gunshots/explosions/opening doors/less rare audio (done) /obj/effect/hallucination/simple/clown/New(loc, mob/living/carbon/T, duration) ..(loc, T) - name = pick(clown_names) + name = pick(GLOB.clown_names) sleep(duration) qdel(src) @@ -444,7 +444,7 @@ Gunshots/explosions/opening doors/less rare audio (done) target = T var/image/A = null var/kind = force_kind ? force_kind : pick("clown", "corgi", "carp", "skeleton", "demon","zombie") - for(var/mob/living/carbon/human/H in living_mob_list) + for(var/mob/living/carbon/human/H in GLOB.living_mob_list) if(H == target) continue if(skip_nearby && (H in view(target))) @@ -523,7 +523,7 @@ Gunshots/explosions/opening doors/less rare audio (done) var/mob/living/carbon/human/clone = null var/clone_weapon = null - for(var/mob/living/carbon/human/H in living_mob_list) + for(var/mob/living/carbon/human/H in GLOB.living_mob_list) if(H.stat || H.lying) continue clone = H @@ -735,7 +735,7 @@ var/list/non_fakeattack_weapons = list(/obj/item/gun/projectile, /obj/item/ammo_ target.client.images.Remove(speech_overlay) else // Radio talk var/list/humans = list() - for(var/mob/living/carbon/human/H in living_mob_list) + for(var/mob/living/carbon/human/H in GLOB.living_mob_list) humans += H person = pick(humans) target.hear_radio(pick(radio_messages),language = pick(person.languages),speaker = person, part_a = "\[[get_frequency_name(PUB_FREQ)]\] ", part_b = " ") @@ -1005,7 +1005,7 @@ var/list/non_fakeattack_weapons = list(/obj/item/gun/projectile, /obj/item/ammo_ SetSleeping(20, no_alert = TRUE) if(prob(50)) var/list/dead_people = list() - for(var/mob/dead/observer/G in player_list) + for(var/mob/dead/observer/G in GLOB.player_list) dead_people += G var/mob/dead/observer/fakemob = pick(dead_people) if(fakemob) diff --git a/code/modules/holiday/christmas.dm b/code/modules/holiday/christmas.dm index bd5d97d1580..7b00171b348 100644 --- a/code/modules/holiday/christmas.dm +++ b/code/modules/holiday/christmas.dm @@ -4,7 +4,7 @@ for(var/turf/simulated/floor/T in orange(1,xmas)) for(var/i=1,i<=rand(1,5),i++) new /obj/item/a_gift(T) - for(var/mob/living/simple_animal/pet/corgi/Ian/Ian in mob_list) + for(var/mob/living/simple_animal/pet/corgi/Ian/Ian in GLOB.mob_list) Ian.place_on_head(new /obj/item/clothing/head/helmet/space/santahat(Ian)) /datum/holiday/xmas/handle_event() diff --git a/code/modules/hydroponics/beekeeping/honeycomb.dm b/code/modules/hydroponics/beekeeping/honeycomb.dm index 06a80f72edb..50bbae4a6c4 100644 --- a/code/modules/hydroponics/beekeeping/honeycomb.dm +++ b/code/modules/hydroponics/beekeeping/honeycomb.dm @@ -30,7 +30,7 @@ /obj/item/reagent_containers/honeycomb/proc/set_reagent(reagent) - var/datum/reagent/R = chemical_reagents_list[reagent] + var/datum/reagent/R = GLOB.chemical_reagents_list[reagent] if(istype(R)) name = "honeycomb ([R.name])" honey_color = R.color diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 3fde90ebbb5..772e9f5d856 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -66,7 +66,7 @@ var/reag_txt = "" if(seed) for(var/reagent_id in seed.reagents_add) - var/datum/reagent/R = chemical_reagents_list[reagent_id] + var/datum/reagent/R = GLOB.chemical_reagents_list[reagent_id] var/amt = reagents.get_reagent_amount(reagent_id) reag_txt += "\n- [R.name]: [amt]" diff --git a/code/modules/hydroponics/grown/replicapod.dm b/code/modules/hydroponics/grown/replicapod.dm index 4a1e6f09cf8..f8f77836b3a 100644 --- a/code/modules/hydroponics/grown/replicapod.dm +++ b/code/modules/hydroponics/grown/replicapod.dm @@ -59,7 +59,7 @@ var/ckey_holder = null if(config.revival_pod_plants) if(ckey) - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(isobserver(M)) var/mob/dead/observer/O = M if(O.ckey == ckey && O.can_reenter_corpse) @@ -70,7 +70,7 @@ make_podman = 1 break else //If the player has ghosted from his corpse before blood was drawn, his ckey is no longer attached to the mob, so we need to match up the cloned player through the mind key - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(mind && M.mind && ckey(M.mind.key) == ckey(mind.key) && M.ckey && M.client && M.stat == DEAD && !M.suiciding) if(isobserver(M)) var/mob/dead/observer/O = M diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index 84db02cb89c..1a9dc008376 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -107,7 +107,7 @@ reagent_id = reag_id name = "UNKNOWN" - var/datum/reagent/R = chemical_reagents_list[reag_id] + var/datum/reagent/R = GLOB.chemical_reagents_list[reag_id] if(R && R.id == reagent_id) name = R.name diff --git a/code/modules/karma/karma.dm b/code/modules/karma/karma.dm index cfc44382d64..d148276d4d6 100644 --- a/code/modules/karma/karma.dm +++ b/code/modules/karma/karma.dm @@ -59,7 +59,7 @@ var/list/karma_spenders = list() if(config.disable_karma) to_chat(src, "Karma is disabled.") return FALSE - if(!ticker || !player_list.len || (ticker.current_state == GAME_STATE_PREGAME)) + if(!ticker || !GLOB.player_list.len || (ticker.current_state == GAME_STATE_PREGAME)) to_chat(src, "You can't award karma until the game has started.") return FALSE if(client.karma_spent || (ckey in karma_spenders)) @@ -97,7 +97,7 @@ var/list/karma_spenders = list() return var/list/karma_list = list() - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(!(M.client && M.mind)) continue if(M == src) diff --git a/code/modules/martial_arts/adminfu.dm b/code/modules/martial_arts/adminfu.dm index eaec2b1c3c8..ae48795f2f9 100644 --- a/code/modules/martial_arts/adminfu.dm +++ b/code/modules/martial_arts/adminfu.dm @@ -74,7 +74,7 @@ D.revive() D.suiciding = 0 if(!D.ckey) - for(var/mob/dead/observer/ghost in player_list) + for(var/mob/dead/observer/ghost in GLOB.player_list) if(D.real_name == ghost.real_name) ghost.reenter_corpse() break diff --git a/code/modules/martial_arts/brawling.dm b/code/modules/martial_arts/brawling.dm index f7c4d307968..520f4c1a96a 100644 --- a/code/modules/martial_arts/brawling.dm +++ b/code/modules/martial_arts/brawling.dm @@ -40,9 +40,9 @@ "[A] has knocked [D] out with a haymaker!") D.apply_effect(10,WEAKEN,armor_block) D.SetSleeping(5) - D.forcesay(hit_appends) + D.forcesay(GLOB.hit_appends) else if(D.lying) - D.forcesay(hit_appends) + D.forcesay(GLOB.hit_appends) return 1 /datum/martial_art/drunk_brawling @@ -99,7 +99,7 @@ "[A] has knocked [D] out with a haymaker!") D.apply_effect(10,WEAKEN,armor_block) D.Paralyse(5) - D.forcesay(hit_appends) + D.forcesay(GLOB.hit_appends) else if(D.lying) - D.forcesay(hit_appends) + D.forcesay(GLOB.hit_appends) return 1 diff --git a/code/modules/martial_arts/martial.dm b/code/modules/martial_arts/martial.dm index bff0cf0d2e4..3e3af7963b0 100644 --- a/code/modules/martial_arts/martial.dm +++ b/code/modules/martial_arts/martial.dm @@ -66,9 +66,9 @@ D.visible_message("[A] has weakened [D]!!", \ "[A] has weakened [D]!") D.apply_effect(4, WEAKEN, armor_block) - D.forcesay(hit_appends) + D.forcesay(GLOB.hit_appends) else if(D.lying) - D.forcesay(hit_appends) + D.forcesay(GLOB.hit_appends) return 1 /datum/martial_art/proc/teach(var/mob/living/carbon/human/H,var/make_temporary=0) diff --git a/code/modules/mining/lavaland/loot/ashdragon_loot.dm b/code/modules/mining/lavaland/loot/ashdragon_loot.dm index d88ec709dce..130e425d559 100644 --- a/code/modules/mining/lavaland/loot/ashdragon_loot.dm +++ b/code/modules/mining/lavaland/loot/ashdragon_loot.dm @@ -36,14 +36,14 @@ ..() spirits = list() processing_objects.Add(src) - poi_list |= src + GLOB.poi_list |= src /obj/item/melee/ghost_sword/Destroy() for(var/mob/dead/observer/G in spirits) G.invisibility = initial(G.invisibility) spirits.Cut() processing_objects.Remove(src) - poi_list -= src + GLOB.poi_list -= src . = ..() /obj/item/melee/ghost_sword/attack_self(mob/user) @@ -71,7 +71,7 @@ var/list/contents = T.GetAllContents() var/mob/dead/observer/current_spirits = list() - for(var/mob/dead/observer/O in player_list) + for(var/mob/dead/observer/O in GLOB.player_list) if(is_type_in_list(O.following, contents)) ghost_counter++ O.invisibility = 0 diff --git a/code/modules/mining/lavaland/loot/bubblegum_loot.dm b/code/modules/mining/lavaland/loot/bubblegum_loot.dm index 613239b58a9..cecfdcf8478 100644 --- a/code/modules/mining/lavaland/loot/bubblegum_loot.dm +++ b/code/modules/mining/lavaland/loot/bubblegum_loot.dm @@ -44,7 +44,7 @@ return used = TRUE - var/choice = input(user,"Who do you want dead?","Choose Your Victim") as null|anything in player_list + var/choice = input(user,"Who do you want dead?","Choose Your Victim") as null|anything in GLOB.player_list if(!choice) used = FALSE @@ -72,7 +72,7 @@ var/obj/effect/mine/pickup/bloodbath/B = new(L) B.mineEffect(L) - for(var/mob/living/carbon/human/H in player_list) + for(var/mob/living/carbon/human/H in GLOB.player_list) if(H == L) continue to_chat(H, "You have an overwhelming desire to kill [L]. [L.p_they(TRUE)] [L.p_have()] been marked red! Go kill [L.p_them()]!") diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 865f02a7eb8..955e99c8576 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -56,7 +56,7 @@ var/global/list/rockTurfEdgeCache = list( /turf/simulated/mineral/New() ..() - mineral_turfs += src + GLOB.mineral_turfs += src if(mineralType && mineralAmt && spread && spreadChance) for(var/dir in cardinal) @@ -79,7 +79,7 @@ var/global/list/rockTurfEdgeCache = list( /hook/startup/proc/add_mineral_edges() var/watch = start_watch() log_startup_progress("Reticulating splines...") - for(var/turf/simulated/mineral/M in mineral_turfs) + for(var/turf/simulated/mineral/M in GLOB.mineral_turfs) M.add_edges() log_startup_progress(" Splines reticulated in [stop_watch(watch)]s.") return 1 diff --git a/code/modules/mob/dead/observer/login.dm b/code/modules/mob/dead/observer/login.dm index eab9faf9a7a..0990b085264 100644 --- a/code/modules/mob/dead/observer/login.dm +++ b/code/modules/mob/dead/observer/login.dm @@ -4,8 +4,8 @@ ghostimage.icon_state = src.icon_state updateghostimages() - if(non_respawnable_keys[ckey]) + if(GLOB.non_respawnable_keys[ckey]) can_reenter_corpse = 0 - respawnable_list -= src + GLOB.respawnable_list -= src update_interface() \ No newline at end of file diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 933ef9a6403..be391abdba5 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -65,9 +65,9 @@ var/list/image/ghost_darkness_images = list() //this is a list of images for thi name = body.real_name else if(gender == MALE) - name = capitalize(pick(first_names_male)) + " " + capitalize(pick(last_names)) + name = capitalize(pick(GLOB.first_names_male)) + " " + capitalize(pick(GLOB.last_names)) else - name = capitalize(pick(first_names_female)) + " " + capitalize(pick(last_names)) + name = capitalize(pick(GLOB.first_names_female)) + " " + capitalize(pick(GLOB.last_names)) mind = body.mind //we don't transfer the mind but we keep a reference to it. @@ -83,7 +83,7 @@ var/list/image/ghost_darkness_images = list() //this is a list of images for thi forceMove(T) if(!name) //To prevent nameless ghosts - name = capitalize(pick(first_names_male)) + " " + capitalize(pick(last_names)) + name = capitalize(pick(GLOB.first_names_male)) + " " + capitalize(pick(GLOB.last_names)) real_name = name ..() @@ -126,15 +126,15 @@ Works together with spawning an observer, noted above. /mob/proc/ghostize(var/flags = GHOST_CAN_REENTER) if(key) - if(non_respawnable_keys[ckey]) + if(GLOB.non_respawnable_keys[ckey]) flags &= ~GHOST_CAN_REENTER var/mob/dead/observer/ghost = new(src, flags) //Transfer safety to observer spawning proc. ghost.timeofdeath = src.timeofdeath //BS12 EDIT - respawnable_list -= src + GLOB.respawnable_list -= src if(ghost.can_reenter_corpse) - respawnable_list += ghost + GLOB.respawnable_list += ghost else - non_respawnable_keys[ckey] = 1 + GLOB.non_respawnable_keys[ckey] = 1 ghost.key = key if(!(ghost.client && ghost.client.holder) && !config.antag_hud_allowed) // For new ghosts we remove the verb from even showing up if it's not allowed. ghost.verbs -= /mob/dead/observer/verb/toggle_antagHUD // Poor guys, don't know what they are missing! @@ -160,7 +160,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp warningmsg = "You have committed suicide too early in the round" else if(stat != DEAD) warningmsg = "You are alive" - else if(non_respawnable_keys[ckey]) + else if(GLOB.non_respawnable_keys[ckey]) warningmsg = "You have lost your right to respawn" if(!warningmsg) @@ -224,7 +224,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(client.statpanel == "Status") show_stat_station_time() show_stat_emergency_shuttle_eta() - stat(null, "Respawnability: [(src in respawnable_list) ? "Yes" : "No"]") + stat(null, "Respawnability: [(src in GLOB.respawnable_list) ? "Yes" : "No"]") /mob/dead/observer/verb/reenter_corpse() set category = "Ghost" @@ -319,8 +319,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/response = alert(src, "If you turn this on, you will not be able to take any part in the round.","Are you sure you want to turn this feature on?","Yes","No") if(response == "No") return M.can_reenter_corpse = 0 - if(M in respawnable_list) - respawnable_list -= M + if(M in GLOB.respawnable_list) + GLOB.respawnable_list -= M if(!M.has_enabled_antagHUD && !check_rights(R_ADMIN|R_MOD,0)) M.has_enabled_antagHUD = 1 @@ -574,7 +574,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/mob/target = locate(href_list["jump"]) var/mob/A = usr; to_chat(A, "Teleporting to [target]...") - //var/mob/living/silicon/ai/A = locate(href_list["track2"]) in mob_list + //var/mob/living/silicon/ai/A = locate(href_list["track2"]) in GLOB.mob_list if(target && target != usr) spawn(0) var/turf/pos = get_turf(A) @@ -625,7 +625,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp updateghostimages() /proc/updateallghostimages() - for(var/mob/dead/observer/O in player_list) + for(var/mob/dead/observer/O in GLOB.player_list) O.updateghostimages() /mob/dead/observer/proc/updateghostimages() diff --git a/code/modules/mob/death.dm b/code/modules/mob/death.dm index cf3e4c320b5..020dd5f56b1 100644 --- a/code/modules/mob/death.dm +++ b/code/modules/mob/death.dm @@ -17,9 +17,9 @@ // flick("gibbed-m", animation) gibs(loc, dna) - dead_mob_list -= src + GLOB.dead_mob_list -= src if(client) - respawnable_list += src + GLOB.respawnable_list += src spawn(15) if(animation) qdel(animation) if(src) qdel(src) @@ -44,9 +44,9 @@ // flick("dust-m", animation) new /obj/effect/decal/cleanable/ash(loc) - dead_mob_list -= src + GLOB.dead_mob_list -= src if(client) - respawnable_list += src + GLOB.respawnable_list += src spawn(15) if(animation) qdel(animation) if(src) qdel(src) @@ -67,9 +67,9 @@ // flick("liquify", animation) // new /obj/effect/decal/cleanable/ash(loc) - dead_mob_list -= src + GLOB.dead_mob_list -= src if(client) - respawnable_list += src + GLOB.respawnable_list += src spawn(15) if(animation) qdel(animation) if(src) qdel(src) @@ -87,8 +87,8 @@ timeofdeath = world.time - living_mob_list -= src - dead_mob_list += src + GLOB.living_mob_list -= src + GLOB.dead_mob_list += src if(client) - respawnable_list += src + GLOB.respawnable_list += src return ..(gibbed) diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm index 6c4e847fe32..0ec193c69e8 100644 --- a/code/modules/mob/emote.dm +++ b/code/modules/mob/emote.dm @@ -56,7 +56,7 @@ //Hearing gasp and such every five seconds is not good emotes were not global for a reason. // Maybe some people are okay with that. - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(!M.client) continue //skip monkeys and leavers if(istype(M, /mob/new_player)) @@ -126,7 +126,7 @@ if(message) - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(istype(M, /mob/new_player)) continue diff --git a/code/modules/mob/language.dm b/code/modules/mob/language.dm index 1a6f29a6dd0..43a18678dd9 100644 --- a/code/modules/mob/language.dm +++ b/code/modules/mob/language.dm @@ -25,9 +25,9 @@ /datum/language/proc/get_random_name(gender, name_count=2, syllable_count=4) if(!syllables || !syllables.len || english_names) if(gender==FEMALE) - return capitalize(pick(first_names_female)) + " " + capitalize(pick(last_names)) + return capitalize(pick(GLOB.first_names_female)) + " " + capitalize(pick(GLOB.last_names)) else - return capitalize(pick(first_names_male)) + " " + capitalize(pick(last_names)) + return capitalize(pick(GLOB.first_names_male)) + " " + capitalize(pick(GLOB.last_names)) var/full_name = "" var/new_name = "" @@ -105,7 +105,7 @@ speaker_mask = speaker.name var/msg = "[name], [speaker_mask] [format_message(message, get_spoken_verb(message))]" - for(var/mob/player in player_list) + for(var/mob/player in GLOB.player_list) if(istype(player,/mob/dead) && follow) var/msg_dead = "[name], [speaker_mask] ([ghost_follow_link(speaker, ghost=player)]) [format_message(message, get_spoken_verb(message))]" to_chat(player, msg_dead) @@ -232,7 +232,7 @@ while(i <= sounds) i++ - newname += pick(vox_name_syllables) + newname += pick(GLOB.vox_name_syllables) return capitalize(newname) /datum/language/diona @@ -267,7 +267,7 @@ if(prob(70)) new_name = "[pick(list("PBU","HIU","SINA","ARMA","OSI"))]-[rand(100, 999)]" else - new_name = pick(ai_names) + new_name = pick(GLOB.ai_names) return new_name /datum/language/kidan @@ -567,12 +567,12 @@ var/message_start = "[name], [speaker.name]" var/message_body = "[speaker.say_quote(message)],\"[message]\"" - for(var/mob/M in dead_mob_list) + for(var/mob/M in GLOB.dead_mob_list) if(!isnewplayer(M) && !isbrain(M)) var/message_start_dead = "[name], [speaker.name] ([ghost_follow_link(speaker, ghost=M)])" M.show_message("[message_start_dead] [message_body]", 2) - for(var/mob/living/S in living_mob_list) + for(var/mob/living/S in GLOB.living_mob_list) if(drone_only && !istype(S,/mob/living/silicon/robot/drone)) continue else if(isAI(S)) @@ -627,7 +627,7 @@ // Language handling. /mob/proc/add_language(language) - var/datum/language/new_language = all_languages[language] + var/datum/language/new_language = GLOB.all_languages[language] if(!istype(new_language) || new_language in languages) return FALSE @@ -636,12 +636,12 @@ return TRUE /mob/proc/remove_language(rem_language) - var/datum/language/L = all_languages[rem_language] + var/datum/language/L = GLOB.all_languages[rem_language] . = (L in languages) languages.Remove(L) /mob/living/remove_language(rem_language) - var/datum/language/L = all_languages[rem_language] + var/datum/language/L = GLOB.all_languages[rem_language] if(default_language == L) default_language = null return ..() @@ -686,7 +686,7 @@ if(href_list["default_lang"] == "reset") set_default_language(null) else - var/datum/language/L = all_languages[href_list["default_lang"]] + var/datum/language/L = GLOB.all_languages[href_list["default_lang"]] if(L) set_default_language(L) check_languages() diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index 8f74fbce413..e1d2f3365e1 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -32,7 +32,7 @@ /mob/living/carbon/alien/get_default_language() if(default_language) return default_language - return all_languages["Xenomorph"] + return GLOB.all_languages["Xenomorph"] /mob/living/carbon/alien/say_quote(var/message, var/datum/language/speaking = null) var/verb = "hisses" @@ -192,7 +192,7 @@ Des: Gives the client of the alien an image on each infected mob. ----------------------------------------*/ /mob/living/carbon/alien/proc/AddInfectionImages() if(client) - for(var/mob/living/C in mob_list) + for(var/mob/living/C in GLOB.mob_list) if(C.status_flags & XENO_HOST) var/obj/item/organ/internal/body_egg/alien_embryo/A = C.get_int_organ(/obj/item/organ/internal/body_egg/alien_embryo) if(A) diff --git a/code/modules/mob/living/carbon/alien/death.dm b/code/modules/mob/living/carbon/alien/death.dm index 6d663d6f3d4..2d8791d0a69 100644 --- a/code/modules/mob/living/carbon/alien/death.dm +++ b/code/modules/mob/living/carbon/alien/death.dm @@ -15,7 +15,7 @@ flick("gibbed-a", animation) xgibs(loc) - dead_mob_list -= src + GLOB.dead_mob_list -= src spawn(15) if(animation) qdel(animation) @@ -36,7 +36,7 @@ flick("dust-a", animation) new /obj/effect/decal/remains/xeno(loc) - dead_mob_list -= src + GLOB.dead_mob_list -= src spawn(15) if(animation) qdel(animation) diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index 7f23be77774..fd55c9fcaba 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -46,7 +46,7 @@ Doesn't work on other aliens/AI.*/ log_say("(AWHISPER to [key_name(M)]) [msg]", src) to_chat(M, "You hear a strange, alien voice in your head...[msg]") to_chat(src, "You said: [msg] to [M]") - for(var/mob/dead/observer/G in player_list) + for(var/mob/dead/observer/G in GLOB.player_list) G.show_message("Alien message from [src] ([ghost_follow_link(src, ghost=G)]) to [M] ([ghost_follow_link(M, ghost=G)]): [msg]") return diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm index 1249c0f462c..8e261f56d8d 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm @@ -26,7 +26,7 @@ if(powerc(500)) // Queen check var/no_queen = 1 - for(var/mob/living/carbon/alien/humanoid/queen/Q in living_mob_list) + for(var/mob/living/carbon/alien/humanoid/queen/Q in GLOB.living_mob_list) if(!Q.key && Q.get_int_organ(/obj/item/organ/internal/brain/)) continue no_queen = 0 diff --git a/code/modules/mob/living/carbon/alien/humanoid/empress.dm b/code/modules/mob/living/carbon/alien/humanoid/empress.dm index 7db3ea5b1c5..f5355a38d67 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/empress.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/empress.dm @@ -33,7 +33,7 @@ create_reagents(100) //there should only be one queen - for(var/mob/living/carbon/alien/humanoid/empress/E in living_mob_list) + for(var/mob/living/carbon/alien/humanoid/empress/E in GLOB.living_mob_list) if(E == src) continue if(E.stat == DEAD) continue if(E.client) diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index a8f17714b0e..d80d773325e 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -13,7 +13,7 @@ create_reagents(100) //there should only be one queen - for(var/mob/living/carbon/alien/humanoid/queen/Q in living_mob_list) + for(var/mob/living/carbon/alien/humanoid/queen/Q in GLOB.living_mob_list) if(Q == src) continue if(Q.stat == DEAD) continue if(Q.client) diff --git a/code/modules/mob/living/carbon/alien/larva/death.dm b/code/modules/mob/living/carbon/alien/larva/death.dm index 7d1101ca7d8..00876f01ccb 100644 --- a/code/modules/mob/living/carbon/alien/larva/death.dm +++ b/code/modules/mob/living/carbon/alien/larva/death.dm @@ -10,6 +10,6 @@ timeofdeath = world.time if(mind) mind.store_memory("Time of death: [station_time_timestamp("hh:mm:ss", timeofdeath)]", 0) - living_mob_list -= src + GLOB.living_mob_list -= src return ..(gibbed) diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm index e09340872b9..d489443cb36 100644 --- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm +++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm @@ -112,7 +112,7 @@ Proc: AddInfectionImages(C) Des: Adds the infection image to all aliens for this embryo ----------------------------------------*/ /obj/item/organ/internal/body_egg/alien_embryo/AddInfectionImages() - for(var/mob/living/carbon/alien/alien in player_list) + for(var/mob/living/carbon/alien/alien in GLOB.player_list) if(alien.client) var/I = image('icons/mob/alien.dmi', loc = owner, icon_state = "infected[stage]") alien.client.images += I @@ -122,7 +122,7 @@ Proc: RemoveInfectionImage(C) Des: Removes all images from the mob infected by this embryo ----------------------------------------*/ /obj/item/organ/internal/body_egg/alien_embryo/RemoveInfectionImages() - for(var/mob/living/carbon/alien/alien in player_list) + for(var/mob/living/carbon/alien/alien in GLOB.player_list) if(alien.client) for(var/image/I in alien.client.images) if(dd_hasprefix_case(I.icon_state, "infected") && I.loc == owner) diff --git a/code/modules/mob/living/carbon/brain/MMI.dm b/code/modules/mob/living/carbon/brain/MMI.dm index 9d50d8bf2ea..67d7ddc9f33 100644 --- a/code/modules/mob/living/carbon/brain/MMI.dm +++ b/code/modules/mob/living/carbon/brain/MMI.dm @@ -40,9 +40,9 @@ brainmob.loc = src brainmob.container = src brainmob.stat = CONSCIOUS - respawnable_list -= brainmob - dead_mob_list -= brainmob//Update dem lists - living_mob_list += brainmob + GLOB.respawnable_list -= brainmob + GLOB.dead_mob_list -= brainmob//Update dem lists + GLOB.living_mob_list += brainmob held_brain = B if(istype(O,/obj/item/organ/internal/brain/xeno)) // kept the type check, as it still does other weird stuff @@ -146,8 +146,8 @@ brainmob.container = null//Reset brainmob mmi var. brainmob.loc = held_brain//Throw mob into brain. - respawnable_list += brainmob - living_mob_list -= brainmob//Get outta here + GLOB.respawnable_list += brainmob + GLOB.living_mob_list -= brainmob//Get outta here held_brain.brainmob = brainmob//Set the brain to use the brainmob held_brain.brainmob.cancel_camera() brainmob = null//Set mmi brainmob var to null diff --git a/code/modules/mob/living/carbon/brain/death.dm b/code/modules/mob/living/carbon/brain/death.dm index c38823173eb..ffb9649e489 100644 --- a/code/modules/mob/living/carbon/brain/death.dm +++ b/code/modules/mob/living/carbon/brain/death.dm @@ -31,7 +31,7 @@ // flick("gibbed-m", animation) gibs(loc, dna) - dead_mob_list -= src + GLOB.dead_mob_list -= src if(container && istype(container, /obj/item/mmi)) qdel(container)//Gets rid of the MMI if there is one if(loc) diff --git a/code/modules/mob/living/carbon/brain/robotic_brain.dm b/code/modules/mob/living/carbon/brain/robotic_brain.dm index ea83ab90206..b766d419d09 100644 --- a/code/modules/mob/living/carbon/brain/robotic_brain.dm +++ b/code/modules/mob/living/carbon/brain/robotic_brain.dm @@ -52,7 +52,7 @@ to_chat(brainmob, "Your internal speaker has been toggled [silenced ? "off" : "on"].") /obj/item/mmi/robotic_brain/proc/request_player() - for(var/mob/dead/observer/O in player_list) + for(var/mob/dead/observer/O in GLOB.player_list) if(check_observer(O)) to_chat(O, "\A [src] has been activated. (Teleport | Sign Up)") @@ -204,7 +204,7 @@ brainmob.container = src brainmob.stat = CONSCIOUS brainmob.SetSilence(0) - dead_mob_list -= brainmob + GLOB.dead_mob_list -= brainmob ..() /obj/item/mmi/robotic_brain/attack_ghost(mob/dead/observer/O) diff --git a/code/modules/mob/living/carbon/human/appearance.dm b/code/modules/mob/living/carbon/human/appearance.dm index d19051692ca..cb0e04f84f4 100644 --- a/code/modules/mob/living/carbon/human/appearance.dm +++ b/code/modules/mob/living/carbon/human/appearance.dm @@ -10,11 +10,11 @@ gender = new_gender - var/datum/sprite_accessory/hair/current_hair = hair_styles_full_list[H.h_style] + var/datum/sprite_accessory/hair/current_hair = GLOB.hair_styles_full_list[H.h_style] if(current_hair.gender != NEUTER && current_hair.gender != gender) reset_head_hair() - var/datum/sprite_accessory/hair/current_fhair = facial_hair_styles_list[H.f_style] + var/datum/sprite_accessory/hair/current_fhair = GLOB.facial_hair_styles_list[H.f_style] if(current_fhair.gender != NEUTER && current_fhair.gender != gender) reset_facial_hair() @@ -29,7 +29,7 @@ if(!hair_style || !H || H.h_style == hair_style) return - if(!(fluff || (hair_style in hair_styles_public_list))) + if(!(fluff || (hair_style in GLOB.hair_styles_public_list))) return H.h_style = hair_style @@ -40,7 +40,7 @@ /mob/living/carbon/human/proc/change_facial_hair(var/facial_hair_style) var/obj/item/organ/external/head/H = get_organ("head") - if(!facial_hair_style || !H || H.f_style == facial_hair_style || !(facial_hair_style in facial_hair_styles_list)) + if(!facial_hair_style || !H || H.f_style == facial_hair_style || !(facial_hair_style in GLOB.facial_hair_styles_list)) return H.f_style = facial_hair_style @@ -50,7 +50,7 @@ /mob/living/carbon/human/proc/change_head_accessory(var/head_accessory_style) var/obj/item/organ/external/head/H = get_organ("head") - if(!head_accessory_style || !H || H.ha_style == head_accessory_style || !(head_accessory_style in head_accessory_styles_list)) + if(!head_accessory_style || !H || H.ha_style == head_accessory_style || !(head_accessory_style in GLOB.head_accessory_styles_list)) return H.ha_style = head_accessory_style @@ -59,10 +59,10 @@ return 1 /mob/living/carbon/human/proc/change_markings(var/marking_style, var/location = "body") - if(!marking_style || m_styles[location] == marking_style || !(marking_style in marking_styles_list)) + if(!marking_style || m_styles[location] == marking_style || !(marking_style in GLOB.marking_styles_list)) return - var/datum/sprite_accessory/body_markings/marking = marking_styles_list[marking_style] + var/datum/sprite_accessory/body_markings/marking = GLOB.marking_styles_list[marking_style] if(marking.name != "None" && marking.marking_location != location) return @@ -72,18 +72,18 @@ return if(head_organ.alt_head && head_organ.alt_head != "None") - var/datum/sprite_accessory/body_markings/head/H = marking_styles_list[marking_style] + var/datum/sprite_accessory/body_markings/head/H = GLOB.marking_styles_list[marking_style] if(marking.name != "None" && (!H.heads_allowed || (!("All" in H.heads_allowed) && !(head_organ.alt_head in H.heads_allowed)))) return else if(!head_organ.alt_head || head_organ.alt_head == "None") head_organ.alt_head = "None" - var/datum/sprite_accessory/body_markings/head/H = marking_styles_list[marking_style] + var/datum/sprite_accessory/body_markings/head/H = GLOB.marking_styles_list[marking_style] if(H.heads_allowed && !("All" in H.heads_allowed)) return if(location == "tail" && marking.name != "None") - var/datum/sprite_accessory/body_markings/tail/tail_marking = marking_styles_list[marking_style] + var/datum/sprite_accessory/body_markings/tail/tail_marking = GLOB.marking_styles_list[marking_style] if(!body_accessory) if(tail_marking.tails_allowed) return @@ -118,7 +118,7 @@ /mob/living/carbon/human/proc/change_alt_head(var/alternate_head) var/obj/item/organ/external/head/H = get_organ("head") - if(!H || H.alt_head == alternate_head || H.is_robotic() || (!(dna.species.bodyflags & HAS_ALT_HEADS) && alternate_head != "None") || !(alternate_head in alt_heads_list)) + if(!H || H.alt_head == alternate_head || H.is_robotic() || (!(dna.species.bodyflags & HAS_ALT_HEADS) && alternate_head != "None") || !(alternate_head in GLOB.alt_heads_list)) return H.alt_head = alternate_head @@ -126,7 +126,7 @@ //Handle head markings if they're incompatible with the new alt head. if(m_styles["head"]) var/head_marking = m_styles["head"] - var/datum/sprite_accessory/body_markings/head/head_marking_style = marking_styles_list[head_marking] + var/datum/sprite_accessory/body_markings/head/head_marking_style = GLOB.marking_styles_list[head_marking] if(!head_marking_style.heads_allowed || (!("All" in head_marking_style.heads_allowed) && !(H.alt_head in head_marking_style.heads_allowed))) m_styles["head"] = "None" update_markings() @@ -331,8 +331,8 @@ if(!H) return //No head, no hair. - for(var/hairstyle in hair_styles_public_list) - var/datum/sprite_accessory/S = hair_styles_public_list[hairstyle] + for(var/hairstyle in GLOB.hair_styles_public_list) + var/datum/sprite_accessory/S = GLOB.hair_styles_public_list[hairstyle] if(hairstyle == "Bald") //Just in case. valid_hairstyles += hairstyle @@ -359,8 +359,8 @@ if(!H) return //No head, no hair. - for(var/facialhairstyle in facial_hair_styles_list) - var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle] + for(var/facialhairstyle in GLOB.facial_hair_styles_list) + var/datum/sprite_accessory/S = GLOB.facial_hair_styles_list[facialhairstyle] if(facialhairstyle == "Shaved") //Just in case. valid_facial_hairstyles += facialhairstyle @@ -388,8 +388,8 @@ if(!H) return //No head, no head accessory. - for(var/head_accessory in head_accessory_styles_list) - var/datum/sprite_accessory/S = head_accessory_styles_list[head_accessory] + for(var/head_accessory in GLOB.head_accessory_styles_list) + var/datum/sprite_accessory/S = GLOB.head_accessory_styles_list[head_accessory] if(!(H.dna.species.name in S.species_allowed)) //If the user's head is not of a species the head accessory style allows, skip it. Otherwise, add it to the list. continue @@ -403,8 +403,8 @@ if(!H && location == "head") return //No head, no head markings. - for(var/marking in marking_styles_list) - var/datum/sprite_accessory/body_markings/S = marking_styles_list[marking] + for(var/marking in GLOB.marking_styles_list) + var/datum/sprite_accessory/body_markings/S = GLOB.marking_styles_list[marking] if(S.name == "None") valid_markings += marking continue @@ -420,7 +420,7 @@ if(!S.tails_allowed || !(body_accessory.name in S.tails_allowed)) continue if(location == "head") - var/datum/sprite_accessory/body_markings/head/M = marking_styles_list[S.name] + var/datum/sprite_accessory/body_markings/head/M = GLOB.marking_styles_list[S.name] if(H.dna.species.bodyflags & ALL_RPARTS) //If the user is a species that can have a robotic head... var/datum/robolimb/robohead = all_robolimbs[H.model] if(!(S.models_allowed && (robohead.company in S.models_allowed))) //Make sure they don't get markings incompatible with their head. @@ -455,9 +455,9 @@ var/obj/item/organ/external/head/H = get_organ("head") if(!H) return //No head, no alt heads. - valid_alt_heads["None"] = alt_heads_list["None"] //The only null entry should be the "None" option, and there should always be a "None" option. - for(var/alternate_head in alt_heads_list) - var/datum/sprite_accessory/alt_heads/head = alt_heads_list[alternate_head] + valid_alt_heads["None"] = GLOB.alt_heads_list["None"] //The only null entry should be the "None" option, and there should always be a "None" option. + for(var/alternate_head in GLOB.alt_heads_list) + var/datum/sprite_accessory/alt_heads/head = GLOB.alt_heads_list[alternate_head] if(!(H.dna.species.name in head.species_allowed)) continue diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 69653dfe1e8..ccd4c1540f6 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -841,7 +841,7 @@ to_chat(viewers(src), "[src] farts on the Bible!") var/image/cross = image('icons/obj/storage.dmi', "bible") var/adminbfmessage = "[bicon(cross)] Bible Fart: [key_name(src, 1)] (?) (PP) (VV) (SM) ([admin_jump_link(src)]) (CA) (SMITE):
" - for(var/client/X in admins) + for(var/client/X in GLOB.admins) if(check_rights(R_EVENT, 0, X.mob)) to_chat(X, adminbfmessage) else if(TOXIC_FARTS in mutations) @@ -941,7 +941,7 @@ //Hearing gasp and such every five seconds is not good emotes were not global for a reason. // Maybe some people are okay with that. - for(var/mob/M in dead_mob_list) + for(var/mob/M in GLOB.dead_mob_list) if(!M.client || istype(M, /mob/new_player)) continue //skip monkeys, leavers and new players if(M.stat == DEAD && M.get_preference(CHAT_GHOSTSIGHT) && !(M in viewers(src,null))) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index a39d2843501..165478697fb 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -180,7 +180,7 @@ if(!key) var/foundghost = FALSE if(mind) - for(var/mob/dead/observer/G in player_list) + for(var/mob/dead/observer/G in GLOB.player_list) if(G.mind == mind) foundghost = TRUE if(G.can_reenter_corpse == 0) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index d718e7e95d3..353e9ed2100 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1395,7 +1395,7 @@ if(!dna.species) return null - return dna.species.default_language ? all_languages[dna.species.default_language] : null + return dna.species.default_language ? GLOB.all_languages[dna.species.default_language] : null /mob/living/carbon/human/proc/bloody_doodle() set category = "IC" @@ -1463,7 +1463,7 @@ /mob/living/carbon/human/proc/get_eye_shine() //Referenced cult constructs for shining in the dark. Needs to be above lighting effects such as shading. var/obj/item/organ/external/head/head_organ = get_organ("head") - var/datum/sprite_accessory/hair/hair_style = hair_styles_full_list[head_organ.h_style] + var/datum/sprite_accessory/hair/hair_style = GLOB.hair_styles_full_list[head_organ.h_style] var/icon/hair = new /icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s") return image(get_icon_difference(get_eyecon(), hair), layer = LIGHTING_LAYER + 1) //Cut the hair's pixels from the eyes icon so eyes covered by bangs stay hidden even while on a higher layer. diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index ddfce48f6ce..272a7a2d49c 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -22,7 +22,7 @@ if(B) if((health >= (config.health_threshold_dead + config.health_threshold_crit) * 0.5) && stat == DEAD && getBrainLoss()<120) update_revive() - if(stat == CONSCIOUS && (src in dead_mob_list)) //Defib fix + if(stat == CONSCIOUS && (src in GLOB.dead_mob_list)) //Defib fix update_revive() med_hud_set_health() med_hud_set_status() diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index b8e209498c2..a203fd2eed3 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -288,7 +288,7 @@ emp_act if(Iforce > 10 || Iforce >= 5 && prob(33)) - forcesay(hit_appends) //forcesay checks stat already + forcesay(GLOB.hit_appends) //forcesay checks stat already //this proc handles being hit by a thrown atom /mob/living/carbon/human/hitby(atom/movable/AM, skipcatch = 0, hitpush = 1, blocked = 0) diff --git a/code/modules/mob/living/carbon/human/interactive/interactive.dm b/code/modules/mob/living/carbon/human/interactive/interactive.dm index d8d469cfd57..1967183a0d8 100644 --- a/code/modules/mob/living/carbon/human/interactive/interactive.dm +++ b/code/modules/mob/living/carbon/human/interactive/interactive.dm @@ -199,7 +199,7 @@ var/shouldDoppel = input("Do you want the SNPC to disguise themself as a crewmember?") as anything in list("Yes", "No") if(shouldDoppel == "Yes") var/list/validchoices = list() - for(var/mob/living/carbon/human/M in mob_list) + for(var/mob/living/carbon/human/M in GLOB.mob_list) validchoices += M var/mob/living/carbon/human/chosen = input("Which crewmember?") as null|anything in validchoices @@ -412,7 +412,7 @@ /mob/living/carbon/human/interactive/LateInitialize() . = ..() - snpc_list += src + GLOB.snpc_list += src create_mob_hud() @@ -421,7 +421,7 @@ doSetup() npc_master.insertBot(src) loadVoice() - hear_radio_list += src + GLOB.hear_radio_list += src // a little bit of variation to make individuals more unique robustness += rand(-10, 10) @@ -432,8 +432,8 @@ doProcess() /mob/living/carbon/human/interactive/Destroy() - hear_radio_list -= src - snpc_list -= src + GLOB.hear_radio_list -= src + GLOB.snpc_list -= src npc_master.removeBot(src) return ..() diff --git a/code/modules/mob/living/carbon/human/species/_species.dm b/code/modules/mob/living/carbon/human/species/_species.dm index cb1d9b55319..5fba6a5a2b5 100644 --- a/code/modules/mob/living/carbon/human/species/_species.dm +++ b/code/modules/mob/living/carbon/human/species/_species.dm @@ -161,7 +161,7 @@ unarmed = new unarmed_type() /datum/species/proc/get_random_name(gender) - var/datum/language/species_language = all_languages[language] + var/datum/language/species_language = GLOB.all_languages[language] return species_language.get_random_name(gender) /datum/species/proc/create_organs(mob/living/carbon/human/H) //Handles creation of mob organs. @@ -361,9 +361,9 @@ target.visible_message("[user] has weakened [target]!", \ "[user] has weakened [target]!") target.apply_effect(4, WEAKEN, armor_block) - target.forcesay(hit_appends) + target.forcesay(GLOB.hit_appends) else if(target.lying) - target.forcesay(hit_appends) + target.forcesay(GLOB.hit_appends) /datum/species/proc/disarm(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style) if(attacker_style && attacker_style.disarm_act(user, target)) diff --git a/code/modules/mob/living/carbon/human/species/machine.dm b/code/modules/mob/living/carbon/human/species/machine.dm index 19af6cee849..d86040d3dcc 100644 --- a/code/modules/mob/living/carbon/human/species/machine.dm +++ b/code/modules/mob/living/carbon/human/species/machine.dm @@ -122,8 +122,8 @@ else if(robohead.is_monitor) //Means that the character's head is a monitor (has a screen). Time to customize. var/list/hair = list() - for(var/i in hair_styles_public_list) - var/datum/sprite_accessory/hair/tmp_hair = hair_styles_public_list[i] + for(var/i in GLOB.hair_styles_public_list) + var/datum/sprite_accessory/hair/tmp_hair = GLOB.hair_styles_public_list[i] if((head_organ.dna.species.name in tmp_hair.species_allowed) && (robohead.company in tmp_hair.models_allowed)) //Populate the list of available monitor styles only with styles that the monitor-head is allowed to use. hair += i diff --git a/code/modules/mob/living/carbon/human/species/wryn.dm b/code/modules/mob/living/carbon/human/species/wryn.dm index 219be4111b3..8c576f9e30e 100644 --- a/code/modules/mob/living/carbon/human/species/wryn.dm +++ b/code/modules/mob/living/carbon/human/species/wryn.dm @@ -50,7 +50,7 @@ /datum/species/wryn/handle_death(mob/living/carbon/human/H) - for(var/mob/living/carbon/C in living_mob_list) + for(var/mob/living/carbon/C in GLOB.living_mob_list) if(C.get_int_organ(/obj/item/organ/internal/wryn/hivenode)) to_chat(C, "Your antennae tingle as you are overcome with pain...") to_chat(C, "It feels like part of you has died.") // This is bullshit diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 450b7a6c1a4..8dff1863061 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -318,18 +318,18 @@ var/global/list/damage_icon_parts = list() var/icon/underwear_standing = new/icon('icons/mob/underwear.dmi',"nude") if(underwear && dna.species.clothing_flags & HAS_UNDERWEAR) - var/datum/sprite_accessory/underwear/U = underwear_list[underwear] + var/datum/sprite_accessory/underwear/U = GLOB.underwear_list[underwear] if(U) underwear_standing.Blend(new /icon(U.icon, "uw_[U.icon_state]_s"), ICON_OVERLAY) if(undershirt && dna.species.clothing_flags & HAS_UNDERSHIRT) - var/datum/sprite_accessory/undershirt/U2 = undershirt_list[undershirt] + var/datum/sprite_accessory/undershirt/U2 = GLOB.undershirt_list[undershirt] if(U2) underwear_standing.Blend(new /icon(U2.icon, "us_[U2.icon_state]_s"), ICON_OVERLAY) if(socks && dna.species.clothing_flags & HAS_SOCKS) - var/datum/sprite_accessory/socks/U3 = socks_list[socks] + var/datum/sprite_accessory/socks/U3 = GLOB.socks_list[socks] if(U3) underwear_standing.Blend(new /icon(U3.icon, "sk_[U3.icon_state]_s"), ICON_OVERLAY) @@ -369,7 +369,7 @@ var/global/list/damage_icon_parts = list() var/obj/item/organ/external/chest/chest_organ = get_organ("chest") if(chest_organ && m_styles["body"]) var/body_marking = m_styles["body"] - var/datum/sprite_accessory/body_marking_style = marking_styles_list[body_marking] + var/datum/sprite_accessory/body_marking_style = GLOB.marking_styles_list[body_marking] if(body_marking_style && body_marking_style.species_allowed && (dna.species.name in body_marking_style.species_allowed)) var/icon/b_marking_s = new/icon("icon" = body_marking_style.icon, "icon_state" = "[body_marking_style.icon_state]_s") if(body_marking_style.do_colouration) @@ -379,7 +379,7 @@ var/global/list/damage_icon_parts = list() var/obj/item/organ/external/head/head_organ = get_organ("head") if(head_organ && m_styles["head"]) //If the head is destroyed, forget the head markings. This prevents floating optical markings on decapitated IPCs, for example. var/head_marking = m_styles["head"] - var/datum/sprite_accessory/head_marking_style = marking_styles_list[head_marking] + var/datum/sprite_accessory/head_marking_style = GLOB.marking_styles_list[head_marking] if(head_marking_style && head_marking_style.species_allowed && (head_organ.dna.species.name in head_marking_style.species_allowed)) var/icon/h_marking_s = new/icon("icon" = head_marking_style.icon, "icon_state" = "[head_marking_style.icon_state]_s") if(head_marking_style.do_colouration) @@ -409,7 +409,7 @@ var/global/list/damage_icon_parts = list() //base icons var/icon/head_accessory_standing = new /icon('icons/mob/body_accessory.dmi',"accessory_none_s") if(head_organ.ha_style && (head_organ.dna.species.bodyflags & HAS_HEAD_ACCESSORY)) - var/datum/sprite_accessory/head_accessory/head_accessory_style = head_accessory_styles_list[head_organ.ha_style] + var/datum/sprite_accessory/head_accessory/head_accessory_style = GLOB.head_accessory_styles_list[head_organ.ha_style] if(head_accessory_style && head_accessory_style.species_allowed) if(head_organ.dna.species.name in head_accessory_style.species_allowed) var/icon/head_accessory_s = new/icon("icon" = head_accessory_style.icon, "icon_state" = "[head_accessory_style.icon_state]_s") @@ -448,7 +448,7 @@ var/global/list/damage_icon_parts = list() //var/icon/debrained_s = new /icon("icon"='icons/mob/human_face.dmi', "icon_state" = "debrained_s") if(head_organ.h_style && !(head && (head.flags & BLOCKHEADHAIR) && !(isSynthetic()))) - var/datum/sprite_accessory/hair/hair_style = hair_styles_full_list[head_organ.h_style] + var/datum/sprite_accessory/hair/hair_style = GLOB.hair_styles_full_list[head_organ.h_style] //if(!src.get_int_organ(/obj/item/organ/internal/brain) && !ismachine(src))//make it obvious we have NO BRAIN // hair_standing.Blend(debrained_s, ICON_OVERLAY) if(hair_style && hair_style.species_allowed) @@ -496,7 +496,7 @@ var/global/list/damage_icon_parts = list() var/icon/face_standing = new /icon('icons/mob/human_face.dmi',"bald_s") if(head_organ.f_style) - var/datum/sprite_accessory/facial_hair/facial_hair_style = facial_hair_styles_list[head_organ.f_style] + var/datum/sprite_accessory/facial_hair/facial_hair_style = GLOB.facial_hair_styles_list[head_organ.f_style] if(facial_hair_style && facial_hair_style.species_allowed) if((head_organ.dna.species.name in facial_hair_style.species_allowed) || (head_organ.dna.species.bodyflags & ALL_RPARTS)) //If the head's species is in the list of allowed species for the hairstyle, or the head's species is one flagged to have bodies comprised wholly of cybernetics... var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s") @@ -765,7 +765,7 @@ var/global/list/damage_icon_parts = list() else new_glasses = image("icon" = 'icons/mob/eyes.dmi', "icon_state" = "[glasses.icon_state]") - var/datum/sprite_accessory/hair/hair_style = hair_styles_full_list[head_organ.h_style] + var/datum/sprite_accessory/hair/hair_style = GLOB.hair_styles_full_list[head_organ.h_style] if(hair_style && hair_style.glasses_over) //Select which layer to use based on the properties of the hair style. Hair styles with hair that don't overhang the arms of the glasses should have glasses_over set to a positive value. overlays_standing[GLASSES_OVER_LAYER] = new_glasses else @@ -1029,7 +1029,7 @@ var/global/list/damage_icon_parts = list() var/obj/item/organ/external/head/head_organ = get_organ("head") var/datum/sprite_accessory/alt_heads/alternate_head if(head_organ.alt_head && head_organ.alt_head != "None") - alternate_head = alt_heads_list[head_organ.alt_head] + alternate_head = GLOB.alt_heads_list[head_organ.alt_head] var/image/standing var/icon/mask_icon = new(wear_mask.icon) @@ -1166,7 +1166,7 @@ var/global/list/damage_icon_parts = list() var/datum/sprite_accessory/body_markings/tail/tail_marking_style if(m_styles["tail"] != "None" && (dna.species.bodyflags & HAS_TAIL_MARKINGS)) var/tail_marking = m_styles["tail"] - tail_marking_style = marking_styles_list[tail_marking] + tail_marking_style = GLOB.marking_styles_list[tail_marking] tail_marking_icon = new/icon("icon" = tail_marking_style.icon, "icon_state" = "[tail_marking_style.icon_state]_s") tail_marking_icon.Blend(m_colours["tail"], ICON_ADD) @@ -1233,7 +1233,7 @@ var/global/list/damage_icon_parts = list() var/datum/sprite_accessory/body_markings/tail/tail_marking_style if(m_styles["tail"] != "None" && (dna.species.bodyflags & HAS_TAIL_MARKINGS)) var/tail_marking = m_styles["tail"] - tail_marking_style = marking_styles_list[tail_marking] + tail_marking_style = GLOB.marking_styles_list[tail_marking] tail_marking_icon = new/icon("icon" = tail_marking_style.icon, "icon_state" = "[tail_marking_style.icon_state]w_s") tail_marking_icon.Blend(m_colours["tail"], ICON_ADD) diff --git a/code/modules/mob/living/carbon/slime/slime.dm b/code/modules/mob/living/carbon/slime/slime.dm index 506cc804bd3..be25de1ac14 100644 --- a/code/modules/mob/living/carbon/slime/slime.dm +++ b/code/modules/mob/living/carbon/slime/slime.dm @@ -67,7 +67,7 @@ ..() /mob/living/carbon/slime/Destroy() - for(var/obj/machinery/computer/camera_advanced/xenobio/X in machines) + for(var/obj/machinery/computer/camera_advanced/xenobio/X in GLOB.machines) if(src in X.stored_slimes) X.stored_slimes -= src return ..() diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 4cfdc7bb1f4..583b44ff452 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -544,8 +544,8 @@ restore_all_organs() surgeries.Cut() //End all surgeries. if(stat == DEAD) - dead_mob_list -= src - living_mob_list += src + GLOB.dead_mob_list -= src + GLOB.living_mob_list += src timeofdeath = 0 stat = CONSCIOUS diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 2f6bb4628c3..5f577f79d7d 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -253,7 +253,7 @@ proc/get_radio_key_from_channel(var/channel) hearturfs += get_turf(O) listening_obj |= O - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(!M.client) continue //skip monkeys and leavers if(isnewplayer(M)) @@ -315,7 +315,7 @@ proc/get_radio_key_from_channel(var/channel) if(act && type && message) //parent call log_emote(message, src) - for(var/mob/M in dead_mob_list) + for(var/mob/M in GLOB.dead_mob_list) if(!M.client || istype(M, /mob/new_player)) continue //skip monkeys, leavers and new players //who the hell knows why new players are in the dead mob list @@ -431,7 +431,7 @@ proc/get_radio_key_from_channel(var/channel) hearturfs += get_turf(L) //ghosts - for(var/mob/M in dead_mob_list) //does this include players who joined as observers as well? + for(var/mob/M in GLOB.dead_mob_list) //does this include players who joined as observers as well? if(!M.client) continue if(M.stat == DEAD && M.client && M.get_preference(CHAT_GHOSTEARS)) @@ -439,7 +439,7 @@ proc/get_radio_key_from_channel(var/channel) // This, in tandem with "hearturfs", lets nested mobs hear whispers that are in range // Grifted from saycode above. - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(!M.client || isnewplayer(M)) continue //skip monkeys and leavers if(get_turf(M) in hearturfs) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index cf9102858bd..cdb53aebc4e 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -119,12 +119,12 @@ var/list/ai_verbs_default = list( announcement.announcer = name announcement.newscast = 0 - var/list/possibleNames = ai_names + var/list/possibleNames = GLOB.ai_names var/pickedName = null while(!pickedName) - pickedName = pick(ai_names) - for(var/mob/living/silicon/ai/A in mob_list) + pickedName = pick(GLOB.ai_names) + for(var/mob/living/silicon/ai/A in GLOB.mob_list) if(A.real_name == pickedName && possibleNames.len > 1) //fixing the theoretically possible infinite loop possibleNames -= pickedName pickedName = null @@ -199,7 +199,7 @@ var/list/ai_verbs_default = list( builtInCamera.network = list("SS13") ai_list += src - shuttle_caller_list += src + GLOB.shuttle_caller_list += src ..() /mob/living/silicon/ai/proc/on_mob_init() @@ -264,7 +264,7 @@ var/list/ai_verbs_default = list( /mob/living/silicon/ai/Destroy() ai_list -= src - shuttle_caller_list -= src + GLOB.shuttle_caller_list -= src shuttle_master.autoEvac() QDEL_NULL(eyeobj) // No AI, no Eye if(malfhacking) @@ -613,7 +613,7 @@ var/list/ai_verbs_default = list( return if(href_list["track"]) - var/mob/living/target = locate(href_list["track"]) in mob_list + var/mob/living/target = locate(href_list["track"]) in GLOB.mob_list if(target && target.can_track()) ai_actual_track(target) else @@ -621,7 +621,7 @@ var/list/ai_verbs_default = list( return if(href_list["trackbot"]) - var/mob/living/simple_animal/bot/target = locate(href_list["trackbot"]) in simple_animal_list + var/mob/living/simple_animal/bot/target = locate(href_list["trackbot"]) in GLOB.simple_animal_list if(target) ai_actual_track(target) else @@ -629,7 +629,7 @@ var/list/ai_verbs_default = list( return if(href_list["callbot"]) //Command a bot to move to a selected location. - Bot = locate(href_list["callbot"]) in simple_animal_list + Bot = locate(href_list["callbot"]) in GLOB.simple_animal_list if(!Bot || Bot.remote_disabled || control_disabled) return //True if there is no bot found, the bot is manually emagged, or the AI is carded with wireless off. waypoint_mode = 1 @@ -637,7 +637,7 @@ var/list/ai_verbs_default = list( return if(href_list["interface"]) //Remotely connect to a bot! - Bot = locate(href_list["interface"]) in simple_animal_list + Bot = locate(href_list["interface"]) in GLOB.simple_animal_list if(!Bot || Bot.remote_disabled || control_disabled) return Bot.attack_ai(src) @@ -664,8 +664,8 @@ var/list/ai_verbs_default = list( M.transfer_ai(AI_MECH_HACK,src, usr) //Called om the mech itself. else if(href_list["faketrack"]) - var/mob/target = locate(href_list["track"]) in mob_list - var/mob/living/silicon/ai/A = locate(href_list["track2"]) in mob_list + var/mob/target = locate(href_list["track"]) in GLOB.mob_list + var/mob/living/silicon/ai/A = locate(href_list["track2"]) in GLOB.mob_list if(A && target) A.cameraFollow = target @@ -679,7 +679,7 @@ var/list/ai_verbs_default = list( continue else if(href_list["open"]) - var/mob/target = locate(href_list["open"]) in mob_list + var/mob/target = locate(href_list["open"]) in GLOB.mob_list if(target) open_nearest_door(target) @@ -717,7 +717,7 @@ var/list/ai_verbs_default = list( d += "Query network status
" d += "
NameFingerprints
[H][md5(H.dna.uni_identity)]
" - for(var/mob/living/simple_animal/bot/Bot in simple_animal_list) + for(var/mob/living/simple_animal/bot/Bot in GLOB.simple_animal_list) if(is_ai_allowed(Bot.z) && !Bot.remote_disabled) //Only non-emagged bots on the allowed Z-level are detected! bot_area = get_area(Bot) d += "" @@ -793,7 +793,7 @@ var/list/ai_verbs_default = list( if(!C.can_use()) continue - var/list/tempnetwork = difflist(C.network,restricted_camera_networks,1) + var/list/tempnetwork = difflist(C.network,GLOB.restricted_camera_networks,1) if(tempnetwork.len) for(var/i in tempnetwork) cameralist[i] = i @@ -843,7 +843,7 @@ var/list/ai_verbs_default = list( if(check_unable()) return - for(var/obj/machinery/M in machines) //change status + for(var/obj/machinery/M in GLOB.machines) //change status if(istype(M, /obj/machinery/ai_status_display)) var/obj/machinery/ai_status_display/AISD = M AISD.emotion = emote diff --git a/code/modules/mob/living/silicon/ai/death.dm b/code/modules/mob/living/silicon/ai/death.dm index 6d7cb04639f..541fd2af8cd 100644 --- a/code/modules/mob/living/silicon/ai/death.dm +++ b/code/modules/mob/living/silicon/ai/death.dm @@ -15,13 +15,13 @@ see_in_dark = 8 see_invisible = SEE_INVISIBLE_LEVEL_TWO - shuttle_caller_list -= src + GLOB.shuttle_caller_list -= src shuttle_master.autoEvac() if(nuking) set_security_level("red") nuking = 0 - for(var/obj/item/pinpointer/point in pinpointer_list) + for(var/obj/item/pinpointer/point in GLOB.pinpointer_list) point.the_disk = null //Point back to the disk. if(doomsday_device) diff --git a/code/modules/mob/living/silicon/ai/latejoin.dm b/code/modules/mob/living/silicon/ai/latejoin.dm index 606420e7cf1..41e7d20fb1e 100644 --- a/code/modules/mob/living/silicon/ai/latejoin.dm +++ b/code/modules/mob/living/silicon/ai/latejoin.dm @@ -1,7 +1,7 @@ var/global/list/empty_playable_ai_cores = list() /hook/roundstart/proc/spawn_empty_ai() - for(var/obj/effect/landmark/start/S in landmarks_list) + for(var/obj/effect/landmark/start/S in GLOB.landmarks_list) if(S.name != "AI") continue if(locate(/mob/living) in S.loc) @@ -42,21 +42,21 @@ var/global/list/empty_playable_ai_cores = list() // TODO: Move away from the insane name-based landmark system /mob/living/silicon/ai/proc/moveToAILandmark() var/obj/loc_landmark - for(var/obj/effect/landmark/start/sloc in landmarks_list) + for(var/obj/effect/landmark/start/sloc in GLOB.landmarks_list) if(sloc.name != "AI") continue if(locate(/mob/living) in sloc.loc) continue loc_landmark = sloc if(!loc_landmark) - for(var/obj/effect/landmark/tripai in landmarks_list) + for(var/obj/effect/landmark/tripai in GLOB.landmarks_list) if(tripai.name == "tripai") if(locate(/mob/living) in tripai.loc) continue loc_landmark = tripai if(!loc_landmark) to_chat(src, "Oh god sorry we can't find an unoccupied AI spawn location, so we're spawning you on top of someone.") - for(var/obj/effect/landmark/start/sloc in landmarks_list) + for(var/obj/effect/landmark/start/sloc in GLOB.landmarks_list) if(sloc.name == "AI") loc_landmark = sloc diff --git a/code/modules/mob/living/silicon/ai/laws.dm b/code/modules/mob/living/silicon/ai/laws.dm index 4ce1dbda48c..19e0b784a58 100755 --- a/code/modules/mob/living/silicon/ai/laws.dm +++ b/code/modules/mob/living/silicon/ai/laws.dm @@ -17,7 +17,7 @@ /mob/living/silicon/ai/add_ion_law(var/law) ..() - for(var/mob/living/silicon/robot/R in mob_list) + for(var/mob/living/silicon/robot/R in GLOB.mob_list) if(R.lawupdate && (R.connected_ai == src)) R.show_laws() diff --git a/code/modules/mob/living/silicon/ai/login.dm b/code/modules/mob/living/silicon/ai/login.dm index 7d3a65445ff..a71fc9d6f2d 100644 --- a/code/modules/mob/living/silicon/ai/login.dm +++ b/code/modules/mob/living/silicon/ai/login.dm @@ -1,4 +1,4 @@ -/mob/living/silicon/ai/Login() //ThisIsDumb(TM) TODO: tidy this up ¬_¬ ~Carn +/mob/living/silicon/ai/Login() //ThisIsDumb(TM) TODO: tidy this up �_� ~Carn ..() for(var/obj/effect/rune/rune in world) var/image/blood = image(loc = rune) @@ -7,7 +7,7 @@ regenerate_icons() if(stat != DEAD) - for(var/obj/machinery/ai_status_display/O in machines) //change status + for(var/obj/machinery/ai_status_display/O in GLOB.machines) //change status O.mode = 1 O.emotion = "Neutral" view_core() \ No newline at end of file diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm index d35983a1390..431cf44a331 100644 --- a/code/modules/mob/living/silicon/ai/say.dm +++ b/code/modules/mob/living/silicon/ai/say.dm @@ -148,7 +148,7 @@ var/const/VOX_PATH = "sound/vox_fem/" // If there is no single listener, broadcast to everyone in the same z level if(!only_listener) // Play voice for all mobs in the z level - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(M.client) var/turf/T = get_turf(M) if(T && T.z == z_level && M.can_hear()) diff --git a/code/modules/mob/living/silicon/death.dm b/code/modules/mob/living/silicon/death.dm index b5c658c6c62..1c6fa2705f1 100644 --- a/code/modules/mob/living/silicon/death.dm +++ b/code/modules/mob/living/silicon/death.dm @@ -16,7 +16,7 @@ // flick("gibbed-r", animation) robogibs(loc) - dead_mob_list -= src + GLOB.dead_mob_list -= src spawn(15) if(animation) qdel(animation) if(src) qdel(src) @@ -37,7 +37,7 @@ // flick("dust-r", animation) new /obj/effect/decal/remains/robot(loc) - dead_mob_list -= src + GLOB.dead_mob_list -= src spawn(15) if(animation) qdel(animation) if(src) qdel(src) diff --git a/code/modules/mob/living/silicon/pai/death.dm b/code/modules/mob/living/silicon/pai/death.dm index b0f498014d8..c6963027ed0 100644 --- a/code/modules/mob/living/silicon/pai/death.dm +++ b/code/modules/mob/living/silicon/pai/death.dm @@ -23,6 +23,6 @@ //New pAI's get a brand new mind to prevent meta stuff from their previous life. This new mind causes problems down the line if it's not deleted here. //Read as: I have no idea what I'm doing but asking for help got me nowhere so this is what you get. - Nodrak if(mind) qdel(mind) - living_mob_list -= src + GLOB.living_mob_list -= src if(icon_state != "[chassis]_dead" || cleanWipe) qdel(src) diff --git a/code/modules/mob/living/silicon/pai/recruit.dm b/code/modules/mob/living/silicon/pai/recruit.dm index 2d52af6e89d..a21c3b989e5 100644 --- a/code/modules/mob/living/silicon/pai/recruit.dm +++ b/code/modules/mob/living/silicon/pai/recruit.dm @@ -26,7 +26,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates if("signup" in href_list) var/mob/dead/observer/O = locate(href_list["signup"]) if(!O) return - if(!(O in respawnable_list)) + if(!(O in GLOB.respawnable_list)) to_chat(O, "You've given up your ability to respawn!") return if(!check_recruit(O)) return @@ -41,7 +41,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates if(istype(card,/obj/item/paicard) && istype(candidate,/datum/paiCandidate)) var/mob/living/silicon/pai/pai = new(card) if(!candidate.name) - pai.name = pick(ninja_names) + pai.name = pick(GLOB.ninja_names) else pai.name = candidate.name pai.real_name = pai.name @@ -237,7 +237,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates for(var/datum/paiCandidate/c in paiController.pai_candidates) if(c.ready) var/found = 0 - for(var/mob/o in respawnable_list) + for(var/mob/o in GLOB.respawnable_list) if(o.key == c.key) found = 1 if(found) @@ -348,7 +348,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates user << browse(dat, "window=findPai") proc/requestRecruits(var/obj/item/paicard/P, mob/user) - for(var/mob/dead/observer/O in player_list) + for(var/mob/dead/observer/O in GLOB.player_list) if(O.client && (ROLE_PAI in O.client.prefs.be_special)) if(player_old_enough_antag(O.client,ROLE_PAI)) if(check_recruit(O)) @@ -362,7 +362,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates return 0 if(cannotPossess(O)) return 0 - if(!(O in respawnable_list)) + if(!(O in GLOB.respawnable_list)) return 0 if(O.client) return 1 diff --git a/code/modules/mob/living/silicon/pai/software_modules.dm b/code/modules/mob/living/silicon/pai/software_modules.dm index 48c1c1d7d10..67449c4c32b 100644 --- a/code/modules/mob/living/silicon/pai/software_modules.dm +++ b/code/modules/mob/living/silicon/pai/software_modules.dm @@ -383,7 +383,7 @@ /mob/living/silicon/pai/proc/hackloop() var/turf/T = get_turf_or_move(src.loc) - for(var/mob/living/silicon/ai/AI in player_list) + for(var/mob/living/silicon/ai/AI in GLOB.player_list) if(!T || !is_station_contact(T.z)) break if(T.loc) diff --git a/code/modules/mob/living/silicon/robot/death.dm b/code/modules/mob/living/silicon/robot/death.dm index 82667be2d3d..75906729715 100644 --- a/code/modules/mob/living/silicon/robot/death.dm +++ b/code/modules/mob/living/silicon/robot/death.dm @@ -16,8 +16,8 @@ flick("gibbed-r", animation) robogibs(loc) - living_mob_list -= src - dead_mob_list -= src + GLOB.living_mob_list -= src + GLOB.dead_mob_list -= src spawn(15) if(animation) qdel(animation) if(src) qdel(src) @@ -39,7 +39,7 @@ new /obj/effect/decal/remains/robot(loc) if(mmi) qdel(mmi) //Delete the MMI first so that it won't go popping out. - dead_mob_list -= src + GLOB.dead_mob_list -= src spawn(15) if(animation) qdel(animation) if(src) qdel(src) diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index aaaeb15b283..ee3b884f14e 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -274,7 +274,7 @@ //Reboot procs. /mob/living/silicon/robot/drone/proc/request_player() - for(var/mob/dead/observer/O in player_list) + for(var/mob/dead/observer/O in GLOB.player_list) if(cannotPossess(O)) continue if(jobban_isbanned(O,"nonhumandept") || jobban_isbanned(O,"Drone")) diff --git a/code/modules/mob/living/silicon/robot/drone/drone_abilities.dm b/code/modules/mob/living/silicon/robot/drone/drone_abilities.dm index b3e6a62cb2e..44eff377f77 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_abilities.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_abilities.dm @@ -4,14 +4,14 @@ set desc = "Tag yourself for delivery through the disposals system." set category = "Drone" - var/tag = input("Select the desired destination.", "Set Mail Tag", null) as null|anything in TAGGERLOCATIONS + var/tag = input("Select the desired destination.", "Set Mail Tag", null) as null|anything in GLOB.TAGGERLOCATIONS - if(!tag || TAGGERLOCATIONS[tag]) + if(!tag || GLOB.TAGGERLOCATIONS[tag]) mail_destination = 0 return to_chat(src, "You configure your internal beacon, tagging yourself for delivery to '[tag]'.") - mail_destination = TAGGERLOCATIONS.Find(tag) + mail_destination = GLOB.TAGGERLOCATIONS.Find(tag) //Auto flush if we use this verb inside a disposal chute. var/obj/machinery/disposal/D = src.loc diff --git a/code/modules/mob/living/silicon/robot/drone/drone_console.dm b/code/modules/mob/living/silicon/robot/drone/drone_console.dm index cb632ce0ffd..167bf45ca6e 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_console.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_console.dm @@ -63,9 +63,9 @@ if(href_list["setarea"]) //Probably should consider using another list, but this one will do. - var/t_area = input("Select the area to ping.", "Set Target Area", null) as null|anything in TAGGERLOCATIONS + var/t_area = input("Select the area to ping.", "Set Target Area", null) as null|anything in GLOB.TAGGERLOCATIONS - if(!t_area || TAGGERLOCATIONS[t_area]) + if(!t_area || GLOB.TAGGERLOCATIONS[t_area]) return drone_call_area = t_area diff --git a/code/modules/mob/living/silicon/robot/drone/drone_say.dm b/code/modules/mob/living/silicon/robot/drone/drone_say.dm index 779b3a2de14..741207d6f2d 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_say.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_say.dm @@ -5,7 +5,7 @@ if(!speaking) speaking = parse_language(message) if(!speaking) - speaking = istype(get_default_language(), /datum/language) ? get_default_language() : all_languages[get_default_language()] + speaking = istype(get_default_language(), /datum/language) ? get_default_language() : GLOB.all_languages[get_default_language()] message = speaking.key + " " + message; // Prepend key to prevent the message from getting trimmed if(speaking) return ..() diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 60b1a263922..fe26a927216 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -35,7 +35,7 @@ var/obj/item/radio/common_radio /mob/living/silicon/New() - silicon_mob_list |= src + GLOB.silicon_mob_list |= src ..() var/datum/atom_hud/data/diagnostic/diag_hud = huds[DATA_HUD_DIAGNOSTIC] diag_hud.add_to_hud(src) @@ -51,7 +51,7 @@ return //we use a different hud /mob/living/silicon/Destroy() - silicon_mob_list -= src + GLOB.silicon_mob_list -= src for(var/datum/alarm_handler/AH in alarm_handlers) AH.unregister(src) return ..() @@ -163,7 +163,7 @@ /mob/living/silicon/add_language(var/language, var/can_speak=1) if(..(language) && can_speak) - speech_synthesizer_langs.Add(all_languages[language]) + speech_synthesizer_langs.Add(GLOB.all_languages[language]) return 1 /mob/living/silicon/remove_language(var/rem_language) diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index 7f5c1916619..a837778b718 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -137,7 +137,7 @@ /mob/living/simple_animal/bot/New() ..() - bots_list += src + GLOB.bots_list += src icon_living = icon_state icon_dead = icon_state access_card = new /obj/item/card/id(src) @@ -151,7 +151,7 @@ add_language("Tradeband", 1) add_language("Gutter", 1) add_language("Trinary", 1) - default_language = all_languages["Galactic Common"] + default_language = GLOB.all_languages["Galactic Common"] bot_core = new bot_core_type(src) spawn(30) @@ -190,7 +190,7 @@ if(path_hud) QDEL_NULL(path_hud) path_hud = null - bots_list -= src + GLOB.bots_list -= src QDEL_NULL(Radio) QDEL_NULL(access_card) if(reset_access_timer_id) @@ -656,7 +656,7 @@ Pass a positive integer as an argument to override a bot's default speed. /mob/living/simple_animal/bot/proc/get_next_patrol_target() // search the beacon list for the next target in the list. - for(var/obj/machinery/navbeacon/NB in navbeacons["[z]"]) + for(var/obj/machinery/navbeacon/NB in GLOB.navbeacons["[z]"]) if(NB.location == next_destination) //Does the Beacon location text match the destination? destination = new_destination //We now know the name of where we want to go. patrol_target = NB.loc //Get its location and set it as the target. @@ -664,7 +664,7 @@ Pass a positive integer as an argument to override a bot's default speed. return 1 /mob/living/simple_animal/bot/proc/find_nearest_beacon() - for(var/obj/machinery/navbeacon/NB in navbeacons["[z]"]) + for(var/obj/machinery/navbeacon/NB in GLOB.navbeacons["[z]"]) var/dist = get_dist(src, NB) if(nearest_beacon) //Loop though the beacon net to find the true closest beacon. //Ignore the beacon if were are located on it. diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm index 007688fb7db..01534493fe3 100644 --- a/code/modules/mob/living/simple_animal/bot/medbot.dm +++ b/code/modules/mob/living/simple_animal/bot/medbot.dm @@ -543,7 +543,7 @@ return /mob/living/simple_animal/bot/medbot/proc/check_overdose(mob/living/carbon/patient,reagent_id,injection_amount) - var/datum/reagent/R = chemical_reagents_list[reagent_id] + var/datum/reagent/R = GLOB.chemical_reagents_list[reagent_id] if(!R.overdose_threshold) return 0 var/current_volume = patient.reagents.get_reagent_amount(reagent_id) diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index 619d0316349..acb90b13dc2 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -214,7 +214,7 @@ if(mode == BOT_IDLE || mode == BOT_DELIVER) start_home() if("destination") - var/new_dest = input(usr, "Enter Destination:", name, destination) as null|anything in deliverybeacontags + var/new_dest = input(usr, "Enter Destination:", name, destination) as null|anything in GLOB.deliverybeacontags if(new_dest) set_destination(new_dest) if("setid") @@ -222,7 +222,7 @@ if(new_id) set_suffix(new_id) if("sethome") - var/new_home = input(usr, "Enter Home:", name, home_destination) as null|anything in deliverybeacontags + var/new_home = input(usr, "Enter Home:", name, home_destination) as null|anything in GLOB.deliverybeacontags if(new_home) home_destination = new_home if("unload") @@ -809,7 +809,7 @@ if(!on || !wires.BeaconRX()) return - for(var/obj/machinery/navbeacon/NB in deliverybeacons) + for(var/obj/machinery/navbeacon/NB in GLOB.deliverybeacons) if(NB.location == new_destination) // if the beacon location matches the set destination destination = new_destination // the we will navigate there target = NB.loc diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm index 37ed25f15e8..424d852d56b 100644 --- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm +++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm @@ -57,12 +57,12 @@ if(!B.brainmob.key) var/ghost_can_reenter = 0 if(B.brainmob.mind) - for(var/mob/dead/observer/G in player_list) + for(var/mob/dead/observer/G in GLOB.player_list) if(G.can_reenter_corpse && G.mind == B.brainmob.mind) ghost_can_reenter = 1 break - for(var/mob/living/simple_animal/S in player_list) - if(S in respawnable_list) + for(var/mob/living/simple_animal/S in GLOB.player_list) + if(S in GLOB.respawnable_list) ghost_can_reenter = 1 break if(!ghost_can_reenter) diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm index 06176add94d..1bcf64d2dc4 100644 --- a/code/modules/mob/living/simple_animal/hostile/bees.dm +++ b/code/modules/mob/living/simple_animal/hostile/bees.dm @@ -263,7 +263,7 @@ else to_chat(user, "You don't have enough royal bee jelly to split a bee in two!") else - var/datum/reagent/R = chemical_reagents_list[S.reagents.get_master_reagent_id()] + var/datum/reagent/R = GLOB.chemical_reagents_list[S.reagents.get_master_reagent_id()] if(R && S.reagents.has_reagent(R.id, 5)) S.reagents.remove_reagent(R.id,5) queen.assign_reagent(R) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index 3c72042efce..66d66e706a7 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -107,7 +107,7 @@ Difficulty: Hard /mob/living/simple_animal/hostile/megafauna/bubblegum/New() ..() - for(var/mob/living/simple_animal/hostile/megafauna/bubblegum/B in mob_list) + for(var/mob/living/simple_animal/hostile/megafauna/bubblegum/B in GLOB.mob_list) if(B != src) qdel(src) //There can be only one break diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm index 1bfb56bd26f..6fe02cc972a 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm @@ -119,7 +119,7 @@ Difficulty: Medium visible_message("[src] splits in twain!") else var/last_legion = TRUE - for(var/mob/living/simple_animal/hostile/megafauna/legion/other in mob_list) + for(var/mob/living/simple_animal/hostile/megafauna/legion/other in GLOB.mob_list) if(other != src) last_legion = FALSE break diff --git a/code/modules/mob/living/simple_animal/hostile/statue.dm b/code/modules/mob/living/simple_animal/hostile/statue.dm index b3bc11e6c1f..88326747247 100644 --- a/code/modules/mob/living/simple_animal/hostile/statue.dm +++ b/code/modules/mob/living/simple_animal/hostile/statue.dm @@ -179,7 +179,7 @@ range = 10 /obj/effect/proc_holder/spell/aoe_turf/blindness/cast(list/targets, mob/user = usr) - for(var/mob/living/L in living_mob_list) + for(var/mob/living/L in GLOB.living_mob_list) if(L == user) continue var/turf/T = get_turf(L.loc) diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index 875af3da359..93937749620 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -97,7 +97,7 @@ /mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/New() ..() - name = "[name] [pick(last_names)]" + name = "[name] [pick(GLOB.last_names)]" depotarea = areaMaster spawn_turf = get_turf(src) @@ -217,7 +217,7 @@ /mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/armory/LateInitialize() if(istype(depotarea)) var/list/key_candidates = list() - for(var/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/officer/O in living_mob_list) + for(var/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/officer/O in GLOB.living_mob_list) key_candidates += O if(key_candidates.len) var/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/officer/O = pick(key_candidates) diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/ghost.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/ghost.dm index b52abff90c9..dd170c1c177 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/ghost.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/ghost.dm @@ -40,5 +40,5 @@ to_chat(user, "Someone else already took this spider.") return key = user.key - for(var/mob/dead/observer/G in player_list) + for(var/mob/dead/observer/G in GLOB.player_list) G.show_message("A ghost has taken control of [src]. ([ghost_follow_link(src, ghost=G)]).") \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/queen.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/queen.dm index 532c2b7357a..2634bd43e8b 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/queen.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/queen.dm @@ -224,7 +224,7 @@ /mob/living/simple_animal/hostile/poison/terror_spider/queen/proc/MassFlicker() var/list/target_lights = list() - for(var/mob/living/carbon/human/H in player_list) + for(var/mob/living/carbon/human/H in GLOB.player_list) if(H.z != z) continue if(H.stat == DEAD) diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_ai.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_ai.dm index 62f69b20b39..3ec422f5b49 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_ai.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_ai.dm @@ -316,6 +316,6 @@ // -------------------------------------------------------------------------------- /mob/living/simple_animal/hostile/poison/terror_spider/proc/UnlockBlastDoors(target_id_tag) - for(var/obj/machinery/door/poddoor/P in airlocks) + for(var/obj/machinery/door/poddoor/P in GLOB.airlocks) if(P.density && P.id_tag == target_id_tag && P.z == z && !P.operating) P.open() \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm index b5d0a100ae3..e68f2a2fc41 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm @@ -241,7 +241,7 @@ var/global/list/ts_spiderling_list = list() add_language("Spider Hivemind") if(spider_tier >= TS_TIER_2) add_language("Galactic Common") - default_language = all_languages["Spider Hivemind"] + default_language = GLOB.all_languages["Spider Hivemind"] web_action = new() web_action.Grant(src) diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index ed4c074bff0..d06c19dcd34 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -91,7 +91,7 @@ /mob/living/simple_animal/parrot/New() ..() - hear_radio_list += src + GLOB.hear_radio_list += src if(!ears) var/headset = pick(/obj/item/radio/headset/headset_sec, \ /obj/item/radio/headset/headset_eng, \ @@ -109,7 +109,7 @@ /mob/living/simple_animal/parrot/proc/perch_player) /mob/living/simple_animal/parrot/Destroy() - hear_radio_list -= src + GLOB.hear_radio_list -= src return ..() /mob/living/simple_animal/parrot/death(gibbed) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 5a88373f6f2..9d4bcdc58e3 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -82,7 +82,7 @@ /mob/living/simple_animal/Initialize() ..() - simple_animal_list += src + GLOB.simple_animal_list += src verbs -= /mob/verb/observe if(!can_hide) verbs -= /mob/living/simple_animal/verb/hide @@ -96,7 +96,7 @@ collar.forceMove(loc) collar = null master_commander = null - simple_animal_list -= src + GLOB.simple_animal_list -= src return ..() /mob/living/simple_animal/Login() diff --git a/code/modules/mob/living/stat_states.dm b/code/modules/mob/living/stat_states.dm index 3decff7596e..07832524ebc 100644 --- a/code/modules/mob/living/stat_states.dm +++ b/code/modules/mob/living/stat_states.dm @@ -45,8 +45,8 @@ create_attack_log("Came back to life at [atom_loc_line(get_turf(src))]") log_game("[key_name(src)] came back to life at [atom_loc_line(get_turf(src))]") stat = CONSCIOUS - dead_mob_list -= src - living_mob_list += src + GLOB.dead_mob_list -= src + GLOB.living_mob_list += src timeofdeath = null if(updating) update_canmove() diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index a5883fe93f2..1da97adf801 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -6,7 +6,7 @@ log_access_in(client) create_attack_log("Logged in at [atom_loc_line(get_turf(src))]") if(config.log_access) - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(M == src) continue if( M.key && (M.key != key) ) var/matches @@ -26,7 +26,7 @@ log_adminwarn("Notice: [key_name(src)] has the same [matches] as [key_name(M)] (no longer logged in).") /mob/Login() - player_list |= src + GLOB.player_list |= src update_Login_details() world.update_status() @@ -47,7 +47,7 @@ reset_perspective(loc) - if(ckey in deadmins) + if(ckey in GLOB.deadmins) verbs += /client/proc/readmin //Clear ability list and update from mob. diff --git a/code/modules/mob/logout.dm b/code/modules/mob/logout.dm index cbcd51c44a7..762607bd501 100644 --- a/code/modules/mob/logout.dm +++ b/code/modules/mob/logout.dm @@ -1,7 +1,7 @@ /mob/Logout() SSnanoui.user_logout(src) // this is used to clean up (remove) this user's Nano UIs unset_machine() - player_list -= src + GLOB.player_list -= src log_access_out(src) create_attack_log("Logged out at [atom_loc_line(get_turf(src))]") // `holder` is nil'd out by now, so we check the `admin_datums` array directly diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 77c98392740..ff238ac1fc7 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1,7 +1,7 @@ /mob/Destroy()//This makes sure that mobs with clients/keys are not just deleted from the game. - mob_list -= src - dead_mob_list -= src - living_mob_list -= src + GLOB.mob_list -= src + GLOB.dead_mob_list -= src + GLOB.living_mob_list -= src QDEL_NULL(hud_used) if(mind && mind.current == src) spellremove(src) @@ -25,11 +25,11 @@ return QDEL_HINT_HARDDEL /mob/Initialize() - mob_list += src + GLOB.mob_list += src if(stat == DEAD) - dead_mob_list += src + GLOB.dead_mob_list += src else - living_mob_list += src + GLOB.living_mob_list += src prepare_huds() ..() @@ -164,7 +164,7 @@ M.show_message( message, 2, deaf_message, 1) /mob/proc/findname(msg) - for(var/mob/M in mob_list) + for(var/mob/M in GLOB.mob_list) if(M.real_name == text("[]", msg)) return M return 0 @@ -810,7 +810,7 @@ var/list/slot_equipment_priority = list( \ creatures[name] = O - for(var/mob/M in sortAtom(mob_list)) + for(var/mob/M in sortAtom(GLOB.mob_list)) var/name = M.name if(names.Find(name)) namecounts[name]++ @@ -1095,26 +1095,26 @@ var/list/slot_equipment_priority = list( \ to_chat(src, "You can't respawn as an NPC before the game starts!") return - if((usr in respawnable_list) && (stat==2 || istype(usr,/mob/dead/observer))) + if((usr in GLOB.respawnable_list) && (stat==2 || istype(usr,/mob/dead/observer))) var/list/creatures = list("Mouse") - for(var/mob/living/L in living_mob_list) + for(var/mob/living/L in GLOB.living_mob_list) if(safe_respawn(L.type) && L.stat!=2) if(!L.key) creatures += L var/picked = input("Please select an NPC to respawn as", "Respawn as NPC") as null|anything in creatures switch(picked) if("Mouse") - respawnable_list -= usr + GLOB.respawnable_list -= usr become_mouse() spawn(5) - respawnable_list += usr + GLOB.respawnable_list += usr else var/mob/living/NPC = picked if(istype(NPC) && !NPC.key) - respawnable_list -= usr + GLOB.respawnable_list -= usr NPC.key = key spawn(5) - respawnable_list += usr + GLOB.respawnable_list += usr else to_chat(usr, "You are not dead or you have given up your right to be respawned!") return diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 01bcb2bcc1a..aa563b8a3b9 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -308,7 +308,7 @@ proc/muffledspeech(phrase) /proc/findname(msg) - for(var/mob/M in mob_list) + for(var/mob/M in GLOB.mob_list) if(M.real_name == text("[msg]")) return 1 return 0 @@ -442,7 +442,7 @@ var/list/intents = list(INTENT_HELP,INTENT_DISARM,INTENT_GRAB,INTENT_HARM) else name = realname - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(M.client && ((!istype(M, /mob/new_player) && M.stat == DEAD) || check_rights(R_ADMIN|R_MOD,0,M)) && M.get_preference(CHAT_DEAD)) var/follow var/lname @@ -467,7 +467,7 @@ var/list/intents = list(INTENT_HELP,INTENT_DISARM,INTENT_GRAB,INTENT_HARM) to_chat(M, "[lname][follow][message]") /proc/notify_ghosts(message, ghost_sound = null, enter_link = null, title = null, atom/source = null, image/alert_overlay = null, flashwindow = TRUE, var/action = NOTIFY_JUMP) //Easy notification of ghosts. - for(var/mob/dead/observer/O in player_list) + for(var/mob/dead/observer/O in GLOB.player_list) if(O.client) to_chat(O, "[message][(enter_link) ? " [enter_link]" : ""]") if(ghost_sound) @@ -568,7 +568,7 @@ var/list/intents = list(INTENT_HELP,INTENT_DISARM,INTENT_GRAB,INTENT_HARM) return //took too long newname = reject_bad_name(newname,allow_numbers) //returns null if the name doesn't meet some basic requirements. Tidies up a few other things like bad-characters. - for(var/mob/living/M in player_list) + for(var/mob/living/M in GLOB.player_list) if(M == src) continue if(!newname || M.real_name == newname) diff --git a/code/modules/mob/new_player/login.dm b/code/modules/mob/new_player/login.dm index 99047b0382c..1c7b06b1ce1 100644 --- a/code/modules/mob/new_player/login.dm +++ b/code/modules/mob/new_player/login.dm @@ -15,11 +15,11 @@ lastarea = loc sight |= SEE_TURFS - player_list |= src + GLOB.player_list |= src /* var/list/watch_locations = list() - for(var/obj/effect/landmark/landmark in landmarks_list) + for(var/obj/effect/landmark/landmark in GLOB.landmarks_list) if(landmark.tag == "landmark*new_player") watch_locations += landmark.loc @@ -47,7 +47,7 @@ if(newpoll) client.handle_player_polling() - if(ckey in deadmins) + if(ckey in GLOB.deadmins) verbs += /client/proc/readmin spawn(40) if(client) @@ -57,7 +57,7 @@ if(src.client.holder) return //admins are immune to overflow rerouting if(config.overflow_whitelist.Find(lowertext(src.ckey))) return //Whitelisted people are immune to overflow rerouting. var/tally = 0 - for(var/client/C in clients) + for(var/client/C in GLOB.clients) tally++ if(tally > config.player_overflow_cap) src << link(config.overflow_server_url) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 97a0dc9ca80..787e8d8dac9 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -16,7 +16,7 @@ anchored = 1 // don't get pushed around /mob/new_player/New() - mob_list += src + GLOB.mob_list += src /mob/new_player/verb/new_player_panel() set src = usr @@ -129,7 +129,7 @@ stat("Players Ready:", "[totalPlayersReady]") totalPlayers = 0 totalPlayersReady = 0 - for(var/mob/new_player/player in player_list) + for(var/mob/new_player/player in GLOB.player_list) if(check_rights(R_ADMIN, 0, src)) stat("[player.key]", (player.ready)?("(Playing)"):(null)) totalPlayers++ @@ -209,7 +209,7 @@ if(!client.holder && !config.antag_hud_allowed) // For new ghosts we remove the verb from even showing up if it's not allowed. observer.verbs -= /mob/dead/observer/verb/toggle_antagHUD // Poor guys, don't know what they are missing! observer.key = key - respawnable_list += observer + GLOB.respawnable_list += observer qdel(src) return 1 if(href_list["tos"]) @@ -224,7 +224,7 @@ to_chat(usr, "The round is either not ready, or has already finished...") return - if(client.prefs.species in whitelisted_species) + if(client.prefs.species in GLOB.whitelisted_species) if(!is_alien_whitelisted(src, client.prefs.species) && config.usealienwhitelist) to_chat(src, alert("You are currently not whitelisted to play [client.prefs.species].")) @@ -244,7 +244,7 @@ if(client.prefs.randomslot) client.prefs.load_random_character_slot(client) - if(client.prefs.species in whitelisted_species) + if(client.prefs.species in GLOB.whitelisted_species) if(!is_alien_whitelisted(src, client.prefs.species) && config.usealienwhitelist) to_chat(src, alert("You are currently not whitelisted to play [client.prefs.species].")) return 0 @@ -385,7 +385,7 @@ /mob/new_player/proc/AnnounceArrival(var/mob/living/carbon/human/character, var/rank, var/join_message) if(ticker.current_state == GAME_STATE_PLAYING) var/ailist[] = list() - for(var/mob/living/silicon/ai/A in living_mob_list) + for(var/mob/living/silicon/ai/A in GLOB.living_mob_list) ailist += A if(ailist.len) var/mob/living/silicon/ai/announcer = pick(ailist) @@ -410,7 +410,7 @@ /mob/new_player/proc/AnnounceCyborg(var/mob/living/character, var/rank, var/join_message) if(ticker.current_state == GAME_STATE_PLAYING) var/ailist[] = list() - for(var/mob/living/silicon/ai/A in living_mob_list) + for(var/mob/living/silicon/ai/A in GLOB.living_mob_list) ailist += A if(ailist.len) var/mob/living/silicon/ai/announcer = pick(ailist) @@ -469,7 +469,7 @@ activePlayers[job] = 0 var/categorized = 0 // Only players with the job assigned and AFK for less than 10 minutes count as active - for(var/mob/M in player_list) if(M.mind && M.client && M.mind.assigned_role == job.title && M.client.inactivity <= 10 MINUTES) + for(var/mob/M in GLOB.player_list) if(M.mind && M.client && M.mind.assigned_role == job.title && M.client.inactivity <= 10 MINUTES) activePlayers[job]++ for(var/jobcat in categorizedJobs) var/list/jobs = categorizedJobs[jobcat]["jobs"] @@ -533,10 +533,10 @@ if(mind) mind.active = 0 //we wish to transfer the key manually if(mind.assigned_role == "Clown") //give them a clownname if they are a clown - new_character.real_name = pick(clown_names) //I hate this being here of all places but unfortunately dna is based on real_name! + new_character.real_name = pick(GLOB.clown_names) //I hate this being here of all places but unfortunately dna is based on real_name! new_character.rename_self("clown") else if(mind.assigned_role == "Mime") - new_character.real_name = pick(mime_names) + new_character.real_name = pick(GLOB.mime_names) new_character.rename_self("mime") mind.original = new_character mind.transfer_to(new_character) //won't transfer key since the mind is not active @@ -558,7 +558,7 @@ var/datum/language/chosen_language if(client.prefs.language) - chosen_language = all_languages[client.prefs.language] + chosen_language = GLOB.all_languages[client.prefs.language] if((chosen_language == null && client.prefs.language != "None") || (chosen_language && chosen_language.flags & RESTRICTED)) log_runtime(EXCEPTION("[src] had language [client.prefs.language], though they weren't supposed to. Setting to None."), src) client.prefs.language = "None" diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index fc97658896f..84ac1ed9eb0 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -244,7 +244,7 @@ preview_icon.Blend(new /icon(icobase, "groin_[g]"), ICON_OVERLAY) var/head = "head" if(alt_head && current_species.bodyflags & HAS_ALT_HEADS) - var/datum/sprite_accessory/alt_heads/H = alt_heads_list[alt_head] + var/datum/sprite_accessory/alt_heads/H = GLOB.alt_heads_list[alt_head] if(H.icon_state) head = H.icon_state preview_icon.Blend(new /icon(icobase, "[head]_[g]"), ICON_OVERLAY) @@ -308,7 +308,7 @@ if(current_species && (current_species.bodyflags & HAS_TAIL_MARKINGS)) var/tail_marking = m_styles["tail"] - var/datum/sprite_accessory/tail_marking_style = marking_styles_list[tail_marking] + var/datum/sprite_accessory/tail_marking_style = GLOB.marking_styles_list[tail_marking] if(tail_marking_style && tail_marking_style.species_allowed) var/icon/t_marking_s = new/icon("icon" = tail_marking_style.icon, "icon_state" = "[tail_marking_style.icon_state]_s") t_marking_s.Blend(m_colours["tail"], ICON_ADD) @@ -320,14 +320,14 @@ if(current_species && ((current_species.bodyflags & HAS_HEAD_MARKINGS) || (current_species.bodyflags & HAS_BODY_MARKINGS))) if(current_species.bodyflags & HAS_BODY_MARKINGS) //Body markings. var/body_marking = m_styles["body"] - var/datum/sprite_accessory/body_marking_style = marking_styles_list[body_marking] + var/datum/sprite_accessory/body_marking_style = GLOB.marking_styles_list[body_marking] if(body_marking_style && body_marking_style.species_allowed) var/icon/b_marking_s = new/icon("icon" = body_marking_style.icon, "icon_state" = "[body_marking_style.icon_state]_s") b_marking_s.Blend(m_colours["body"], ICON_ADD) preview_icon.Blend(b_marking_s, ICON_OVERLAY) if(current_species.bodyflags & HAS_HEAD_MARKINGS) //Head markings. var/head_marking = m_styles["head"] - var/datum/sprite_accessory/head_marking_style = marking_styles_list[head_marking] + var/datum/sprite_accessory/head_marking_style = GLOB.marking_styles_list[head_marking] if(head_marking_style && head_marking_style.species_allowed) var/icon/h_marking_s = new/icon("icon" = head_marking_style.icon, "icon_state" = "[head_marking_style.icon_state]_s") h_marking_s.Blend(m_colours["head"], ICON_ADD) @@ -341,7 +341,7 @@ face_s.Blend(eyes_s, ICON_OVERLAY) - var/datum/sprite_accessory/hair_style = hair_styles_full_list[h_style] + var/datum/sprite_accessory/hair_style = GLOB.hair_styles_full_list[h_style] if(hair_style) var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s") if(current_species.name == "Slime People") // whee I am part of the problem @@ -359,13 +359,13 @@ //Head Accessory if(current_species && (current_species.bodyflags & HAS_HEAD_ACCESSORY)) - var/datum/sprite_accessory/head_accessory_style = head_accessory_styles_list[ha_style] + var/datum/sprite_accessory/head_accessory_style = GLOB.head_accessory_styles_list[ha_style] if(head_accessory_style && head_accessory_style.species_allowed) var/icon/head_accessory_s = new/icon("icon" = head_accessory_style.icon, "icon_state" = "[head_accessory_style.icon_state]_s") head_accessory_s.Blend(hacc_colour, ICON_ADD) face_s.Blend(head_accessory_s, ICON_OVERLAY) - var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[f_style] + var/datum/sprite_accessory/facial_hair_style = GLOB.facial_hair_styles_list[f_style] if(facial_hair_style && facial_hair_style.species_allowed) var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s") if(current_species.name == "Slime People") // whee I am part of the problem @@ -383,19 +383,19 @@ var/icon/underwear_s = null if(underwear && (current_species.clothing_flags & HAS_UNDERWEAR)) - var/datum/sprite_accessory/underwear/U = underwear_list[underwear] + var/datum/sprite_accessory/underwear/U = GLOB.underwear_list[underwear] if(U) underwear_s = new/icon(U.icon, "uw_[U.icon_state]_s", ICON_OVERLAY) var/icon/undershirt_s = null if(undershirt && (current_species.clothing_flags & HAS_UNDERSHIRT)) - var/datum/sprite_accessory/undershirt/U2 = undershirt_list[undershirt] + var/datum/sprite_accessory/undershirt/U2 = GLOB.undershirt_list[undershirt] if(U2) undershirt_s = new/icon(U2.icon, "us_[U2.icon_state]_s", ICON_OVERLAY) var/icon/socks_s = null if(socks && (current_species.clothing_flags & HAS_SOCKS)) - var/datum/sprite_accessory/socks/U3 = socks_list[socks] + var/datum/sprite_accessory/socks/U3 = GLOB.socks_list[socks] if(U3) socks_s = new/icon(U3.icon, "sk_[U3.icon_state]_s", ICON_OVERLAY) diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index d010bdfa135..a1236e9c719 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -137,11 +137,11 @@ /mob/proc/parse_language(var/message) var/prefix = copytext(message, 1, 2) if(length(message) >= 1 && prefix == "!") - return all_languages["Noise"] + return GLOB.all_languages["Noise"] if(length(message) >= 2) var/language_prefix = trim_right(lowertext(copytext(message, 1 ,4))) - var/datum/language/L = language_keys[language_prefix] + var/datum/language/L = GLOB.language_keys[language_prefix] if(can_speak_language(L)) return L diff --git a/code/modules/modular_computers/NTNet/NTNet.dm b/code/modules/modular_computers/NTNet/NTNet.dm index 79e1a9ed2d1..000131d6c03 100644 --- a/code/modules/modular_computers/NTNet/NTNet.dm +++ b/code/modules/modular_computers/NTNet/NTNet.dm @@ -28,7 +28,7 @@ var/global/datum/ntnet/ntnet_global = new() /datum/ntnet/New() if(ntnet_global && (ntnet_global != src)) ntnet_global = src // There can be only one. - for(var/obj/machinery/ntnet_relay/R in machines) + for(var/obj/machinery/ntnet_relay/R in GLOB.machines) relays.Add(R) R.NTNet = src build_software_lists() diff --git a/code/modules/modular_computers/file_system/programs/command/card.dm b/code/modules/modular_computers/file_system/programs/command/card.dm index b570687569a..2afebbae666 100644 --- a/code/modules/modular_computers/file_system/programs/command/card.dm +++ b/code/modules/modular_computers/file_system/programs/command/card.dm @@ -103,7 +103,7 @@ /datum/computer_file/program/card_mod/proc/can_open_job(datum/job/job) if(job) if(!job_blacklisted(job)) - if((job.total_positions <= player_list.len * (max_relative_positions / 100))) + if((job.total_positions <= GLOB.player_list.len * (max_relative_positions / 100))) var/delta = (world.time / 10) - time_last_changed_position if((change_position_cooldown < delta) || (opened_positions[job.title] < 0)) return 1 diff --git a/code/modules/modular_computers/file_system/programs/command/comms.dm b/code/modules/modular_computers/file_system/programs/command/comms.dm index 2ca6d9928a3..b2494a011f1 100644 --- a/code/modules/modular_computers/file_system/programs/command/comms.dm +++ b/code/modules/modular_computers/file_system/programs/command/comms.dm @@ -28,12 +28,12 @@ var/datum/announcement/priority/crew_announcement = new /datum/computer_file/program/comm/New() - shuttle_caller_list += src + GLOB.shuttle_caller_list += src ..() crew_announcement.newscast = 0 /datum/computer_file/program/comm/Destroy() - shuttle_caller_list -= src + GLOB.shuttle_caller_list -= src shuttle_master.autoEvac() return ..() diff --git a/code/modules/modular_computers/file_system/programs/research/airestorer.dm b/code/modules/modular_computers/file_system/programs/research/airestorer.dm index 9bec60c9779..a39adb8a48e 100644 --- a/code/modules/modular_computers/file_system/programs/research/airestorer.dm +++ b/code/modules/modular_computers/file_system/programs/research/airestorer.dm @@ -77,8 +77,8 @@ if(A.health >= 0 && A.stat == DEAD) A.stat = CONSCIOUS A.lying = 0 - dead_mob_list -= A - living_mob_list += A + GLOB.dead_mob_list -= A + GLOB.living_mob_list += A // Finished restoring if(A.health >= 100) ai_slot.locked = FALSE diff --git a/code/modules/nano/modules/atmos_control.dm b/code/modules/nano/modules/atmos_control.dm index 58c4acc6704..9936895e473 100644 --- a/code/modules/nano/modules/atmos_control.dm +++ b/code/modules/nano/modules/atmos_control.dm @@ -11,7 +11,7 @@ access.req_one_access = req_one_access if(monitored_alarm_ids) - for(var/obj/machinery/alarm/alarm in machines) + for(var/obj/machinery/alarm/alarm in GLOB.machines) if(alarm.alarm_id && alarm.alarm_id in monitored_alarm_ids) monitored_alarms += alarm // machines may not yet be ordered at this point @@ -23,7 +23,7 @@ if(href_list["alarm"]) if(ui_ref) - var/obj/machinery/alarm/alarm = locate(href_list["alarm"]) in (monitored_alarms ? monitored_alarms : machines) + var/obj/machinery/alarm/alarm = locate(href_list["alarm"]) in (monitored_alarms ? monitored_alarms : GLOB.machines) if(alarm) var/datum/topic_state/air_alarm/TS = generate_state(alarm) alarm.ui_interact(usr, master_ui = ui_ref, state = TS) diff --git a/code/modules/nano/modules/crew_monitor.dm b/code/modules/nano/modules/crew_monitor.dm index 19e6dfef3f7..755009ac0be 100644 --- a/code/modules/nano/modules/crew_monitor.dm +++ b/code/modules/nano/modules/crew_monitor.dm @@ -11,7 +11,7 @@ if(href_list["track"]) if(isAI(usr)) var/mob/living/silicon/ai/AI = usr - var/mob/living/carbon/human/H = locate(href_list["track"]) in mob_list + var/mob/living/carbon/human/H = locate(href_list["track"]) in GLOB.mob_list if(hassensorlevel(H, SUIT_SENSOR_TRACKING)) AI.ai_actual_track(H) return 1 diff --git a/code/modules/paperwork/faxmachine.dm b/code/modules/paperwork/faxmachine.dm index 2b699c36530..a43e0b66a95 100644 --- a/code/modules/paperwork/faxmachine.dm +++ b/code/modules/paperwork/faxmachine.dm @@ -317,7 +317,7 @@ var/list/alldepartments = list() /obj/machinery/photocopier/faxmachine/proc/message_admins(var/mob/sender, var/faxname, var/faxtype, var/obj/item/sent, font_colour="#9A04D1") var/msg = "[faxname]: [key_name_admin(sender)] | REPLY: (RADIO) (FAX) (SM) | REJECT: (TEMPLATE) (BSA) (EVILFAX) : Receiving '[sent.name]' via secure connection... view message" - for(var/client/C in admins) + for(var/client/C in GLOB.admins) if(check_rights(R_EVENT, 0, C.mob)) to_chat(C, msg) if(C.prefs.sound & SOUND_ADMINHELP) diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 2fe57c5698f..f8c47a0214c 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -71,7 +71,7 @@ assets.send(user) var/data - if((!user.say_understands(null, all_languages["Galactic Common"]) && !forceshow) || forcestars) //assuming all paper is written in common is better than hardcoded type checks + if((!user.say_understands(null, GLOB.all_languages["Galactic Common"]) && !forceshow) || forcestars) //assuming all paper is written in common is better than hardcoded type checks data = "[name][stars(info)][stamps]" if(view) usr << browse(data, "window=[name];size=[paper_width]x[paper_height]") diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index 40759ab792c..3b37e551e0f 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -545,13 +545,13 @@ var/list/SpookyGhosts = list("ghost","shade","shade2","ghost-narsie","horror","s if(camera && on) if(get_dist(src, M) <= canhear_range) talk_into(M, msg) - for(var/obj/machinery/computer/security/telescreen/T in machines) + for(var/obj/machinery/computer/security/telescreen/T in GLOB.machines) if(T.watchers[M] == camera) T.audible_message("(Newscaster) [M] says, '[msg]'", hearing_distance = 2) /obj/item/videocam/hear_message(mob/M as mob, msg) if(camera && on) - for(var/obj/machinery/computer/security/telescreen/T in machines) + for(var/obj/machinery/computer/security/telescreen/T in GLOB.machines) if(T.watchers[M] == camera) T.audible_message("(Newscaster) [M] [msg]", hearing_distance = 2) diff --git a/code/modules/pda/cart_apps.dm b/code/modules/pda/cart_apps.dm index 78a77442ffe..ff0803e98e4 100644 --- a/code/modules/pda/cart_apps.dm +++ b/code/modules/pda/cart_apps.dm @@ -367,7 +367,7 @@ else JaniData["user_loc"] = list("x" = 0, "y" = 0) var/MopData[0] - for(var/obj/item/mop/M in janitorial_equipment) + for(var/obj/item/mop/M in GLOB.janitorial_equipment) var/turf/ml = get_turf(M) if(ml) if(ml.z != cl.z) @@ -380,7 +380,7 @@ var/BucketData[0] - for(var/obj/structure/mopbucket/B in janitorial_equipment) + for(var/obj/structure/mopbucket/B in GLOB.janitorial_equipment) var/turf/bl = get_turf(B) if(bl) if(bl.z != cl.z) @@ -392,7 +392,7 @@ BucketData[++BucketData.len] = list("x" = 0, "y" = 0, dir=null, status = null) var/CbotData[0] - for(var/mob/living/simple_animal/bot/cleanbot/B in simple_animal_list) + for(var/mob/living/simple_animal/bot/cleanbot/B in GLOB.simple_animal_list) var/turf/bl = get_turf(B) if(bl) if(bl.z != cl.z) @@ -404,7 +404,7 @@ if(!CbotData.len) CbotData[++CbotData.len] = list("x" = 0, "y" = 0, dir=null, status = null) var/CartData[0] - for(var/obj/structure/janitorialcart/B in janitorial_equipment) + for(var/obj/structure/janitorialcart/B in GLOB.janitorial_equipment) var/turf/bl = get_turf(B) if(bl) if(bl.z != cl.z) diff --git a/code/modules/pda/radio.dm b/code/modules/pda/radio.dm index b9dfe8ff7e4..a6328dacd6f 100644 --- a/code/modules/pda/radio.dm +++ b/code/modules/pda/radio.dm @@ -129,8 +129,8 @@ post_signal(control_freq, "command", "unload", "active", active, s_filter = RADIO_MULEBOT) if("setdest") - if(deliverybeacons) - var/dest = input("Select Bot Destination", "Mulebot [active.suffix] Interlink", active.destination) as null|anything in deliverybeacontags + if(GLOB.deliverybeacons) + var/dest = input("Select Bot Destination", "Mulebot [active.suffix] Interlink", active.destination) as null|anything in GLOB.deliverybeacontags if(dest) spawn(0) post_signal(control_freq, "command", "target", "active", active, "destination", dest, s_filter = RADIO_MULEBOT) diff --git a/code/modules/pda/utilities.dm b/code/modules/pda/utilities.dm index e144841a144..a03a36e005a 100644 --- a/code/modules/pda/utilities.dm +++ b/code/modules/pda/utilities.dm @@ -29,7 +29,7 @@ var/remote_door_id = "" /datum/data/pda/utility/toggle_door/start() - for(var/obj/machinery/door/poddoor/M in airlocks) + for(var/obj/machinery/door/poddoor/M in GLOB.airlocks) if(M.id_tag == remote_door_id) if(M.density) M.open() diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index a0df2084b2f..e150fd2f7ad 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -145,8 +145,8 @@ if(!armor) armor = list(melee = 20, bullet = 20, laser = 10, energy = 100, bomb = 30, bio = 100, rad = 100) ..() - apcs += src - apcs = sortAtom(apcs) + GLOB.apcs += src + GLOB.apcs = sortAtom(GLOB.apcs) wires = new(src) // offset 24 pixels in direction of dir @@ -172,7 +172,7 @@ src.update() /obj/machinery/power/apc/Destroy() - apcs -= src + GLOB.apcs -= src if(malfai && operating) malfai.malf_picker.processing_time = Clamp(malfai.malf_picker.processing_time - 10,0,1000) area.power_light = 0 @@ -1036,7 +1036,7 @@ occupier.verbs += /mob/living/silicon/ai/proc/corereturn occupier.cancel_camera() if((seclevel2num(get_security_level()) == SEC_LEVEL_DELTA) && malf.nuking) - for(var/obj/item/pinpointer/point in pinpointer_list) + for(var/obj/item/pinpointer/point in GLOB.pinpointer_list) point.the_disk = src //the pinpointer will detect the shunted AI /obj/machinery/power/apc/proc/malfvacate(forced) @@ -1049,7 +1049,7 @@ occupier.parent.cancel_camera() qdel(occupier) if(seclevel2num(get_security_level()) == SEC_LEVEL_DELTA) - for(var/obj/item/pinpointer/point in pinpointer_list) + for(var/obj/item/pinpointer/point in GLOB.pinpointer_list) for(var/mob/living/silicon/ai/A in ai_list) if((A.stat != DEAD) && A.nuking) point.the_disk = A //The pinpointer tracks the AI back into its core. @@ -1059,7 +1059,7 @@ occupier.loc = loc occupier.death() occupier.gib() - for(var/obj/item/pinpointer/point in pinpointer_list) + for(var/obj/item/pinpointer/point in GLOB.pinpointer_list) point.the_disk = null //Pinpointers go back to tracking the nuke disk /obj/machinery/power/apc/proc/ion_act() diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index 8f9d9fb14cd..c65f7d56158 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -366,7 +366,7 @@ var/const/GRAV_NEEDS_WRENCH = 3 /obj/machinery/gravity_generator/main/proc/shake_everyone() var/turf/our_turf = get_turf(src) var/sound/alert_sound = sound('sound/effects/alert.ogg') - for(var/shaked in mob_list) + for(var/shaked in GLOB.mob_list) var/mob/M = shaked var/turf/their_turf = get_turf(M) if(their_turf && their_turf.z == our_turf.z) diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index 0f281c634e3..40947d79368 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -313,7 +313,7 @@ field_generator power level display //I want to avoid using global variables. spawn(1) var/temp = 1 //stops spam - for(var/obj/singularity/O in singularities) + for(var/obj/singularity/O in GLOB.singularities) if(O.last_warning && temp) if((world.time - O.last_warning) > 50) //to stop message-spam temp = 0 diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index 0520630dcac..b6dcd8d91b2 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -93,7 +93,7 @@ /obj/singularity/narsie/proc/pickcultist() //Narsie rewards his cultists with being devoured first, then picks a ghost to follow. --NEO var/list/cultists = list() var/list/noncultists = list() - for(var/mob/living/carbon/food in living_mob_list) //we don't care about constructs or cult-Ians or whatever. cult-monkeys are fair game i guess + for(var/mob/living/carbon/food in GLOB.living_mob_list) //we don't care about constructs or cult-Ians or whatever. cult-monkeys are fair game i guess var/turf/pos = get_turf(food) if(pos.z != src.z) continue @@ -112,7 +112,7 @@ return //no living humans, follow a ghost instead. - for(var/mob/dead/observer/ghost in player_list) + for(var/mob/dead/observer/ghost in GLOB.player_list) if(!ghost.client) continue var/turf/pos = get_turf(ghost) diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 0abb564fa28..67238444eaa 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -35,17 +35,17 @@ src.energy = starting_energy ..() processing_objects.Add(src) - poi_list |= src - singularities += src - for(var/obj/machinery/power/singularity_beacon/singubeacon in machines) + GLOB.poi_list |= src + GLOB.singularities += src + for(var/obj/machinery/power/singularity_beacon/singubeacon in GLOB.machines) if(singubeacon.active) target = singubeacon break /obj/singularity/Destroy() processing_objects.Remove(src) - poi_list.Remove(src) - singularities -= src + GLOB.poi_list.Remove(src) + GLOB.singularities -= src target = null return ..() diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 125706bff28..dfb8da3811d 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -99,7 +99,7 @@ /obj/machinery/power/supermatter_shard/New() . = ..() - poi_list |= src + GLOB.poi_list |= src //Added to the atmos_machine process as the SM is highly coupled with the atmospherics system. //Having the SM run at a different rate then atmospherics causes odd behavior. SSair.atmos_machinery += src @@ -137,7 +137,7 @@ if(damage > emergency_point) emergency_lighting(0) QDEL_NULL(radio) - poi_list.Remove(src) + GLOB.poi_list.Remove(src) SSair.atmos_machinery -= src return ..() @@ -182,7 +182,7 @@ if(damage > explosion_point) if(get_turf(src)) var/turf/position = get_turf(src) - for(var/mob/living/mob in living_mob_list) + for(var/mob/living/mob in GLOB.living_mob_list) var/turf/mob_pos = get_turf(mob) if(mob_pos && mob_pos.z == position.z) if(ishuman(mob)) @@ -301,7 +301,7 @@ investigate_log("Supermatter shard consumed by singularity.","singulo") message_admins("Singularity has consumed a supermatter shard and can now become stage six.(JMP).") visible_message("[src] is consumed by the singularity!") - for(var/mob/M in mob_list) + for(var/mob/M in GLOB.mob_list) M << 'sound/effects/supermatter.ogg' //everyone gunna know bout this to_chat(M, "A horrible screeching fills your ears, and a wave of dread washes over you...") qdel(src) diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm index 9cfd526585e..e5005708c67 100644 --- a/code/modules/power/tesla/energy_ball.dm +++ b/code/modules/power/tesla/energy_ball.dm @@ -118,7 +118,7 @@ /obj/singularity/energy_ball/orbit(obj/singularity/energy_ball/target) if(istype(target)) target.orbiting_balls += src - poi_list -= src + GLOB.poi_list -= src target.dissipate_strength = target.orbiting_balls.len . = ..() diff --git a/code/modules/power/treadmill.dm b/code/modules/power/treadmill.dm index 4f7e7e9c895..92464413c5c 100644 --- a/code/modules/power/treadmill.dm +++ b/code/modules/power/treadmill.dm @@ -140,7 +140,7 @@ /obj/machinery/treadmill_monitor/Initialize() ..() if(id) - for(var/obj/machinery/power/treadmill/T in machines) + for(var/obj/machinery/power/treadmill/T in GLOB.machines) if(T.id == id) treadmill = T break diff --git a/code/modules/projectiles/guns/energy/telegun.dm b/code/modules/projectiles/guns/energy/telegun.dm index 1c5da40e38e..834949c1512 100644 --- a/code/modules/projectiles/guns/energy/telegun.dm +++ b/code/modules/projectiles/guns/energy/telegun.dm @@ -18,7 +18,7 @@ var/list/L = list() var/list/areaindex = list() - for(var/obj/item/radio/beacon/R in beacons) + for(var/obj/item/radio/beacon/R in GLOB.beacons) var/turf/T = get_turf(R) if(!T) continue diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index 854fd1edbaf..ef6ec862290 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -79,7 +79,7 @@ target.suiciding = 0 target.revive() if(!target.ckey) - for(var/mob/dead/observer/ghost in player_list) + for(var/mob/dead/observer/ghost in GLOB.player_list) if(target.real_name == ghost.real_name) ghost.reenter_corpse() break diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 73a591f9ddb..58c02affead 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -18,21 +18,21 @@ var/const/INGEST = 2 if(!(flags & REAGENT_NOREACT)) processing_objects |= src //I dislike having these here but map-objects are initialised before world/New() is called. >_> - if(!chemical_reagents_list) + if(!GLOB.chemical_reagents_list) //Chemical Reagents - Initialises all /datum/reagent into a list indexed by reagent id var/paths = subtypesof(/datum/reagent) - chemical_reagents_list = list() + GLOB.chemical_reagents_list = list() for(var/path in paths) var/datum/reagent/D = new path() - chemical_reagents_list[D.id] = D - if(!chemical_reactions_list) + GLOB.chemical_reagents_list[D.id] = D + if(!GLOB.chemical_reactions_list) //Chemical Reactions - Initialises all /datum/chemical_reaction into a list // It is filtered into multiple lists within a list. // For example: // chemical_reaction_list["plasma"] is a list of all reactions relating to plasma var/paths = subtypesof(/datum/chemical_reaction) - chemical_reactions_list = list() + GLOB.chemical_reactions_list = list() for(var/path in paths) @@ -45,9 +45,9 @@ var/const/INGEST = 2 // Create filters based on each reagent id in the required reagents list for(var/id in reaction_ids) - if(!chemical_reactions_list[id]) - chemical_reactions_list[id] = list() - chemical_reactions_list[id] += D + if(!GLOB.chemical_reactions_list[id]) + GLOB.chemical_reactions_list[id] = list() + GLOB.chemical_reactions_list[id] += D break // Don't bother adding ourselves to other reagent ids, it is redundant. /datum/reagents/proc/remove_any(amount=1) @@ -352,7 +352,7 @@ var/const/INGEST = 2 do reaction_occured = 0 for(var/datum/reagent/R in reagent_list) // Usually a small list - for(var/reaction in chemical_reactions_list[R.id]) // Was a big list but now it should be smaller since we filtered it with our reagent id + for(var/reaction in GLOB.chemical_reactions_list[R.id]) // Was a big list but now it should be smaller since we filtered it with our reagent id if(!reaction) continue @@ -543,7 +543,7 @@ var/const/INGEST = 2 handle_reactions() return 0 - var/datum/reagent/D = chemical_reagents_list[reagent] + var/datum/reagent/D = GLOB.chemical_reagents_list[reagent] if(D) var/datum/reagent/R = new D.type() diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index cf291fba675..88d7318e962 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -142,7 +142,7 @@ var/chemicals[0] for(var/re in dispensable_reagents) - var/datum/reagent/temp = chemical_reagents_list[re] + var/datum/reagent/temp = GLOB.chemical_reagents_list[re] if(temp) chemicals.Add(list(list("title" = temp.name, "id" = temp.id, "commands" = list("dispense" = temp.id)))) // list in a list because Byond merges the first list... data["chemicals"] = chemicals diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm index ee2ac418555..f443a9e1df3 100644 --- a/code/modules/reagents/chemistry/machinery/pandemic.dm +++ b/code/modules/reagents/chemistry/machinery/pandemic.dm @@ -159,7 +159,7 @@ if(archive_diseases[id]) var/datum/disease/advance/A = archive_diseases[id] A.AssignName(new_name) - for(var/datum/disease/advance/AD in active_diseases) + for(var/datum/disease/advance/AD in GLOB.active_diseases) AD.Refresh() updateUsrDialog() diff --git a/code/modules/reagents/chemistry/reagents/misc.dm b/code/modules/reagents/chemistry/reagents/misc.dm index fdddea44bd2..96112336f65 100644 --- a/code/modules/reagents/chemistry/reagents/misc.dm +++ b/code/modules/reagents/chemistry/reagents/misc.dm @@ -332,8 +332,8 @@ if(ishuman(M)) var/mob/living/carbon/human/H = M var/obj/item/organ/external/head/head_organ = H.get_organ("head") - var/datum/sprite_accessory/tmp_hair_style = hair_styles_full_list["Very Long Hair"] - var/datum/sprite_accessory/tmp_facial_hair_style = facial_hair_styles_list["Very Long Beard"] + var/datum/sprite_accessory/tmp_hair_style = GLOB.hair_styles_full_list["Very Long Hair"] + var/datum/sprite_accessory/tmp_facial_hair_style = GLOB.facial_hair_styles_list["Very Long Beard"] if(head_organ.dna.species.name in tmp_hair_style.species_allowed) //If 'Very Long Hair' is a style the person's species can have, give it to them. head_organ.h_style = "Very Long Hair" diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index ad8b3438ee4..bd037c49239 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -82,7 +82,7 @@ R.add_reagent(M) if(M.reagents) - var/datum/reagent/injected = chemical_reagents_list[reagent_ids[mode]] + var/datum/reagent/injected = GLOB.chemical_reagents_list[reagent_ids[mode]] var/contained = injected.name var/trans = R.trans_to(M, amount_per_transfer_from_this) add_attack_logs(M, user, "Injected with [name] containing [contained], transfered [trans] units") @@ -97,7 +97,7 @@ mode = 1 charge_tick = 0 //Prevents wasted chems/cell charge if you're cycling through modes. - var/datum/reagent/R = chemical_reagents_list[reagent_ids[mode]] + var/datum/reagent/R = GLOB.chemical_reagents_list[reagent_ids[mode]] to_chat(user, "Synthesizer is now producing '[R.name]'.") return diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index eb588200265..c7048acd44a 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -220,7 +220,7 @@ spawn(5) conveyors = list() - for(var/obj/machinery/conveyor/C in machines) + for(var/obj/machinery/conveyor/C in GLOB.machines) if(C.id == id) conveyors += C @@ -287,7 +287,7 @@ update() // find any switches with same id as this one, and set their positions to match us - for(var/obj/machinery/conveyor_switch/S in machines) + for(var/obj/machinery/conveyor_switch/S in GLOB.machines) if(S.id == src.id) S.position = position S.update() diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 9de8033a00f..b2cc24c2dfb 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -983,7 +983,7 @@ proc/updatedesc() desc = "An underfloor disposal pipe with a package sorting mechanism." if(sortType>0) - var/tag = uppertext(TAGGERLOCATIONS[sortType]) + var/tag = uppertext(GLOB.TAGGERLOCATIONS[sortType]) desc += "\nIt's tagged with [tag]" proc/updatedir() @@ -1015,7 +1015,7 @@ if(O.currTag > 0)// Tag set sortType = O.currTag playsound(src.loc, 'sound/machines/twobeep.ogg', 100, 1) - var/tag = uppertext(TAGGERLOCATIONS[O.currTag]) + var/tag = uppertext(GLOB.TAGGERLOCATIONS[O.currTag]) to_chat(user, "Changed filter to [tag]") updatedesc() diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index 1b1b5c0ffa9..157d20c4e54 100755 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -30,7 +30,7 @@ var/obj/item/destTagger/O = W if(sortTag != O.currTag) - var/tag = uppertext(TAGGERLOCATIONS[O.currTag]) + var/tag = uppertext(GLOB.TAGGERLOCATIONS[O.currTag]) to_chat(user, "*[tag]*") sortTag = O.currTag playsound(loc, 'sound/machines/twobeep.ogg', 100, 1) @@ -94,7 +94,7 @@ var/obj/item/destTagger/O = W if(sortTag != O.currTag) - var/tag = uppertext(TAGGERLOCATIONS[O.currTag]) + var/tag = uppertext(GLOB.TAGGERLOCATIONS[O.currTag]) to_chat(user, "*[tag]*") sortTag = O.currTag playsound(loc, 'sound/machines/twobeep.ogg', 100, 1) @@ -227,13 +227,13 @@ var/dat = "

TagMaster 2.2

" dat += "

Name

Status

Location

Control

[Bot.hacked ? "(!) [Bot.name]" : Bot.name] ([Bot.model])
" - for(var/i = 1, i <= TAGGERLOCATIONS.len, i++) - dat += "" + for(var/i = 1, i <= GLOB.TAGGERLOCATIONS.len, i++) + dat += "" if(i%4==0) dat += "" - dat += "
[TAGGERLOCATIONS[i]][GLOB.TAGGERLOCATIONS[i]]

Current Selection: [currTag ? TAGGERLOCATIONS[currTag] : "None"]
" + dat += "

Current Selection: [currTag ? GLOB.TAGGERLOCATIONS[currTag] : "None"]" user << browse(dat, "window=destTagScreen;size=450x350") onclose(user, "destTagScreen") @@ -426,7 +426,7 @@ /obj/item/shippingPackage/proc/update_desc() desc = "A pre-labeled package for shipping an item to coworkers." if(sortTag) - desc += " The label says \"Deliver to [TAGGERLOCATIONS[sortTag]]\"." + desc += " The label says \"Deliver to [GLOB.TAGGERLOCATIONS[sortTag]]\"." if(!sealed) desc += " The package is not sealed." diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index f6e4f2c0877..9e72a12c98e 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -89,8 +89,8 @@ component_parts += new /obj/item/stock_parts/micro_laser(src) component_parts += new /obj/item/stock_parts/micro_laser(src) spawn(1) - trackedIan = locate(/mob/living/simple_animal/pet/corgi/Ian) in mob_list - trackedRuntime = locate(/mob/living/simple_animal/pet/cat/Runtime) in mob_list + trackedIan = locate(/mob/living/simple_animal/pet/corgi/Ian) in GLOB.mob_list + trackedRuntime = locate(/mob/living/simple_animal/pet/cat/Runtime) in GLOB.mob_list SetTypeReactions() RefreshParts() diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm index 88ecedbf555..fa5015987e5 100644 --- a/code/modules/research/message_server.dm +++ b/code/modules/research/message_server.dm @@ -267,7 +267,7 @@ var/obj/machinery/blackbox_recorder/blackbox var/pda_msg_amt = 0 var/rc_msg_amt = 0 - for(var/obj/machinery/message_server/MS in machines) + for(var/obj/machinery/message_server/MS in GLOB.machines) if(MS.pda_msgs.len > pda_msg_amt) pda_msg_amt = MS.pda_msgs.len if(MS.rc_msgs.len > rc_msg_amt) diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index a2f9f185853..42a163f6d6d 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -105,7 +105,7 @@ // Backup files to CentComm to help admins recover data after griefer attacks /obj/machinery/r_n_d/server/proc/griefProtection() - for(var/obj/machinery/r_n_d/server/centcom/C in machines) + for(var/obj/machinery/r_n_d/server/centcom/C in GLOB.machines) files.push_data(C.files) /obj/machinery/r_n_d/server/proc/produce_heat(heat_amt) @@ -165,7 +165,7 @@ ..() var/list/no_id_servers = list() var/list/server_ids = list() - for(var/obj/machinery/r_n_d/server/S in machines) + for(var/obj/machinery/r_n_d/server/S in GLOB.machines) switch(S.server_id) if(-1) continue @@ -217,20 +217,20 @@ temp_server = null consoles = list() servers = list() - for(var/obj/machinery/r_n_d/server/S in machines) + for(var/obj/machinery/r_n_d/server/S in GLOB.machines) if(S.server_id == text2num(href_list["access"]) || S.server_id == text2num(href_list["data"]) || S.server_id == text2num(href_list["transfer"])) temp_server = S break if(href_list["access"]) screen = 1 - for(var/obj/machinery/computer/rdconsole/C in machines) + for(var/obj/machinery/computer/rdconsole/C in GLOB.machines) if(C.sync) consoles += C else if(href_list["data"]) screen = 2 else if(href_list["transfer"]) screen = 3 - for(var/obj/machinery/r_n_d/server/S in machines) + for(var/obj/machinery/r_n_d/server/S in GLOB.machines) if(S == src) continue servers += S @@ -280,7 +280,7 @@ if(0) //Main Menu dat += "Connected Servers:

" - for(var/obj/machinery/r_n_d/server/S in machines) + for(var/obj/machinery/r_n_d/server/S in GLOB.machines) if(istype(S, /obj/machinery/r_n_d/server/centcom) && !badmin) continue dat += "[S.name] || " diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index 35bdb18caae..1bfd826d3d1 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -485,7 +485,7 @@ /obj/effect/timestop/New() ..() - for(var/mob/living/M in player_list) + for(var/mob/living/M in GLOB.player_list) for(var/obj/effect/proc_holder/spell/aoe_turf/conjure/timestop/T in M.mind.spell_list) //People who can stop time are immune to timestop immune |= M diff --git a/code/modules/security_levels/keycard authentication.dm b/code/modules/security_levels/keycard authentication.dm index b5f7540c3f2..b5bace084c6 100644 --- a/code/modules/security_levels/keycard authentication.dm +++ b/code/modules/security_levels/keycard authentication.dm @@ -162,7 +162,7 @@ print_centcom_report(ert_reason, station_time_timestamp() + " ERT Request") var/fullmin_count = 0 - for(var/client/C in admins) + for(var/client/C in GLOB.admins) if(check_rights(R_EVENT, 0, C.mob)) fullmin_count++ if(fullmin_count) diff --git a/code/modules/security_levels/security levels.dm b/code/modules/security_levels/security levels.dm index aa96b79dd01..272cd6753e9 100644 --- a/code/modules/security_levels/security levels.dm +++ b/code/modules/security_levels/security levels.dm @@ -38,7 +38,7 @@ post_status("alert", "outline") - for(var/obj/machinery/firealarm/FA in machines) + for(var/obj/machinery/firealarm/FA in GLOB.machines) if(is_station_contact(FA.z)) FA.overlays.Cut() FA.overlays += image('icons/obj/monitors.dmi', "overlay_green") @@ -52,7 +52,7 @@ post_status("alert", "outline") - for(var/obj/machinery/firealarm/FA in machines) + for(var/obj/machinery/firealarm/FA in GLOB.machines) if(is_station_contact(FA.z)) FA.overlays.Cut() FA.overlays += image('icons/obj/monitors.dmi', "overlay_blue") @@ -64,14 +64,14 @@ security_announcement_down.Announce("The station's self-destruct mechanism has been deactivated, but there is still an immediate and serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised.","Attention! Code Red!") security_level = SEC_LEVEL_RED - var/obj/machinery/door/airlock/highsecurity/red/R = locate(/obj/machinery/door/airlock/highsecurity/red) in airlocks + var/obj/machinery/door/airlock/highsecurity/red/R = locate(/obj/machinery/door/airlock/highsecurity/red) in GLOB.airlocks if(R && is_station_level(R.z)) R.locked = 0 R.update_icon() post_status("alert", "redalert") - for(var/obj/machinery/firealarm/FA in machines) + for(var/obj/machinery/firealarm/FA in GLOB.machines) if(is_station_contact(FA.z)) FA.overlays.Cut() FA.overlays += image('icons/obj/monitors.dmi', "overlay_red") @@ -83,19 +83,19 @@ move_gamma_ship() if(security_level < SEC_LEVEL_RED) - for(var/obj/machinery/door/airlock/highsecurity/red/R in airlocks) + for(var/obj/machinery/door/airlock/highsecurity/red/R in GLOB.airlocks) if(is_station_level(R.z)) R.locked = 0 R.update_icon() - for(var/obj/machinery/door/airlock/hatch/gamma/H in airlocks) + for(var/obj/machinery/door/airlock/hatch/gamma/H in GLOB.airlocks) if(is_station_level(H.z)) H.locked = 0 H.update_icon() post_status("alert", "gammaalert") - for(var/obj/machinery/firealarm/FA in machines) + for(var/obj/machinery/firealarm/FA in GLOB.machines) if(is_station_contact(FA.z)) FA.overlays.Cut() FA.overlays += image('icons/obj/monitors.dmi', "overlay_gamma") @@ -107,7 +107,7 @@ post_status("alert", "epsilonalert") - for(var/obj/machinery/firealarm/FA in machines) + for(var/obj/machinery/firealarm/FA in GLOB.machines) if(is_station_contact(FA.z)) FA.overlays.Cut() FA.overlays += image('icons/obj/monitors.dmi', "overlay_epsilon") @@ -118,7 +118,7 @@ post_status("alert", "deltaalert") - for(var/obj/machinery/firealarm/FA in machines) + for(var/obj/machinery/firealarm/FA in GLOB.machines) if(is_station_contact(FA.z)) FA.overlays.Cut() FA.overlays += image('icons/obj/monitors.dmi', "overlay_delta") diff --git a/code/modules/shuttle/assault_pod.dm b/code/modules/shuttle/assault_pod.dm index 5ae40139819..5d190cad84d 100644 --- a/code/modules/shuttle/assault_pod.dm +++ b/code/modules/shuttle/assault_pod.dm @@ -51,7 +51,7 @@ landing_zone.dir = lz_dir landing_zone.register() //new docking ports must be registered - for(var/obj/machinery/computer/shuttle/S in machines) + for(var/obj/machinery/computer/shuttle/S in GLOB.machines) if(S.shuttleId == shuttle_id) S.possible_destinations = "[landing_zone.id]" diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index 09978047027..54c23a49920 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -173,7 +173,7 @@ emergency_shuttle_recalled.Announce("The emergency shuttle has been recalled.[shuttle_master.emergencyLastCallLoc ? " Recall signal traced. Results can be viewed on any communications console." : "" ]") /obj/docking_port/mobile/emergency/proc/is_hijacked() - for(var/mob/living/player in player_list) + for(var/mob/living/player in GLOB.player_list) if(player.mind) if(player.stat != DEAD) if(issilicon(player)) //Borgs are technically dead anyways @@ -268,7 +268,7 @@ mode = SHUTTLE_ESCAPE timer = world.time priority_announcement.Announce("The Emergency Shuttle has left the station. Estimate [timeLeft(600)] minutes until the shuttle docks at Central Command.") - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(!isnewplayer(M) && !M.client.karma_spent && !(M.client.ckey in karma_spenders) && !M.get_preference(DISABLE_KARMA_REMINDER)) to_chat(M, "You have not yet spent your karma for the round; was there a player worthy of receiving your reward? Look under Special Verbs tab, Award Karma.") diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 54f4836ff5b..f155ee75bbf 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -553,7 +553,7 @@ if(!istype(S0)) return 1 - for(var/obj/machinery/door/airlock/A in airlocks) + for(var/obj/machinery/door/airlock/A in GLOB.airlocks) if(A.id_tag == S0.id) spawn(-1) A.close() @@ -563,7 +563,7 @@ if(!istype(S1)) return 0 - for(var/obj/machinery/door/airlock/A in airlocks) + for(var/obj/machinery/door/airlock/A in GLOB.airlocks) if(A.id_tag == S1.id) spawn(-1) if(A.locked) diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index 02cf501a47f..43323054421 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -177,7 +177,7 @@ if(cost) shuttle_master.techLevels[tech.id] = tech.level shuttle_master.points += cost - for(var/mob/M in player_list) + for(var/mob/M in GLOB.player_list) if(M.mind) for(var/datum/job_objective/further_research/objective in M.mind.job_objectives) objective.unit_completed(cost) diff --git a/code/modules/spacepods/spacepod.dm b/code/modules/spacepods/spacepod.dm index d4e7514e262..dffb6da79b9 100644 --- a/code/modules/spacepods/spacepod.dm +++ b/code/modules/spacepods/spacepod.dm @@ -119,7 +119,7 @@ pr_give_air = new /datum/global_iterator/pod_tank_give_air(list(src)) equipment_system = new(src) equipment_system.installed_modules += battery - spacepods_list += src + GLOB.spacepods_list += src cargo_hold = new/obj/item/storage/internal(src) cargo_hold.w_class = 5 //so you can put bags in cargo_hold.storage_slots = 0 //You need to install cargo modules to use it. @@ -145,7 +145,7 @@ for(var/mob/M in passengers) M.forceMove(get_turf(src)) passengers -= M - spacepods_list -= src + GLOB.spacepods_list -= src return ..() /obj/spacepod/process() diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm index d94064ec31a..bd1a2a27dd7 100644 --- a/code/modules/station_goals/dna_vault.dm +++ b/code/modules/station_goals/dna_vault.dm @@ -51,7 +51,7 @@ /datum/station_goal/dna_vault/check_completion() if(..()) return TRUE - for(var/obj/machinery/dna_vault/V in machines) + for(var/obj/machinery/dna_vault/V in GLOB.machines) if(V.animals.len >= animal_count && V.plants.len >= plant_count && V.dna.len >= human_count && is_station_contact(V.z)) return TRUE return FALSE diff --git a/code/modules/station_goals/shield.dm b/code/modules/station_goals/shield.dm index 3307bd61b13..b66ae757f88 100644 --- a/code/modules/station_goals/shield.dm +++ b/code/modules/station_goals/shield.dm @@ -28,7 +28,7 @@ /datum/station_goal/proc/get_coverage() var/list/coverage = list() - for(var/obj/machinery/satellite/meteor_shield/A in machines) + for(var/obj/machinery/satellite/meteor_shield/A in GLOB.machines) if(!A.active || !is_station_level(A.z)) continue coverage |= view(A.kill_range, A) @@ -67,7 +67,7 @@ . = TRUE /obj/machinery/computer/sat_control/proc/toggle(id) - for(var/obj/machinery/satellite/S in machines) + for(var/obj/machinery/satellite/S in GLOB.machines) if(S.id == id && atoms_share_level(src, S)) S.toggle() @@ -75,7 +75,7 @@ var/list/data = list() data["satellites"] = list() - for(var/obj/machinery/satellite/S in machines) + for(var/obj/machinery/satellite/S in GLOB.machines) data["satellites"] += list(list( "id" = S.id, "active" = S.active, @@ -156,7 +156,7 @@ /obj/machinery/satellite/meteor_shield/process() if(!active) return - for(var/obj/effect/meteor/M in meteor_list) + for(var/obj/effect/meteor/M in GLOB.meteor_list) if(M.z != z) continue if(get_dist(M, src) > kill_range) diff --git a/code/modules/station_goals/station_goal.dm b/code/modules/station_goals/station_goal.dm index 5a97f0ee2f3..754e09b4185 100644 --- a/code/modules/station_goals/station_goal.dm +++ b/code/modules/station_goals/station_goal.dm @@ -13,7 +13,7 @@ /datum/station_goal/proc/send_report() priority_announcement.Announce("Priority Nanotrasen directive received. Project \"[name]\" details inbound.", "Incoming Priority Message", 'sound/AI/commandreport.ogg') - print_command_report(get_report(), "Nanotrasen Directive [pick(phonetic_alphabet)] \Roman[rand(1,50)]") + print_command_report(get_report(), "Nanotrasen Directive [pick(GLOB.phonetic_alphabet)] \Roman[rand(1,50)]") on_report() /datum/station_goal/proc/on_report() diff --git a/code/modules/surgery/helpers.dm b/code/modules/surgery/helpers.dm index 1ae29143496..1b161c74d1d 100644 --- a/code/modules/surgery/helpers.dm +++ b/code/modules/surgery/helpers.dm @@ -15,7 +15,7 @@ current_surgery = S if(!current_surgery) - var/list/all_surgeries = surgeries_list.Copy() + var/list/all_surgeries = GLOB.surgeries_list.Copy() var/list/available_surgeries = list() for(var/datum/surgery/S in all_surgeries) diff --git a/code/modules/surgery/organs/blood.dm b/code/modules/surgery/organs/blood.dm index 2a7057516f9..05f6ac5c7cd 100644 --- a/code/modules/surgery/organs/blood.dm +++ b/code/modules/surgery/organs/blood.dm @@ -102,7 +102,7 @@ if(!(NO_BLOOD in dna.species.species_traits)) ..() if(dna.species.exotic_blood) - var/datum/reagent/R = chemical_reagents_list[get_blood_id()] + var/datum/reagent/R = GLOB.chemical_reagents_list[get_blood_id()] if(istype(R) && isturf(loc)) R.reaction_turf(get_turf(src), amt) diff --git a/code/modules/surgery/organs/organ_icon.dm b/code/modules/surgery/organs/organ_icon.dm index 43d699c0408..f291f61c96d 100644 --- a/code/modules/surgery/organs/organ_icon.dm +++ b/code/modules/surgery/organs/organ_icon.dm @@ -112,7 +112,7 @@ var/global/list/limb_icon_cache = list() var/head_marking = owner.m_styles["head"] if(head_marking && head_marking != "None") - var/datum/sprite_accessory/head_marking_style = marking_styles_list[head_marking] + var/datum/sprite_accessory/head_marking_style = GLOB.marking_styles_list[head_marking] if(head_marking_style && head_marking_style.species_allowed && (dna.species.name in head_marking_style.species_allowed) && head_marking_style.marking_location == "head") var/icon/h_marking_s = new/icon("icon" = head_marking_style.icon, "icon_state" = "[head_marking_style.icon_state]_s") if(head_marking_style.do_colouration) @@ -120,7 +120,7 @@ var/global/list/limb_icon_cache = list() overlays |= h_marking_s if(ha_style) - var/datum/sprite_accessory/head_accessory_style = head_accessory_styles_list[ha_style] + var/datum/sprite_accessory/head_accessory_style = GLOB.head_accessory_styles_list[ha_style] if(head_accessory_style && head_accessory_style.species_allowed && (dna.species.name in head_accessory_style.species_allowed)) var/icon/head_accessory_s = new/icon("icon" = head_accessory_style.icon, "icon_state" = "[head_accessory_style.icon_state]_s") if(head_accessory_style.do_colouration) @@ -128,7 +128,7 @@ var/global/list/limb_icon_cache = list() overlays |= head_accessory_s if(f_style) - var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[f_style] + var/datum/sprite_accessory/facial_hair_style = GLOB.facial_hair_styles_list[f_style] if(facial_hair_style && ((facial_hair_style.species_allowed && (dna.species.name in facial_hair_style.species_allowed)) || (dna.species.bodyflags & ALL_RPARTS))) var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s") if(istype(dna.species, /datum/species/slime)) // I am el worstos @@ -138,7 +138,7 @@ var/global/list/limb_icon_cache = list() overlays |= facial_s if(h_style && !(owner.head && (owner.head.flags & BLOCKHEADHAIR))) - var/datum/sprite_accessory/hair_style = hair_styles_full_list[h_style] + var/datum/sprite_accessory/hair_style = GLOB.hair_styles_full_list[h_style] if(hair_style && ((dna.species.name in hair_style.species_allowed) || (dna.species.bodyflags & ALL_RPARTS))) var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s") if(istype(dna.species, /datum/species/slime)) // I am el worstos diff --git a/code/modules/surgery/organs/subtypes/standard.dm b/code/modules/surgery/organs/subtypes/standard.dm index e04c27284ae..831f80331d4 100644 --- a/code/modules/surgery/organs/subtypes/standard.dm +++ b/code/modules/surgery/organs/subtypes/standard.dm @@ -211,8 +211,8 @@ disfigure() /obj/item/organ/external/head/proc/handle_alt_icon() - if(alt_head && alt_heads_list[alt_head]) - var/datum/sprite_accessory/alt_heads/alternate_head = alt_heads_list[alt_head] + if(alt_head && GLOB.alt_heads_list[alt_head]) + var/datum/sprite_accessory/alt_heads/alternate_head = GLOB.alt_heads_list[alt_head] if(alternate_head.icon_state) icon_name = alternate_head.icon_state else //If alternate_head.icon_state doesn't exist, that means alternate_head is "None", so default icon_name back to "head". diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm index 72bf70c7e81..e5b4c02b2c7 100644 --- a/code/modules/surgery/surgery.dm +++ b/code/modules/surgery/surgery.dm @@ -211,7 +211,7 @@ E.germ_level += germs /proc/sort_surgeries() - var/gap = surgery_steps.len + var/gap = GLOB.surgery_steps.len var/swapped = 1 while(gap > 1 || swapped) swapped = 0 @@ -219,9 +219,9 @@ gap = round(gap / 1.247330950103979) if(gap < 1) gap = 1 - for(var/i = 1; gap + i <= surgery_steps.len; i++) - var/datum/surgery_step/l = surgery_steps[i] //Fucking hate - var/datum/surgery_step/r = surgery_steps[gap+i] //how lists work here + for(var/i = 1; gap + i <= GLOB.surgery_steps.len; i++) + var/datum/surgery_step/l = GLOB.surgery_steps[i] //Fucking hate + var/datum/surgery_step/r = GLOB.surgery_steps[gap+i] //how lists work here if(l.priority < r.priority) - surgery_steps.Swap(i, gap + i) + GLOB.surgery_steps.Swap(i, gap + i) swapped = 1 diff --git a/code/modules/telesci/gps.dm b/code/modules/telesci/gps.dm index 467f92d095e..3672070e8f0 100644 --- a/code/modules/telesci/gps.dm +++ b/code/modules/telesci/gps.dm @@ -140,7 +140,7 @@ var/list/GPS_list = list() /obj/item/gps/visible_debug/New() . = ..() tagged = list() - fast_processing.Add(src) + GLOB.fast_processing.Add(src) /obj/item/gps/visible_debug/process() var/turf/T = get_turf(src) @@ -161,5 +161,5 @@ var/list/GPS_list = list() if(tagged) clear() tagged = null - fast_processing.Remove(src) + GLOB.fast_processing.Remove(src) . = ..() diff --git a/code/modules/vr/vr_controller.dm b/code/modules/vr/vr_controller.dm index 564291b2999..30b33e0baa3 100644 --- a/code/modules/vr/vr_controller.dm +++ b/code/modules/vr/vr_controller.dm @@ -20,7 +20,7 @@ proc/make_vr_room(name, template, expires) vr_rooms[R.name] = R R.template.load(locate(R.chunk.x,R.chunk.y,R.chunk.zpos), centered = FALSE) - for(var/atom/landmark in R.chunk.search_chunk(landmarks_list)) + for(var/atom/landmark in R.chunk.search_chunk(GLOB.landmarks_list)) if(landmark.name == "avatarspawn") R.spawn_points.Add(landmark) From a472eee850eeef47760908fec95c14a6a10c9582 Mon Sep 17 00:00:00 2001 From: Purpose Date: Sat, 6 Oct 2018 19:22:20 +0100 Subject: [PATCH 02/54] dirt smoothing --- .../objects/effects/decals/Cleanable/misc.dm | 10 +++++++--- code/game/objects/effects/decals/cleanable.dm | 8 ++++++++ icons/effects/dirt.dmi | Bin 0 -> 6011 bytes 3 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 icons/effects/dirt.dmi diff --git a/code/game/objects/effects/decals/Cleanable/misc.dm b/code/game/objects/effects/decals/Cleanable/misc.dm index 1b9880bb79a..e67d2c9954a 100644 --- a/code/game/objects/effects/decals/Cleanable/misc.dm +++ b/code/game/objects/effects/decals/Cleanable/misc.dm @@ -27,10 +27,16 @@ density = 0 anchored = 1 layer = 2 - icon = 'icons/effects/effects.dmi' + icon = 'icons/effects/dirt.dmi' icon_state = "dirt" + canSmoothWith = list(/obj/effect/decal/cleanable/dirt, /turf/simulated/wall, /obj/structure/falsewall) + smooth = SMOOTH_MORE mouse_opacity = 0 +/obj/effect/decal/cleanable/dirt/Initialize() + ..() + icon_state = "" + /obj/effect/decal/cleanable/dirt/blackpowder name = "black powder" mouse_opacity = 1 @@ -199,5 +205,3 @@ icon_state = "confetti1" random_icon_states = list("confetti1", "confetti2", "confetti3") anchored = 1 - - diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index 09baf2b7518..a3567ac5098 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -11,8 +11,16 @@ if(random_icon_states && length(src.random_icon_states) > 0) src.icon_state = pick(src.random_icon_states) create_reagents(100) + if(smooth) + queue_smooth(src) + queue_smooth_neighbors(src) ..() +/obj/effect/decal/cleanable/Destroy() + if(smooth) + queue_smooth_neighbors(src) + return ..() + /obj/effect/decal/cleanable/attackby(obj/item/W as obj, mob/user as mob,) if(istype(W, /obj/item/reagent_containers/glass) || istype(W, /obj/item/reagent_containers/food/drinks)) if(src.reagents && W.reagents && !noscoop) diff --git a/icons/effects/dirt.dmi b/icons/effects/dirt.dmi new file mode 100644 index 0000000000000000000000000000000000000000..5c8bc8f61a0c4e40e936dcfaf89e1c95036b8f57 GIT binary patch literal 6011 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 Date: Sat, 6 Oct 2018 21:54:38 +0100 Subject: [PATCH 03/54] Revert this commit when using subsystem. --- code/game/objects/effects/decals/cleanable.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index a3567ac5098..4395da0b6be 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -12,13 +12,13 @@ src.icon_state = pick(src.random_icon_states) create_reagents(100) if(smooth) - queue_smooth(src) - queue_smooth_neighbors(src) + smooth_icon(src) + smooth_icon_neighbors(src) ..() /obj/effect/decal/cleanable/Destroy() if(smooth) - queue_smooth_neighbors(src) + smooth_icon_neighbors(src) return ..() /obj/effect/decal/cleanable/attackby(obj/item/W as obj, mob/user as mob,) From 9a02501accb2411f50f68f7fad2e3a41334300a8 Mon Sep 17 00:00:00 2001 From: Gwydion Brain Date: Sat, 6 Oct 2018 21:29:57 -0700 Subject: [PATCH 04/54] Initial --- code/modules/customitems/item_defines.dm | 11 +++++++++++ icons/mob/inhands/fluff_lefthand.dmi | Bin 1889 -> 2095 bytes icons/mob/inhands/fluff_righthand.dmi | Bin 1845 -> 2037 bytes icons/mob/uniform.dmi | Bin 358218 -> 361504 bytes icons/mob/uniform_fat.dmi | Bin 105411 -> 109392 bytes icons/obj/custom_items.dmi | Bin 104001 -> 104468 bytes 6 files changed, 11 insertions(+) diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm index c4ce1055324..e43613f6d8d 100644 --- a/code/modules/customitems/item_defines.dm +++ b/code/modules/customitems/item_defines.dm @@ -1000,6 +1000,17 @@ flags_inv = HIDEEARS //////////// Uniforms //////////// +/obj/item/clothing/under/fluff/counterfeitguise_uniform // thatdanguy23 : Rissa Williams + icon = 'icons/obj/custom_items.dmi' + name = "Rissa's hand-me-downs" + desc = "An old, hand-me-down baggy sweater and sweatpants combo. A label on the neck reads 'RISSA' in scruffy handwriting." + lefthand_file = 'icons/mob/inhands/fluff_lefthand.dmi' + righthand_file = 'icons/mob/inhands/fluff_righthand.dmi' + icon_state = "counterfeitguise" + item_state = "counterfeitguise" + item_color = "counterfeitguise" + flags_size = ONESIZEFITSALL + /obj/item/clothing/under/fluff/benjaminfallout // Benjaminfallout: Pretzel Brassheart icon = 'icons/obj/custom_items.dmi' name = "Pretzel's dress" diff --git a/icons/mob/inhands/fluff_lefthand.dmi b/icons/mob/inhands/fluff_lefthand.dmi index a5721f518ce7eac46f9f23409e42914ef238eb91..791c16f7863377895d5488c5b453e1353f3f8c02 100644 GIT binary patch delta 1872 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 W7RiC41^@Pb*)e|{)bGiWD8|3}21&C3 diff --git a/icons/mob/inhands/fluff_righthand.dmi b/icons/mob/inhands/fluff_righthand.dmi index 50435f90e0d3e32b3dbf92f8deeaf58529fc64e8..d1b3f1e23cf2f3c66c793cfbc55830b9594e2991 100644 GIT binary patch delta 1813 zcmYjOdpOgJ8{e>;LsU2@B5z6{eDsU?0M2ae+r`1Q{VhR z#uT%&T&z%E9>A^K`d_)d1YM z4gLU&ueK+ZcB~V(GGrA20zpRL&gXoumv2;L_|Lej&|6UNAr_5>y4?luEc8&AMi*cv z?`c)*^9_P{v(0Q_(b1Gtc4jEqDT5H7t&_UaX~p+`r8#vqNLO;Nuhv)6!h03)8G94^ zqPrX6P5(aV67G{OdYDr^=D{>n_3>Yb91ZXoeiL3HveWix@jYE@(1(GeGnWtz)2&i9 zdpc)flzr6bi!9UsD0-kGA|ZeQwth0e;XLlsCW2?hUT`Gz`p%HT9{M|`iZAG>=ZVH) z^Zud3(9PF)lxiQ{Hv9HofxvP)D=fYb-w6p; zPB}J?@|1vouS`pNOqg7#e2OiC-%ad5FF*68`YFh1UC40?L6|TX3Q0t^#oM>XqRG7( zr%i@Vxe6JHP3VRRL0wM?w)Kz2Ty{l88m5P9(cVd=ogy9mIPAl9EzES1U_T5}0W0UZ z-SIB_q~g*GN|caT^mVQ%1_jC~!7A;l9D;3Du+#+ncw8d zYpMOO5c+HxwsviPP43}gNlrh>&$NOqbfzQ$kk#hgM-XF+A$3v5#F2SvQCMBmo}y1K z9BT9DAsSslZsbrXST*e4(#?M44DYYZLHwOo%~km=>W(jHD)#xGVP~ZNC66H0Gm+JP zW9iN+*S41@6EcuO&RiGdU|#;Ts-dH$hO4l9Dk|koYjA8Gr*Gsby7PkMO+>&l?`-*#{Qd)e!6@b5 zHj-G1t2!H*o=ZBLnKgpyw7Z77Z_r{z_b%&GG|k~<+&q|b!kwF04Z1JW`WHBGfSsV5 z6)Tn4LjN&+G!hR20soMn_Gq39Ho9hC@rJlg)gLK-E5Ai9>TG3bHoIBLR9cj)EpRw9 z*4I##ZV}yb&&iDWf@X(OS0tAgW7jK;x!B?K`u1yCo#Dm$4g8lVJJZ`eS`Cax$cUmT zr5QZN{^q2Dn{1vO{)M{orb7$k5ySa0qK{-A=ygrSxlGnCxx9;s zZeD#!_|HLQr7V`A7k3qM`FLe78XCp_ly5E05kHCCUc*ta^xiyP7<00}?s0KGbLZUL zE5V13#4CA{Uo&*G(vyLNZJ8A<`_v}i*Rne`F3zhm6 z035VLPwj}7`JoK99!tKC3VFcRtX*2lz5|z;;-z}<$<8LRf-U0*#BpY}3nYZWhO?GY z&3Oo+km)I+sPzf)Y{m+HiSKep-cy*NX(&4Tty#;ek=8l{)> qAeL8rtt%NmUH7U-J&Y@XUXg5_YfV9Zn>p;OD7cHabF)+UjsF7QO?8O? delta 1636 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

LiULj&9FWk8rh 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 ArvLx| delta 24079 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%0D##QTd-OOq-ZG^fl0d-7RH0b+j1XxSG32{1GrBg8 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 JN@Yw!{vS)582JDI delta 23631 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 bKTZMKE{hC8Lfcmm@S&liqx?zHChY$JNUFNJ From aaa2539462d114bd884125388a1097d1456661ca Mon Sep 17 00:00:00 2001 From: Gwydion Brain Date: Sun, 7 Oct 2018 20:05:53 -0700 Subject: [PATCH 05/54] Initial --- code/modules/food_and_drinks/drinks/drinks.dm | 14 +++++++------- icons/obj/drinks.dmi | Bin 81934 -> 82751 bytes 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 91ee910c8d4..e64b74f1635 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -202,7 +202,7 @@ /obj/item/reagent_containers/food/drinks/ice name = "Ice Cup" desc = "Careful, cold ice, do not chew." - icon_state = "coffee" + icon_state = "icecup" list_reagents = list("ice" = 30) /obj/item/reagent_containers/food/drinks/tea @@ -241,14 +241,14 @@ /obj/item/reagent_containers/food/drinks/weightloss name = "Weight-Loss Shake" desc = "A shake designed to cause weight loss. The package proudly proclaims that it is 'tapeworm free.'" - icon_state = "coffee" + icon_state = "weightshake" list_reagents = list("lipolicide" = 30, "chocolate" = 5) /obj/item/reagent_containers/food/drinks/dry_ramen name = "Cup Ramen" desc = "Just add 10ml of water, self heats! A taste that reminds you of your school years." icon_state = "ramen" - item_state = "coffee" + item_state = "ramen" list_reagents = list("dry_ramen" = 30) /obj/item/reagent_containers/food/drinks/dry_ramen/New() @@ -257,10 +257,10 @@ reagents.add_reagent("enzyme", 3) /obj/item/reagent_containers/food/drinks/chicken_soup - name = "Cup Chicken Soup" - desc = "A delicious and soothing cup of chicken noodle soup; just like spessmom used to make it." - icon_state = "ramen" - item_state = "coffee" + name = "Canned Chicken Soup" + desc = "A delicious and soothing can of chicken noodle soup; just like spessmom used to microwave it." + icon_state = "soupcan" + item_state = "soupcan" list_reagents = list("chicken_soup" = 30) /obj/item/reagent_containers/food/drinks/sillycup diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index 90c11b659b5a5767fda579ffbbbfddd37fa94f80..13f29eac15fd187a2bdf2e7d7b3c50789eb7cd98 100644 GIT binary patch delta 7736 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 Date: Fri, 10 Aug 2018 08:09:37 +0800 Subject: [PATCH 06/54] Port over tg ore stack and stack merging Meta Birbfix Maxi Re-add automatic satchel ore pickup (oops) Mecha formatting re --- .../MetaStation/MetaStation.v41A.II.dmm | 10 +- _maps/map_files/MetaStation/z4.dmm | 8 +- .../RandomRuins/SpaceRuins/onehalf.dmm | 4 +- .../map_files/RandomZLevels/moonoutpost19.dmm | 8 +- _maps/map_files/cyberiad/cyberiad.dmm | 4 +- _maps/map_files/cyberiad/z6.dmm | 14 +- code/__DEFINES/admin.dm | 4 +- code/game/gamemodes/meteor/meteors.dm | 10 +- .../gamemodes/miniantags/bot_swarm/swarmer.dm | 2 +- code/game/machinery/autolathe.dm | 15 +- code/game/machinery/constructable_frame.dm | 10 +- code/game/machinery/quantum_pad.dm | 2 +- code/game/machinery/teleporter.dm | 11 +- .../mecha/equipment/tools/mining_tools.dm | 2 +- code/game/mecha/mech_fabricator.dm | 2 +- code/game/mecha/mecha_construction_paths.dm | 23 +-- code/game/objects/items/stacks/rods.dm | 1 - .../game/objects/items/stacks/sheets/glass.dm | 2 - .../objects/items/stacks/sheets/mineral.dm | 2 +- code/game/objects/items/stacks/stack.dm | 144 ++++++++++------ .../objects/items/weapons/storage/bags.dm | 2 +- .../objects/items/weapons/storage/toolbox.dm | 8 +- .../game/turfs/simulated/floor/fancy_floor.dm | 8 +- .../mission_code/stationCollision.dm | 2 +- .../drinks/bottler/bottler_recipes.dm | 4 +- .../recipes/recipes_microwave.dm | 2 +- code/modules/mining/abandonedcrates.dm | 8 +- code/modules/mining/equipment_locker.dm | 8 +- code/modules/mining/machine_processing.dm | 4 +- code/modules/mining/machine_unloading.dm | 2 +- code/modules/mining/mine_turfs.dm | 32 ++-- code/modules/mining/minebot.dm | 22 +-- code/modules/mining/ore.dm | 162 +++++++++++------- code/modules/mining/satchel_ore_boxdm.dm | 113 +++++------- .../living/silicon/robot/drone/drone_items.dm | 2 +- .../hostile/megafauna/colossus.dm | 2 +- .../simple_animal/hostile/megafauna/dragon.dm | 2 +- .../simple_animal/hostile/mining/goldgrub.dm | 25 +-- .../simple_animal/hostile/mining_mobs.dm | 4 +- code/modules/power/cable.dm | 14 +- code/modules/power/lighting.dm | 2 +- .../projectiles/guns/energy/special.dm | 5 +- .../chemistry/recipes/slime_extracts.dm | 2 +- .../research/designs/bluespace_designs.dm | 2 +- code/modules/research/rdmachines.dm | 4 +- code/modules/spacepods/equipment.dm | 2 +- code/modules/station_goals/bsa.dm | 2 +- code/modules/telesci/bscrystal.dm | 18 +- code/modules/telesci/telepad.dm | 8 +- code/modules/telesci/telesci_computer.dm | 4 +- 50 files changed, 394 insertions(+), 359 deletions(-) diff --git a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm index ee99c0fe57a..15eac42febb 100644 --- a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm +++ b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm @@ -1576,7 +1576,7 @@ "aEp" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/junction{dir = 4; icon_state = "pipe-j2"; tag = "icon-pipe-j1 (WEST)"},/turf/simulated/floor/plasteel,/area/crew_quarters/sleep) "aEq" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/crew_quarters/sleep) "aEr" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/starboard) -"aEs" = (/obj/item/ore/iron,/obj/effect/decal/warning_stripes/northwest,/turf/simulated/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aEs" = (/obj/item/stack/ore/iron,/obj/effect/decal/warning_stripes/northwest,/turf/simulated/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"}) "aEt" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id_tag = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/bridge) "aEu" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/starboard) "aEv" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/spawner/lootdrop{loot = list(/obj/structure/grille,/obj/structure/grille,/obj/structure/grille,/obj/structure/grille,/obj/structure/grille,/obj/item/cigbutt,/obj/item/trash/cheesie,/obj/item/trash/candy,/obj/item/trash/chips,/obj/item/trash/pistachios,/obj/item/trash/plate,/obj/item/trash/popcorn,/obj/item/trash/raisins,/obj/item/trash/sosjerky,/obj/item/trash/syndi_cakes); name = "maint grille or trash spawner"},/turf/simulated/floor/plating,/area/maintenance/starboard) @@ -1591,7 +1591,7 @@ "aEE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/decal/warning_stripes/west,/turf/simulated/floor/plasteel,/area/engine/engineering) "aEF" = (/obj/item/multitool,/turf/simulated/floor/plating/airless,/area/engine/engineering) "aEG" = (/obj/item/radio/off,/turf/simulated/floor/plating/airless,/area/engine/engineering) -"aEH" = (/obj/structure/closet/crate,/obj/item/ore/glass,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aEH" = (/obj/structure/closet/crate,/obj/item/stack/ore/glass,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/quartermaster/sorting{name = "\improper Warehouse"}) "aEI" = (/obj/machinery/door/airlock/shuttle{name = "Mining Shuttle Airlock"; req_access_txt = "0"},/obj/docking_port/mobile{dir = 8; dwidth = 3; height = 5; id = "mining"; name = "mining shuttle"; width = 7},/obj/docking_port/stationary{dir = 8; dwidth = 3; height = 5; id = "mining_home"; name = "mining shuttle bay"; width = 7},/turf/simulated/shuttle/plating,/area/shuttle/mining) "aEJ" = (/obj/machinery/door/airlock/external{name = "Mining Dock Airlock"; req_access = null; req_access_txt = "0"},/turf/simulated/floor/plating,/area/quartermaster/miningdock{name = "\improper Mining Office"}) "aEK" = (/turf/simulated/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"}) @@ -1712,7 +1712,7 @@ "aGV" = (/obj/item/clothing/glasses/meson,/obj/structure/closet/crate,/obj/item/poster/random_contraband,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/simulated/floor/plating,/area/maintenance/starboard) "aGW" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/starboard) "aGX" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/hardsuit/engineering,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/hardsuit/engineering,/obj/effect/decal/warning_stripes/yellow/hollow,/turf/simulated/floor/plasteel,/area/engine/engineering) -"aGY" = (/obj/item/ore/silver,/obj/item/ore/silver,/obj/effect/decal/warning_stripes/southwest,/turf/simulated/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aGY" = (/obj/item/stack/ore/silver,/obj/item/stack/ore/silver,/obj/effect/decal/warning_stripes/southwest,/turf/simulated/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"}) "aGZ" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/camera{c_tag = "Mining Dock"; dir = 8; network = list("SS13")},/obj/effect/decal/warning_stripes/south,/turf/simulated/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"}) "aHa" = (/obj/effect/decal/warning_stripes/northwest,/turf/simulated/floor/plasteel,/area/engine/engineering) "aHb" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/construction/Storage{name = "Storage Wing"}) @@ -2171,7 +2171,7 @@ "aPM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/effect/decal/warning_stripes/arrow{icon_state = "4"; dir = 8},/obj/effect/decal/warning_stripes/yellow/partial{icon_state = "3"; dir = 8},/turf/simulated/floor/plasteel,/area/quartermaster/storage) "aPN" = (/obj/machinery/navbeacon{codes_txt = "delivery"; dir = 8; location = "QM #1"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/window/northleft,/obj/machinery/light{dir = 4},/obj/effect/decal/warning_stripes/yellow,/mob/living/simple_animal/bot/mulebot{home_destination = "QM #1"; suffix = "#1"},/turf/simulated/floor/plasteel,/area/quartermaster/storage) "aPO" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/quartermaster/storage) -"aPP" = (/obj/structure/closet/crate,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/item/ore/glass,/obj/item/ore/iron,/obj/effect/decal/warning_stripes/yellow/hollow,/turf/simulated/floor/plasteel,/area/quartermaster/storage) +"aPP" = (/obj/structure/closet/crate,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/item/stack/ore/glass,/obj/item/stack/ore/iron,/obj/effect/decal/warning_stripes/yellow/hollow,/turf/simulated/floor/plasteel,/area/quartermaster/storage) "aPQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/warning_stripes/yellow,/turf/simulated/floor/plasteel,/area/quartermaster/storage) "aPR" = (/obj/machinery/door/window/northleft{dir = 8; name = "MuleBot Supply Access"; req_access_txt = "50"},/obj/structure/plasticflaps{opacity = 1},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "aPS" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11},/obj/structure/mirror{pixel_x = 28},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) @@ -8502,7 +8502,7 @@ "dhF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/maintenance{name = "storage room"; req_access = "12"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "dhG" = (/obj/item/seeds/watermelon,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "dhI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/mob/living/simple_animal/bot/cleanbot{name = "Mopfficer Sweepsky"; on = 0},/turf/simulated/floor/plating,/area/maintenance/fore) - + (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/_maps/map_files/MetaStation/z4.dmm b/_maps/map_files/MetaStation/z4.dmm index 51fc57cc738..e7e0eba3e75 100644 --- a/_maps/map_files/MetaStation/z4.dmm +++ b/_maps/map_files/MetaStation/z4.dmm @@ -164,14 +164,14 @@ "dh" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2";pixel_y = 0},/turf/simulated/wall,/area/derelict/bridge/access) "di" = (/turf/simulated/wall/r_wall,/area/derelict/gravity_generator) "dj" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel,/area/derelict/solar_control) -"dk" = (/obj/item/ore/iron,/obj/item/ore/iron,/obj/item/ore/iron,/turf/space,/area/space) +"dk" = (/obj/item/stack/ore/iron,/obj/item/stack/ore/iron,/obj/item/stack/ore/iron,/turf/space,/area/space) "dl" = (/turf/simulated/floor/plating/airless{icon_state = "damaged2"},/area/derelict/gravity_generator) "dm" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating/airless{icon_state = "damaged5"},/area/derelict/gravity_generator) "dn" = (/obj/machinery/door/airlock/maintenance,/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access) "do" = (/turf/simulated/wall,/area/derelict/bridge/access) "dp" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access) "dq" = (/turf/simulated/floor/plating/airless{icon_state = "damaged4"},/area/derelict/gravity_generator) -"dr" = (/obj/item/ore/slag,/turf/simulated/floor/plating/airless{icon_state = "damaged4"},/area/derelict/gravity_generator) +"dr" = (/obj/item/stack/ore/slag,/turf/simulated/floor/plating/airless{icon_state = "damaged4"},/area/derelict/gravity_generator) "ds" = (/turf/simulated/floor/plating/airless{icon_state = "damaged5"},/area/derelict/gravity_generator) "dt" = (/turf/simulated/floor/plasteel,/area/derelict/bridge/access) "du" = (/obj/structure/rack,/obj/item/melee/classic_baton,/turf/simulated/floor/plasteel,/area/derelict/bridge/access) @@ -184,7 +184,7 @@ "dB" = (/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access) "dC" = (/obj/item/screwdriver,/turf/simulated/floor/plating/airless{icon_state = "damaged5"},/area/derelict/gravity_generator) "dD" = (/obj/machinery/gravity_generator/main/station{on = 0},/turf/simulated/floor/plating/airless,/area/derelict/gravity_generator) -"dE" = (/obj/item/ore/slag,/turf/space,/area/space) +"dE" = (/obj/item/stack/ore/slag,/turf/space,/area/space) "dF" = (/obj/structure/cable{d1 = 1;d2 = 4;icon_state = "1-4"},/turf/simulated/wall,/area/derelict/bridge/access) "dG" = (/obj/structure/cable{d1 = 2;d2 = 4;icon_state = "2-4"},/obj/structure/cable{d1 = 2;d2 = 8;icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access) "dH" = (/obj/structure/cable{d1 = 2;d2 = 8;icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access) @@ -355,7 +355,7 @@ "gQ" = (/obj/structure/cable{d1 = 1;d2 = 8;icon_state = "1-8"},/obj/effect/landmark/damageturf,/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary) "gR" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 0;name = "Worn-out APC";pixel_y = -24},/turf/simulated/floor/plating/airless,/area/derelict/bridge/access) "gS" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/bridge/access) -"gT" = (/obj/item/ore/slag,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) +"gT" = (/obj/item/stack/ore/slag,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "gU" = (/obj/item/shard,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "gV" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "gW" = (/turf/simulated/wall/r_wall,/area/derelict/hallway/primary) diff --git a/_maps/map_files/RandomRuins/SpaceRuins/onehalf.dmm b/_maps/map_files/RandomRuins/SpaceRuins/onehalf.dmm index c95082eac76..982be66cace 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/onehalf.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/onehalf.dmm @@ -29,7 +29,7 @@ "aC" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel,/area/ruin/onehalf/dorms_med) "aD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/ruin/onehalf/drone_bay) "aE" = (/obj/structure/disposalpipe/trunk,/turf/simulated/floor/plating/airless,/area/ruin/onehalf/drone_bay) -"aF" = (/obj/structure/disposalpipe/trunk,/obj/item/ore/diamond,/turf/simulated/floor/plating/airless,/area/ruin/onehalf/drone_bay) +"aF" = (/obj/structure/disposalpipe/trunk,/obj/item/stack/ore/diamond,/turf/simulated/floor/plating/airless,/area/ruin/onehalf/drone_bay) "aG" = (/obj/effect/decal/warning_stripes/north,/turf/simulated/floor/plating/airless,/area/ruin/onehalf/drone_bay) "aH" = (/obj/item/stack/rods,/turf/space,/area/ruin/onehalf/hallway) "aI" = (/obj/effect/landmark/damageturf,/turf/simulated/floor/plasteel/airless,/area/ruin/onehalf/hallway) @@ -153,7 +153,7 @@ "cY" = (/obj/structure/grille,/obj/structure/window/full/reinforced,/obj/structure/cable{d2 = 4; icon_state = "0-4"},/obj/structure/cable,/obj/machinery/door/poddoor/preopen{id_tag = "onehalf bridge"; name = "bridge blast door"},/turf/simulated/floor/plating,/area/ruin/onehalf/bridge) "cZ" = (/obj/structure/lattice,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/space,/area/space) "db" = (/obj/structure/table,/obj/item/flashlight,/turf/simulated/floor/plasteel,/area/ruin/onehalf/bridge) -"dc" = (/obj/structure/table,/obj/item/ore/bluespace_crystal,/obj/item/coin/plasma,/turf/simulated/floor/plasteel,/area/ruin/onehalf/bridge) +"dc" = (/obj/structure/table,/obj/item/stack/ore/bluespace_crystal,/obj/item/coin/plasma,/turf/simulated/floor/plasteel,/area/ruin/onehalf/bridge) "dd" = (/obj/structure/closet/firecloset/full,/turf/simulated/floor/plasteel,/area/ruin/onehalf/bridge) "de" = (/obj/machinery/light,/obj/structure/table,/obj/item/storage/firstaid,/turf/simulated/floor/plasteel,/area/ruin/onehalf/bridge) "df" = (/obj/structure/lattice,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/space,/area/space) diff --git a/_maps/map_files/RandomZLevels/moonoutpost19.dmm b/_maps/map_files/RandomZLevels/moonoutpost19.dmm index 12e7ca4df90..7868dd1addb 100644 --- a/_maps/map_files/RandomZLevels/moonoutpost19.dmm +++ b/_maps/map_files/RandomZLevels/moonoutpost19.dmm @@ -41,7 +41,7 @@ "aO" = (/obj/machinery/gateway{dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "vault"},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"}) "aP" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"}) "aQ" = (/obj/machinery/gateway{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "vault"},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"}) -"aR" = (/obj/item/ore/iron{pixel_x = 7; pixel_y = -6},/turf/simulated/floor/plating/airless/asteroid,/area/awaycontent/a3{always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); has_gravity = 1; name = "Khonsu 19"; power_environ = 0; power_equip = 0; power_light = 0; poweralm = 0}) +"aR" = (/obj/item/stack/ore/iron{pixel_x = 7; pixel_y = -6},/turf/simulated/floor/plating/airless/asteroid,/area/awaycontent/a3{always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); has_gravity = 1; name = "Khonsu 19"; power_environ = 0; power_equip = 0; power_light = 0; poweralm = 0}) "aS" = (/obj/structure/alien/weeds,/mob/living/simple_animal/hostile/alien/queen/large{desc = "A gigantic alien who is in charge of the hive and all of its loyal servants."; name = "alien queen"; pixel_x = -16; plants_off = 1},/turf/simulated/floor/plating/airless/asteroid,/area/awaycontent/a5{always_unpowered = 1; has_gravity = 1; name = "The Hive"; power_environ = 0; power_equip = 0; power_light = 0; poweralm = 0}) "aT" = (/turf/simulated/wall,/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"}) "aU" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "darkredcorners"; tag = "icon-darkredcorners (WEST)"},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"}) @@ -175,11 +175,11 @@ "ds" = (/obj/structure/closet/secure_closet{desc = "It's a secure locker for personnel. The first card swiped gains control."; icon_broken = "cabinetdetective_broken"; icon_closed = "cabinetdetective"; icon_locked = "cabinetdetective_locked"; icon_off = "cabinetdetective_broken"; icon_opened = "cabinetdetective_open"; icon_state = "cabinetdetective"; locked = 0; name = "personal closet"; req_access_txt = "150"},/obj/item/stack/spacecash/c50,/turf/simulated/floor/wood,/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"}) "dt" = (/obj/structure/bed,/obj/item/bedsheet/syndie,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/wood,/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"}) "du" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating/airless{name = "plating"},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"}) -"dv" = (/obj/item/ore/iron,/obj/item/ore/iron{pixel_x = -7; pixel_y = -4},/turf/simulated/floor/plating/airless/asteroid,/area/awaycontent/a3{always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); has_gravity = 1; name = "Khonsu 19"; power_environ = 0; power_equip = 0; power_light = 0; poweralm = 0}) +"dv" = (/obj/item/stack/ore/iron,/obj/item/stack/ore/iron{pixel_x = -7; pixel_y = -4},/turf/simulated/floor/plating/airless/asteroid,/area/awaycontent/a3{always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); has_gravity = 1; name = "Khonsu 19"; power_environ = 0; power_equip = 0; power_light = 0; poweralm = 0}) "dw" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating/airless{name = "plating"},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"}) "dx" = (/obj/effect/decal/warning_stripes/northwestcorner,/turf/simulated/floor/plasteel/airless{name = "floor"},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"}) "dy" = (/obj/structure/dispenser/oxygen{oxygentanks = 9},/obj/machinery/light/small{active_power_usage = 0; dir = 1; icon_state = "bulb-broken"; status = 2},/obj/effect/decal/warning_stripes/northwest,/turf/simulated/floor/plating/airless{name = "plating"},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"}) -"dz" = (/obj/item/ore/iron{pixel_x = -3; pixel_y = 9},/turf/simulated/floor/plating/airless/asteroid,/area/awaycontent/a3{always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); has_gravity = 1; name = "Khonsu 19"; power_environ = 0; power_equip = 0; power_light = 0; poweralm = 0}) +"dz" = (/obj/item/stack/ore/iron{pixel_x = -3; pixel_y = 9},/turf/simulated/floor/plating/airless/asteroid,/area/awaycontent/a3{always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); has_gravity = 1; name = "Khonsu 19"; power_environ = 0; power_equip = 0; power_light = 0; poweralm = 0}) "dA" = (/turf/simulated/mineral,/area/awaycontent/a3{always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); has_gravity = 1; name = "Khonsu 19"; power_environ = 0; power_equip = 0; power_light = 0; poweralm = 0}) "dB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/effect/landmark/damageturf,/turf/simulated/floor/plating,/area/awaycontent/a7) "dC" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate/orange,/obj/item/clothing/mask/gas,/obj/item/pickaxe/drill,/obj/item/clothing/head/helmet/space/syndicate/orange,/obj/effect/decal/warning_stripes/northeast,/turf/simulated/floor/plating/airless{name = "plating"},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"}) @@ -192,7 +192,7 @@ "dJ" = (/obj/item/pickaxe/drill,/turf/simulated/floor/plating/airless/asteroid,/area/awaycontent/a3{always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); has_gravity = 1; name = "Khonsu 19"; power_environ = 0; power_equip = 0; power_light = 0; poweralm = 0}) "dK" = (/turf/simulated/floor/plasteel/airless{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; name = "plating"},/area/awaycontent/a3{always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); has_gravity = 1; name = "Khonsu 19"; power_environ = 0; power_equip = 0; power_light = 0; poweralm = 0}) "dL" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; name = "plating"},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"}) -"dM" = (/obj/item/ore/iron{pixel_x = -7; pixel_y = -4},/turf/simulated/floor/plating/airless/asteroid,/area/awaycontent/a3{always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); has_gravity = 1; name = "Khonsu 19"; power_environ = 0; power_equip = 0; power_light = 0; poweralm = 0}) +"dM" = (/obj/item/stack/ore/iron{pixel_x = -7; pixel_y = -4},/turf/simulated/floor/plating/airless/asteroid,/area/awaycontent/a3{always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); has_gravity = 1; name = "Khonsu 19"; power_environ = 0; power_equip = 0; power_light = 0; poweralm = 0}) "dN" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/obj/structure/bed/nest,/obj/item/tank/oxygen,/obj/item/clothing/suit/space/syndicate/orange,/obj/item/clothing/mask/gas,/obj/item/clothing/head/helmet/space/syndicate/orange,/obj/item/clothing/mask/facehugger{icon_state = "facehugger_impregnated"; item_state = "facehugger_impregnated"; stat = 2},/obj/effect/decal/cleanable/blood/tracks{color = "red"; desc = "Your instincts say you shouldn't be following these."; dir = 4; icon = 'icons/effects/blood.dmi'; icon_state = "tracks"},/turf/simulated/floor/plating/airless/asteroid,/area/awaycontent/a5{always_unpowered = 1; has_gravity = 1; name = "The Hive"; power_environ = 0; power_equip = 0; power_light = 0; poweralm = 0}) "dO" = (/obj/structure/alien/weeds{icon_state = "weeds2"},/obj/effect/decal/cleanable/blood/tracks{color = "red"; desc = "Your instincts say you shouldn't be following these."; dir = 4; icon = 'icons/effects/blood.dmi'; icon_state = "tracks"},/turf/simulated/floor/plating/airless/asteroid,/area/awaycontent/a5{always_unpowered = 1; has_gravity = 1; name = "The Hive"; power_environ = 0; power_equip = 0; power_light = 0; poweralm = 0}) "dP" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/plating/airless/asteroid,/area/awaycontent/a3{always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); has_gravity = 1; name = "Khonsu 19"; power_environ = 0; power_equip = 0; power_light = 0; poweralm = 0}) diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index bc152fbcf95..0a1794ff9f5 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -5838,7 +5838,7 @@ "cin" = (/obj/structure/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/mining) "cio" = (/obj/machinery/door/window/brigdoor/westleft{color = "#d70000"; req_access_txt = "104"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) "cip" = (/obj/effect/decal/warning_stripes/northwest,/turf/simulated/floor/plasteel,/area/quartermaster/miningdock) -"ciq" = (/obj/machinery/light/small{dir = 4; pixel_y = 8},/obj/item/ore/iron,/obj/effect/decal/warning_stripes/north,/turf/simulated/floor/plasteel,/area/quartermaster/miningdock) +"ciq" = (/obj/machinery/light/small{dir = 4; pixel_y = 8},/obj/item/stack/ore/iron,/obj/effect/decal/warning_stripes/north,/turf/simulated/floor/plasteel,/area/quartermaster/miningdock) "cir" = (/obj/effect/landmark/start{name = "Shaft Miner"},/turf/simulated/floor/plasteel,/area/quartermaster/miningdock) "cis" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel,/area/quartermaster/miningdock) "cit" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "brown"},/area/quartermaster/miningdock) @@ -6013,7 +6013,7 @@ "clG" = (/obj/structure/table,/obj/item/storage/lockbox/mindshield,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) "clH" = (/obj/machinery/camera{c_tag = "Research Toxins Test Chamber North"; network = list("Toxins","Research","SS13")},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel/airless,/area/toxins/test_area) "clI" = (/obj/structure/table,/obj/item/storage/box/chemimp{pixel_x = 4; pixel_y = 3},/obj/item/storage/box/trackimp,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) -"clJ" = (/obj/item/ore/silver,/obj/item/ore/silver,/obj/structure/closet/crate,/obj/effect/decal/warning_stripes/southwest,/turf/simulated/floor/plasteel,/area/quartermaster/miningdock) +"clJ" = (/obj/item/stack/ore/silver,/obj/item/stack/ore/silver,/obj/structure/closet/crate,/obj/effect/decal/warning_stripes/southwest,/turf/simulated/floor/plasteel,/area/quartermaster/miningdock) "clK" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/simulated/wall,/area/quartermaster/miningdock) "clL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/plasteel,/area/quartermaster/miningdock) "clM" = (/obj/machinery/camera{c_tag = "Mining Dock External"; dir = 8},/obj/structure/closet/emcloset,/obj/effect/decal/warning_stripes/south,/turf/simulated/floor/plasteel,/area/quartermaster/miningdock) diff --git a/_maps/map_files/cyberiad/z6.dmm b/_maps/map_files/cyberiad/z6.dmm index 7eeac05c776..e69905fc814 100644 --- a/_maps/map_files/cyberiad/z6.dmm +++ b/_maps/map_files/cyberiad/z6.dmm @@ -268,7 +268,7 @@ "fh" = (/obj/machinery/light/small{dir = 4},/obj/effect/landmark/damageturf,/turf/simulated/floor/plasteel/airless,/area/derelict/singularity_engine) "fi" = (/obj/item/shard{icon_state = "medium"},/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "fj" = (/obj/structure/cable{d1 = 1;d2 = 8;icon_state = "1-8";tag = ""},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary) -"fk" = (/obj/item/ore/slag,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) +"fk" = (/obj/item/stack/ore/slag,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "fl" = (/obj/machinery/light/small,/obj/effect/landmark/damageturf,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) "fm" = (/turf/simulated/wall,/area/derelict/hallway/primary) "fn" = (/obj/effect/landmark/damageturf,/turf/simulated/floor/plating/airless,/area/derelict/arrival) @@ -647,7 +647,7 @@ "mw" = (/obj/machinery/light{dir = 1;on = 1},/obj/effect/spawner/random_spawners/syndicate/turret,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot/core) "mx" = (/turf/simulated/shuttle/wall{tag = "icon-swall12";icon_state = "swall12";dir = 2},/area/space) "my" = (/turf/simulated/floor/plating/airless/asteroid,/turf/simulated/shuttle/wall{tag = "icon-swall_f9";icon_state = "swall_f9";dir = 2},/area/space) -"mz" = (/obj/structure/closet/crate{icon_state = "crateopen";opened = 1},/obj/item/ore/bananium,/obj/item/grenade/bananade,/turf/simulated/floor/plasteel/airless,/area/space) +"mz" = (/obj/structure/closet/crate{icon_state = "crateopen";opened = 1},/obj/item/stack/ore/bananium,/obj/item/grenade/bananade,/turf/simulated/floor/plasteel/airless,/area/space) "mA" = (/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot/core) "mB" = (/obj/effect/spawner/random_spawners/syndicate/layout/door,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot/core) "mC" = (/obj/machinery/door/airlock/hatch/syndicate,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot/core) @@ -663,12 +663,12 @@ "mM" = (/obj/effect/spawner/random_spawners/syndicate/loot,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot/core) "mN" = (/obj/machinery/light,/obj/effect/spawner/random_spawners/syndicate/turret,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot/core) "mO" = (/obj/structure/sign/poster/contraband/lamarr,/turf/simulated/wall/r_wall,/area/syndicate_depot/core) -"mP" = (/obj/structure/closet/crate,/obj/item/ore/tranquillite,/obj/item/ore/tranquillite,/obj/item/ore/tranquillite,/obj/item/ore/tranquillite,/obj/item/ore/tranquillite,/obj/item/ore/tranquillite,/obj/item/ore/tranquillite,/obj/item/ore/tranquillite,/turf/simulated/floor/plasteel/airless,/area/space) -"mQ" = (/obj/structure/closet/crate,/obj/item/ore/tranquillite,/obj/item/ore/tranquillite,/obj/item/ore/tranquillite,/obj/item/ore/tranquillite,/obj/item/ore/tranquillite,/obj/item/ore/tranquillite,/obj/item/ore/tranquillite,/turf/simulated/floor/plasteel/airless,/area/space) +"mP" = (/obj/structure/closet/crate,/obj/item/stack/ore/tranquillite,/obj/item/stack/ore/tranquillite,/obj/item/stack/ore/tranquillite,/obj/item/stack/ore/tranquillite,/obj/item/stack/ore/tranquillite,/obj/item/stack/ore/tranquillite,/obj/item/stack/ore/tranquillite,/obj/item/stack/ore/tranquillite,/turf/simulated/floor/plasteel/airless,/area/space) +"mQ" = (/obj/structure/closet/crate,/obj/item/stack/ore/tranquillite,/obj/item/stack/ore/tranquillite,/obj/item/stack/ore/tranquillite,/obj/item/stack/ore/tranquillite,/obj/item/stack/ore/tranquillite,/obj/item/stack/ore/tranquillite,/obj/item/stack/ore/tranquillite,/turf/simulated/floor/plasteel/airless,/area/space) "mR" = (/obj/machinery/light{dir = 1;on = 1},/obj/effect/spawner/random_spawners/syndicate/loot,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot/core) "mS" = (/obj/machinery/light{dir = 1;on = 1},/obj/effect/spawner/random_spawners/syndicate/loot/level2,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot/core) "mT" = (/obj/item/shard,/turf/simulated/floor/plating/airless/asteroid,/area/space) -"mU" = (/obj/structure/closet/crate,/obj/item/ore/bananium,/obj/item/ore/bananium,/obj/item/ore/bananium,/obj/item/ore/bananium,/obj/item/ore/bananium,/turf/simulated/floor/plasteel/airless,/area/space) +"mU" = (/obj/structure/closet/crate,/obj/item/stack/ore/bananium,/obj/item/stack/ore/bananium,/obj/item/stack/ore/bananium,/obj/item/stack/ore/bananium,/obj/item/stack/ore/bananium,/turf/simulated/floor/plasteel/airless,/area/space) "mV" = (/obj/effect/mob_spawn/human/mime/corpse{name = "Mime Pilot"},/turf/simulated/floor/plasteel/airless,/area/space) "mW" = (/obj/structure/computerframe/HONKputer,/turf/simulated/floor/plasteel/airless,/area/space) "mX" = (/obj/effect/mob_spawn/human/corpse/clownmili,/turf/simulated/floor/plasteel/airless,/area/space) @@ -676,7 +676,7 @@ "mZ" = (/obj/effect/spawner/random_spawners/syndicate/turret/external,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot/core) "na" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/space) "nb" = (/obj/item/shard{icon_state = "small"},/turf/simulated/floor/plating/airless/asteroid,/area/space) -"nc" = (/obj/item/ore/bananium,/turf/simulated/floor/plasteel/airless,/area/space) +"nc" = (/obj/item/stack/ore/bananium,/turf/simulated/floor/plasteel/airless,/area/space) "nd" = (/obj/item/stack/sheet/metal{layer = 4.1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot/core) "ne" = (/obj/structure/shuttle/engine/propulsion{dir = 4;icon_state = "propulsion_l";tag = "icon-propulsion_l (WEST)"},/turf/space,/area/space) "nf" = (/obj/effect/spawner/random_spawners/syndicate/trap/mine,/obj/item/stack/sheet/metal{layer = 4.1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot/core) @@ -686,7 +686,7 @@ "nj" = (/obj/effect/mob_spawn/human/clown/corpse,/turf/simulated/floor/plasteel/airless,/area/space) "nk" = (/obj/machinery/computer/syndicate_depot/teleporter,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot/core) "nl" = (/obj/item/pickaxe,/turf/simulated/floor/plasteel/airless,/area/space) -"nm" = (/obj/structure/closet/crate,/obj/item/ore/bananium,/obj/item/ore/bananium,/obj/item/ore/bananium,/obj/item/ore/bananium,/turf/simulated/floor/plasteel/airless,/area/space) +"nm" = (/obj/structure/closet/crate,/obj/item/stack/ore/bananium,/obj/item/stack/ore/bananium,/obj/item/stack/ore/bananium,/obj/item/stack/ore/bananium,/turf/simulated/floor/plasteel/airless,/area/space) "nn" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f5";icon_state = "swall_f5";dir = 2},/area/space) "no" = (/obj/machinery/bluespace_beacon/syndicate,/obj/effect/decal/warning_stripes/yellow,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot/core) "np" = (/turf/simulated/floor/plasteel/airless,/turf/simulated/shuttle/wall{tag = "icon-swall_f10";icon_state = "swall_f10";dir = 2},/area/space) diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index 0397b5bcdde..d2ec6860b86 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -60,4 +60,6 @@ #define ADMIN_FULLMONTY(user) "[key_name_admin(user)] [ADMIN_QUE(user)] [ADMIN_PP(user)] [ADMIN_VV(user)] [ADMIN_SM(user)] [ADMIN_FLW(user)] [ADMIN_TP(user)]" #define ADMIN_JMP(src) "(JMP)" #define COORD(src) "[src ? "([src.x],[src.y],[src.z])" : "nonexistent location"]" -#define ADMIN_COORDJMP(src) "[src ? "[COORD(src)] [ADMIN_JMP(src)]" : "nonexistent location"]" \ No newline at end of file +#define AREACOORD(src) "[src ? "[get_area_name(src, TRUE)] ([src.x], [src.y], [src.z])" : "nonexistent location"]" +#define ADMIN_COORDJMP(src) "[src ? "[COORD(src)] [ADMIN_JMP(src)]" : "nonexistent location"]" +#define ADMIN_VERBOSEJMP(src) "[src ? "[AREACOORD(src)] [ADMIN_JMP(src)]" : "nonexistent location"]" diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm index 0828d01e4f6..47a3c4ae99a 100644 --- a/code/game/gamemodes/meteor/meteors.dm +++ b/code/game/gamemodes/meteor/meteors.dm @@ -98,7 +98,7 @@ var/meteorsound = 'sound/effects/meteorimpact.ogg' var/z_original = 1 - var/meteordrop = /obj/item/ore/iron + var/meteordrop = /obj/item/stack/ore/iron var/dropamt = 2 /obj/effect/meteor/Move() @@ -196,7 +196,7 @@ hits = 1 hitpwr = 3 meteorsound = 'sound/weapons/tap.ogg' - meteordrop = /obj/item/ore/glass + meteordrop = /obj/item/stack/ore/glass //Medium-sized /obj/effect/meteor/medium @@ -226,7 +226,7 @@ hits = 5 heavy = 1 meteorsound = 'sound/effects/bamf.ogg' - meteordrop = /obj/item/ore/plasma + meteordrop = /obj/item/stack/ore/plasma /obj/effect/meteor/flaming/meteor_effect() ..(heavy) @@ -237,7 +237,7 @@ name = "glowing meteor" icon_state = "glowing" heavy = 1 - meteordrop = /obj/item/ore/uranium + meteordrop = /obj/item/stack/ore/uranium /obj/effect/meteor/irradiated/meteor_effect() @@ -256,7 +256,7 @@ hitpwr = 1 heavy = 1 meteorsound = 'sound/effects/bamf.ogg' - meteordrop = /obj/item/ore/plasma + meteordrop = /obj/item/stack/ore/plasma /obj/effect/meteor/tunguska/meteor_effect() ..(heavy) diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm index a3a029005d5..b7f1e3a89dc 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm @@ -110,7 +110,7 @@ AIStatus = AI_OFF var/resources = 0 //Resource points, generated by consuming metal/glass var/max_resources = 100 - loot = list(/obj/effect/decal/cleanable/blood/gibs/robot, /obj/item/ore/bluespace_crystal/artificial) + loot = list(/obj/effect/decal/cleanable/blood/gibs/robot, /obj/item/stack/ore/bluespace_crystal/artificial) deathmessage = "The swarmer explodes with a sharp pop!" del_on_death = 1 hud_possible = list(SPECIALROLE_HUD, DIAG_STAT_HUD, DIAG_HUD) diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index a0e9ee978dd..07c62451efb 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -216,15 +216,12 @@ return ..() /obj/machinery/autolathe/proc/AfterMaterialInsert(type_inserted, id_inserted, amount_inserted) - if(ispath(type_inserted, /obj/item/ore/bluespace_crystal)) - use_power(MINERAL_MATERIAL_AMOUNT / 10) - else - switch(id_inserted) - if(MAT_METAL) - flick("autolathe_o",src)//plays metal insertion animation - if(MAT_GLASS) - flick("autolathe_r",src)//plays glass insertion animation - use_power(min(1000, amount_inserted / 100)) + switch(id_inserted) + if(MAT_METAL) + flick("autolathe_o",src)//plays metal insertion animation + if(MAT_GLASS) + flick("autolathe_r",src)//plays glass insertion animation + use_power(min(1000, amount_inserted / 100)) SSnanoui.update_uis(src) /obj/machinery/autolathe/attack_ghost(mob/user) diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 953a476d1a8..f9c1330e596 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -705,7 +705,7 @@ obj/item/circuitboard/rdserver origin_tech = "programming=3;engineering=4;bluespace=4;materials=4" frame_desc = "Requires 3 Bluespace Crystals and 1 Matter Bin." req_components = list( - /obj/item/ore/bluespace_crystal = 3, + /obj/item/stack/ore/bluespace_crystal = 3, /obj/item/stock_parts/matter_bin = 1) /obj/item/circuitboard/teleporter_station @@ -715,7 +715,7 @@ obj/item/circuitboard/rdserver origin_tech = "programming=4;engineering=4;bluespace=4;plasmatech=3" frame_desc = "Requires 2 Bluespace Crystals, 2 Capacitors and 1 Console Screen." req_components = list( - /obj/item/ore/bluespace_crystal = 2, + /obj/item/stack/ore/bluespace_crystal = 2, /obj/item/stock_parts/capacitor = 2, /obj/item/stock_parts/console_screen = 1) @@ -726,7 +726,7 @@ obj/item/circuitboard/rdserver origin_tech = "programming=3;engineering=4;bluespace=4;materials=4" frame_desc = "Requires 3 Bluespace Crystals and 1 Matter Bin." req_components = list( - /obj/item/ore/bluespace_crystal = 3, + /obj/item/stack/ore/bluespace_crystal = 3, /obj/item/stock_parts/matter_bin = 1) var/target @@ -737,7 +737,7 @@ obj/item/circuitboard/rdserver origin_tech = "programming=4;engineering=3;plasmatech=4;bluespace=4" frame_desc = "Requires 2 Bluespace Crystals, 1 Capacitor, 1 piece of cable and 1 Console Screen." req_components = list( - /obj/item/ore/bluespace_crystal = 2, + /obj/item/stack/ore/bluespace_crystal = 2, /obj/item/stock_parts/capacitor = 1, /obj/item/stack/cable_coil = 1, /obj/item/stock_parts/console_screen = 1) @@ -749,7 +749,7 @@ obj/item/circuitboard/rdserver origin_tech = "programming=3;engineering=3;plasmatech=3;bluespace=4" frame_desc = "Requires 1 Bluespace Crystal, 1 Capacitor, 1 piece of cable and 1 Manipulator." req_components = list( - /obj/item/ore/bluespace_crystal = 1, + /obj/item/stack/ore/bluespace_crystal = 1, /obj/item/stock_parts/capacitor = 1, /obj/item/stock_parts/manipulator = 1, /obj/item/stack/cable_coil = 1) diff --git a/code/game/machinery/quantum_pad.dm b/code/game/machinery/quantum_pad.dm index 672402ac351..b58e9d12c84 100644 --- a/code/game/machinery/quantum_pad.dm +++ b/code/game/machinery/quantum_pad.dm @@ -18,7 +18,7 @@ ..() component_parts = list() component_parts += new /obj/item/circuitboard/quantumpad(null) - component_parts += new /obj/item/ore/bluespace_crystal/artificial(null) + component_parts += new /obj/item/stack/ore/bluespace_crystal/artificial(null) component_parts += new /obj/item/stock_parts/capacitor(null) component_parts += new /obj/item/stock_parts/manipulator(null) component_parts += new /obj/item/stack/cable_coil(null, 1) diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 53148d9de6d..8ed7867c66a 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -281,9 +281,7 @@ link_power_station() component_parts = list() component_parts += new /obj/item/circuitboard/teleporter_hub(null) - component_parts += new /obj/item/ore/bluespace_crystal/artificial(null) - component_parts += new /obj/item/ore/bluespace_crystal/artificial(null) - component_parts += new /obj/item/ore/bluespace_crystal/artificial(null) + component_parts += new /obj/item/stack/ore/bluespace_crystal/artificial(null, 2) component_parts += new /obj/item/stock_parts/matter_bin(null) RefreshParts() @@ -291,9 +289,7 @@ ..() component_parts = list() component_parts += new /obj/item/circuitboard/teleporter_hub(null) - component_parts += new /obj/item/ore/bluespace_crystal/artificial(null) - component_parts += new /obj/item/ore/bluespace_crystal/artificial(null) - component_parts += new /obj/item/ore/bluespace_crystal/artificial(null) + component_parts += new /obj/item/stack/ore/bluespace_crystal/artificial(null, 2) component_parts += new /obj/item/stock_parts/matter_bin/super(null) RefreshParts() @@ -478,8 +474,7 @@ ..() component_parts = list() component_parts += new /obj/item/circuitboard/teleporter_station(null) - component_parts += new /obj/item/ore/bluespace_crystal/artificial(null) - component_parts += new /obj/item/ore/bluespace_crystal/artificial(null) + component_parts += new /obj/item/stack/ore/bluespace_crystal/artificial(null, 2) component_parts += new /obj/item/stock_parts/capacitor(null) component_parts += new /obj/item/stock_parts/capacitor(null) component_parts += new /obj/item/stock_parts/console_screen(null) diff --git a/code/game/mecha/equipment/tools/mining_tools.dm b/code/game/mecha/equipment/tools/mining_tools.dm index 546bb6ae269..63e70626a8d 100644 --- a/code/game/mecha/equipment/tools/mining_tools.dm +++ b/code/game/mecha/equipment/tools/mining_tools.dm @@ -73,7 +73,7 @@ if(locate(/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp) in chassis.equipment) var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in chassis:cargo if(ore_box) - for(var/obj/item/ore/ore in range(1, chassis)) + for(var/obj/item/stack/ore/ore in range(1, chassis)) if(get_dir(chassis, ore) & chassis.dir) ore.Move(ore_box) diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index 65118f8c491..86640958a72 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -39,7 +39,7 @@ /obj/machinery/mecha_part_fabricator/New() var/datum/component/material_container/materials = AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TRANQUILLITE, MAT_TITANIUM, MAT_BLUESPACE), 0, - FALSE, list(/obj/item/stack, /obj/item/ore/bluespace_crystal), CALLBACK(src, .proc/is_insertion_ready), CALLBACK(src, .proc/AfterMaterialInsert)) + FALSE, list(/obj/item/stack, /obj/item/stack/ore/bluespace_crystal), CALLBACK(src, .proc/is_insertion_ready), CALLBACK(src, .proc/AfterMaterialInsert)) materials.precise_insertion = TRUE ..() component_parts = list() diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index d3b88c2b24c..59de4cc45b4 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -1,3 +1,5 @@ +#define STANDARD_STACK_AMOUNT 5 + //////////////////////////////// ///// Construction datums ////// //////////////////////////////// @@ -30,11 +32,11 @@ return 0 else if(istype(used_atom, /obj/item/stack)) var/obj/item/stack/S = used_atom - if(S.amount < 5) + if(S.amount < STANDARD_STACK_AMOUNT) to_chat(user, ("There's not enough material in this stack.")) return 0 else - S.use(5) + S.use(STANDARD_STACK_AMOUNT) return 1 /datum/construction/reversible/mecha/custom_action(index as num, diff as num, atom/used_atom, mob/user as mob) @@ -65,11 +67,11 @@ return 0 else if(istype(used_atom, /obj/item/stack)) var/obj/item/stack/S = used_atom - if(S.amount < 5) + if(S.amount < STANDARD_STACK_AMOUNT) to_chat(user, ("There's not enough material in this stack.")) return 0 else - S.use(5) + S.use(STANDARD_STACK_AMOUNT) return 1 @@ -1289,7 +1291,7 @@ "backkey"=/obj/item/crowbar, "desc"="The bluespace crystal is installed."), //10 - list("key"=/obj/item/ore/bluespace_crystal, + list("key"=/obj/item/stack/ore/bluespace_crystal, "backkey"=/obj/item/screwdriver, "desc"="Super capacitor is secured."), //11 @@ -1467,23 +1469,22 @@ holder.icon_state = "phazon12" if(10) if(diff==FORWARD) - user.visible_message("[user] installs the bluespace crystal.", "You install the bluespace crystal.") - qdel(used_atom) + user.visible_message("[user] installs the bluespace crystal.", "You install the bluespace crystals.") holder.icon_state = "phazon15" else user.visible_message("[user] unsecures the super capacitor from the [holder].", "You unsecure the super capacitor from the [holder].") holder.icon_state = "phazon13" if(9) if(diff==FORWARD) - user.visible_message("[user] connects the bluespace crystal.", "You connect the bluespace crystal.") + user.visible_message("[user] connects the bluespace crystal.", "You connect the bluespace crystals.") holder.icon_state = "phazon16" else user.visible_message("[user] removes the bluespace crystal from the [holder].", "You remove the bluespace crystal from the [holder].") - new /obj/item/ore/bluespace_crystal(get_turf(holder)) + new /obj/item/stack/ore/bluespace_crystal(get_turf(holder), new_amount = 5) holder.icon_state = "phazon14" if(8) if(diff==FORWARD) - user.visible_message("[user] engages the bluespace crystal.", "You engage the bluespace crystal.") + user.visible_message("[user] engages the bluespace crystal.", "You engage the bluespace crystals.") holder.icon_state = "phazon17" else user.visible_message("[user] disconnects the bluespace crystal from the [holder].", "You disconnect the bluespace crystal from the [holder].") @@ -1493,7 +1494,7 @@ user.visible_message("[user] installs the phase armor layer to the [holder].", "You install the phase armor layer to the [holder].") holder.icon_state = "phazon18" else - user.visible_message("[user] disengages the bluespace crystal.", "You disengage the bluespace crystal.") + user.visible_message("[user] disengages the bluespace crystal.", "You disengage the bluespace crystals.") holder.icon_state = "phazon16" if(6) if(diff==FORWARD) diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index f5d434a9811..41079dcb204 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -47,7 +47,6 @@ var/global/list/datum/stack_recipe/rod_recipes = list ( \ if(WT.remove_fuel(0,user)) var/obj/item/stack/sheet/metal/new_item = new(user.loc) - new_item.add_to_stacks(user) if(new_item.get_amount() <= 0) // stack was moved into another one on the pile new_item = locate() in user.loc diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index ebc89cdca7a..5f9b7781f22 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -58,7 +58,6 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \ var/obj/item/stack/rods/V = W var/obj/item/stack/sheet/rglass/RG = new (user.loc) RG.add_fingerprint(user) - RG.add_to_stacks(user) V.use(1) var/obj/item/stack/sheet/glass/G = src src = null @@ -124,7 +123,6 @@ GLOBAL_LIST_INIT(pglass_recipes, list ( \ var/obj/item/stack/rods/V = W var/obj/item/stack/sheet/plasmarglass/RG = new (user.loc) RG.add_fingerprint(user) - RG.add_to_stacks(user) V.use(1) var/obj/item/stack/sheet/glass/G = src src = null diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index de842402ba9..4064bf63adb 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -19,7 +19,7 @@ var/global/list/datum/stack_recipe/sandstone_recipes = list ( \ null, \ new/datum/stack_recipe("Assistant Statue", /obj/structure/statue/sandstone/assistant, 5, one_per_turf = 1, on_floor = 1), \ null, \ - new/datum/stack_recipe("Breakdown into sand", /obj/item/ore/glass, 1, one_per_turf = 0, on_floor = 1), \ + new/datum/stack_recipe("Breakdown into sand", /obj/item/stack/ore/glass, 1, one_per_turf = 0, on_floor = 1), \ ) var/global/list/datum/stack_recipe/silver_recipes = list ( \ diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index b6b3021a08e..27ccab54202 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -14,15 +14,34 @@ var/singular_name var/amount = 1 var/to_transfer = 0 - var/max_amount //also see stack recipes initialisation, param "max_res_amount" must be equal to this max_amount + var/max_amount = 50 //also see stack recipes initialisation, param "max_res_amount" must be equal to this max_amount var/merge_type = null // This path and its children should merge with this stack, defaults to src.type -/obj/item/stack/New(var/loc, var/amt = null) +/obj/item/stack/New(loc, new_amount, merge = TRUE) ..() - if(amt != null) //Allow for stacks with the amount=0 - amount = amt + if(new_amount != null) + amount = new_amount + while(amount > max_amount) + amount -= max_amount + new type(loc, max_amount, FALSE) if(!merge_type) merge_type = type + if(merge && !(amount >= max_amount)) + for(var/obj/item/stack/S in loc) + if(S.merge_type == merge_type) + merge(S) + +/obj/item/stack/Crossed(obj/O) + if(amount >= max_amount || ismob(loc)) // Prevents unnecessary call. Also prevents merging stack automatically in a mob's inventory + return + if(istype(O, merge_type) && !O.throwing) + merge(O) + ..() + +/obj/item/stack/hitby(atom/movable/AM, skipcatch, hitpush) + if(istype(AM, merge_type) && !(amount >= max_amount)) + merge(AM) + ..() /obj/item/stack/Destroy() if(usr && usr.machine == src) @@ -35,6 +54,11 @@ to_chat(user, "There are [amount] [singular_name]\s in the stack.") else to_chat(user, "There are [amount] [name]\s in the stack.") + to_chat(user,"Alt-click to take a custom amount.") + +/obj/item/stack/proc/add(newamount) + amount += newamount + update_icon() /obj/item/stack/attack_self(mob/user) list_recipes(user) @@ -177,7 +201,6 @@ if(R.max_res_amount > 1) var/obj/item/stack/new_item = O new_item.amount = R.res_amount * multiplier - //new_item.add_to_stacks(usr) R.post_build(src, O) @@ -202,37 +225,23 @@ interact(usr) return -/obj/item/stack/proc/use(used) +/obj/item/stack/proc/use(used, check = TRUE) + if(check && zero_amount()) + return FALSE if(amount < used) - return 0 + return FALSE amount -= used - if(amount < 1) // Just in case a stack's amount ends up fractional somehow + if(amount < 1) if(isrobot(loc)) - var/mob/living/silicon/robot/R = loc //Horrifying cyborg snowflake code that allows stacks to GC and cyborgs not to horrendously break + var/mob/living/silicon/robot/R = loc if(locate(src) in R.module.modules) R.module.modules -= src - if(usr) - usr.unEquip(src, TRUE) // this has to be unEquip() over drop_item() or something similar because of cyborgs - qdel(src) + if(R) + R.unEquip(src, TRUE) + zero_amount() update_icon() return 1 -/obj/item/stack/proc/add_to_stacks(mob/usr) - var/obj/item/stack/oldsrc = src - src = null - for(var/obj/item/stack/item in usr.loc) - if(item == oldsrc) - continue - if(!istype(item, oldsrc.type)) - continue - if(item.amount >= item.max_amount) - continue - oldsrc.attackby(item, usr) - to_chat(usr, "You add new [item.singular_name] to the stack. It now contains [item.amount] [item.singular_name]\s.") - if(oldsrc.amount <= 0) - break - oldsrc.update_icon() - /obj/item/stack/proc/get_amount() return amount @@ -252,46 +261,71 @@ return F /obj/item/stack/attack_hand(mob/user) - if(user.is_in_inactive_hand(src)) - var/obj/item/stack/F = split(user, 1) - user.put_in_hands(F) + if(user.is_in_inactive_hand(src) && amount > 1) + change_stack(user, 1) if(src && usr.machine == src) spawn(0) interact(usr) else ..() +/obj/item/stack/AltClick(mob/living/user) + if(!istype(user) || user.incapacitated()) + to_chat(user, "You can't do that right now!") + return + if(!in_range(src, user) || issilicon(usr)) + return + if(amount < 1) + return + //get amount from user + var/min = 0 + var/max = get_amount() + var/stackmaterial = round(input(user,"How many sheets do you wish to take out of this stack? (Maximum[max])") as num) + if(stackmaterial == null || stackmaterial <= min || stackmaterial >= get_amount()) + return + change_stack(user,stackmaterial) + to_chat(user, "You take [stackmaterial] sheets out of the stack") + +/obj/item/stack/proc/change_stack(mob/user,amount) + var/obj/item/stack/F = new type(user, amount, FALSE) + . = F + F.copy_evidences(src) + user.put_in_hands(F) + add_fingerprint(user) + F.add_fingerprint(user) + use(amount) + zero_amount() + /obj/item/stack/attackby(obj/item/W, mob/user, params) - ..() if(istype(W, merge_type)) var/obj/item/stack/S = W - if(S.amount >= max_amount) - return 1 - - if(user.is_in_inactive_hand(src)) - var/desired = input("How much would you like to transfer from this stack?", "How much?", 1) as null|num - if(!desired) - return - desired = round(desired) - to_transfer = max(1,min(desired,S.max_amount-S.amount,src.amount)) - else - to_transfer = min(src.amount, S.max_amount-S.amount) - - S.amount += to_transfer - if(S && usr.machine == S) - spawn(0) - S.interact(usr) - use(to_transfer) - if(src && usr.machine == src) - spawn(0) - interact(usr) - S.update_icon() + merge(S) + to_chat(user, "Your [S.name] stack now contains [S.get_amount()] [S.singular_name]\s.") else - return ..() + ..() + +/obj/item/stack/proc/zero_amount() + if(amount < 1) + qdel(src) + return TRUE + return FALSE + +/obj/item/stack/proc/merge(obj/item/stack/S) //Merge src into S, as much as possible + if(QDELETED(S) || QDELETED(src) || S == src) //amusingly this can cause a stack to consume itself, let's not allow that. + return FALSE + var/transfer = get_amount() + transfer = min(transfer, S.max_amount - S.amount) + if(transfer <= 0) + return + if(pulledby) + pulledby.start_pulling(S) + S.copy_evidences(src) + S.add(transfer) + use(transfer) + zero_amount() /obj/item/stack/proc/copy_evidences(obj/item/stack/from) blood_DNA = from.blood_DNA fingerprints = from.fingerprints fingerprintshidden = from.fingerprintshidden fingerprintslast = from.fingerprintslast - //TODO bloody overlay diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index 3e7f2f6f8c9..090664e7f32 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -138,7 +138,7 @@ storage_slots = 50 max_combined_w_class = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * ore.w_class max_w_class = WEIGHT_CLASS_NORMAL - can_hold = list(/obj/item/ore) + can_hold = list(/obj/item/stack/ore) /obj/item/storage/bag/ore/cyborg name = "cyborg mining satchel" diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm index cd6fc31f820..e66bad8fbaf 100644 --- a/code/game/objects/items/weapons/storage/toolbox.dm +++ b/code/game/objects/items/weapons/storage/toolbox.dm @@ -60,12 +60,12 @@ new /obj/item/wirecutters(src) new /obj/item/t_scanner(src) new /obj/item/crowbar(src) - new /obj/item/stack/cable_coil(src, 30, pickedcolor) - new /obj/item/stack/cable_coil(src, 30, pickedcolor) + new /obj/item/stack/cable_coil(src, 30, paramcolor = pickedcolor) + new /obj/item/stack/cable_coil(src, 30, paramcolor = pickedcolor) if(prob(5)) new /obj/item/clothing/gloves/color/yellow(src) else - new /obj/item/stack/cable_coil(src, 30, pickedcolor) + new /obj/item/stack/cable_coil(src, 30, paramcolor = pickedcolor) /obj/item/storage/toolbox/syndicate name = "suspicious looking toolbox" @@ -108,7 +108,7 @@ new /obj/item/wrench(src) new /obj/item/weldingtool(src) new /obj/item/crowbar(src) - new /obj/item/stack/cable_coil(src, 30, pickedcolor) + new /obj/item/stack/cable_coil(src, 30, paramcolor = pickedcolor) new /obj/item/wirecutters(src) new /obj/item/multitool(src) diff --git a/code/game/turfs/simulated/floor/fancy_floor.dm b/code/game/turfs/simulated/floor/fancy_floor.dm index 0121daf3ee4..eacb56d2a17 100644 --- a/code/game/turfs/simulated/floor/fancy_floor.dm +++ b/code/game/turfs/simulated/floor/fancy_floor.dm @@ -73,8 +73,8 @@ if(..()) return if(istype(C, /obj/item/shovel)) - new /obj/item/ore/glass(src) - new /obj/item/ore/glass(src) //Make some sand if you shovel grass + new /obj/item/stack/ore/glass(src) + new /obj/item/stack/ore/glass(src) //Make some sand if you shovel grass to_chat(user, "You shovel the grass.") playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1) make_plating() @@ -92,8 +92,8 @@ if(..()) return if(istype(W, /obj/item/shovel)) - new /obj/item/ore/glass/basalt(src) - new /obj/item/ore/glass/basalt(src) + new /obj/item/stack/ore/glass/basalt(src) + new /obj/item/stack/ore/glass/basalt(src) user.visible_message("[user] digs up [src].", "You uproot [src].") playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1) make_plating() diff --git a/code/modules/awaymissions/mission_code/stationCollision.dm b/code/modules/awaymissions/mission_code/stationCollision.dm index e4b2cd0ddfe..17ece10d71a 100644 --- a/code/modules/awaymissions/mission_code/stationCollision.dm +++ b/code/modules/awaymissions/mission_code/stationCollision.dm @@ -152,7 +152,7 @@ var/sc_safecode5 = "[rand(0,9)]" new /obj/item/clothing/head/helmet/space/cult(src) new /obj/item/clothing/suit/space/cult(src) //new /obj/item/teleportation_scroll(src) - new /obj/item/ore/diamond(src) + new /obj/item/stack/ore/diamond(src) /* * Modified Nar-Sie diff --git a/code/modules/food_and_drinks/drinks/bottler/bottler_recipes.dm b/code/modules/food_and_drinks/drinks/bottler/bottler_recipes.dm index d960a944044..2717379ec4d 100644 --- a/code/modules/food_and_drinks/drinks/bottler/bottler_recipes.dm +++ b/code/modules/food_and_drinks/drinks/bottler/bottler_recipes.dm @@ -70,7 +70,7 @@ There is no excuse to do this wrong now that there is an example for you. --Fals /datum/bottler_recipe/Meteor_Malt name = "Meteor Malt" description = "Soft drinks have been detected on collision course with your tastebuds." - ingredients = list(/obj/item/ore, + ingredients = list(/obj/item/stack/ore, /obj/item/reagent_containers/food/snacks/grown/wheat, - /obj/item/ore) + /obj/item/stack/ore) result = "meteor_malt" diff --git a/code/modules/food_and_drinks/recipes/recipes_microwave.dm b/code/modules/food_and_drinks/recipes/recipes_microwave.dm index 70169476c9d..81fbe20e3d4 100644 --- a/code/modules/food_and_drinks/recipes/recipes_microwave.dm +++ b/code/modules/food_and_drinks/recipes/recipes_microwave.dm @@ -471,7 +471,7 @@ datum/recipe/microwave/slimesandwich /datum/recipe/microwave/clownstears reagents = list("water" = 10) items = list( - /obj/item/ore/bananium, + /obj/item/stack/ore/bananium, /obj/item/reagent_containers/food/snacks/grown/banana ) result = /obj/item/reagent_containers/food/snacks/clownstears diff --git a/code/modules/mining/abandonedcrates.dm b/code/modules/mining/abandonedcrates.dm index ae8e69db32c..a413c328870 100644 --- a/code/modules/mining/abandonedcrates.dm +++ b/code/modules/mining/abandonedcrates.dm @@ -36,8 +36,7 @@ if(11 to 15) new /obj/item/reagent_containers/glass/beaker/bluespace(src) if(16 to 20) - for(var/i in 1 to 10) - new /obj/item/ore/diamond(src) + new /obj/item/stack/ore/diamond(src, 10) if(21 to 25) for(var/i in 1 to 5) new /obj/item/poster/random_contraband(src) @@ -83,8 +82,7 @@ var /newitem = pick(subtypesof(/obj/item/stock_parts) - /obj/item/stock_parts/subspace) new newitem(src) if(69 to 70) - for(var/i in 1 to 5) - new /obj/item/ore/bluespace_crystal(src) + new /obj/item/stack/ore/bluespace_crystal(src, 5) if(71 to 72) new /obj/item/pickaxe/drill(src) if(73 to 74) @@ -184,7 +182,7 @@ if(attempts == 1) to_chat(user, "* Anti-Tamper Bomb will activate on next failed access attempt.") else - to_chat(user, "* Anti-Tamper Bomb will activate after [src.attempts] failed access attempts.") + to_chat(user, "* Anti-Tamper Bomb will activate after [attempts] failed access attempts.") if(lastattempt != null) var/bulls = 0 var/cows = 0 diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm index 3d3c67701e8..61e1f2efeed 100644 --- a/code/modules/mining/equipment_locker.dm +++ b/code/modules/mining/equipment_locker.dm @@ -70,12 +70,12 @@ point_upgrade = point_upgrade_temp sheet_per_ore = sheet_per_ore_temp -/obj/machinery/mineral/ore_redemption/proc/smelt_ore(obj/item/ore/O) +/obj/machinery/mineral/ore_redemption/proc/smelt_ore(obj/item/stack/ore/O) ore_buffer -= O if(O && O.refined_type) - points += O.points * point_upgrade + points += O.points * point_upgrade * O.amount GET_COMPONENT(materials, /datum/component/material_container) var/material_amount = materials.get_item_material_amount(O) @@ -83,7 +83,7 @@ if(!material_amount) qdel(O) //no materials, incinerate it - else if(!materials.has_space(material_amount * sheet_per_ore)) //if there is no space, eject it + else if(!materials.has_space(material_amount * sheet_per_ore * O.amount)) //if there is no space, eject it unload_mineral(O) else @@ -157,7 +157,7 @@ if(OB) input = OB - for(var/obj/item/ore/O in input) + for(var/obj/item/stack/ore/O in input) if(QDELETED(O)) continue ore_buffer |= O diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index 800e21b1d42..3fc2980ddc2 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -96,7 +96,7 @@ /obj/machinery/mineral/processing_unit/process() var/turf/T = get_step(src, input_dir) if(T) - for(var/obj/item/ore/O in T) + for(var/obj/item/stack/ore/O in T) process_ore(O) CHECK_TICK if(on) @@ -111,7 +111,7 @@ CONSOLE.updateUsrDialog() -/obj/machinery/mineral/processing_unit/proc/process_ore(obj/item/ore/O) +/obj/machinery/mineral/processing_unit/proc/process_ore(obj/item/stack/ore/O) GET_COMPONENT(materials, /datum/component/material_container) var/material_amount = materials.get_item_material_amount(O) if(!materials.has_space(material_amount)) diff --git a/code/modules/mining/machine_unloading.dm b/code/modules/mining/machine_unloading.dm index 8f604e522e4..78a63bc6c2d 100644 --- a/code/modules/mining/machine_unloading.dm +++ b/code/modules/mining/machine_unloading.dm @@ -16,7 +16,7 @@ if(T) var/limit for(var/obj/structure/ore_box/B in T) - for(var/obj/item/ore/O in B) + for(var/obj/item/stack/ore/O in B) B.contents -= O unload_mineral(O) limit++ diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 865f02a7eb8..881130098e4 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -187,7 +187,7 @@ var/global/list/rockTurfEdgeCache = list( /turf/simulated/mineral/iron name = "iron deposit" icon_state = "rock_Iron" - mineralType = /obj/item/ore/iron + mineralType = /obj/item/stack/ore/iron mineralName = "Iron" spreadChance = 20 spread = 1 @@ -195,7 +195,7 @@ var/global/list/rockTurfEdgeCache = list( /turf/simulated/mineral/uranium name = "uranium deposit" - mineralType = /obj/item/ore/uranium + mineralType = /obj/item/stack/ore/uranium mineralName = "Uranium" spreadChance = 5 spread = 1 @@ -204,7 +204,7 @@ var/global/list/rockTurfEdgeCache = list( /turf/simulated/mineral/diamond name = "diamond deposit" - mineralType = /obj/item/ore/diamond + mineralType = /obj/item/stack/ore/diamond mineralName = "Diamond" spreadChance = 0 spread = 1 @@ -213,7 +213,7 @@ var/global/list/rockTurfEdgeCache = list( /turf/simulated/mineral/gold name = "gold deposit" - mineralType = /obj/item/ore/gold + mineralType = /obj/item/stack/ore/gold mineralName = "Gold" spreadChance = 5 spread = 1 @@ -222,7 +222,7 @@ var/global/list/rockTurfEdgeCache = list( /turf/simulated/mineral/silver name = "silver deposit" - mineralType = /obj/item/ore/silver + mineralType = /obj/item/stack/ore/silver mineralName = "Silver" spreadChance = 5 spread = 1 @@ -231,7 +231,7 @@ var/global/list/rockTurfEdgeCache = list( /turf/simulated/mineral/titanium name = "titanium deposit" - mineralType = /obj/item/ore/titanium + mineralType = /obj/item/stack/ore/titanium spreadChance = 5 spread = 1 hidden = 1 @@ -240,7 +240,7 @@ var/global/list/rockTurfEdgeCache = list( /turf/simulated/mineral/plasma name = "plasma deposit" icon_state = "rock_Plasma" - mineralType = /obj/item/ore/plasma + mineralType = /obj/item/stack/ore/plasma mineralName = "Plasma" spreadChance = 8 spread = 1 @@ -250,7 +250,7 @@ var/global/list/rockTurfEdgeCache = list( /turf/simulated/mineral/clown name = "bananium deposit" icon_state = "rock_Clown" - mineralType = /obj/item/ore/bananium + mineralType = /obj/item/stack/ore/bananium mineralName = "Bananium" mineralAmt = 3 spreadChance = 0 @@ -260,7 +260,7 @@ var/global/list/rockTurfEdgeCache = list( /turf/simulated/mineral/mime name = "tranquillite deposit" icon_state = "rock_Mime" - mineralType = /obj/item/ore/tranquillite + mineralType = /obj/item/stack/ore/tranquillite mineralAmt = 3 spreadChance = 0 spread = 0 @@ -269,7 +269,7 @@ var/global/list/rockTurfEdgeCache = list( /turf/simulated/mineral/bscrystal name = "bluespace crystal deposit" icon_state = "rock_BScrystal" - mineralType = /obj/item/ore/bluespace_crystal + mineralType = /obj/item/stack/ore/bluespace_crystal mineralName = "Bluespace crystal" mineralAmt = 1 spreadChance = 0 @@ -519,7 +519,7 @@ var/global/list/rockTurfEdgeCache = list( if(istype(W,/obj/item/storage/bag/ore)) var/obj/item/storage/bag/ore/S = W if(S.collection_mode == 1) - for(var/obj/item/ore/O in src.contents) + for(var/obj/item/stack/ore/O in src.contents) O.attackby(W,user) return @@ -532,11 +532,11 @@ var/global/list/rockTurfEdgeCache = list( /turf/simulated/floor/plating/airless/asteroid/proc/gets_dug() if(dug) return - new/obj/item/ore/glass(src) - new/obj/item/ore/glass(src) - new/obj/item/ore/glass(src) - new/obj/item/ore/glass(src) - new/obj/item/ore/glass(src) + new/obj/item/stack/ore/glass(src) + new/obj/item/stack/ore/glass(src) + new/obj/item/stack/ore/glass(src) + new/obj/item/stack/ore/glass(src) + new/obj/item/stack/ore/glass(src) dug = 1 playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1) //FUCK YO RUSTLE I GOT'S THE DIGS SOUND HERE icon_plating = "asteroid_dug" diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm index 490d8c8fe0d..30e093633f5 100644 --- a/code/modules/mining/minebot.dm +++ b/code/modules/mining/minebot.dm @@ -36,10 +36,10 @@ projectiletype = /obj/item/projectile/kinetic projectilesound = 'sound/weapons/Gunshot4.ogg' speak_emote = list("states") - wanted_objects = list(/obj/item/ore/diamond, /obj/item/ore/gold, /obj/item/ore/silver, - /obj/item/ore/plasma, /obj/item/ore/uranium, /obj/item/ore/iron, - /obj/item/ore/bananium, /obj/item/ore/tranquillite, /obj/item/ore/glass, - /obj/item/ore/titanium) + wanted_objects = list(/obj/item/stack/ore/diamond, /obj/item/stack/ore/gold, /obj/item/stack/ore/silver, + /obj/item/stack/ore/plasma, /obj/item/stack/ore/uranium, /obj/item/stack/ore/iron, + /obj/item/stack/ore/bananium, /obj/item/stack/ore/tranquillite, /obj/item/stack/ore/glass, + /obj/item/stack/ore/titanium) healable = 0 var/mode = MINEDRONE_COLLECT var/light_on = 0 @@ -97,7 +97,7 @@ if(!.) return FALSE visible_message("[src] is destroyed!") - new /obj/effect/decal/cleanable/blood/gibs/robot(src.loc) + new /obj/effect/decal/cleanable/blood/gibs/robot(loc) DropOre(0) qdel(src) @@ -135,20 +135,14 @@ to_chat(src, "You are set to attack mode. You can now attack from range.") /mob/living/simple_animal/hostile/mining_drone/AttackingTarget() - if(istype(target, /obj/item/ore) && mode == MINEDRONE_COLLECT) + if(istype(target, /obj/item/stack/ore) && mode == MINEDRONE_COLLECT) CollectOre() return ..() /mob/living/simple_animal/hostile/mining_drone/proc/CollectOre() - var/obj/item/ore/O - for(O in src.loc) + for(var/obj/item/stack/ore/O in range(1, src)) O.forceMove(src) - for(var/dir in alldirs) - var/turf/T = get_step(src,dir) - for(O in T) - O.forceMove(src) - return /mob/living/simple_animal/hostile/mining_drone/proc/DropOre(message = 1) if(!contents.len) @@ -157,7 +151,7 @@ return if(message) to_chat(src, "You dump your stored ore.") - for(var/obj/item/ore/O in contents) + for(var/obj/item/stack/ore/O in contents) contents -= O O.forceMove(loc) return diff --git a/code/modules/mining/ore.dm b/code/modules/mining/ore.dm index b1ae6b07e6a..747efd4022e 100644 --- a/code/modules/mining/ore.dm +++ b/code/modules/mining/ore.dm @@ -1,22 +1,37 @@ -/obj/item/ore +#define GIBTONITE_QUALITY_LOW 1 +#define GIBTONITE_QUALITY_MEDIUM 2 +#define GIBTONITE_QUALITY_HIGH 3 +#define PROBABILITY_REFINE_BY_FIRE 50 +#define ORESTACK_OVERLAYS_MAX 10 +/**********************Mineral ores**************************/ + +/obj/item/stack/ore name = "rock" icon = 'icons/obj/mining.dmi' icon_state = "ore" + max_amount = 50 + singular_name = "ore chunk" var/points = 0 //How many points this ore gets you from the ore redemption machine var/refined_type = null //What this ore defaults to being refined into - var/datum/geosample/geologic_data -/obj/item/ore/attackby(obj/item/I as obj, mob/user as mob, params) +/obj/item/stack/ore/New() + ..() + pixel_x = rand(0,16)-8 + pixel_y = rand(0,8)-8 + if(is_mining_level(src.z)) + score_oremined++ //When ore spawns, increment score. Only include ore spawned on mining asteroid (No Clown Planet) + +/obj/item/stack/ore/attackby(obj/item/I, mob/user, params) + ..() if(istype(I, /obj/item/weldingtool)) var/obj/item/weldingtool/W = I if(W.remove_fuel(15) && refined_type) - new refined_type(get_turf(src.loc)) + new refined_type(get_turf(src.loc), amount) qdel(src) else if(W.isOn()) to_chat(user, "Not enough fuel to smelt [src].") - ..() -/obj/item/ore/Crossed(AM as mob|obj) +/obj/item/stack/ore/Crossed(atom/movable/AM) var/obj/item/storage/bag/ore/OB var/turf/simulated/floor/F = get_turf(src) if(loc != F) @@ -37,64 +52,88 @@ F.attackby(OB, AM) return ..() +/obj/item/stack/ore/fire_act() + ..() + if(isnull(refined_type)) + return + else + var/amountrefined = round((PROBABILITY_REFINE_BY_FIRE/100) * amount, 1) + if(amountrefined < 1) + qdel(src) + else + new refined_type(get_turf(src.loc), amountrefined) + qdel(src) - -/obj/item/ore/uranium +/obj/item/stack/ore/uranium name = "uranium ore" icon_state = "Uranium ore" origin_tech = "materials=5" + singular_name = "uranium ore chunk" points = 30 refined_type = /obj/item/stack/sheet/mineral/uranium materials = list(MAT_URANIUM=MINERAL_MATERIAL_AMOUNT) -/obj/item/ore/iron +/obj/item/stack/ore/iron name = "iron ore" icon_state = "Iron ore" origin_tech = "materials=1" + singular_name = "iron ore chunk" points = 1 refined_type = /obj/item/stack/sheet/metal materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT) -/obj/item/ore/glass +/obj/item/stack/ore/glass name = "sand pile" icon_state = "Glass ore" origin_tech = "materials=1" + singular_name = "sand pile" points = 1 refined_type = /obj/item/stack/sheet/glass materials = list(MAT_GLASS=MINERAL_MATERIAL_AMOUNT) -/obj/item/ore/glass/basalt +GLOBAL_LIST_INIT(sand_recipes, list(\ + new /datum/stack_recipe("sandstone", /obj/item/stack/sheet/mineral/sandstone, 1, 1, 50)\ + )) + +/obj/item/stack/ore/glass/Initialize(mapload, new_amount, merge = TRUE) + recipes = GLOB.sand_recipes + . = ..() + +/obj/item/stack/ore/glass/throw_impact(atom/hit_atom) + if(..() || !ishuman(hit_atom)) + return + var/mob/living/carbon/human/C = hit_atom + if(C.head && C.head.flags_cover & HEADCOVERSEYES) + visible_message("[C]'s headgear blocks the sand!") + return + if(C.wear_mask && C.wear_mask.flags_cover & MASKCOVERSEYES) + visible_message("[C]'s mask blocks the sand!") + return + if(C.glasses && C.glasses.flags_cover & GLASSESCOVERSEYES) + visible_message("[C]'s glasses block the sand!") + return + C.EyeBlurry(6) + C.adjustStaminaLoss(15)//the pain from your eyes burning does stamina damage + C.AdjustConfused(5) + to_chat(C, "\The [src] gets into your eyes! The pain, it burns!") + qdel(src) + +/obj/item/stack/ore/glass/basalt name = "volcanic ash" icon_state = "volcanic_sand" + icon_state = "volcanic_sand" + singular_name = "volcanic ash pile" -/obj/item/ore/glass/attack_self(mob/living/user as mob) - to_chat(user, "You use the sand to make sandstone.") - var/sandAmt = 1 - for(var/obj/item/ore/glass/G in user.loc) // The sand on the floor - sandAmt += 1 - qdel(G) - while(sandAmt > 0) - var/obj/item/stack/sheet/mineral/sandstone/SS = new /obj/item/stack/sheet/mineral/sandstone(user.loc) - if(sandAmt >= SS.max_amount) - SS.amount = SS.max_amount - else - SS.amount = sandAmt - for(var/obj/item/stack/sheet/mineral/sandstone/SA in user.loc) - if(SA != SS && SA.amount < SA.max_amount) - SA.attackby(SS, user) //we try to transfer all old unfinished stacks to the new stack we created. - sandAmt -= SS.max_amount - qdel(src) - return - -/obj/item/ore/plasma +/obj/item/stack/ore/plasma name = "plasma ore" icon_state = "Plasma ore" origin_tech = "plasmatech=2;materials=2" + singular_name = "plasma ore chunk" points = 15 refined_type = /obj/item/stack/sheet/mineral/plasma materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT) -/obj/item/ore/plasma/attackby(obj/item/I as obj, mob/user as mob, params) +/obj/item/stack/ore/plasma/attackby(obj/item/I as obj, mob/user as mob, params) if(istype(I, /obj/item/weldingtool)) var/obj/item/weldingtool/W = I if(W.welding) @@ -102,57 +141,64 @@ else ..() -/obj/item/ore/silver +/obj/item/stack/ore/silver name = "silver ore" icon_state = "Silver ore" origin_tech = "materials=3" + singular_name = "silver ore chunk" points = 16 refined_type = /obj/item/stack/sheet/mineral/silver materials = list(MAT_SILVER=MINERAL_MATERIAL_AMOUNT) -/obj/item/ore/gold +/obj/item/stack/ore/gold name = "gold ore" icon_state = "Gold ore" origin_tech = "materials=4" + singular_name = "gold ore chunk" points = 18 refined_type = /obj/item/stack/sheet/mineral/gold materials = list(MAT_GOLD=MINERAL_MATERIAL_AMOUNT) -/obj/item/ore/diamond +/obj/item/stack/ore/diamond name = "diamond ore" icon_state = "Diamond ore" origin_tech = "materials=6" + singular_name = "diamond ore chunk" points = 50 refined_type = /obj/item/stack/sheet/mineral/diamond materials = list(MAT_DIAMOND=MINERAL_MATERIAL_AMOUNT) -/obj/item/ore/bananium +/obj/item/stack/ore/bananium name = "bananium ore" icon_state = "Clown ore" origin_tech = "materials=4" + singular_name = "bananium ore chunk" points = 60 refined_type = /obj/item/stack/sheet/mineral/bananium materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT) -/obj/item/ore/tranquillite +/obj/item/stack/ore/tranquillite name = "tranquillite ore" icon_state = "Mime ore" origin_tech = "materials=4" + singular_name = "transquillite ore chunk" points = 60 refined_type = /obj/item/stack/sheet/mineral/tranquillite materials = list(MAT_TRANQUILLITE=MINERAL_MATERIAL_AMOUNT) -/obj/item/ore/titanium +/obj/item/stack/ore/titanium name = "titanium ore" icon_state = "Titanium ore" + singular_name = "titanium ore chunk" points = 50 materials = list(MAT_TITANIUM=MINERAL_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/mineral/titanium -/obj/item/ore/slag +/obj/item/stack/ore/slag name = "slag" desc = "Completely useless" icon_state = "slag" + singular_name = "slag chunk" /obj/item/twohanded/required/gibtonite name = "gibtonite ore" @@ -165,7 +211,7 @@ anchored = 1 //Forces people to carry it by hand, no pulling! var/primed = 0 var/det_time = 100 - var/quality = 1 //How pure this gibtonite is, determines the explosion produced by it and is derived from the det_time of the rock wall it was taken from, higher value = better + var/quality = GIBTONITE_QUALITY_LOW //How pure this gibtonite is, determines the explosion produced by it and is derived from the det_time of the rock wall it was taken from, higher value = better var/attacher = "UNKNOWN" var/datum/wires/explosive/gibtonite/wires @@ -195,7 +241,7 @@ primed = 0 user.visible_message("The chain reaction was stopped! ...The ore's quality looks diminished.", "You stopped the chain reaction. ...The ore's quality looks diminished.") icon_state = "Gibtonite ore" - quality = 1 + quality = GIBTONITE_QUALITY_LOW return ..() @@ -222,40 +268,40 @@ primed = 1 icon_state = "Gibtonite active" var/turf/bombturf = get_turf(src) - var/area/A = get_area(bombturf) var/notify_admins = 0 if(z != 5)//Only annoy the admins ingame if we're triggered off the mining zlevel notify_admins = 1 if(notify_admins) if(triggered_by == 1) - message_admins("An explosion has triggered a [name] to detonate at [A.name] (JMP).") + message_admins("An explosion has triggered a [name] to detonate at [ADMIN_COORDJMP(bombturf)].") else if(triggered_by == 2) - message_admins("A signal has triggered a [name] to detonate at [A.name] (JMP). Igniter attacher: [key_name_admin(attacher)]") + message_admins("A signal has triggered a [name] to detonate at [ADMIN_COORDJMP(bombturf)]. Igniter attacher: [key_name_admin(attacher)]") else - message_admins("[key_name_admin(user)] has triggered a [name] to detonate at [A.name] (JMP).") + message_admins("[key_name_admin(user)] has triggered a [name] to detonate at [ADMIN_COORDJMP(bombturf)].") if(triggered_by == 1) - log_game("An explosion has primed a [name] for detonation at [A.name]([bombturf.x],[bombturf.y],[bombturf.z])") + log_game("An explosion has primed a [name] for detonation at [AREACOORD(bombturf)]") else if(triggered_by == 2) - log_game("A signal has primed a [name] for detonation at [A.name]([bombturf.x],[bombturf.y],[bombturf.z]). Igniter attacher: [key_name(attacher)].") + log_game("A signal has primed a [name] for detonation at [AREACOORD(bombturf)]). Igniter attacher: [key_name(attacher)].") else user.visible_message("[user] strikes \the [src], causing a chain reaction!", "You strike \the [src], causing a chain reaction.") - log_game("[key_name(user)] has primed a [name] for detonation at [A.name]([bombturf.x],[bombturf.y],[bombturf.z])") + log_game("[key_name(user)] has primed a [name] for detonation at [AREACOORD(bombturf)])") spawn(det_time) if(primed) - if(quality == 3) + if(quality == GIBTONITE_QUALITY_HIGH) explosion(src.loc,2,4,9,adminlog = notify_admins) - if(quality == 2) + if(quality == GIBTONITE_QUALITY_MEDIUM) explosion(src.loc,1,2,5,adminlog = notify_admins) - if(quality == 1) + if(quality == GIBTONITE_QUALITY_LOW) explosion(src.loc,-1,1,3,adminlog = notify_admins) qdel(src) -/obj/item/ore/New() - pixel_x = rand(0,16)-8 - pixel_y = rand(0,8)-8 - if(is_mining_level(src.z)) - score_oremined++ //When ore spawns, increment score. Only include ore spawned on mining asteroid (No Clown Planet) -/obj/item/ore/ex_act() - return \ No newline at end of file +/obj/item/stack/ore/ex_act() + return + +#undef GIBTONITE_QUALITY_LOW +#undef GIBTONITE_QUALITY_MEDIUM +#undef GIBTONITE_QUALITY_HIGH +#undef PROBABILITY_REFINE_BY_FIRE +#undef ORESTACK_OVERLAYS_MAX diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm index 33334d49382..5810bcf3584 100644 --- a/code/modules/mining/satchel_ore_boxdm.dm +++ b/code/modules/mining/satchel_ore_boxdm.dm @@ -13,78 +13,40 @@ if(istype(W, /obj/item/t_scanner/adv_mining_scanner)) attack_hand(user) return - if(istype(W, /obj/item/ore)) + else if(istype(W, /obj/item/stack/ore)) if(!user.drop_item()) return W.forceMove(src) - if(istype(W, /obj/item/storage)) + else if(istype(W, /obj/item/storage)) var/obj/item/storage/S = W S.hide_from(usr) - for(var/obj/item/ore/O in S.contents) + for(var/obj/item/stack/ore/O in S.contents) S.remove_from_storage(O, src) //This will move the item to this item's contents CHECK_TICK to_chat(user, "You empty the satchel into the box.") + else if(istype(W, /obj/item/crowbar)) + playsound(src, W.usesound, 50, 1) + var/obj/item/crowbar/C = W + if(do_after(user, 50*C.toolspeed, target = src)) + user.visible_message("[user] pries \the [src] apart.", "You pry apart \the [src].", "You hear splitting wood.") + deconstruct(TRUE, user) /obj/structure/ore_box/attack_hand(mob/user) - var/amt_gold = 0 - var/amt_silver = 0 - var/amt_diamond = 0 - var/amt_glass = 0 - var/amt_iron = 0 - var/amt_plasma = 0 - var/amt_uranium = 0 - var/amt_titanium = 0 - var/amt_clown = 0 - var/amt_mime = 0 - var/amt_bluespace = 0 + if(Adjacent(user)) + show_contents(user) - for(var/obj/item/ore/C in contents) - if(istype(C,/obj/item/ore/diamond)) - amt_diamond++ - if(istype(C,/obj/item/ore/glass)) - amt_glass++ - if(istype(C,/obj/item/ore/plasma)) - amt_plasma++ - if(istype(C,/obj/item/ore/iron)) - amt_iron++ - if(istype(C,/obj/item/ore/silver)) - amt_silver++ - if(istype(C,/obj/item/ore/gold)) - amt_gold++ - if(istype(C,/obj/item/ore/uranium)) - amt_uranium++ - if(istype(C,/obj/item/ore/bananium)) - amt_clown++ - if(istype(C,/obj/item/ore/tranquillite)) - amt_mime++ - if(istype(C, /obj/item/ore/titanium)) - amt_titanium++ - if(istype(C,/obj/item/ore/bluespace_crystal)) - amt_bluespace++ +/obj/structure/ore_box/attack_robot(mob/user) + if(Adjacent(user)) + show_contents(user) +/obj/structure/ore_box/proc/show_contents(mob/user) var/dat = text("The contents of the ore box reveal...
") - if(amt_gold) - dat += text("Gold ore: [amt_gold]
") - if(amt_silver) - dat += text("Silver ore: [amt_silver]
") - if(amt_iron) - dat += text("Metal ore: [amt_iron]
") - if(amt_glass) - dat += text("Sand: [amt_glass]
") - if(amt_diamond) - dat += text("Diamond ore: [amt_diamond]
") - if(amt_plasma) - dat += text("Plasma ore: [amt_plasma]
") - if(amt_uranium) - dat += text("Uranium ore: [amt_uranium]
") - if(amt_titanium) - dat += text("Titanium ore: [amt_titanium]
") - if(amt_clown) - dat += text("Bananium ore: [amt_clown]
") - if(amt_mime) - dat += text("Tranquillite ore: [amt_mime]
") - if(amt_bluespace) - dat += text("Bluespace crystals: [amt_bluespace]
") + var/list/assembled = list() + for(var/obj/item/stack/ore/O in src) + assembled[O.type] += O.amount + for(var/type in assembled) + var/obj/item/stack/ore/O = type + dat += "[initial(O.name)] - [assembled[type]]
" dat += text("

Empty box") var/datum/browser/popup = new(user, "orebox", name, 400, 400) @@ -97,10 +59,7 @@ usr.set_machine(src) add_fingerprint(usr) if(href_list["removeall"]) - for(var/obj/item/ore/O in contents) - contents -= O - O.forceMove(loc) - CHECK_TICK + dump_box_contents() to_chat(usr, "You empty the box.") updateUsrDialog() @@ -108,20 +67,31 @@ obj/structure/ore_box/ex_act(severity, target) if(prob(100 / severity) && severity < 3) qdel(src) //nothing but ores can get inside unless its a bug and ores just return nothing on ex_act, not point in calling it on them +/obj/structure/ore_box/deconstruct(disassembled = TRUE, mob/user) + var/obj/item/stack/sheet/wood/W = new (loc, 4) + if(user) + W.add_fingerprint(user) + dump_box_contents() + qdel(src) + +/obj/structure/ore_box/proc/dump_box_contents() + for(var/obj/item/stack/ore/O in src) + if(QDELETED(O)) + continue + if(QDELETED(src)) + break + O.forceMove(loc) + CHECK_TICK /obj/structure/ore_box/verb/empty_box() set name = "Empty Ore Box" set category = "Object" set src in view(1) - if(!ishuman(usr)) //Only living, intelligent creatures with hands can empty ore boxes. - to_chat(usr, "You are physically incapable of emptying the ore box.") - return - if(usr.incapacitated()) return - if(!Adjacent(usr)) //You can only empty the box if you can physically reach it + if(!Adjacent(usr)) to_chat(usr, "You cannot reach the ore box.") return @@ -131,8 +101,5 @@ obj/structure/ore_box/ex_act(severity, target) to_chat(usr, "The ore box is empty.") return - for(var/obj/item/ore/O in contents) - contents -= O - O.forceMove(loc) - CHECK_TICK - to_chat(usr, "You empty the ore box.") \ No newline at end of file + dump_box_contents() + to_chat(usr, "You empty the ore box.") diff --git a/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm index 88d566ad692..124a8d90fae 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm @@ -29,7 +29,7 @@ /obj/item/tank, /obj/item/circuitboard, /obj/item/stack/tile/light, - /obj/item/ore/bluespace_crystal + /obj/item/stack/ore/bluespace_crystal ) //Item currently being held. diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 01217f0f3b9..e5bb62ecd9b 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -47,7 +47,7 @@ Difficulty: Very Hard medal_type = MEDAL_PREFIX score_type = COLOSSUS_SCORE loot = list(/obj/machinery/anomalous_crystal/random, /obj/item/organ/internal/vocal_cords/colossus) - butcher_results = list(/obj/item/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/animalhide/ashdrake = 10, /obj/item/stack/sheet/bone = 30) + butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/animalhide/ashdrake = 10, /obj/item/stack/sheet/bone = 30) deathmessage = "disintegrates, leaving a glowing core in its wake." death_sound = 'sound/misc/demon_dies.ogg' diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm index 6027070dfc9..82e4af1862f 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm @@ -45,7 +45,7 @@ Difficulty: Medium ranged = 1 pixel_x = -16 loot = list(/obj/structure/closet/crate/necropolis/dragon) - butcher_results = list(/obj/item/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/animalhide/ashdrake = 10, /obj/item/stack/sheet/bone = 30) + butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/animalhide/ashdrake = 10, /obj/item/stack/sheet/bone = 30) var/swooping = 0 var/swoop_cooldown = 0 medal_type = MEDAL_PREFIX diff --git a/code/modules/mob/living/simple_animal/hostile/mining/goldgrub.dm b/code/modules/mob/living/simple_animal/hostile/mining/goldgrub.dm index 0c54b414e72..cd73868a9e7 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining/goldgrub.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining/goldgrub.dm @@ -24,8 +24,8 @@ throw_message = "sinks in slowly, before being pushed out of " status_flags = CANPUSH search_objects = 1 - wanted_objects = list(/obj/item/ore/diamond, /obj/item/ore/gold, /obj/item/ore/silver, - /obj/item/ore/uranium) + wanted_objects = list(/obj/item/stack/ore/diamond, /obj/item/stack/ore/gold, /obj/item/stack/ore/silver, + /obj/item/stack/ore/uranium) var/chase_time = 100 var/will_burrow = TRUE @@ -34,17 +34,17 @@ ..() var/i = rand(1,3) while(i) - loot += pick(/obj/item/ore/silver, /obj/item/ore/gold, /obj/item/ore/uranium, /obj/item/ore/diamond) + loot += pick(/obj/item/stack/ore/silver, /obj/item/stack/ore/gold, /obj/item/stack/ore/uranium, /obj/item/stack/ore/diamond) i-- /mob/living/simple_animal/hostile/asteroid/goldgrub/GiveTarget(new_target) target = new_target if(target != null) - if(istype(target, /obj/item/ore) && loot.len < 10) - visible_message("The [src.name] looks at [target.name] with hungry eyes.") + if(istype(target, /obj/item/stack/ore) && loot.len < 10) + visible_message("The [name] looks at [target.name] with hungry eyes.") else if(isliving(target)) Aggro() - visible_message("The [src.name] tries to flee from [target.name]!") + visible_message("The [name] tries to flee from [target.name]!") retreat_distance = 10 minimum_distance = 10 if(will_burrow) @@ -52,18 +52,21 @@ Burrow() /mob/living/simple_animal/hostile/asteroid/goldgrub/AttackingTarget() - if(istype(target, /obj/item/ore)) + if(istype(target, /obj/item/stack/ore)) EatOre(target) return ..() /mob/living/simple_animal/hostile/asteroid/goldgrub/proc/EatOre(var/atom/targeted_ore) - for(var/obj/item/ore/O in targeted_ore.loc) + for(var/obj/item/stack/ore/O in get_turf(targeted_ore)) if(loot.len < 10) - loot += O.type - qdel(O) + var/using = min(10 - loot.len, O.amount) + for(var/i in 1 to using) + loot += O.type + O.use(using) visible_message("The ore was swallowed whole!") + /mob/living/simple_animal/hostile/asteroid/goldgrub/proc/Burrow()//Begin the chase to kill the goldgrub in time if(!stat) visible_message("The [src.name] buries into the ground, vanishing from sight!") @@ -75,4 +78,4 @@ /mob/living/simple_animal/hostile/asteroid/goldgrub/adjustHealth(damage) idle_vision_range = 9 - . = ..() \ No newline at end of file + . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm index 2edfb7cea5d..39799d6e493 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm @@ -77,8 +77,8 @@ aggro_vision_range = 9 idle_vision_range = 2 turns_per_move = 5 - loot = list(/obj/item/ore/diamond{layer = 4.1}, - /obj/item/ore/diamond{layer = 4.1}) + loot = list(/obj/item/stack/ore/diamond{layer = 4.1}, + /obj/item/stack/ore/diamond{layer = 4.1}) /obj/item/projectile/temp/basilisk name = "freezing blast" diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index ed1458c1cae..211d0f05097 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -134,9 +134,9 @@ By design, d1 is the smallest direction and d2 is the highest return if(src.d1) // 0-X cables are 1 unit, X-X cables are 2 units long - new/obj/item/stack/cable_coil(T, 2, color) + new/obj/item/stack/cable_coil(T, 2, paramcolor = color) else - new/obj/item/stack/cable_coil(T, 1, color) + new/obj/item/stack/cable_coil(T, 1, paramcolor = color) for(var/mob/O in viewers(src, null)) O.show_message("[user] cuts the cable.", 1) @@ -209,12 +209,12 @@ By design, d1 is the smallest direction and d2 is the highest qdel(src) // qdel if(2.0) if(prob(50)) - new/obj/item/stack/cable_coil(get_turf(src), src.d1 ? 2 : 1, color) + new/obj/item/stack/cable_coil(get_turf(src), src.d1 ? 2 : 1, paramcolor = color) qdel(src) // qdel if(3.0) if(prob(25)) - new/obj/item/stack/cable_coil(get_turf(src), src.d1 ? 2 : 1, color) + new/obj/item/stack/cable_coil(get_turf(src), src.d1 ? 2 : 1, paramcolor = color) qdel(src) // qdel return @@ -508,7 +508,7 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list( user.visible_message("[user] is strangling [user.p_them()]self with the [name]! It looks like [user.p_theyre()] trying to commit suicide.") return(OXYLOSS) -/obj/item/stack/cable_coil/New(loc, length = MAXCOIL, var/paramcolor = null) +/obj/item/stack/cable_coil/New(loc, length = MAXCOIL, paramcolor = null) ..() amount = length if(paramcolor) @@ -694,7 +694,7 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list( if(C.shock(user, 50)) if(prob(50)) //fail - new /obj/item/stack/cable_coil(get_turf(C), 1, C.color) + new /obj/item/stack/cable_coil(get_turf(C), 1, paramcolor = C.color) qdel(C) // qdel return C @@ -777,7 +777,7 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list( if(C.shock(user, 50)) if(prob(50)) //fail - new/obj/item/stack/cable_coil(get_turf(C), 2, C.color) + new/obj/item/stack/cable_coil(get_turf(C), 2, paramcolor = C.color) qdel(C) // qdel return diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 38b9d9220d5..d978e39a7f0 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -66,7 +66,7 @@ src.icon_state = "tube-construct-stage1" if("bulb") src.icon_state = "bulb-construct-stage1" - new /obj/item/stack/cable_coil(get_turf(src.loc), 1, COLOR_RED) + new /obj/item/stack/cable_coil(get_turf(src.loc), 1, paramcolor = COLOR_RED) user.visible_message("[user.name] removes the wiring from [src].", \ "You remove the wiring from [src].", "You hear a noise.") playsound(loc, W.usesound, 100, 1) diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index ccb28890786..f0816022b64 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -160,8 +160,9 @@ S.use(1) power_supply.give(1000) to_chat(user, "You insert [A] in [src], recharging it.") - else if(istype(A, /obj/item/ore/plasma)) - qdel(A) + else if(istype(A, /obj/item/stack/ore/plasma)) + var/obj/item/stack/ore/S = A + S.use(1) power_supply.give(500) to_chat(user, "You insert [A] in [src], recharging it.") else diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm index 4df7a525b88..d565ef624d2 100644 --- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm +++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm @@ -564,7 +564,7 @@ /datum/chemical_reaction/slimecrystal/on_reaction(datum/reagents/holder, created_volume) feedback_add_details("slime_cores_used","[type]") if(holder.my_atom) - var/obj/item/ore/bluespace_crystal/BC = new(get_turf(holder.my_atom)) + var/obj/item/stack/ore/bluespace_crystal/BC = new(get_turf(holder.my_atom)) BC.visible_message("The [BC.name] appears out of thin air!") //Cerulean diff --git a/code/modules/research/designs/bluespace_designs.dm b/code/modules/research/designs/bluespace_designs.dm index cf6e4b53882..029936e1f3a 100644 --- a/code/modules/research/designs/bluespace_designs.dm +++ b/code/modules/research/designs/bluespace_designs.dm @@ -8,7 +8,7 @@ req_tech = list("bluespace" = 3, "materials" = 6, "plasmatech" = 4) build_type = PROTOLATHE materials = list(MAT_DIAMOND = 1500, MAT_PLASMA = 1500) - build_path = /obj/item/ore/bluespace_crystal/artificial + build_path = /obj/item/stack/ore/bluespace_crystal/artificial category = list("Bluespace") /datum/design/bag_holding diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm index 1e884e35c3a..328faf6d645 100644 --- a/code/modules/research/rdmachines.dm +++ b/code/modules/research/rdmachines.dm @@ -22,7 +22,7 @@ /obj/machinery/r_n_d/New() materials = AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TRANQUILLITE, MAT_TITANIUM, MAT_BLUESPACE, MAT_PLASTIC), 0, - FALSE, list(/obj/item/stack, /obj/item/ore/bluespace_crystal), CALLBACK(src, .proc/is_insertion_ready), CALLBACK(src, .proc/AfterMaterialInsert)) + FALSE, list(/obj/item/stack, /obj/item/stack/ore/bluespace_crystal), CALLBACK(src, .proc/is_insertion_ready), CALLBACK(src, .proc/AfterMaterialInsert)) materials.precise_insertion = TRUE ..() wires["Red"] = 0 @@ -121,7 +121,7 @@ /obj/machinery/r_n_d/proc/AfterMaterialInsert(type_inserted, id_inserted, amount_inserted) var/stack_name - if(ispath(type_inserted, /obj/item/ore/bluespace_crystal)) + if(ispath(type_inserted, /obj/item/stack/ore/bluespace_crystal)) stack_name = "bluespace polycrystal" use_power(MINERAL_MATERIAL_AMOUNT / 10) else diff --git a/code/modules/spacepods/equipment.dm b/code/modules/spacepods/equipment.dm index 52273af71fe..a4195175338 100644 --- a/code/modules/spacepods/equipment.dm +++ b/code/modules/spacepods/equipment.dm @@ -203,7 +203,7 @@ icon_state = "cargo_ore" /obj/item/spacepod_equipment/cargo/ore/passover(var/obj/item/I) - if(storage && istype(I,/obj/item/ore)) + if(storage && istype(I,/obj/item/stack/ore)) I.forceMove(storage) // Crate System diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm index 0783aed0a5c..9f8b866981c 100644 --- a/code/modules/station_goals/bsa.dm +++ b/code/modules/station_goals/bsa.dm @@ -235,7 +235,7 @@ build_path = /obj/machinery/bsa/middle origin_tech = "engineering=2;combat=2;bluespace=2" req_components = list( - /obj/item/ore/bluespace_crystal = 20, + /obj/item/stack/ore/bluespace_crystal = 20, /obj/item/stack/cable_coil = 2) /obj/item/circuitboard/machine/bsa/front diff --git a/code/modules/telesci/bscrystal.dm b/code/modules/telesci/bscrystal.dm index 2c955920122..250ddea1f0f 100644 --- a/code/modules/telesci/bscrystal.dm +++ b/code/modules/telesci/bscrystal.dm @@ -1,5 +1,5 @@ // Bluespace crystals, used in telescience and when crushed it will blink you to a random turf. -/obj/item/ore/bluespace_crystal +/obj/item/stack/ore/bluespace_crystal name = "bluespace crystal" desc = "A glowing bluespace crystal, not much is known about how they work. It looks very delicate." icon = 'icons/obj/telescience.dmi' @@ -13,38 +13,38 @@ toolspeed = 1 usesound = 'sound/items/Deconstruct.ogg' -/obj/item/ore/bluespace_crystal/New() +/obj/item/stack/ore/bluespace_crystal/New() ..() pixel_x = rand(-5, 5) pixel_y = rand(-5, 5) -/obj/item/ore/bluespace_crystal/attack_self(var/mob/user) +/obj/item/stack/ore/bluespace_crystal/attack_self(var/mob/user) blink_mob(user) user.drop_item() user.visible_message("[user] crushes the [src]!") qdel(src) -/obj/item/ore/bluespace_crystal/proc/blink_mob(var/mob/living/L) +/obj/item/stack/ore/bluespace_crystal/proc/blink_mob(var/mob/living/L) if(!is_teleport_allowed(L.z)) src.visible_message("[src]'s fragments begin rapidly vibrating and blink out of existence.") qdel(src) return do_teleport(L, get_turf(L), blink_range, asoundin = 'sound/effects/phasein.ogg') -/obj/item/ore/bluespace_crystal/throw_impact(atom/hit_atom) +/obj/item/stack/ore/bluespace_crystal/throw_impact(atom/hit_atom) ..() if(isliving(hit_atom)) blink_mob(hit_atom) qdel(src) -// Blueapce crystal fragments (stops point farming) -/obj/item/ore/bluespace_crystal/refined +// Bluespace crystal fragments (stops point farming) +/obj/item/stack/ore/bluespace_crystal/refined name = "refined bluespace crystal" points = 0 refined_type = null // Artifical bluespace crystal, doesn't give you much research. -/obj/item/ore/bluespace_crystal/artificial +/obj/item/stack/ore/bluespace_crystal/artificial name = "artificial bluespace crystal" desc = "An artificially made bluespace crystal, it looks delicate." origin_tech = "bluespace=3;plasmatech=4" @@ -55,7 +55,7 @@ // Polycrystals, aka stacks -var/global/list/datum/stack_recipe/bluespace_crystal_recipes = list(new/datum/stack_recipe("Breakdown into bluespace crystal", /obj/item/ore/bluespace_crystal/refined, 1)) +var/global/list/datum/stack_recipe/bluespace_crystal_recipes = list(new/datum/stack_recipe("Breakdown into bluespace crystal", /obj/item/stack/ore/bluespace_crystal/refined, 1)) /obj/item/stack/sheet/bluespace_crystal name = "bluespace polycrystal" diff --git a/code/modules/telesci/telepad.dm b/code/modules/telesci/telepad.dm index 09f4ffa7920..a6e24f43fdc 100644 --- a/code/modules/telesci/telepad.dm +++ b/code/modules/telesci/telepad.dm @@ -14,8 +14,8 @@ ..() component_parts = list() component_parts += new /obj/item/circuitboard/telesci_pad(null) - component_parts += new /obj/item/ore/bluespace_crystal/artificial(null) - component_parts += new /obj/item/ore/bluespace_crystal/artificial(null) + component_parts += new /obj/item/stack/ore/bluespace_crystal/artificial(null) + component_parts += new /obj/item/stack/ore/bluespace_crystal/artificial(null) component_parts += new /obj/item/stock_parts/capacitor(null) component_parts += new /obj/item/stock_parts/console_screen(null) component_parts += new /obj/item/stack/cable_coil(null, 1) @@ -25,8 +25,8 @@ ..() component_parts = list() component_parts += new /obj/item/circuitboard/telesci_pad(null) - component_parts += new /obj/item/ore/bluespace_crystal/artificial(null) - component_parts += new /obj/item/ore/bluespace_crystal/artificial(null) + component_parts += new /obj/item/stack/ore/bluespace_crystal/artificial(null) + component_parts += new /obj/item/stack/ore/bluespace_crystal/artificial(null) component_parts += new /obj/item/stock_parts/capacitor/super(null) component_parts += new /obj/item/stock_parts/console_screen(null) component_parts += new /obj/item/stack/cable_coil(null, 1) diff --git a/code/modules/telesci/telesci_computer.dm b/code/modules/telesci/telesci_computer.dm index f0f1654ac30..f8c1d6cc936 100644 --- a/code/modules/telesci/telesci_computer.dm +++ b/code/modules/telesci/telesci_computer.dm @@ -49,10 +49,10 @@ /obj/machinery/computer/telescience/Initialize() ..() for(var/i = 1; i <= starting_crystals; i++) - crystals += new /obj/item/ore/bluespace_crystal/artificial(null) // starting crystals + crystals += new /obj/item/stack/ore/bluespace_crystal/artificial(null) // starting crystals /obj/machinery/computer/telescience/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/ore/bluespace_crystal)) + if(istype(W, /obj/item/stack/ore/bluespace_crystal)) if(crystals.len >= max_crystals) to_chat(user, "There are not enough crystal slots.") return From e9ac0a155b3474a8c62444427d1339f927b3097d Mon Sep 17 00:00:00 2001 From: Birdtalon Date: Wed, 10 Oct 2018 16:23:18 +0100 Subject: [PATCH 07/54] moves ironsand sprites into their own dmi and points the ironsand class at it --- code/game/turfs/simulated/floor/plating.dm | 1 + icons/turf/floors.dmi | Bin 394749 -> 393056 bytes icons/turf/floors/ironsand.dmi | Bin 0 -> 1996 bytes 3 files changed, 1 insertion(+) create mode 100644 icons/turf/floors/ironsand.dmi diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index 7f71cf981bd..77795a028ab 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -202,6 +202,7 @@ /turf/simulated/floor/plating/ironsand/New() ..() name = "Iron Sand" + icon = 'icons/turf/floors/ironsand.dmi' icon_state = "ironsand[rand(1,15)]" /turf/simulated/floor/plating/snow diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index 9a62da82286587869b8b8aa55e68e91997ff76eb..99210d9cf88d150ec10ece91a3d5c18e4426f209 100644 GIT binary patch delta 266050 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

Hz&*RKS1<#-Vv^_fJu?P4TeP8Q9>7Qup!q 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

  • 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 diff --git a/icons/turf/floors/ironsand.dmi b/icons/turf/floors/ironsand.dmi new file mode 100644 index 0000000000000000000000000000000000000000..5b1d645d80f53d53816d2082d985028cec66f2cd GIT binary patch literal 1996 zcmV;-2Q&DIP)C0000vP)t-s0001n zMK6v>F_%s?nou^0MlgUvE2ULBZ#X7}MKFCqErCNWb4oXlUPWw1Gj}~GlS?z5Q8%qw zJ(Sxpe*gdg0d!JMQvg8b*k%9#0GfJKSad{Xb7OL8aCB*JZU6vyoKseCa&`CgQ*iP1 zap@lGY)rNldwcz2o+ zt&+w8W)SS;5uM1)Nv`2-wGC&P$>3000J?NklRGvA)W%`fQiXe-3?niNoeF?5JKH1lhQ>f1^S(1cveqYwr5 z@flp|v0fgl2O;7B`4y5tgw|Wlh3H;H+Lqz)8ebOu{SNoHY)0VWI~nZ56wK5+7NYF< z#R$T10MrEzab4DR4feor*j;}DU5}{3gjx`l^Y(e-6=E&(osLqA@o`sUwUg+Ic4 z%+!}#%!ph`;_a^HeVheIw@2-=VgWZhIc_r_hP&uwoDl7C zP&N#o;>z|2hNbF9Y9vm9C|f=={{W-$DJDL)xTGq$&1gJC!khJ52+P)#8Ajuii->Ms z+>D{G^}QX3n-Tcc2Y93k<)iw5$z|f=jR6)rDzB^e-G>><@f0b_UZ#$z>O2G zR8l)vI`x4X9+LQ8eLy>{luNgMK*Rf%KA^ou`>l$Od(xhlMtxx8xV(e78^2BF?To%~ zRv$2P7V%~Aej7%2JE1Qmc&-n)Tg~~suHf0_YD>f;H7whQ>+kSPAF#Ko_*^CUA^%6b zNFUIB`+z>+bUdoQOdmLf>oxS(I`C!sz$siWW94PM%k+U$I9o#(>H}x+82UT)0ot1J z1zxj{c$Yo^s5fS#6qa#CYHg#w(5nvsjleN3O@{NrKD?Cm0liG$)Ca7SH`o{T0cmzR zU^OYuZ{uCOtPjvC8LbaE{6HUA*I#|W)%@xM*XRS=G5!&KfYO|w)dvs{@n3zwM#8Po z_LKSmIY}?Se;2n238tGw+LT`YTjvKhjyIei*h;wcnSHdU-KIq!;4G@;{6NOKEbhs1 zr*;>z-4#?E(m zK4QmsQ6B)OhP~kTJ5?vcFV+V-a72ME_I>9ET5vs)BH&xAK5(AjH{mAKw&??E%=rNx zYE%4Y^Z|AK`GIcS>I1;?)KBOG3^&Wr#IdXRKb*67+p#d?(!=jFoFsjLC+y!jKfoSe zM4V0-HQJlk?(+lsUZXFI^Jy34OqNSIX~6 zTue?0j?)K(FpivtGCHKFlc4ZyE5*Sty-V}~%11(*!0)9=f*xy$|JxMG&+jmOz$ZZk zTn8Vh+V5~m&wuj#fK9i5^85fjoA@7`ADC)I70ZSEzuJK;QiXCA|F0FlF%0AX^(i2W zf&9N#`uP9WemQxDo3|7lpmy)iE$8>~ zf@M6;HR!faee1?R?(ilbNL^>P8E|-TSHKhgFTcN^dL-nst`f~;Cj7rT1!~XVNriLy zZv+3=9r(WApHf>aLRve<|C>f2=kM;AI;%|a81HES?wT+>DQ$f`!jY_iw{)Pu-|aDV z2xETC@8$h@*Wdo6kCZiQ!<7Fwbl|P?0n&UsMKYo-x&t}?uXg}KTJe(qZ)IH4I+P2M z3H|;1-xoCcKwTg38{iIK76Cd87~1k!*Bq~Qz&UoE-y^2_Kv?jrJy-Rx4v^c|N1%(} z(-{f`kFUOz_ Date: Wed, 10 Oct 2018 16:28:44 +0000 Subject: [PATCH 08/54] Automatic changelog compile, [ci skip] --- html/changelog.html | 9 +++++++++ html/changelogs/.all_changelog.yml | 6 ++++++ html/changelogs/AutoChangeLog-pr-9776.yml | 5 ----- html/changelogs/AutoChangeLog-pr-9790.yml | 4 ---- 4 files changed, 15 insertions(+), 9 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-9776.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-9790.yml diff --git a/html/changelog.html b/html/changelog.html index 4332a0644bb..c7a6f4709d1 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -71,6 +71,10 @@

    KGr`R=(z4GB&xAhiE}mv&OQyo8Mx2OnRM)spei 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�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 z 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

  • Examining airlocks displays the proper icon now
  • Holopads don't work when unanchored any more.
  • +

    Purpose updated:

    +
      +
    • Fixes a few broken tiles in maintenance, by breaking those tiles properly.
    • +

    Ty-Omaha updated: