mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-18 11:36:24 +01:00
Lints Against Unmanaged Local Defines (#74333)
# MAINTAINER - USE THE BUTTON THAT SAYS "MERGE MASTER" THEN SET THE PR TO AUTO-MERGE! IT'S MUCH EASIER FOR ME TO FIX THINGS BEFORE THEY SKEW RATHER THAN AFTER THE FACT. ## About The Pull Request Hey there, This took a while to do, but here's the gist: Python file now regexes every file in `/code` except for those that have some valid reason to be tacking on more global defines. Some of those reasons are simply just that I don't have the time right now (doing what you see in this PR took a few hours) to refactor and parse what should belong and what should be thrown out. For the time being though, this PR will at least _halt_ people making the mistake of not `#undef`ing any files they `#define` "locally", or within the scope of a file. Most people forget to do this and this leads to a lot of mess later on due to how many variables can be unmanaged on the global level. I've made this mistake, you've made this mistake, it's a common thing. Let's automatically check for it so it can be fixed no-stress. Scenarios this PR corrects: * Forgetting to undef a define but undeffing others. * Not undeffing any defines in your file. * Earmarking a define as a "file local" define, but not defining it. * Having a define be a "file local" define, but having it be used elsewhere. * Having a "local" define not even be in the file that it only shows up in. * Having a completely unused define* (* I kept some of these because they seemed important... Others were junked.) ## Why It's Good For The Game If you wanna use it across multiple files, no reason to not make it a global define (maybe there's a few reasons but let's assume that this is the 95% case). Let me know if you don't like how I re-arranged some of the defines and how you'd rather see it be implemented, and I'd be happy to do that. This was mostly just "eh does it need it or not" sorta stuff. I used a pretty cool way to detect if we should use the standardized GitHub "error" output, you can see the results of that here https://github.com/san7890/bruhstation/actions/runs/4549766579/jobs/8022186846#step:7:792 ## Changelog Nothing that really concerns players. (I fixed up all this stuff using vscode, no regexes beyond what you see in the python script. sorry downstreams)
This commit is contained in:
@@ -60,6 +60,7 @@ jobs:
|
||||
tools/bootstrap/python tools/validate_dme.py <tgstation.dme
|
||||
tools/bootstrap/python -m tools.maplint.source --github
|
||||
tools/build/build --ci lint tgui-test
|
||||
tools/bootstrap/python -m define_sanity.check
|
||||
tools/bootstrap/python -m dmi.test
|
||||
tools/bootstrap/python -m mapmerge2.dmm_test
|
||||
~/dreamchecker > ${GITHUB_WORKSPACE}/output-annotations.txt 2>&1
|
||||
|
||||
@@ -230,3 +230,6 @@ Tracy.exe
|
||||
|
||||
# named byond versions config
|
||||
/tools/build/dm_versions.json
|
||||
|
||||
# From /tools/define_sanity/check.py - potential output file that we load onto the user's machine that we don't want to have committed.
|
||||
define_sanity_output.txt
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
#define BAD_INIT_QDEL_BEFORE 1
|
||||
#define BAD_INIT_DIDNT_INIT 2
|
||||
#define BAD_INIT_SLEPT 4
|
||||
#define BAD_INIT_NO_HINT 8
|
||||
|
||||
#ifdef PROFILE_MAPLOAD_INIT_ATOM
|
||||
#define PROFILE_INIT_ATOM_BEGIN(...) var/__profile_stat_time = TICK_USAGE
|
||||
#define PROFILE_INIT_ATOM_END(atom) mapload_init_times[##atom.type] += TICK_USAGE_TO_MS(__profile_stat_time)
|
||||
#else
|
||||
#define PROFILE_INIT_ATOM_BEGIN(...)
|
||||
#define PROFILE_INIT_ATOM_END(...)
|
||||
#endif
|
||||
@@ -158,3 +158,10 @@ GLOBAL_VAR_INIT(ghost_role_flags, (~0))
|
||||
|
||||
/// A value for /datum/admins/cached_feedback_link to indicate empty, rather than unobtained
|
||||
#define NO_FEEDBACK_LINK "no_feedback_link"
|
||||
|
||||
/// State when an interview has been approved
|
||||
#define INTERVIEW_APPROVED "interview_approved"
|
||||
/// State when an interview as been denied
|
||||
#define INTERVIEW_DENIED "interview_denied"
|
||||
/// State when an interview has had no action on it yet
|
||||
#define INTERVIEW_PENDING "interview_pending"
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
// Airlock light states, used for generating the light overlays
|
||||
#define AIRLOCK_LIGHT_BOLTS "bolts"
|
||||
#define AIRLOCK_LIGHT_EMERGENCY "emergency"
|
||||
#define AIRLOCK_LIGHT_DENIED "denied"
|
||||
#define AIRLOCK_LIGHT_CLOSING "closing"
|
||||
#define AIRLOCK_LIGHT_OPENING "opening"
|
||||
@@ -0,0 +1,5 @@
|
||||
// Used to edit areas.
|
||||
#define AREA_ERRNONE 0
|
||||
#define AREA_STATION 1
|
||||
#define AREA_SPACE 2
|
||||
#define AREA_SPECIAL 3
|
||||
@@ -55,3 +55,16 @@
|
||||
|
||||
/// TLV datums will ignore variables set to this.
|
||||
#define TLV_VALUE_IGNORE -1
|
||||
|
||||
#define CIRCULATOR_HOT 0
|
||||
#define CIRCULATOR_COLD 1
|
||||
|
||||
///Default pressure, used in the UI to reset the settings
|
||||
#define PUMP_DEFAULT_PRESSURE (ONE_ATMOSPHERE)
|
||||
///Maximum settable pressure
|
||||
#define PUMP_MAX_PRESSURE (PUMP_DEFAULT_PRESSURE * 25)
|
||||
///Minimum settable pressure
|
||||
#define PUMP_MIN_PRESSURE (PUMP_DEFAULT_PRESSURE / 10)
|
||||
///What direction is the machine pumping (into pump/port or out to the tank/area)?
|
||||
#define PUMP_IN TRUE
|
||||
#define PUMP_OUT FALSE
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
/// Amount of air to take a from a tile
|
||||
#define BREATH_PERCENTAGE (BREATH_VOLUME/CELL_VOLUME)
|
||||
|
||||
#define QUANTIZE(variable) (round((variable), (MOLAR_ACCURACY)))
|
||||
|
||||
/// Return this from a while_present proc to call its on_loss version, if one exists
|
||||
/// Useful for doing "we're done" effects without duped code
|
||||
#define BREATH_LOST 1
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
/// You hit exhaustion when you use 100 stamina
|
||||
#define STAMINA_COST_SHOOTING 10 //! shooting with RMB drains stamina (but LMB does not)
|
||||
#define STAMINA_COST_DUNKING 20 //! dunking is more strenous than shooting
|
||||
#define STAMINA_COST_DUNKING_MOB 30 //! dunking another person is harder
|
||||
#define STAMINA_COST_SPINNING 15 //! spin emote uses stamina while holding ball
|
||||
#define STAMINA_COST_DISARMING 10 //! getting shoved or disarmed while holding ball drains stamina
|
||||
@@ -0,0 +1,5 @@
|
||||
/// We only want chunk sizes that are to the power of 2. E.g: 2, 4, 8, 16, etc..
|
||||
#define CHUNK_SIZE 16
|
||||
/// Takes a position, transforms it into a chunk bounded position. Indexes at 1 so it'll land on actual turfs always
|
||||
#define GET_CHUNK_COORD(v) (max((FLOOR(v, CHUNK_SIZE)), 1))
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
/// The duration of the fakedeath coma.
|
||||
#define LING_FAKEDEATH_TIME (40 SECONDS)
|
||||
/// The number of recent spoken lines to gain on absorbing a mob
|
||||
#define LING_ABSORB_RECENT_SPEECH 8
|
||||
@@ -20,6 +20,9 @@
|
||||
#define MESSAGE_TYPE_ATTACKLOG "attacklog"
|
||||
#define MESSAGE_TYPE_DEBUG "debug"
|
||||
|
||||
/// Max length of chat message in characters
|
||||
#define CHAT_MESSAGE_MAX_LENGTH 110
|
||||
|
||||
//debug printing macros (for development and testing)
|
||||
/// Used for debug messages to the world
|
||||
#define debug_world(msg) if (GLOB.Debug2) to_chat(world, \
|
||||
|
||||
@@ -12,3 +12,11 @@
|
||||
|
||||
/// Force the config directory to be something other than "config"
|
||||
#define OVERRIDE_CONFIG_DIRECTORY_PARAMETER "config-directory"
|
||||
|
||||
// Config entry types
|
||||
#define VALUE_MODE_NUM 0
|
||||
#define VALUE_MODE_TEXT 1
|
||||
#define VALUE_MODE_FLAG 2
|
||||
|
||||
#define KEY_MODE_TEXT 0
|
||||
#define KEY_MODE_TYPE 1
|
||||
|
||||
@@ -202,3 +202,10 @@ GLOBAL_LIST_INIT(crafting_category, list(
|
||||
|
||||
/// How much less resources the RCD uses when reconstructing
|
||||
#define RCD_MEMORY_COST_BUFF 8
|
||||
|
||||
// Defines for the construction component
|
||||
#define FORWARD 1
|
||||
#define BACKWARD -1
|
||||
|
||||
#define ITEM_DELETE "delete"
|
||||
#define ITEM_MOVE_INSIDE "move_inside"
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
///If the machine is used/deleted in the crafting process
|
||||
#define CRAFTING_MACHINERY_CONSUME 1
|
||||
///If the structure is used/deleted in the crafting process
|
||||
#define CRAFTING_STRUCTURE_CONSUME 1
|
||||
///If the machine is only "used" i.e. it checks to see if it's nearby and allows crafting, but doesn't delete it
|
||||
#define CRAFTING_MACHINERY_USE 0
|
||||
///If the structure is only "used" i.e. it checks to see if it's nearby and allows crafting, but doesn't delete it
|
||||
#define CRAFTING_STRUCTURE_USE 0
|
||||
@@ -0,0 +1,6 @@
|
||||
///Will execute a single command after the cooldown based on player votes.
|
||||
#define DEMOCRACY_MODE (1<<0)
|
||||
///Allows each player to do a single command every cooldown.
|
||||
#define ANARCHY_MODE (1<<1)
|
||||
///Mutes the democracy mode messages send to orbiters at the end of each cycle. Useful for when the cooldown is so low it'd get spammy.
|
||||
#define MUTE_DEMOCRACY_MESSAGES (1<<2)
|
||||
@@ -18,3 +18,12 @@
|
||||
|
||||
/// This cycle, a round event was hijacked when the last midround event was too recent.
|
||||
#define HIJACKED_TOO_RECENT "HIJACKED_TOO_RECENT"
|
||||
|
||||
/// Kill this ruleset from continuing to process
|
||||
#define RULESET_STOP_PROCESSING 1
|
||||
|
||||
/// Requirements when something needs a lot of threat to run, but still possible at low-pop
|
||||
#define REQUIREMENTS_VERY_HIGH_THREAT_NEEDED list(90,90,90,80,60,50,40,40,40,40)
|
||||
|
||||
/// Max number of teams we can have for the abductor ruleset
|
||||
#define ABDUCTOR_MAX_TEAMS 4
|
||||
|
||||
@@ -58,3 +58,9 @@
|
||||
#define EXPLODABLE_DELETE_SELF 1
|
||||
/// Makes the explodable component delete its parent when it detonates.
|
||||
#define EXPLODABLE_DELETE_PARENT 2
|
||||
|
||||
// Flags for [/obj/item/grenade/var/dud_flags]
|
||||
/// The grenade cannot detonate at all. It is innately nonfunctional.
|
||||
#define GRENADE_DUD (1<<0)
|
||||
/// The grenade has been used and as such cannot detonate.
|
||||
#define GRENADE_USED (1<<1)
|
||||
|
||||
@@ -176,3 +176,7 @@ DEFINE_BITFIELD(food_flags, list(
|
||||
#define ICE_CREAM_SCOOP_OFFSET 4
|
||||
|
||||
#define BLACKBOX_LOG_FOOD_MADE(food) SSblackbox.record_feedback("tally", "food_made", 1, food)
|
||||
|
||||
// Venues for the barbots.
|
||||
#define VENUE_RESTAURANT "Restaurant Venue"
|
||||
#define VENUE_BAR "Bar Venue"
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
#define HOLOPAD_MAX_DIAL_TIME 200
|
||||
|
||||
#define HOLORECORD_DELAY "delay"
|
||||
#define HOLORECORD_SAY "say"
|
||||
#define HOLORECORD_SOUND "sound"
|
||||
#define HOLORECORD_LANGUAGE "lang"
|
||||
#define HOLORECORD_PRESET "preset"
|
||||
#define HOLORECORD_RENAME "rename"
|
||||
|
||||
#define HOLORECORD_MAX_LENGTH 200
|
||||
@@ -129,3 +129,20 @@
|
||||
|
||||
/// What's the minimum duration of a syndie bomb (in seconds)
|
||||
#define SYNDIEBOMB_MIN_TIMER_SECONDS 90
|
||||
|
||||
// Camera upgrade bitflags.
|
||||
#define CAMERA_UPGRADE_XRAY (1<<0)
|
||||
#define CAMERA_UPGRADE_EMP_PROOF (1<<1)
|
||||
#define CAMERA_UPGRADE_MOTION (1<<2)
|
||||
|
||||
/// Max length of a status line in the status display
|
||||
#define MAX_STATUS_LINE_LENGTH 40
|
||||
|
||||
/// Blank Status Display
|
||||
#define SD_BLANK 0
|
||||
/// Shows the emergency shuttle timer
|
||||
#define SD_EMERGENCY 1
|
||||
/// Shows an arbitrary message, user-set
|
||||
#define SD_MESSAGE 2
|
||||
/// Shows an alert picture (e.g. red alert, radiation, etc.)
|
||||
#define SD_PICTURE 3
|
||||
|
||||
@@ -197,3 +197,25 @@ Always compile, always use that verb, and always make sure that it works for wha
|
||||
#define SHELTER_DEPLOY_ANCHORED_OBJECTS "anchored objects"
|
||||
/// Shelter spot is out of bounds from the maps x/y coordinates
|
||||
#define SHELTER_DEPLOY_OUTSIDE_MAP "outside map"
|
||||
|
||||
/// A map key that corresponds to being one exclusively for Space.
|
||||
#define SPACE_KEY "space"
|
||||
|
||||
//clusterCheckFlags defines
|
||||
//All based on clusterMin and clusterMax as guides
|
||||
|
||||
//Individual defines
|
||||
#define CLUSTER_CHECK_NONE 0 //!No checks are done, cluster as much as possible
|
||||
#define CLUSTER_CHECK_DIFFERENT_TURFS (1<<1) //!Don't let turfs of DIFFERENT types cluster
|
||||
#define CLUSTER_CHECK_DIFFERENT_ATOMS (1<<2) //!Don't let atoms of DIFFERENT types cluster
|
||||
#define CLUSTER_CHECK_SAME_TURFS (1<<3) //!Don't let turfs of the SAME type cluster
|
||||
#define CLUSTER_CHECK_SAME_ATOMS (1<<4) //!Don't let atoms of the SAME type cluster
|
||||
|
||||
//Combined defines
|
||||
#define CLUSTER_CHECK_SAMES 24 //!Don't let any of the same type cluster
|
||||
#define CLUSTER_CHECK_DIFFERENTS 6 //!Don't let any of different types cluster
|
||||
#define CLUSTER_CHECK_ALL_TURFS 10 //!Don't let ANY turfs cluster same and different types
|
||||
#define CLUSTER_CHECK_ALL_ATOMS 20 //!Don't let ANY atoms cluster same and different types
|
||||
|
||||
//All
|
||||
#define CLUSTER_CHECK_ALL 30 //!Don't let anything cluster, like, at all
|
||||
|
||||
@@ -9,3 +9,6 @@
|
||||
#define MARTIALART_PSYCHOBRAWL "psychotic brawling"
|
||||
#define MARTIALART_SLEEPINGCARP "sleeping carp"
|
||||
#define MARTIALART_WRESTLING "wrestling"
|
||||
|
||||
/// The number of hits required to crit a target
|
||||
#define HITS_TO_CRIT(damage) round(100 / damage, 0.1)
|
||||
|
||||
@@ -442,6 +442,7 @@
|
||||
#define CLOTHING_NUTRITION_GAIN 15
|
||||
#define REAGENTS_METABOLISM 0.2 //How many units of reagent are consumed per second, by default.
|
||||
#define REAGENTS_EFFECT_MULTIPLIER (REAGENTS_METABOLISM / 0.4) // By defining the effect multiplier this way, it'll exactly adjust all effects according to how they originally were with the 0.4 metabolism
|
||||
#define REM REAGENTS_EFFECT_MULTIPLIER //! Shorthand for the above define for ease of use in equations and the like
|
||||
|
||||
// Eye protection
|
||||
#define FLASH_PROTECTION_HYPER_SENSITIVE -2
|
||||
|
||||
@@ -56,3 +56,17 @@
|
||||
#define CALIBER_HOOK "hook"
|
||||
/// The caliber used by the changeling tentacle mutation.
|
||||
#define CALIBER_TENTACLE "tentacle"
|
||||
|
||||
/// For gunpoints, how many tiles around the target the shooter can roam without losing their shot
|
||||
#define GUNPOINT_SHOOTER_STRAY_RANGE 2
|
||||
|
||||
//Designed for things that need precision trajectories like projectiles.
|
||||
//Don't use this for anything that you don't absolutely have to use this with (like projectiles!) because it isn't worth using a datum unless you need accuracy down to decimal places in pixels.
|
||||
|
||||
//You might see places where it does - 16 - 1. This is intentionally 17 instead of 16, because of how byond's tiles work and how not doing it will result in rounding errors like things getting put on the wrong turf.
|
||||
|
||||
#define RETURN_PRECISE_POSITION(A) new /datum/position(A)
|
||||
#define RETURN_PRECISE_POINT(A) new /datum/point(A)
|
||||
|
||||
#define RETURN_POINT_VECTOR(ATOM, ANGLE, SPEED) (new /datum/point/vector(ATOM, null, null, null, null, ANGLE, SPEED))
|
||||
#define RETURN_POINT_VECTOR_INCREMENT(ATOM, ANGLE, SPEED, AMT) (new /datum/point/vector(ATOM, null, null, null, null, ANGLE, SPEED, AMT))
|
||||
|
||||
@@ -176,6 +176,10 @@
|
||||
/// This reaction is produces a product that affects plants
|
||||
#define REACTION_TAG_COMPETITIVE (1<<21)
|
||||
|
||||
#define RNGCHEM_INPUT "input"
|
||||
#define RNGCHEM_CATALYSTS "catalysts"
|
||||
#define RNGCHEM_OUTPUT "output"
|
||||
|
||||
/// Below are defines used for reagent associated machines only
|
||||
/// For the pH meter flashing method
|
||||
#define ENABLE_FLASHING -1
|
||||
@@ -186,6 +190,9 @@
|
||||
|
||||
#define GOLDSCHLAGER_GOLD_RATIO (GOLDSCHLAGER_GOLD/(GOLDSCHLAGER_VODKA+GOLDSCHLAGER_GOLD))
|
||||
|
||||
/// The rate at which alcohol affects the drinker
|
||||
#define ALCOHOL_RATE 0.005
|
||||
|
||||
#define BLASTOFF_DANCE_MOVE_CHANCE_PER_UNIT 3
|
||||
#define BLASTOFF_DANCE_MOVES_PER_SUPER_MOVE 3
|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
/// If an object needs to be rotated with a wrench
|
||||
#define ROTATION_REQUIRE_WRENCH (1<<0)
|
||||
/// If ghosts can rotate an object (if the ghost config is enabled)
|
||||
#define ROTATION_GHOSTS_ALLOWED (1<<1)
|
||||
/// If an object will ignore anchored for rotation (used for chairs)
|
||||
#define ROTATION_IGNORE_ANCHORED (1<<2)
|
||||
/// If an object will omit flipping from rotation (used for pipes since they use custom handling)
|
||||
#define ROTATION_NO_FLIPPING (1<<3)
|
||||
/// If an object needs to have an empty spot available in target direction (used for windoors and railings)
|
||||
#define ROTATION_NEEDS_ROOM (1<<4)
|
||||
|
||||
/// Rotate an object clockwise
|
||||
#define ROTATION_CLOCKWISE -90
|
||||
/// Rotate an object counterclockwise
|
||||
#define ROTATION_COUNTERCLOCKWISE 90
|
||||
/// Rotate an object upside down
|
||||
#define ROTATION_FLIP 180
|
||||
@@ -0,0 +1,3 @@
|
||||
#define PUNISHMENT_MURDER "murder"
|
||||
#define PUNISHMENT_GIB "gib"
|
||||
#define PUNISHMENT_TELEPORT "teleport"
|
||||
@@ -0,0 +1,7 @@
|
||||
#define MAX_EMAG_ROCKETS 5
|
||||
#define BEACON_COST 500
|
||||
#define SP_LINKED 1
|
||||
#define SP_READY 2
|
||||
#define SP_LAUNCH 3
|
||||
#define SP_UNLINK 4
|
||||
#define SP_UNREADY 5
|
||||
@@ -1,2 +1,7 @@
|
||||
//A reference to this list is passed into area sound managers, and it's modified in a manner that preserves that reference in ash_storm.dm
|
||||
GLOBAL_LIST_EMPTY(ash_storm_sounds)
|
||||
|
||||
#define STARTUP_STAGE 1
|
||||
#define MAIN_STAGE 2
|
||||
#define WIND_DOWN_STAGE 3
|
||||
#define END_STAGE 4
|
||||
|
||||
@@ -55,3 +55,9 @@
|
||||
#define WIRE_ZAP "High Voltage Circuit"
|
||||
#define WIRE_ZAP1 "High Voltage Circuit 1"
|
||||
#define WIRE_ZAP2 "High Voltage Circuit 2"
|
||||
|
||||
// Wire states for the AI
|
||||
#define AI_WIRE_NORMAL 0
|
||||
#define AI_WIRE_DISABLED 1
|
||||
#define AI_WIRE_HACKED 2
|
||||
#define AI_WIRE_DISABLED_HACKED -1
|
||||
|
||||
@@ -578,3 +578,6 @@
|
||||
return TRUE
|
||||
|
||||
return FALSE
|
||||
|
||||
#undef MAX_SAFE_BYOND_ICON_SCALE_TILES
|
||||
#undef MAX_SAFE_BYOND_ICON_SCALE_PX
|
||||
|
||||
@@ -180,3 +180,6 @@
|
||||
..()
|
||||
drag_start = 0
|
||||
drag_details = null
|
||||
|
||||
#undef LENIENCY_DISTANCE
|
||||
#undef LENIENCY_TIME
|
||||
|
||||
@@ -68,3 +68,9 @@
|
||||
|
||||
/atom/movable/screen/credit/proc/FadeOut()
|
||||
animate(src, alpha = 0, transform = target, time = CREDIT_EASE_DURATION)
|
||||
|
||||
#undef CREDIT_ANIMATE_HEIGHT
|
||||
#undef CREDIT_EASE_DURATION
|
||||
#undef CREDIT_ROLL_SPEED
|
||||
#undef CREDIT_SPAWN_SPEED
|
||||
#undef CREDITS_PATH
|
||||
|
||||
@@ -393,3 +393,6 @@ GLOBAL_LIST_EMPTY(radial_menus)
|
||||
/datum/radial_menu_choice/Destroy(force, ...)
|
||||
. = ..()
|
||||
QDEL_NULL(image)
|
||||
|
||||
#undef NEXT_PAGE_ID
|
||||
#undef DEFAULT_CHECK_DELAY
|
||||
|
||||
@@ -1,10 +1,3 @@
|
||||
#define VALUE_MODE_NUM 0
|
||||
#define VALUE_MODE_TEXT 1
|
||||
#define VALUE_MODE_FLAG 2
|
||||
|
||||
#define KEY_MODE_TEXT 0
|
||||
#define KEY_MODE_TYPE 1
|
||||
|
||||
/datum/config_entry
|
||||
/// Read-only, this is determined by the last portion of the derived entry type
|
||||
var/name
|
||||
|
||||
@@ -53,3 +53,5 @@ SUBSYSTEM_DEF(area_contents)
|
||||
|
||||
clear.turfs_to_uncontain = list()
|
||||
marked_for_clearing.len--
|
||||
|
||||
#undef ALLOWED_LOOSE_TURFS
|
||||
|
||||
@@ -1,8 +1,3 @@
|
||||
#define BAD_INIT_QDEL_BEFORE 1
|
||||
#define BAD_INIT_DIDNT_INIT 2
|
||||
#define BAD_INIT_SLEPT 4
|
||||
#define BAD_INIT_NO_HINT 8
|
||||
|
||||
SUBSYSTEM_DEF(atoms)
|
||||
name = "Atoms"
|
||||
init_order = INIT_ORDER_ATOMS
|
||||
@@ -40,14 +35,6 @@ SUBSYSTEM_DEF(atoms)
|
||||
|
||||
return SS_INIT_SUCCESS
|
||||
|
||||
#ifdef PROFILE_MAPLOAD_INIT_ATOM
|
||||
#define PROFILE_INIT_ATOM_BEGIN(...) var/__profile_stat_time = TICK_USAGE
|
||||
#define PROFILE_INIT_ATOM_END(atom) mapload_init_times[##atom.type] += TICK_USAGE_TO_MS(__profile_stat_time)
|
||||
#else
|
||||
#define PROFILE_INIT_ATOM_BEGIN(...)
|
||||
#define PROFILE_INIT_ATOM_END(...)
|
||||
#endif
|
||||
|
||||
/datum/controller/subsystem/atoms/proc/InitializeAtoms(list/atoms, list/atoms_to_return)
|
||||
if(initialized == INITIALIZATION_INSSATOMS)
|
||||
return
|
||||
|
||||
@@ -90,3 +90,4 @@ SUBSYSTEM_DEF(communications)
|
||||
|
||||
#undef COMMUNICATION_COOLDOWN
|
||||
#undef COMMUNICATION_COOLDOWN_AI
|
||||
#undef COMMUNICATION_COOLDOWN_MEETING
|
||||
|
||||
@@ -227,3 +227,7 @@ SUBSYSTEM_DEF(economy)
|
||||
"cost" = price_to_use,
|
||||
"vendor" = vendor,
|
||||
))
|
||||
|
||||
#undef ECON_DEPARTMENT_STEP
|
||||
#undef ECON_ACCOUNT_STEP
|
||||
#undef ECON_PRICE_UPDATE_STEP
|
||||
|
||||
@@ -67,10 +67,6 @@ SUBSYSTEM_DEF(explosions)
|
||||
msg += "} "
|
||||
return ..()
|
||||
|
||||
|
||||
#define SSEX_TURF "turf"
|
||||
#define SSEX_OBJ "obj"
|
||||
|
||||
/datum/controller/subsystem/explosions/proc/is_exploding()
|
||||
return (lowturf.len || medturf.len || highturf.len || flameturf.len || throwturf.len || low_mov_atom.len || med_mov_atom.len || high_mov_atom.len)
|
||||
|
||||
@@ -716,3 +712,5 @@ SUBSYSTEM_DEF(explosions)
|
||||
cost_throwturf = MC_AVERAGE(cost_throwturf, TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer))
|
||||
|
||||
currentpart = SSEXPLOSIONS_TURFS
|
||||
|
||||
#undef EXPLOSION_THROW_SPEED
|
||||
|
||||
@@ -24,3 +24,5 @@ SUBSYSTEM_DEF(init_profiler)
|
||||
fdel(prof_file)
|
||||
WRITE_FILE(prof_file, current_profile_data)
|
||||
world.Profile(PROFILE_CLEAR) //Now that we're written this data out, dump it. We don't want it getting mixed up with our current round data
|
||||
|
||||
#undef INIT_PROFILE_NAME
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
#define FILE_RECENT_MAPS "data/RecentMaps.json"
|
||||
|
||||
#define KEEP_ROUNDS_MAP 3
|
||||
#define ROUNDCOUNT_ENGINE_JUST_EXPLODED 0
|
||||
|
||||
SUBSYSTEM_DEF(persistence)
|
||||
name = "Persistence"
|
||||
@@ -162,7 +161,7 @@ SUBSYSTEM_DEF(persistence)
|
||||
|
||||
log_world("Loaded [prison_tattoos_to_use.len] prison tattoos")
|
||||
|
||||
///Saves all tattoos, so they can appear on prisoners in future rounds
|
||||
///Saves all tattoos, so they can appear on prisoners in future rounds
|
||||
/datum/controller/subsystem/persistence/proc/save_prisoner_tattoos()
|
||||
var/json_file = file(PRISONER_TATTOO_SAVE_FILE)
|
||||
var/list/saved_data = list()
|
||||
@@ -295,7 +294,7 @@ SUBSYSTEM_DEF(persistence)
|
||||
for(var/obj/structure/displaycase/trophy/trophy_case in GLOB.trophy_cases)
|
||||
if(!valid_trophies.len)
|
||||
break
|
||||
|
||||
|
||||
if(trophy_case.showpiece)
|
||||
continue
|
||||
|
||||
@@ -546,3 +545,5 @@ SUBSYSTEM_DEF(persistence)
|
||||
rustg_file_write("[rounds_since_engine_exploded + 1]", DELAMINATION_COUNT_FILEPATH)
|
||||
|
||||
#undef DELAMINATION_COUNT_FILEPATH
|
||||
#undef FILE_RECENT_MAPS
|
||||
#undef KEEP_ROUNDS_MAP
|
||||
|
||||
@@ -305,6 +305,7 @@ SUBSYSTEM_DEF(persistent_paintings)
|
||||
fdel(json_file)
|
||||
WRITE_FILE(json_file, payload)
|
||||
|
||||
#undef PAINTINGS_DATA_FORMAT_VERSION
|
||||
#undef PATRONAGE_OK_FRAME
|
||||
#undef PATRONAGE_NICE_FRAME
|
||||
#undef PATRONAGE_GREAT_FRAME
|
||||
|
||||
@@ -202,5 +202,6 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
|
||||
|
||||
return new_quirks
|
||||
|
||||
#undef EXP_ASSIGN_WAYFINDER
|
||||
#undef RANDOM_QUIRK_BONUS
|
||||
#undef MINIMUM_RANDOM_QUIRKS
|
||||
|
||||
@@ -64,3 +64,6 @@ SUBSYSTEM_DEF(profiler)
|
||||
WRITE_FILE(prof_file, current_profile_data)
|
||||
WRITE_FILE(sendmaps_file, current_sendmaps_data)
|
||||
write_cost = MC_AVERAGE(write_cost, TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer))
|
||||
|
||||
#undef PROFILER_FILENAME
|
||||
#undef SENDMAPS_FILENAME
|
||||
|
||||
@@ -1096,3 +1096,7 @@ SUBSYSTEM_DEF(shuttle)
|
||||
has_purchase_shuttle_access |= shuttle_template.who_can_purchase
|
||||
|
||||
return has_purchase_shuttle_access
|
||||
|
||||
#undef MAX_TRANSIT_REQUEST_RETRIES
|
||||
#undef MAX_TRANSIT_TILE_COUNT
|
||||
#undef SOFT_TRANSIT_RESERVATION_THRESHOLD
|
||||
|
||||
@@ -756,6 +756,9 @@ SUBSYSTEM_DEF(spatial_grid)
|
||||
the average client distance is: [average_client_distance], the average hearable_distance is [average_hearable_distance], \
|
||||
and the average atmos distance is [average_atmos_distance] ")
|
||||
|
||||
#undef BOUNDING_BOX_MAX
|
||||
#undef BOUNDING_BOX_MIN
|
||||
#undef GRID_CELL_ADD
|
||||
#undef GRID_CELL_REMOVE
|
||||
#undef GRID_CELL_SET
|
||||
#undef NUMBER_OF_PREGENERATED_ORANGES_EARS
|
||||
|
||||
@@ -227,3 +227,6 @@ SUBSYSTEM_DEF(throwing)
|
||||
SEND_SIGNAL(thrownthing, COMSIG_MOVABLE_THROW_LANDED, src)
|
||||
|
||||
qdel(src)
|
||||
|
||||
#undef MAX_THROWING_DIST
|
||||
#undef MAX_TICKS_TO_MAKE_UP
|
||||
|
||||
@@ -732,3 +732,5 @@ SUBSYSTEM_DEF(ticker)
|
||||
possible_themes += themes
|
||||
if(possible_themes.len)
|
||||
return "[global.config.directory]/reboot_themes/[pick(possible_themes)]"
|
||||
|
||||
#undef ROUND_START_MUSIC_LIST
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
#define STARTUP_STAGE 1
|
||||
#define MAIN_STAGE 2
|
||||
#define WIND_DOWN_STAGE 3
|
||||
#define END_STAGE 4
|
||||
|
||||
//Used for all kinds of weather, ex. lavaland ash storms.
|
||||
/// Used for all kinds of weather, ex. lavaland ash storms.
|
||||
SUBSYSTEM_DEF(weather)
|
||||
name = "Weather"
|
||||
flags = SS_BACKGROUND
|
||||
|
||||
@@ -335,3 +335,5 @@
|
||||
SEND_SIGNAL(src, COMSIG_ACTION_SET_STATPANEL, stat_panel_data)
|
||||
|
||||
return stat_panel_data
|
||||
|
||||
#undef COOLDOWN_NO_DISPLAY_TIME
|
||||
|
||||
@@ -467,4 +467,5 @@
|
||||
#undef CONFIG_ASIMOV
|
||||
#undef CONFIG_CUSTOM
|
||||
#undef CONFIG_RANDOM
|
||||
#undef CONFIG_SPECIFIED
|
||||
#undef CONFIG_WEIGHTED
|
||||
|
||||
@@ -12,8 +12,6 @@
|
||||
#define CHAT_MESSAGE_APPROX_LHEIGHT 11
|
||||
/// Max width of chat message in pixels
|
||||
#define CHAT_MESSAGE_WIDTH 96
|
||||
/// Max length of chat message in characters
|
||||
#define CHAT_MESSAGE_MAX_LENGTH 110
|
||||
/// The dimensions of the chat message icons
|
||||
#define CHAT_MESSAGE_ICON_SIZE 9
|
||||
|
||||
@@ -334,13 +332,18 @@
|
||||
if(5)
|
||||
return "#[num2hex(c, 2)][num2hex(m, 2)][num2hex(x, 2)]"
|
||||
|
||||
#undef CHAT_MESSAGE_SPAWN_TIME
|
||||
#undef CHAT_MESSAGE_LIFESPAN
|
||||
|
||||
#undef CHAT_LAYER_MAX_Z
|
||||
#undef CHAT_LAYER_Z_STEP
|
||||
#undef CHAT_MESSAGE_APPROX_LHEIGHT
|
||||
#undef CHAT_MESSAGE_EOL_FADE
|
||||
#undef CHAT_MESSAGE_EXP_DECAY
|
||||
#undef CHAT_MESSAGE_HEIGHT_DECAY
|
||||
#undef CHAT_MESSAGE_APPROX_LHEIGHT
|
||||
#undef CHAT_MESSAGE_WIDTH
|
||||
#undef CHAT_LAYER_Z_STEP
|
||||
#undef CHAT_LAYER_MAX_Z
|
||||
#undef CHAT_MESSAGE_ICON_SIZE
|
||||
#undef CHAT_MESSAGE_LIFESPAN
|
||||
#undef CHAT_MESSAGE_SPAWN_TIME
|
||||
#undef CHAT_MESSAGE_WIDTH
|
||||
#undef CM_COLOR_LUM_MAX
|
||||
#undef CM_COLOR_LUM_MIN
|
||||
#undef CM_COLOR_SAT_MAX
|
||||
#undef CM_COLOR_SAT_MIN
|
||||
|
||||
@@ -83,3 +83,5 @@
|
||||
true_parent.visible_message(span_danger("[true_parent] is flying back at [throwing_datum.thrower]!"), \
|
||||
span_danger("You see [true_parent] fly back at you!"), \
|
||||
span_hear("You hear an aerodynamic woosh!"))
|
||||
|
||||
#undef BOOMERANG_REBOUND_INTERVAL
|
||||
|
||||
@@ -1,10 +1,3 @@
|
||||
#define FORWARD 1
|
||||
#define BACKWARD -1
|
||||
|
||||
#define ITEM_DELETE "delete"
|
||||
#define ITEM_MOVE_INSIDE "move_inside"
|
||||
|
||||
|
||||
/datum/component/construction
|
||||
var/list/steps
|
||||
var/result
|
||||
|
||||
@@ -1,12 +1,3 @@
|
||||
///If the machine is used/deleted in the crafting process
|
||||
#define CRAFTING_MACHINERY_CONSUME 1
|
||||
///If the structure is used/deleted in the crafting process
|
||||
#define CRAFTING_STRUCTURE_CONSUME 1
|
||||
///If the machine is only "used" i.e. it checks to see if it's nearby and allows crafting, but doesn't delete it
|
||||
#define CRAFTING_MACHINERY_USE 0
|
||||
///If the structure is only "used" i.e. it checks to see if it's nearby and allows crafting, but doesn't delete it
|
||||
#define CRAFTING_STRUCTURE_USE 0
|
||||
|
||||
/datum/crafting_recipe
|
||||
///in-game display name
|
||||
var/name
|
||||
|
||||
@@ -1,10 +1,3 @@
|
||||
///Will execute a single command after the cooldown based on player votes.
|
||||
#define DEMOCRACY_MODE (1<<0)
|
||||
///Allows each player to do a single command every cooldown.
|
||||
#define ANARCHY_MODE (1<<1)
|
||||
///Mutes the democracy mode messages send to orbiters at the end of each cycle. Useful for when the cooldown is so low it'd get spammy.
|
||||
#define MUTE_DEMOCRACY_MESSAGES (1<<2)
|
||||
|
||||
/**
|
||||
* Deadchat Plays Things - The Componenting
|
||||
*
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
/// How many tiles around the target the shooter can roam without losing their shot
|
||||
#define GUNPOINT_SHOOTER_STRAY_RANGE 2
|
||||
/// How long it takes from the gunpoint is initiated to reach stage 2
|
||||
#define GUNPOINT_DELAY_STAGE_2 (2.5 SECONDS)
|
||||
/// How long it takes from stage 2 starting to move up to stage 3
|
||||
|
||||
@@ -1,21 +1,3 @@
|
||||
/// If an object needs to be rotated with a wrench
|
||||
#define ROTATION_REQUIRE_WRENCH (1<<0)
|
||||
/// If ghosts can rotate an object (if the ghost config is enabled)
|
||||
#define ROTATION_GHOSTS_ALLOWED (1<<1)
|
||||
/// If an object will ignore anchored for rotation (used for chairs)
|
||||
#define ROTATION_IGNORE_ANCHORED (1<<2)
|
||||
/// If an object will omit flipping from rotation (used for pipes since they use custom handling)
|
||||
#define ROTATION_NO_FLIPPING (1<<3)
|
||||
/// If an object needs to have an empty spot available in target direction (used for windoors and railings)
|
||||
#define ROTATION_NEEDS_ROOM (1<<4)
|
||||
|
||||
/// Rotate an object clockwise
|
||||
#define ROTATION_CLOCKWISE -90
|
||||
/// Rotate an object counterclockwise
|
||||
#define ROTATION_COUNTERCLOCKWISE 90
|
||||
/// Rotate an object upside down
|
||||
#define ROTATION_FLIP 180
|
||||
|
||||
/datum/component/simple_rotation
|
||||
/// Additional stuff to do after rotation
|
||||
var/datum/callback/AfterRotation
|
||||
|
||||
@@ -95,3 +95,5 @@
|
||||
cost_desc = "torrent"
|
||||
|
||||
to_chat(source, span_danger("You feel a [cost_desc] of your blood drained into the spell you just cast."))
|
||||
|
||||
#undef COOLDOWN_TO_BLOOD_RATIO
|
||||
|
||||
@@ -1,11 +1,3 @@
|
||||
|
||||
#define PUNISHMENT_MURDER "murder"
|
||||
#define PUNISHMENT_GIB "gib"
|
||||
#define PUNISHMENT_TELEPORT "teleport"
|
||||
|
||||
//very similar to stationloving, but more made for mobs and not objects. used on derelict drones currently
|
||||
|
||||
|
||||
/*
|
||||
This component is similar to stationloving in that it is meant to keep something on the z-level
|
||||
The difference is that stationloving is for objects and stationstuck is for mobs.
|
||||
|
||||
@@ -470,3 +470,5 @@
|
||||
|
||||
explosion(parent, devastation_range = 1, heavy_impact_range = 2, light_impact_range = 3)
|
||||
qdel(parent) //Alternatively could brick the uplink.
|
||||
|
||||
#undef PEN_ROTATIONS
|
||||
|
||||
@@ -274,3 +274,7 @@ GLOBAL_LIST_EMPTY(pillars_by_z)
|
||||
var/mutable_appearance/underlay_appearance = mutable_appearance(initial(path.icon), initial(path.icon_state), layer = TURF_LAYER-0.02, offset_spokesman = our_turf, plane = PLANE_SPACE)
|
||||
underlay_appearance.appearance_flags = RESET_ALPHA | RESET_COLOR
|
||||
return underlay_appearance
|
||||
|
||||
#undef Z_PILLAR_RADIUS
|
||||
#undef Z_PILLAR_TRANSFORM
|
||||
#undef Z_KEY_TO_POSITION
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
#define HITS_TO_CRIT(damage) round(100 / damage, 0.1)
|
||||
/**
|
||||
*
|
||||
* The purpose of this element is to widely provide the ability to examine an object and determine its stats, with the ability to add
|
||||
|
||||
@@ -1,14 +1,3 @@
|
||||
#define HOLOPAD_MAX_DIAL_TIME 200
|
||||
|
||||
#define HOLORECORD_DELAY "delay"
|
||||
#define HOLORECORD_SAY "say"
|
||||
#define HOLORECORD_SOUND "sound"
|
||||
#define HOLORECORD_LANGUAGE "lang"
|
||||
#define HOLORECORD_PRESET "preset"
|
||||
#define HOLORECORD_RENAME "rename"
|
||||
|
||||
#define HOLORECORD_MAX_LENGTH 200
|
||||
|
||||
/mob/camera/ai_eye/remote/holo/setLoc(turf/destination, force_update = FALSE)
|
||||
. = ..()
|
||||
var/obj/machinery/holopad/H = origin
|
||||
|
||||
@@ -96,3 +96,5 @@
|
||||
base_lighting_alpha = 255
|
||||
|
||||
map_generator = /datum/map_generator/jungle_generator
|
||||
|
||||
#undef BIOME_RANDOM_SQUARE_DRIFT
|
||||
|
||||
@@ -286,3 +286,9 @@
|
||||
if(!is_type_in_list(get_area(owner), kitchen_areas))
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
#undef SLAM_COMBO
|
||||
#undef KICK_COMBO
|
||||
#undef RESTRAIN_COMBO
|
||||
#undef PRESSURE_COMBO
|
||||
#undef CONSECUTIVE_COMBO
|
||||
|
||||
@@ -185,3 +185,7 @@
|
||||
/datum/martial_art/plasma_fist/nobomb
|
||||
name = "Novice Plasma Fist"
|
||||
nobomb = TRUE
|
||||
|
||||
#undef TORNADO_COMBO
|
||||
#undef THROWBACK_COMBO
|
||||
#undef PLASMA_COMBO
|
||||
|
||||
@@ -247,3 +247,7 @@
|
||||
if(!HAS_TRAIT(src, TRAIT_WIELDED))
|
||||
return ..()
|
||||
return FALSE
|
||||
|
||||
#undef STRONG_PUNCH_COMBO
|
||||
#undef LAUNCH_KICK_COMBO
|
||||
#undef DROP_KICK_COMBO
|
||||
|
||||
@@ -1,14 +1,3 @@
|
||||
//Designed for things that need precision trajectories like projectiles.
|
||||
//Don't use this for anything that you don't absolutely have to use this with (like projectiles!) because it isn't worth using a datum unless you need accuracy down to decimal places in pixels.
|
||||
|
||||
//You might see places where it does - 16 - 1. This is intentionally 17 instead of 16, because of how byond's tiles work and how not doing it will result in rounding errors like things getting put on the wrong turf.
|
||||
|
||||
#define RETURN_PRECISE_POSITION(A) new /datum/position(A)
|
||||
#define RETURN_PRECISE_POINT(A) new /datum/point(A)
|
||||
|
||||
#define RETURN_POINT_VECTOR(ATOM, ANGLE, SPEED) (new /datum/point/vector(ATOM, null, null, null, null, ANGLE, SPEED))
|
||||
#define RETURN_POINT_VECTOR_INCREMENT(ATOM, ANGLE, SPEED, AMT) (new /datum/point/vector(ATOM, null, null, null, null, ANGLE, SPEED, AMT))
|
||||
|
||||
/proc/point_midpoint_points(datum/point/a, datum/point/b) //Obviously will not support multiZ calculations! Same for the two below.
|
||||
var/datum/point/P = new
|
||||
P.x = a.x + (b.x - a.x) * 0.5
|
||||
|
||||
@@ -342,3 +342,6 @@
|
||||
report_message = "Due to good performance, we've provided your station with luxury escape pods."
|
||||
trait_to_give = STATION_TRAIT_BIGGER_PODS
|
||||
blacklist = list(/datum/station_trait/cramped_escape_pods)
|
||||
|
||||
#undef PARTY_COOLDOWN_LENGTH_MIN
|
||||
#undef PARTY_COOLDOWN_LENGTH_MAX
|
||||
|
||||
@@ -1,8 +1,3 @@
|
||||
#define AI_WIRE_NORMAL 0
|
||||
#define AI_WIRE_DISABLED 1
|
||||
#define AI_WIRE_HACKED 2
|
||||
#define AI_WIRE_DISABLED_HACKED -1
|
||||
|
||||
/datum/wires/airlock
|
||||
holder_type = /obj/machinery/door/airlock
|
||||
proper_name = "Generic Airlock"
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
/// Requirements when something needs a lot of threat to run, but still possible at low-pop
|
||||
#define REQUIREMENTS_VERY_HIGH_THREAT_NEEDED list(90,90,90,80,60,50,40,40,40,40)
|
||||
@@ -1,5 +1,3 @@
|
||||
#define RULESET_STOP_PROCESSING 1
|
||||
|
||||
#define FAKE_GREENSHIFT_FORM_CHANCE 15
|
||||
#define FAKE_REPORT_CHANCE 8
|
||||
#define REPORT_NEG_DIVERGENCE -15
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
#define REVOLUTION_VICTORY 1
|
||||
#define STATION_VICTORY 2
|
||||
|
||||
/datum/dynamic_ruleset
|
||||
/// For admin logging and round end screen.
|
||||
// If you want to change this variable name, the force latejoin/midround rulesets
|
||||
|
||||
@@ -576,9 +576,6 @@
|
||||
priority_announce("A large organic energy flux has been recorded near of [station_name()], please stand-by.", "Lifesign Alert")
|
||||
return S
|
||||
|
||||
/// Midround Abductors Ruleset (From Ghosts)
|
||||
#define ABDUCTOR_MAX_TEAMS 4
|
||||
|
||||
/datum/dynamic_ruleset/midround/from_ghosts/abductors
|
||||
name = "Abductors"
|
||||
midround_ruleset_style = MIDROUND_RULESET_STYLE_LIGHT
|
||||
@@ -611,8 +608,6 @@
|
||||
var/datum/antagonist/abductor/agent/new_role = new
|
||||
new_character.mind.add_antag_datum(new_role, new_team)
|
||||
|
||||
#undef ABDUCTOR_MAX_TEAMS
|
||||
|
||||
/// Midround Space Ninja Ruleset (From Ghosts)
|
||||
/datum/dynamic_ruleset/midround/from_ghosts/space_ninja
|
||||
name = "Space Ninja"
|
||||
@@ -902,3 +897,6 @@
|
||||
if(possible_targets.len)
|
||||
return pick(possible_targets)
|
||||
return FALSE
|
||||
|
||||
#undef MALF_ION_PROB
|
||||
#undef REPLACE_LAW_WITH_ION_PROB
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
#define AIRLOCK_CONTROL_RANGE 5
|
||||
|
||||
// This code allows for airlocks to be controlled externally by setting an id_tag and comm frequency (disables ID access)
|
||||
/obj/machinery/door/airlock
|
||||
opens_with_door_remote = TRUE
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
#define CAMERA_UPGRADE_XRAY (1<<0)
|
||||
#define CAMERA_UPGRADE_EMP_PROOF (1<<1)
|
||||
#define CAMERA_UPGRADE_MOTION (1<<2)
|
||||
|
||||
/obj/machinery/camera
|
||||
name = "security camera"
|
||||
desc = "It's used to monitor rooms."
|
||||
|
||||
@@ -381,3 +381,5 @@
|
||||
new /obj/machinery/computer/piratepad_control/civilian(drop_location())
|
||||
qdel(src)
|
||||
uses--
|
||||
|
||||
#undef CIV_BOUNTY_SPLIT
|
||||
|
||||
@@ -529,3 +529,21 @@
|
||||
spaceport_security.ai_controller.blackboard[BB_BASIC_MOB_CURRENT_TARGET] = REF(usr)
|
||||
game.fuel += fuel
|
||||
game.food += food
|
||||
|
||||
#undef BUTTON_A_GOOD_FIND
|
||||
#undef BUTTON_CONTINUE
|
||||
#undef BUTTON_CONTINUE_TRAVELS
|
||||
#undef BUTTON_DOCK
|
||||
#undef BUTTON_EXPLORE_SHIP
|
||||
#undef BUTTON_FIX_ENGINE
|
||||
#undef BUTTON_GO_AROUND
|
||||
#undef BUTTON_KEEP_SPEED
|
||||
#undef BUTTON_LEAVE_THE_DERELICT
|
||||
#undef BUTTON_OH
|
||||
#undef BUTTON_REPAIR_ELECTRONICS
|
||||
#undef BUTTON_RESTORE_HULL
|
||||
#undef BUTTON_SLOW_DOWN
|
||||
#undef BUTTON_SPEED_PAST
|
||||
#undef BUTTON_WAIT
|
||||
#undef BUTTON_WELCOME_ABOARD
|
||||
#undef BUTTON_WHERE_DID_YOU_GO
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
#define IMPORTANT_ACTION_COOLDOWN (60 SECONDS)
|
||||
#define EMERGENCY_ACCESS_COOLDOWN (30 SECONDS)
|
||||
#define MAX_STATUS_LINE_LENGTH 40
|
||||
|
||||
#define STATE_BUYING_SHUTTLE "buying_shuttle"
|
||||
#define STATE_CHANGING_STATUS "changing_status"
|
||||
|
||||
@@ -2302,6 +2302,9 @@
|
||||
SIGNAL_HANDLER
|
||||
set_connected_scanner(null)
|
||||
|
||||
#undef GENETIC_DAMAGE_PULSE_UNIQUE_IDENTITY
|
||||
#undef GENETIC_DAMAGE_PULSE_UNIQUE_FEATURES
|
||||
|
||||
#undef ENZYME_COPY_BASE_COOLDOWN
|
||||
#undef INJECTOR_TIMEOUT
|
||||
#undef NUMBER_OF_BUFFERS
|
||||
|
||||
@@ -209,3 +209,5 @@ GLOBAL_LIST_EMPTY(order_console_products)
|
||||
|
||||
/obj/machinery/computer/order_console/proc/order_groceries(mob/living/purchaser, obj/item/card/id/card, list/groceries)
|
||||
return
|
||||
|
||||
#undef CREDIT_TYPE_CREDIT
|
||||
|
||||
@@ -500,3 +500,4 @@
|
||||
#undef PRINTOUT_MISSING
|
||||
#undef PRINTOUT_RAPSHEET
|
||||
#undef PRINTOUT_WANTED
|
||||
#undef MAX_CRIME_NAME_LEN
|
||||
|
||||
@@ -58,12 +58,6 @@
|
||||
#define AIRLOCK_FRAME_OPEN "open"
|
||||
#define AIRLOCK_FRAME_OPENING "opening"
|
||||
|
||||
#define AIRLOCK_LIGHT_BOLTS "bolts"
|
||||
#define AIRLOCK_LIGHT_EMERGENCY "emergency"
|
||||
#define AIRLOCK_LIGHT_DENIED "denied"
|
||||
#define AIRLOCK_LIGHT_CLOSING "closing"
|
||||
#define AIRLOCK_LIGHT_OPENING "opening"
|
||||
|
||||
#define AIRLOCK_SECURITY_NONE 0 //Normal airlock //Wires are not secured
|
||||
#define AIRLOCK_SECURITY_IRON 1 //Medium security airlock //There is a simple iron plate over wires (use welder)
|
||||
#define AIRLOCK_SECURITY_PLASTEEL_I_S 2 //Sliced inner plating (use crowbar), jumps to 0
|
||||
@@ -1665,3 +1659,8 @@
|
||||
#undef DOOR_CLOSE_WAIT
|
||||
|
||||
#undef DOOR_VISION_DISTANCE
|
||||
|
||||
#undef AIRLOCK_FRAME_CLOSED
|
||||
#undef AIRLOCK_FRAME_CLOSING
|
||||
#undef AIRLOCK_FRAME_OPEN
|
||||
#undef AIRLOCK_FRAME_OPENING
|
||||
|
||||
@@ -909,3 +909,4 @@
|
||||
#undef CONSTRUCTION_PANEL_OPEN
|
||||
#undef CONSTRUCTION_NO_CIRCUIT
|
||||
#undef REACTIVATION_DELAY
|
||||
#undef DEFAULT_STEP_TIME
|
||||
|
||||
@@ -308,3 +308,9 @@
|
||||
/obj/machinery/airlock_controller/update_icon_state()
|
||||
icon_state = "[base_icon_state]_[processing ? "process" : "standby"]"
|
||||
return ..()
|
||||
|
||||
#undef AIRLOCK_STATE_CLOSED
|
||||
#undef AIRLOCK_STATE_DEPRESSURIZE
|
||||
#undef AIRLOCK_STATE_INOPEN
|
||||
#undef AIRLOCK_STATE_OUTOPEN
|
||||
#undef AIRLOCK_STATE_PRESSURIZE
|
||||
|
||||
@@ -859,9 +859,10 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
|
||||
pixel_y = -32
|
||||
alpha = 100
|
||||
|
||||
#undef HOLOPAD_PASSIVE_POWER_USAGE
|
||||
#undef HOLOGRAM_POWER_USAGE
|
||||
#undef CAN_HEAR_MASTERS
|
||||
#undef CAN_HEAR_ACTIVE_HOLOCALLS
|
||||
#undef CAN_HEAR_RECORD_MODE
|
||||
#undef CAN_HEAR_ALL_FLAGS
|
||||
#undef CAN_HEAR_HOLOCALL_USER
|
||||
#undef CAN_HEAR_MASTERS
|
||||
#undef CAN_HEAR_RECORD_MODE
|
||||
#undef HOLOGRAM_POWER_USAGE
|
||||
#undef HOLOPAD_PASSIVE_POWER_USAGE
|
||||
|
||||
@@ -433,3 +433,5 @@
|
||||
|
||||
#undef MIN_IV_TRANSFER_RATE
|
||||
#undef MAX_IV_TRANSFER_RATE
|
||||
|
||||
#undef IV_TRANSFER_RATE_STEP
|
||||
|
||||
@@ -373,3 +373,9 @@
|
||||
patient_ref = null
|
||||
clearScans()
|
||||
. = TRUE
|
||||
|
||||
|
||||
#undef KIOSK_SCANNING_GENERAL
|
||||
#undef KIOSK_SCANNING_NEURORAD
|
||||
#undef KIOSK_SCANNING_REAGENTS
|
||||
#undef KIOSK_SCANNING_SYMPTOMS
|
||||
|
||||
@@ -445,7 +445,7 @@ DEFINE_BITFIELD(turret_flags, list(
|
||||
if(issilicon(A))
|
||||
if(!(turret_flags & TURRET_FLAG_SHOOT_BORGS))
|
||||
continue
|
||||
|
||||
|
||||
var/mob/living/silicon/sillycone = A
|
||||
|
||||
if(ispAI(A))
|
||||
@@ -1179,3 +1179,16 @@ DEFINE_BITFIELD(turret_flags, list(
|
||||
if(istype(P, /obj/projectile/beam/lasertag/bluetag))
|
||||
toggle_on(FALSE)
|
||||
addtimer(CALLBACK(src, PROC_REF(toggle_on), TRUE), 10 SECONDS)
|
||||
|
||||
#undef TURRET_STUN
|
||||
#undef TURRET_LETHAL
|
||||
#undef POPUP_ANIM_TIME
|
||||
#undef POPDOWN_ANIM_TIME
|
||||
#undef TURRET_FLAG_SHOOT_ALL_REACT
|
||||
#undef TURRET_FLAG_AUTH_WEAPONS
|
||||
#undef TURRET_FLAG_SHOOT_CRIMINALS
|
||||
#undef TURRET_FLAG_SHOOT_ALL
|
||||
#undef TURRET_FLAG_SHOOT_ANOMALOUS
|
||||
#undef TURRET_FLAG_SHOOT_UNSHIELDED
|
||||
#undef TURRET_FLAG_SHOOT_BORGS
|
||||
#undef TURRET_FLAG_SHOOT_HEADS
|
||||
|
||||
@@ -209,3 +209,13 @@
|
||||
|
||||
/obj/machinery/porta_turret_construct/attack_ai()
|
||||
return
|
||||
|
||||
#undef PTURRET_BOLTED
|
||||
#undef PTURRET_CLOSED
|
||||
#undef PTURRET_EXTERNAL_ARMOUR_ON
|
||||
#undef PTURRET_GUN_EQUIPPED
|
||||
#undef PTURRET_INTERNAL_ARMOUR_ON
|
||||
#undef PTURRET_SENSORS_ON
|
||||
#undef PTURRET_START_EXTERNAL_ARMOUR
|
||||
#undef PTURRET_START_INTERNAL_ARMOUR
|
||||
#undef PTURRET_UNSECURED
|
||||
|
||||
@@ -458,6 +458,15 @@
|
||||
new /obj/effect/pod_landingzone(drop_location(), toLaunch)
|
||||
qdel(src)
|
||||
|
||||
#undef ROULETTE_DOZ_COL_PAYOUT
|
||||
#undef ROULETTE_BET_1TO12
|
||||
#undef ROULETTE_BET_13TO24
|
||||
#undef ROULETTE_BET_25TO36
|
||||
|
||||
#undef ROULETTE_BET_2TO1_FIRST
|
||||
#undef ROULETTE_BET_2TO1_SECOND
|
||||
#undef ROULETTE_BET_2TO1_THIRD
|
||||
|
||||
#undef ROULETTE_SINGLES_PAYOUT
|
||||
#undef ROULETTE_SIMPLE_PAYOUT
|
||||
|
||||
|
||||
@@ -522,3 +522,6 @@
|
||||
else
|
||||
if(isprojectile(mover))
|
||||
return prob(10)
|
||||
|
||||
#undef ACTIVE_SETUPFIELDS
|
||||
#undef ACTIVE_HASFIELDS
|
||||
|
||||
@@ -354,11 +354,12 @@
|
||||
|
||||
return amount
|
||||
|
||||
#undef SEVEN
|
||||
#undef SPIN_TIME
|
||||
#undef JACKPOT
|
||||
#undef BIG_PRIZE
|
||||
#undef COIN
|
||||
#undef HOLOCHIP
|
||||
#undef JACKPOT
|
||||
#undef REEL_DEACTIVATE_DELAY
|
||||
#undef SEVEN
|
||||
#undef SMALL_PRIZE
|
||||
#undef SPIN_PRICE
|
||||
#undef HOLOCHIP
|
||||
#undef COIN
|
||||
#undef SPIN_TIME
|
||||
|
||||
@@ -6,12 +6,6 @@
|
||||
#define SCROLL_RATE (0.04 SECONDS) // time per pixel
|
||||
#define LINE1_Y -8
|
||||
#define LINE2_Y -15
|
||||
|
||||
#define SD_BLANK 0 // 0 = Blank
|
||||
#define SD_EMERGENCY 1 // 1 = Emergency Shuttle timer
|
||||
#define SD_MESSAGE 2 // 2 = Arbitrary message(s)
|
||||
#define SD_PICTURE 3 // 3 = alert picture
|
||||
|
||||
/// Status display which can show images and scrolling text.
|
||||
/obj/machinery/status_display
|
||||
name = "status display"
|
||||
|
||||
@@ -439,3 +439,7 @@
|
||||
potential_tinder.extinguish_mob()
|
||||
for(var/obj/item/potential_tinder in location)
|
||||
potential_tinder.extinguish()
|
||||
|
||||
#undef MINIMUM_FOAM_DILUTION_RANGE
|
||||
#undef MINIMUM_FOAM_DILUTION
|
||||
#undef FOAM_REAGENT_SCALE
|
||||
|
||||
@@ -193,3 +193,4 @@ RSF
|
||||
to_dispense = /obj/item/food/cookie
|
||||
to_chat(user, span_notice("Cookie Synthesizer reset."))
|
||||
|
||||
#undef OBJECT_OR_LIST_ELEMENT
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user