diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index 460ed34460c..d37d04d297f 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -89,9 +89,11 @@ #define TR_KEEPITEMS (1<<0) #define TR_KEEPVIRUS (1<<1) #define TR_KEEPDAMAGE (1<<2) -#define TR_HASHNAME (1<<3) // hashing names (e.g. monkey(e34f)) (only in monkeyize) +/// hashing names (e.g. monkey(e34f)) (only in monkeyize) +#define TR_HASHNAME (1<<3) #define TR_KEEPIMPLANTS (1<<4) -#define TR_KEEPSE (1<<5) // changelings shouldn't edit the DNA's SE when turning into a monkey +/// changelings shouldn't edit the DNA's SE when turning into a monkey +#define TR_KEEPSE (1<<5) #define TR_DEFAULTMSG (1<<6) #define TR_KEEPORGANS (1<<8) #define TR_KEEPSTUNS (1<<9) @@ -109,17 +111,21 @@ #define LIPS 5 #define NOBLOOD 6 #define NOTRANSSTING 7 -#define MUTCOLORS_PARTSONLY 8 //Used if we want the mutant colour to be only used by mutant bodyparts. Don't combine this with MUTCOLORS, or it will be useless. +/// Used if we want the mutant colour to be only used by mutant bodyparts. Don't combine this with MUTCOLORS, or it will be useless. +#define MUTCOLORS_PARTSONLY 8 #define NOZOMBIE 9 -#define DIGITIGRADE 10 //Uses weird leg sprites. Optional for Lizards, required for ashwalkers. Don't give it to other races unless you make sprites for this (see human_parts_greyscale.dmi) +/// Uses weird leg sprites. Optional for Lizards, required for ashwalkers. Don't give it to other races unless you make sprites for this (see human_parts_greyscale.dmi) +#define DIGITIGRADE 10 #define NO_UNDERWEAR 11 #define NOSTOMACH 12 #define NO_DNA_COPY 13 #define DRINKSBLOOD 14 #define NOFLASH 15 -#define DYNCOLORS 16 //Use this if you want to change the race's color without the player being able to pick their own color. AKA special color shifting +/// Use this if you want to change the race's color without the player being able to pick their own color. AKA special color shifting +#define DYNCOLORS 16 #define AGENDER 17 -#define NOEYESPRITES 18 //Do not draw eyes or eyeless overlay +/// Do not draw eyes or eyeless overlay +#define NOEYESPRITES 18 //organ slots #define ORGAN_SLOT_BRAIN "brain" @@ -150,7 +156,8 @@ //organ defines #define STANDARD_ORGAN_THRESHOLD 100 #define STANDARD_ORGAN_HEALING 0.001 -#define STANDARD_ORGAN_DECAY 0.00222 //designed to fail organs when left to decay for ~15 minutes +/// designed to fail organs when left to decay for ~15 minutes +#define STANDARD_ORGAN_DECAY 0.00222 //used for the can_chromosome var on mutations #define CHROMOSOME_NEVER 0 diff --git a/code/__DEFINES/_globals.dm b/code/__DEFINES/_globals.dm index 8c0c99eefda..b4651a345b4 100644 --- a/code/__DEFINES/_globals.dm +++ b/code/__DEFINES/_globals.dm @@ -1,15 +1,15 @@ //See also controllers/globals.dm -//Creates a global initializer with a given InitValue expression, do not use +/// Creates a global initializer with a given InitValue expression, do not use #define GLOBAL_MANAGED(X, InitValue)\ /datum/controller/global_vars/proc/InitGlobal##X(){\ ##X = ##InitValue;\ gvars_datum_init_order += #X;\ } -//Creates an empty global initializer, do not use +/// Creates an empty global initializer, do not use #define GLOBAL_UNMANAGED(X) /datum/controller/global_vars/proc/InitGlobal##X() { return; } -//Prevents a given global from being VV'd +/// Prevents a given global from being VV'd #ifndef TESTING #define GLOBAL_PROTECT(X)\ /datum/controller/global_vars/InitGlobal##X(){\ @@ -20,41 +20,41 @@ #define GLOBAL_PROTECT(X) #endif -//Standard BYOND global, do not use +/// Standard BYOND global, do not use #define GLOBAL_REAL_VAR(X) var/global/##X -//Standard typed BYOND global, do not use +/// Standard typed BYOND global, do not use #define GLOBAL_REAL(X, Typepath) var/global##Typepath/##X -//Defines a global var on the controller, do not use +/// Defines a global var on the controller, do not use #define GLOBAL_RAW(X) /datum/controller/global_vars/var/global##X -//Create an untyped global with an initializer expression +/// Create an untyped global with an initializer expression #define GLOBAL_VAR_INIT(X, InitValue) GLOBAL_RAW(/##X); GLOBAL_MANAGED(X, InitValue) -//Create a global const var, do not use +/// Create a global const var, do not use #define GLOBAL_VAR_CONST(X, InitValue) GLOBAL_RAW(/const/##X) = InitValue; GLOBAL_UNMANAGED(X) -//Create a list global with an initializer expression +/// Create a list global with an initializer expression #define GLOBAL_LIST_INIT(X, InitValue) GLOBAL_RAW(/list/##X); GLOBAL_MANAGED(X, InitValue) -//Create a list global that is initialized as an empty list +/// Create a list global that is initialized as an empty list #define GLOBAL_LIST_EMPTY(X) GLOBAL_LIST_INIT(X, list()) -// Create a typed list global with an initializer expression +/// Create a typed list global with an initializer expression #define GLOBAL_LIST_INIT_TYPED(X, Typepath, InitValue) GLOBAL_RAW(/list##Typepath/X); GLOBAL_MANAGED(X, InitValue) -// Create a typed list global that is initialized as an empty list +/// Create a typed list global that is initialized as an empty list #define GLOBAL_LIST_EMPTY_TYPED(X, Typepath) GLOBAL_LIST_INIT_TYPED(X, Typepath, list()) -//Create a typed global with an initializer expression +/// Create a typed global with an initializer expression #define GLOBAL_DATUM_INIT(X, Typepath, InitValue) GLOBAL_RAW(Typepath/##X); GLOBAL_MANAGED(X, InitValue) -//Create an untyped null global +/// Create an untyped null global #define GLOBAL_VAR(X) GLOBAL_RAW(/##X); GLOBAL_UNMANAGED(X) -//Create a null global list +/// Create a null global list #define GLOBAL_LIST(X) GLOBAL_RAW(/list/##X); GLOBAL_UNMANAGED(X) -//Create an typed null global +/// Create an typed null global #define GLOBAL_DATUM(X, Typepath) GLOBAL_RAW(Typepath/##X); GLOBAL_UNMANAGED(X) diff --git a/code/__DEFINES/_protect.dm b/code/__DEFINES/_protect.dm index f710ca77e35..27baee2f882 100644 --- a/code/__DEFINES/_protect.dm +++ b/code/__DEFINES/_protect.dm @@ -1,3 +1,4 @@ +///Protects a datum from being VV'd #define GENERAL_PROTECT_DATUM(Path)\ ##Path/can_vv_get(var_name){\ return FALSE;\ @@ -7,4 +8,4 @@ }\ ##Path/CanProcCall(procname){\ return FALSE;\ -} \ No newline at end of file +} diff --git a/code/__DEFINES/_tick.dm b/code/__DEFINES/_tick.dm index 10b815e547c..a89ec9229d9 100644 --- a/code/__DEFINES/_tick.dm +++ b/code/__DEFINES/_tick.dm @@ -1,13 +1,23 @@ +/// Tick limit while running normally #define TICK_LIMIT_RUNNING 80 +/// Tick limit used to resume things in stoplag #define TICK_LIMIT_TO_RUN 70 +/// Tick limit for MC while running #define TICK_LIMIT_MC 70 +/// Tick limit while initializing #define TICK_LIMIT_MC_INIT_DEFAULT 98 -#define TICK_USAGE world.tick_usage //for general usage -#define TICK_USAGE_REAL world.tick_usage //to be used where the result isn't checked +/// for general usage of tick_usage +#define TICK_USAGE world.tick_usage +/// to be used where the result isn't checked +#define TICK_USAGE_REAL world.tick_usage +/// Returns true if tick_usage is above the limit #define TICK_CHECK ( TICK_USAGE > Master.current_ticklimit ) +/// runs stoplag if tick_usage is above the limit #define CHECK_TICK ( TICK_CHECK ? stoplag() : 0 ) +/// Returns true if tick usage is above 95, for high priority usage #define TICK_CHECK_HIGH_PRIORITY ( TICK_USAGE > 95 ) +/// runs stoplag if tick_usage is above 95, for high priority usage #define CHECK_TICK_HIGH_PRIORITY ( TICK_CHECK_HIGH_PRIORITY? stoplag() : 0 ) diff --git a/code/__DEFINES/access.dm b/code/__DEFINES/access.dm index 8e7a93b2761..e55e391345b 100644 --- a/code/__DEFINES/access.dm +++ b/code/__DEFINES/access.dm @@ -1,21 +1,33 @@ -#define ACCESS_SECURITY 1 // Security equipment, security records, gulag item storage, secbots -#define ACCESS_BRIG 2 // Brig cells+timers, permabrig, gulag+gulag shuttle, prisoner management console -#define ACCESS_ARMORY 3 // Armory, gulag teleporter, execution chamber -#define ACCESS_FORENSICS_LOCKERS 4 //Detective's office, forensics lockers, security+medical records +// Security equipment, security records, gulag item storage, secbots +#define ACCESS_SECURITY 1 +/// Brig cells+timers, permabrig, gulag+gulag shuttle, prisoner management console +#define ACCESS_BRIG 2 + /// Armory, gulag teleporter, execution chamber +#define ACCESS_ARMORY 3 +///Detective's office, forensics lockers, security+medical records +#define ACCESS_FORENSICS_LOCKERS 4 +/// Medical general access #define ACCESS_MEDICAL 5 +/// Morgue access #define ACCESS_MORGUE 6 -#define ACCESS_TOX 7 //R&D department, R&D console, burn chamber on some maps -#define ACCESS_TOX_STORAGE 8 //Toxins storage, burn chamber on some maps +/// R&D department, R&D console, burn chamber on some maps +#define ACCESS_TOX 7 +/// Toxins storage, burn chamber on some maps +#define ACCESS_TOX_STORAGE 8 +/// Genetics access #define ACCESS_GENETICS 9 -#define ACCESS_ENGINE 10 //Engineering area, power monitor, power flow control console -#define ACCESS_ENGINE_EQUIP 11 //APCs, EngiVend/YouTool, engineering equipment lockers +/// Engineering area, power monitor, power flow control console +#define ACCESS_ENGINE 10 +///APCs, EngiVend/YouTool, engineering equipment lockers +#define ACCESS_ENGINE_EQUIP 11 #define ACCESS_MAINT_TUNNELS 12 #define ACCESS_EXTERNAL_AIRLOCKS 13 #define ACCESS_CHANGE_IDS 15 #define ACCESS_AI_UPLOAD 16 #define ACCESS_TELEPORTER 17 #define ACCESS_EVA 18 -#define ACCESS_HEADS 19 //Bridge, EVA storage windoors, gateway shutters, AI integrity restorer, clone record deletion, comms console +/// Bridge, EVA storage windoors, gateway shutters, AI integrity restorer, clone record deletion, comms console +#define ACCESS_HEADS 19 #define ACCESS_CAPTAIN 20 #define ACCESS_ALL_PERSONAL_LOCKERS 21 #define ACCESS_CHAPEL_OFFICE 22 @@ -48,43 +60,68 @@ #define ACCESS_CE 56 #define ACCESS_HOP 57 #define ACCESS_HOS 58 -#define ACCESS_RC_ANNOUNCE 59 //Request console announcements -#define ACCESS_KEYCARD_AUTH 60 //Used for events which require at least two people to confirm them -#define ACCESS_TCOMSAT 61 // has access to the entire telecomms satellite / machinery +/// Request console announcements +#define ACCESS_RC_ANNOUNCE 59 +/// Used for events which require at least two people to confirm them +#define ACCESS_KEYCARD_AUTH 60 +/// has access to the entire telecomms satellite / machinery +#define ACCESS_TCOMSAT 61 #define ACCESS_GATEWAY 62 -#define ACCESS_SEC_DOORS 63 // Outer brig doors, department security posts -#define ACCESS_MINERAL_STOREROOM 64 //For releasing minerals from the ORM +/// Outer brig doors, department security posts +#define ACCESS_SEC_DOORS 63 +/// For releasing minerals from the ORM +#define ACCESS_MINERAL_STOREROOM 64 #define ACCESS_MINISAT 65 -#define ACCESS_WEAPONS 66 //Weapon authorization for secbots -#define ACCESS_NETWORK 67 //NTnet diagnostics/monitoring software -#define ACCESS_CLONING 68 //Cloning room and clone pod ejection +/// Weapon authorization for secbots +#define ACCESS_WEAPONS 66 +/// NTnet diagnostics/monitoring software +#define ACCESS_NETWORK 67 +/// Cloning room and clone pod ejection +#define ACCESS_CLONING 68 //BEGIN CENTCOM ACCESS /*Should leave plenty of room if we need to add more access levels. Mostly for admin fun times.*/ -#define ACCESS_CENT_GENERAL 101//General facilities. CentCom ferry. -#define ACCESS_CENT_THUNDER 102//Thunderdome. -#define ACCESS_CENT_SPECOPS 103//Special Ops. Captain's display case, Marauder and Seraph mechs. -#define ACCESS_CENT_MEDICAL 104//Medical/Research -#define ACCESS_CENT_LIVING 105//Living quarters. -#define ACCESS_CENT_STORAGE 106//Generic storage areas. -#define ACCESS_CENT_TELEPORTER 107//Teleporter. -#define ACCESS_CENT_CAPTAIN 109//Captain's office/ID comp/AI. -#define ACCESS_CENT_BAR 110 // The non-existent CentCom Bar +/// General facilities. CentCom ferry. +#define ACCESS_CENT_GENERAL 101 +/// Thunderdome. +#define ACCESS_CENT_THUNDER 102 +/// Special Ops. Captain's display case, Marauder and Seraph mechs. +#define ACCESS_CENT_SPECOPS 103 +/// Medical/Research +#define ACCESS_CENT_MEDICAL 104 +/// Living quarters. +#define ACCESS_CENT_LIVING 105 +/// Generic storage areas. +#define ACCESS_CENT_STORAGE 106 +/// Teleporter. +#define ACCESS_CENT_TELEPORTER 107 +/// Captain's office/ID comp/AI. +#define ACCESS_CENT_CAPTAIN 109 +/// The non-existent CentCom Bar +#define ACCESS_CENT_BAR 110 //The Syndicate -#define ACCESS_SYNDICATE 150//General Syndicate Access. Includes Syndicate mechs and ruins. -#define ACCESS_SYNDICATE_LEADER 151//Nuke Op Leader Access +/// General Syndicate Access. Includes Syndicate mechs and ruins. +#define ACCESS_SYNDICATE 150 +/// Nuke Op Leader Access +#define ACCESS_SYNDICATE_LEADER 151 //Away Missions or Ruins /*For generic away-mission/ruin access. Why would normal crew have access to a long-abandoned derelict or a 2000 year-old temple? */ -#define ACCESS_AWAY_GENERAL 200//General facilities. -#define ACCESS_AWAY_MAINT 201//Away maintenance -#define ACCESS_AWAY_MED 202//Away medical -#define ACCESS_AWAY_SEC 203//Away security -#define ACCESS_AWAY_ENGINE 204//Away engineering -#define ACCESS_AWAY_GENERIC1 205//Away generic access +/// Away general facilities. +#define ACCESS_AWAY_GENERAL 200 +/// Away maintenance +#define ACCESS_AWAY_MAINT 201 +/// Away medical +#define ACCESS_AWAY_MED 202 +/// Away security +#define ACCESS_AWAY_SEC 203 +/// Away engineering +#define ACCESS_AWAY_ENGINE 204 +///Away generic access +#define ACCESS_AWAY_GENERIC1 205 #define ACCESS_AWAY_GENERIC2 206 #define ACCESS_AWAY_GENERIC3 207 #define ACCESS_AWAY_GENERIC4 208 diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index 13a2ef79da2..ea18a90908a 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -13,14 +13,16 @@ #define BANTYPE_TEMP 2 #define BANTYPE_JOB_PERMA 3 #define BANTYPE_JOB_TEMP 4 -#define BANTYPE_ANY_FULLBAN 5 //used to locate stuff to unban. +/// used to locate stuff to unban. +#define BANTYPE_ANY_FULLBAN 5 #define BANTYPE_ADMIN_PERMA 7 #define BANTYPE_ADMIN_TEMP 8 -#define BANTYPE_ANY_JOB 9 //used to remove jobbans +/// used to remove jobbans +#define BANTYPE_ANY_JOB 9 //Admin Permissions -#define R_BUILD (1<<0) +#define R_BUILD (1<<0) #define R_ADMIN (1<<1) #define R_BAN (1<<2) #define R_FUN (1<<3) @@ -31,7 +33,7 @@ #define R_STEALTH (1<<8) #define R_POLL (1<<9) #define R_VAREDIT (1<<10) -#define R_SOUND (1<<11) +#define R_SOUND (1<<11) #define R_SPAWN (1<<12) #define R_AUTOADMIN (1<<13) #define R_DBRANKS (1<<14) @@ -78,10 +80,13 @@ #define AHELP_CLOSED 2 #define AHELP_RESOLVED 3 -#define ROUNDSTART_LOGOUT_REPORT_TIME 6000 //Amount of time (in deciseconds) after the rounds starts, that the player disconnect report is issued. +/// Amount of time (in deciseconds) after the rounds starts, that the player disconnect report is issued. +#define ROUNDSTART_LOGOUT_REPORT_TIME 6000 -#define SPAM_TRIGGER_WARNING 5 //Number of identical messages required before the spam-prevention will warn you to stfu -#define SPAM_TRIGGER_AUTOMUTE 10 //Number of identical messages required before the spam-prevention will automute you +/// Number of identical messages required before the spam-prevention will warn you to stfu +#define SPAM_TRIGGER_WARNING 5 +/// Number of identical messages required before the spam-prevention will automute you +#define SPAM_TRIGGER_AUTOMUTE 10 ///Max length of a keypress command before it's considered to be a forged packet/bogus command #define MAX_KEYPRESS_COMMANDLENGTH 16 @@ -94,5 +99,7 @@ #define STICKYBAN_ROGUE_CHECK_TIME 5 -#define POLICY_POLYMORPH "polymorph" //Shown to vicitm of staff of change and related effects. -#define POLICY_VERB_HEADER "policy_verb_header" //Shown on top of policy verb window +/// Shown to vicitm of staff of change and related effects. +#define POLICY_POLYMORPH "polymorph" +/// Shown on top of policy verb window +#define POLICY_VERB_HEADER "policy_verb_header" diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index 7a7617a1db4..2d9844cdb68 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -26,9 +26,11 @@ //Blob -#define BLOB_REROLL_TIME 2400 //blob gets a free reroll every X time +/// blob gets a free reroll every X time +#define BLOB_REROLL_TIME 2400 #define BLOB_SPREAD_COST 4 -#define BLOB_ATTACK_REFUND 2 //blob refunds this much if it attacks and doesn't spread +/// blob refunds this much if it attacks and doesn't spread +#define BLOB_ATTACK_REFUND 2 #define BLOB_REFLECTOR_COST 15 @@ -47,9 +49,12 @@ #define DEATHSQUAD_LEADER "ds_leader" //Shuttle hijacking -#define HIJACK_NEUTRAL 0 //Does not stop hijacking but itself won't hijack -#define HIJACK_HIJACKER 1 //Needs to be present for shuttle to be hijacked -#define HIJACK_PREVENT 2 //Prevents hijacking same way as non-antags +/// Does not stop hijacking but itself won't hijack +#define HIJACK_NEUTRAL 0 +/// Needs to be present for shuttle to be hijacked +#define HIJACK_HIJACKER 1 +/// Prevents hijacking same way as non-antags +#define HIJACK_PREVENT 2 //Syndicate Contracts #define CONTRACT_STATUS_INACTIVE 1 diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index bf0163cb594..afac9b40f62 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -12,33 +12,57 @@ #define META_GAS_FUSION_POWER 7 //ATMOS //stuff you should probably leave well alone! -#define R_IDEAL_GAS_EQUATION 8.31 //kPa*L/(K*mol) -#define ONE_ATMOSPHERE 101.325 //kPa -#define TCMB 2.7 // -270.3degC -#define TCRYO 225 // -48.15degC -#define T0C 273.15 // 0degC -#define T20C 293.15 // 20degC +/// kPa*L/(K*mol) +#define R_IDEAL_GAS_EQUATION 8.31 +/// kPa +#define ONE_ATMOSPHERE 101.325 +/// -270.3degC +#define TCMB 2.7 +/// -48.15degC +#define TCRYO 225 +/// 0degC +#define T0C 273.15 +/// 20degC +#define T20C 293.15 -#define MOLES_CELLSTANDARD (ONE_ATMOSPHERE*CELL_VOLUME/(T20C*R_IDEAL_GAS_EQUATION)) //moles in a 2.5 m^3 cell at 101.325 Pa and 20 degC -#define M_CELL_WITH_RATIO (MOLES_CELLSTANDARD * 0.005) //compared against for superconductivity -#define O2STANDARD 0.21 //percentage of oxygen in a normal mixture of air -#define N2STANDARD 0.79 //same but for nitrogen -#define MOLES_O2STANDARD (MOLES_CELLSTANDARD*O2STANDARD) // O2 standard value (21%) -#define MOLES_N2STANDARD (MOLES_CELLSTANDARD*N2STANDARD) // N2 standard value (79%) -#define CELL_VOLUME 2500 //liters in a cell -#define BREATH_VOLUME 0.5 //liters in a normal breath -#define BREATH_PERCENTAGE (BREATH_VOLUME/CELL_VOLUME) //Amount of air to take a from a tile +///moles in a 2.5 m^3 cell at 101.325 Pa and 20 degC +#define MOLES_CELLSTANDARD (ONE_ATMOSPHERE*CELL_VOLUME/(T20C*R_IDEAL_GAS_EQUATION)) +///compared against for superconductivity +#define M_CELL_WITH_RATIO (MOLES_CELLSTANDARD * 0.005) +/// percentage of oxygen in a normal mixture of air +#define O2STANDARD 0.21 +/// same but for nitrogen +#define N2STANDARD 0.79 +/// O2 standard value (21%) +#define MOLES_O2STANDARD (MOLES_CELLSTANDARD*O2STANDARD) +/// N2 standard value (79%) +#define MOLES_N2STANDARD (MOLES_CELLSTANDARD*N2STANDARD) +/// liters in a cell +#define CELL_VOLUME 2500 +/// liters in a normal breath +#define BREATH_VOLUME 0.5 +/// Amount of air to take a from a tile +#define BREATH_PERCENTAGE (BREATH_VOLUME/CELL_VOLUME) //EXCITED GROUPS -#define EXCITED_GROUP_BREAKDOWN_CYCLES 4 //number of FULL air controller ticks before an excited group breaks down (averages gas contents across turfs) -#define EXCITED_GROUP_DISMANTLE_CYCLES 16 //number of FULL air controller ticks before an excited group dismantles and removes its turfs from active -#define MINIMUM_AIR_RATIO_TO_SUSPEND 0.1 //Ratio of air that must move to/from a tile to reset group processing -#define MINIMUM_AIR_RATIO_TO_MOVE 0.001 //Minimum ratio of air that must move to/from a tile -#define MINIMUM_AIR_TO_SUSPEND (MOLES_CELLSTANDARD*MINIMUM_AIR_RATIO_TO_SUSPEND) //Minimum amount of air that has to move before a group processing can be suspended -#define MINIMUM_MOLES_DELTA_TO_MOVE (MOLES_CELLSTANDARD*MINIMUM_AIR_RATIO_TO_MOVE) //Either this must be active -#define MINIMUM_TEMPERATURE_TO_MOVE (T20C+100) //or this (or both, obviously) -#define MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND 4 //Minimum temperature difference before group processing is suspended -#define MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER 0.5 //Minimum temperature difference before the gas temperatures are just set to be equal +/// number of FULL air controller ticks before an excited group breaks down (averages gas contents across turfs) +#define EXCITED_GROUP_BREAKDOWN_CYCLES 4 +/// number of FULL air controller ticks before an excited group dismantles and removes its turfs from active +#define EXCITED_GROUP_DISMANTLE_CYCLES 16 +/// Ratio of air that must move to/from a tile to reset group processing +#define MINIMUM_AIR_RATIO_TO_SUSPEND 0.1 +/// Minimum ratio of air that must move to/from a tile +#define MINIMUM_AIR_RATIO_TO_MOVE 0.001 +/// Minimum amount of air that has to move before a group processing can be suspended +#define MINIMUM_AIR_TO_SUSPEND (MOLES_CELLSTANDARD*MINIMUM_AIR_RATIO_TO_SUSPEND) +/// Either this must be active +#define MINIMUM_MOLES_DELTA_TO_MOVE (MOLES_CELLSTANDARD*MINIMUM_AIR_RATIO_TO_MOVE) +/// or this (or both, obviously) +#define MINIMUM_TEMPERATURE_TO_MOVE (T20C+100) +/// Minimum temperature difference before group processing is suspended +#define MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND 4 +/// Minimum temperature difference before the gas temperatures are just set to be equal +#define MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER 0.5 #define MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTION (T20C+10) #define MINIMUM_TEMPERATURE_START_SUPERCONDUCTION (T20C+200) @@ -47,8 +71,10 @@ //Should not exceed 0.4 else strange heat flow occur #define WALL_HEAT_TRANSFER_COEFFICIENT 0.0 #define OPEN_HEAT_TRANSFER_COEFFICIENT 0.4 -#define WINDOW_HEAT_TRANSFER_COEFFICIENT 0.1 //a hack for now -#define HEAT_CAPACITY_VACUUM 7000 //a hack to help make vacuums "cold", sacrificing realism for gameplay +/// a hack for now +#define WINDOW_HEAT_TRANSFER_COEFFICIENT 0.1 +/// a hack to help make vacuums "cold", sacrificing realism for gameplay +#define HEAT_CAPACITY_VACUUM 7000 //FIRE #define FIRE_MINIMUM_TEMPERATURE_TO_SPREAD (150+T0C) @@ -62,10 +88,13 @@ //GASES #define MIN_TOXIC_GAS_DAMAGE 1 #define MAX_TOXIC_GAS_DAMAGE 10 -#define MOLES_GAS_VISIBLE 0.25 //Moles in a standard cell after which gases are visible +/// Moles in a standard cell after which gases are visible +#define MOLES_GAS_VISIBLE 0.25 -#define FACTOR_GAS_VISIBLE_MAX 20 //moles_visible * FACTOR_GAS_VISIBLE_MAX = Moles after which gas is at maximum visibility -#define MOLES_GAS_VISIBLE_STEP 0.25 //Mole step for alpha updates. This means alpha can update at 0.25, 0.5, 0.75 and so on +/// moles_visible * FACTOR_GAS_VISIBLE_MAX = Moles after which gas is at maximum visibility +#define FACTOR_GAS_VISIBLE_MAX 20 +/// Mole step for alpha updates. This means alpha can update at 0.25, 0.5, 0.75 and so on +#define MOLES_GAS_VISIBLE_STEP 0.25 //REACTIONS //return values for reactions (bitflags) @@ -74,58 +103,94 @@ #define STOP_REACTIONS 2 // Pressure limits. -#define HAZARD_HIGH_PRESSURE 550 //This determins at what pressure the ultra-high pressure red icon is displayed. (This one is set as a constant) -#define WARNING_HIGH_PRESSURE 325 //This determins when the orange pressure icon is displayed (it is 0.7 * HAZARD_HIGH_PRESSURE) -#define WARNING_LOW_PRESSURE 50 //This is when the gray low pressure icon is displayed. (it is 2.5 * HAZARD_LOW_PRESSURE) -#define HAZARD_LOW_PRESSURE 20 //This is when the black ultra-low pressure icon is displayed. (This one is set as a constant) +/// This determins at what pressure the ultra-high pressure red icon is displayed. (This one is set as a constant) +#define HAZARD_HIGH_PRESSURE 550 +/// This determins when the orange pressure icon is displayed (it is 0.7 * HAZARD_HIGH_PRESSURE) +#define WARNING_HIGH_PRESSURE 325 +/// This is when the gray low pressure icon is displayed. (it is 2.5 * HAZARD_LOW_PRESSURE) +#define WARNING_LOW_PRESSURE 50 +/// This is when the black ultra-low pressure icon is displayed. (This one is set as a constant) +#define HAZARD_LOW_PRESSURE 20 -#define TEMPERATURE_DAMAGE_COEFFICIENT 1.5 //This is used in handle_temperature_damage() for humans, and in reagents that affect body temperature. Temperature damage is multiplied by this amount. +/// This is used in handle_temperature_damage() for humans, and in reagents that affect body temperature. Temperature damage is multiplied by this amount. +#define TEMPERATURE_DAMAGE_COEFFICIENT 1.5 -#define BODYTEMP_NORMAL 310.15 //The natural temperature for a body -#define BODYTEMP_AUTORECOVERY_DIVISOR 11 //This is the divisor which handles how much of the temperature difference between the current body temperature and 310.15K (optimal temperature) humans auto-regenerate each tick. The higher the number, the slower the recovery. This is applied each tick, so long as the mob is alive. -#define BODYTEMP_AUTORECOVERY_MINIMUM 12 //Minimum amount of kelvin moved toward 310K per tick. So long as abs(310.15 - bodytemp) is more than 50. -#define BODYTEMP_COLD_DIVISOR 6 //Similar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is lower than their body temperature. Make it lower to lose bodytemp faster. -#define BODYTEMP_HEAT_DIVISOR 15 //Similar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is higher than their body temperature. Make it lower to gain bodytemp faster. -#define BODYTEMP_COOLING_MAX -100 //The maximum number of degrees that your body can cool in 1 tick, due to the environment, when in a cold area. -#define BODYTEMP_HEATING_MAX 30 //The maximum number of degrees that your body can heat up in 1 tick, due to the environment, when in a hot area. +/// The natural temperature for a body +#define BODYTEMP_NORMAL 310.15 +/// This is the divisor which handles how much of the temperature difference between the current body temperature and 310.15K (optimal temperature) humans auto-regenerate each tick. The higher the number, the slower the recovery. This is applied each tick, so long as the mob is alive. +#define BODYTEMP_AUTORECOVERY_DIVISOR 11 +/// Minimum amount of kelvin moved toward 310K per tick. So long as abs(310.15 - bodytemp) is more than 50. +#define BODYTEMP_AUTORECOVERY_MINIMUM 12 +///Similar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is lower than their body temperature. Make it lower to lose bodytemp faster. +#define BODYTEMP_COLD_DIVISOR 6 +/// Similar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is higher than their body temperature. Make it lower to gain bodytemp faster. +#define BODYTEMP_HEAT_DIVISOR 15 +/// The maximum number of degrees that your body can cool in 1 tick, due to the environment, when in a cold area. +#define BODYTEMP_COOLING_MAX -100 +/// The maximum number of degrees that your body can heat up in 1 tick, due to the environment, when in a hot area. +#define BODYTEMP_HEATING_MAX 30 -#define BODYTEMP_HEAT_DAMAGE_LIMIT (BODYTEMP_NORMAL + 50) // The limit the human body can take before it starts taking damage from heat. -#define BODYTEMP_COLD_DAMAGE_LIMIT (BODYTEMP_NORMAL - 50) // The limit the human body can take before it starts taking damage from coldness. +/// The limit the human body can take before it starts taking damage from heat. +#define BODYTEMP_HEAT_DAMAGE_LIMIT (BODYTEMP_NORMAL + 50) +/// The limit the human body can take before it starts taking damage from coldness. +#define BODYTEMP_COLD_DAMAGE_LIMIT (BODYTEMP_NORMAL - 50) -#define SPACE_HELM_MIN_TEMP_PROTECT 2.0 //what min_cold_protection_temperature is set to for space-helmet quality headwear. MUST NOT BE 0. -#define SPACE_HELM_MAX_TEMP_PROTECT 1500 //Thermal insulation works both ways /Malkevin -#define SPACE_SUIT_MIN_TEMP_PROTECT 2.0 //what min_cold_protection_temperature is set to for space-suit quality jumpsuits or suits. MUST NOT BE 0. +/// what min_cold_protection_temperature is set to for space-helmet quality headwear. MUST NOT BE 0. +#define SPACE_HELM_MIN_TEMP_PROTECT 2.0 +/// Thermal insulation works both ways /Malkevin +#define SPACE_HELM_MAX_TEMP_PROTECT 1500 +/// what min_cold_protection_temperature is set to for space-suit quality jumpsuits or suits. MUST NOT BE 0. +#define SPACE_SUIT_MIN_TEMP_PROTECT 2.0 #define SPACE_SUIT_MAX_TEMP_PROTECT 1500 -#define FIRE_SUIT_MIN_TEMP_PROTECT 60 //Cold protection for firesuits -#define FIRE_SUIT_MAX_TEMP_PROTECT 30000 //what max_heat_protection_temperature is set to for firesuit quality suits. MUST NOT BE 0. -#define FIRE_HELM_MIN_TEMP_PROTECT 60 //Cold protection for fire helmets -#define FIRE_HELM_MAX_TEMP_PROTECT 30000 //for fire helmet quality items (red and white hardhats) +/// Cold protection for firesuits +#define FIRE_SUIT_MIN_TEMP_PROTECT 60 +/// what max_heat_protection_temperature is set to for firesuit quality suits. MUST NOT BE 0. +#define FIRE_SUIT_MAX_TEMP_PROTECT 30000 +/// Cold protection for fire helmets +#define FIRE_HELM_MIN_TEMP_PROTECT 60 +/// for fire helmet quality items (red and white hardhats) +#define FIRE_HELM_MAX_TEMP_PROTECT 30000 -#define FIRE_IMMUNITY_MAX_TEMP_PROTECT 35000 //what max_heat_protection_temperature is set to for firesuit quality suits and helmets. MUST NOT BE 0. +/// what max_heat_protection_temperature is set to for firesuit quality suits and helmets. MUST NOT BE 0. +#define FIRE_IMMUNITY_MAX_TEMP_PROTECT 35000 -#define HELMET_MIN_TEMP_PROTECT 160 //For normal helmets -#define HELMET_MAX_TEMP_PROTECT 600 //For normal helmets -#define ARMOR_MIN_TEMP_PROTECT 160 //For armor -#define ARMOR_MAX_TEMP_PROTECT 600 //For armor +/// For normal helmets +#define HELMET_MIN_TEMP_PROTECT 160 +/// For normal helmets +#define HELMET_MAX_TEMP_PROTECT 600 +/// For armor +#define ARMOR_MIN_TEMP_PROTECT 160 +/// For armor +#define ARMOR_MAX_TEMP_PROTECT 600 -#define GLOVES_MIN_TEMP_PROTECT 2.0 //For some gloves (black and) -#define GLOVES_MAX_TEMP_PROTECT 1500 //For some gloves -#define SHOES_MIN_TEMP_PROTECT 2.0 //For gloves -#define SHOES_MAX_TEMP_PROTECT 1500 //For gloves +/// For some gloves (black and) +#define GLOVES_MIN_TEMP_PROTECT 2.0 +/// For some gloves +#define GLOVES_MAX_TEMP_PROTECT 1500 +/// For gloves +#define SHOES_MIN_TEMP_PROTECT 2.0 +/// For gloves +#define SHOES_MAX_TEMP_PROTECT 1500 -#define PRESSURE_DAMAGE_COEFFICIENT 4 //The amount of pressure damage someone takes is equal to (pressure / HAZARD_HIGH_PRESSURE)*PRESSURE_DAMAGE_COEFFICIENT, with the maximum of MAX_PRESSURE_DAMAGE +/// The amount of pressure damage someone takes is equal to (pressure / HAZARD_HIGH_PRESSURE)*PRESSURE_DAMAGE_COEFFICIENT, with the maximum of MAX_PRESSURE_DAMAGE +#define PRESSURE_DAMAGE_COEFFICIENT 4 #define MAX_HIGH_PRESSURE_DAMAGE 4 -#define LOW_PRESSURE_DAMAGE 4 //The amount of damage someone takes when in a low pressure area (The pressure threshold is so low that it doesn't make sense to do any calculations, so it just applies this flat value). +/// The amount of damage someone takes when in a low pressure area (The pressure threshold is so low that it doesn't make sense to do any calculations, so it just applies this flat value). +#define LOW_PRESSURE_DAMAGE 4 -#define COLD_SLOWDOWN_FACTOR 20 //Humans are slowed by the difference between bodytemp and BODYTEMP_COLD_DAMAGE_LIMIT divided by this +/// Humans are slowed by the difference between bodytemp and BODYTEMP_COLD_DAMAGE_LIMIT divided by this +#define COLD_SLOWDOWN_FACTOR 20 //PIPES //Atmos pipe limits -#define MAX_OUTPUT_PRESSURE 4500 // (kPa) What pressure pumps and powered equipment max out at. -#define MAX_TRANSFER_RATE 200 // (L/s) Maximum speed powered equipment can work at. -#define VOLUME_PUMP_LEAK_AMOUNT 0.1 //10% of an overclocked volume pump leaks into the air +/// (kPa) What pressure pumps and powered equipment max out at. +#define MAX_OUTPUT_PRESSURE 4500 +/// (L/s) Maximum speed powered equipment can work at. +#define MAX_TRANSFER_RATE 200 +/// 10% of an overclocked volume pump leaks into the air +#define VOLUME_PUMP_LEAK_AMOUNT 0.1 //used for device_type vars #define UNARY 1 #define BINARY 2 @@ -133,11 +198,16 @@ #define QUATERNARY 4 //TANKS -#define TANK_MELT_TEMPERATURE 1000000 //temperature in kelvins at which a tank will start to melt -#define TANK_LEAK_PRESSURE (30.*ONE_ATMOSPHERE) //Tank starts leaking -#define TANK_RUPTURE_PRESSURE (35.*ONE_ATMOSPHERE) //Tank spills all contents into atmosphere -#define TANK_FRAGMENT_PRESSURE (40.*ONE_ATMOSPHERE) //Boom 3x3 base explosion -#define TANK_FRAGMENT_SCALE (6.*ONE_ATMOSPHERE) //+1 for each SCALE kPa aboe threshold +/// temperature in kelvins at which a tank will start to melt +#define TANK_MELT_TEMPERATURE 1000000 +/// Tank starts leaking +#define TANK_LEAK_PRESSURE (30.*ONE_ATMOSPHERE) +/// Tank spills all contents into atmosphere +#define TANK_RUPTURE_PRESSURE (35.*ONE_ATMOSPHERE) +/// Boom 3x3 base explosion +#define TANK_FRAGMENT_PRESSURE (40.*ONE_ATMOSPHERE) +/// +1 for each SCALE kPa aboe threshold +#define TANK_FRAGMENT_SCALE (6.*ONE_ATMOSPHERE) #define TANK_MAX_RELEASE_PRESSURE (ONE_ATMOSPHERE*3) #define TANK_MIN_RELEASE_PRESSURE 0 #define TANK_DEFAULT_RELEASE_PRESSURE 16 @@ -145,20 +215,28 @@ //CANATMOSPASS #define ATMOS_PASS_YES 1 #define ATMOS_PASS_NO 0 -#define ATMOS_PASS_PROC -1 //ask CanAtmosPass() -#define ATMOS_PASS_DENSITY -2 //just check density +/// ask CanAtmosPass() +#define ATMOS_PASS_PROC -1 +/// just check density +#define ATMOS_PASS_DENSITY -2 #define CANATMOSPASS(A, O) ( A.CanAtmosPass == ATMOS_PASS_PROC ? A.CanAtmosPass(O) : ( A.CanAtmosPass == ATMOS_PASS_DENSITY ? !A.density : A.CanAtmosPass ) ) #define CANVERTICALATMOSPASS(A, O) ( A.CanAtmosPassVertical == ATMOS_PASS_PROC ? A.CanAtmosPass(O, TRUE) : ( A.CanAtmosPassVertical == ATMOS_PASS_DENSITY ? !A.density : A.CanAtmosPassVertical ) ) //OPEN TURF ATMOS -#define OPENTURF_DEFAULT_ATMOS "o2=22;n2=82;TEMP=293.15" //the default air mix that open turfs spawn +/// the default air mix that open turfs spawn +#define OPENTURF_DEFAULT_ATMOS "o2=22;n2=82;TEMP=293.15" #define OPENTURF_LOW_PRESSURE "o2=14;n2=30;TEMP=293.15" -#define TCOMMS_ATMOS "n2=100;TEMP=80" //-193,15°C telecommunications. also used for xenobiology slime killrooms -#define AIRLESS_ATMOS "TEMP=2.7" //space -#define FROZEN_ATMOS "o2=22;n2=82;TEMP=180" //-93.15°C snow and ice turfs -#define KITCHEN_COLDROOM_ATMOS "o2=33;n2=124;TEMP=193.15" //-80°C kitchen coldroom; higher amount of mol to reach about 101.3 kpA -#define BURNMIX_ATMOS "o2=2500;plasma=5000;TEMP=370" //used in the holodeck burn test program +/// -193,15°C telecommunications. also used for xenobiology slime killrooms +#define TCOMMS_ATMOS "n2=100;TEMP=80" +/// space +#define AIRLESS_ATMOS "TEMP=2.7" +/// -93.15°C snow and ice turfs +#define FROZEN_ATMOS "o2=22;n2=82;TEMP=180" +/// -80°C kitchen coldroom; higher amount of mol to reach about 101.3 kpA +#define KITCHEN_COLDROOM_ATMOS "o2=33;n2=124;TEMP=193.15" +/// used in the holodeck burn test program +#define BURNMIX_ATMOS "o2=2500;plasma=5000;TEMP=370" //ATMOSPHERICS DEPARTMENT GAS TANK TURFS #define ATMOS_TANK_N2O "n2o=6000;TEMP=293.15" @@ -169,7 +247,8 @@ #define ATMOS_TANK_AIRMIX "o2=2644;n2=10580;TEMP=293.15" //LAVALAND -#define LAVALAND_EQUIPMENT_EFFECT_PRESSURE 50 //what pressure you have to be under to increase the effect of equipment meant for lavaland +/// what pressure you have to be under to increase the effect of equipment meant for lavaland +#define LAVALAND_EQUIPMENT_EFFECT_PRESSURE 50 //ATMOS MIX IDS #define LAVALAND_DEFAULT_ATMOS "LAVALAND_ATMOS" @@ -257,10 +336,14 @@ #define PIPING_LAYER_P_Y 5 #define PIPING_LAYER_LCHANGE 0.05 -#define PIPING_ALL_LAYER (1<<0) //intended to connect with all layers, check for all instead of just one. -#define PIPING_ONE_PER_TURF (1<<1) //can only be built if nothing else with this flag is on the tile already. -#define PIPING_DEFAULT_LAYER_ONLY (1<<2) //can only exist at PIPING_LAYER_DEFAULT -#define PIPING_CARDINAL_AUTONORMALIZE (1<<3) //north/south east/west doesn't matter, auto normalize on build. +/// intended to connect with all layers, check for all instead of just one. +#define PIPING_ALL_LAYER (1<<0) +/// can only be built if nothing else with this flag is on the tile already. +#define PIPING_ONE_PER_TURF (1<<1) +/// can only exist at PIPING_LAYER_DEFAULT +#define PIPING_DEFAULT_LAYER_ONLY (1<<2) +/// north/south east/west doesn't matter, auto normalize on build. +#define PIPING_CARDINAL_AUTONORMALIZE (1<<3) //HELPERS #define PIPING_LAYER_SHIFT(T, PipingLayer) \ diff --git a/code/__DEFINES/atom_hud.dm b/code/__DEFINES/atom_hud.dm index 7e0b1fdf6e2..d2d8a0b785f 100644 --- a/code/__DEFINES/atom_hud.dm +++ b/code/__DEFINES/atom_hud.dm @@ -2,28 +2,46 @@ // note: if you add more HUDs, even for non-human atoms, make sure to use unique numbers for the defines! // /datum/atom_hud expects these to be unique // these need to be strings in order to make them associative lists -#define HEALTH_HUD "1" // dead, alive, sick, health status -#define STATUS_HUD "2" // a simple line rounding the mob's number health -#define ID_HUD "3" // the job asigned to your ID -#define WANTED_HUD "4" // wanted, released, parroled, security status -#define IMPLOYAL_HUD "5" // loyality implant -#define IMPCHEM_HUD "6" // chemical implant -#define IMPTRACK_HUD "7" // tracking implant -#define DIAG_STAT_HUD "8" // Silicon/Mech/Circuit Status -#define DIAG_HUD "9" // Silicon health bar -#define DIAG_BATT_HUD "10"// Borg/Mech/Circutry power meter -#define DIAG_MECH_HUD "11"// Mech health bar -#define DIAG_BOT_HUD "12"// Bot HUDs -#define DIAG_CIRCUIT_HUD "13"// Circuit assembly health bar -#define DIAG_TRACK_HUD "14"// Mech/Silicon tracking beacon, Circutry long range icon -#define DIAG_AIRLOCK_HUD "15"//Airlock shock overlay -#define DIAG_PATH_HUD "16"//Bot path indicators -#define GLAND_HUD "17"//Gland indicators for abductors +/// dead, alive, sick, health status +#define HEALTH_HUD "1" +/// a simple line rounding the mob's number health +#define STATUS_HUD "2" +/// the job asigned to your ID +#define ID_HUD "3" +/// wanted, released, parroled, security status +#define WANTED_HUD "4" +/// loyality implant +#define IMPLOYAL_HUD "5" +/// chemical implant +#define IMPCHEM_HUD "6" +/// tracking implant +#define IMPTRACK_HUD "7" +/// Silicon/Mech/Circuit Status +#define DIAG_STAT_HUD "8" +/// Silicon health bar +#define DIAG_HUD "9" +/// Borg/Mech/Circutry power meter +#define DIAG_BATT_HUD "10" +/// Mech health bar +#define DIAG_MECH_HUD "11" +/// Bot HUDs +#define DIAG_BOT_HUD "12" +/// Circuit assembly health bar +#define DIAG_CIRCUIT_HUD "13" +/// Mech/Silicon tracking beacon, Circutry long range icon +#define DIAG_TRACK_HUD "14" +/// Airlock shock overlay +#define DIAG_AIRLOCK_HUD "15" +/// Bot path indicators +#define DIAG_PATH_HUD "16" +/// Gland indicators for abductors +#define GLAND_HUD "17" #define SENTIENT_DISEASE_HUD "18" #define AI_DETECT_HUD "19" #define NANITE_HUD "20" #define DIAG_NANITE_FULL_HUD "21" -#define DIAG_LAUNCHPAD_HUD "22" //Displays launchpads' targeting reticle +/// Displays launchpads' targeting reticle +#define DIAG_LAUNCHPAD_HUD "22" //for antag huds. these are used at the /mob level #define ANTAG_HUD "23" @@ -66,4 +84,5 @@ #define NOTIFY_ATTACK "attack" #define NOTIFY_ORBIT "orbit" -#define ADD_HUD_TO_COOLDOWN 20 //cooldown for being shown the images for any particular data hud +/// cooldown for being shown the images for any particular data hud +#define ADD_HUD_TO_COOLDOWN 20 diff --git a/code/__DEFINES/cleaning.dm b/code/__DEFINES/cleaning.dm index c4db590e90f..8b66484ead5 100644 --- a/code/__DEFINES/cleaning.dm +++ b/code/__DEFINES/cleaning.dm @@ -1,10 +1,14 @@ //Cleaning tool strength // 1 is also a valid cleaning strength but completely unused so left undefined #define CLEAN_WEAK 2 -#define CLEAN_MEDIUM 3 // Acceptable tools -#define CLEAN_STRONG 4 // Industrial strength -#define CLEAN_IMPRESSIVE 5 // Cleaning strong enough your granny would be proud -#define CLEAN_GOD 6 // Cleans things spotless down to the atomic structure +/// Acceptable tools +#define CLEAN_MEDIUM 3 +/// Industrial strength +#define CLEAN_STRONG 4 +/// Cleaning strong enough your granny would be proud +#define CLEAN_IMPRESSIVE 5 +/// Cleans things spotless down to the atomic structure +#define CLEAN_GOD 6 //How strong things have to be to wipe forensic evidence... #define CLEAN_STRENGTH_FINGERPRINTS CLEAN_IMPRESSIVE diff --git a/code/__DEFINES/clockcult.dm b/code/__DEFINES/clockcult.dm index 070b92acc7f..7cb829527a1 100644 --- a/code/__DEFINES/clockcult.dm +++ b/code/__DEFINES/clockcult.dm @@ -1,25 +1,41 @@ //component id defines; sometimes these may not make sense in regards to their use in scripture but important ones are bright -#define BELLIGERENT_EYE "belligerent_eye" //Use this for offensive and damaging scripture! -#define VANGUARD_COGWHEEL "vanguard_cogwheel" //Use this for defensive and healing scripture! -#define GEIS_CAPACITOR "geis_capacitor" //Use this for niche scripture! +/// Use this for offensive and damaging scripture! +#define BELLIGERENT_EYE "belligerent_eye" +/// Use this for defensive and healing scripture! +#define VANGUARD_COGWHEEL "vanguard_cogwheel" +/// Use this for niche scripture! +#define GEIS_CAPACITOR "geis_capacitor" #define REPLICANT_ALLOY "replicant_alloy" -#define HIEROPHANT_ANSIBLE "hierophant_ansible" //Use this for construction-related scripture! +/// Use this for construction-related scripture! +#define HIEROPHANT_ANSIBLE "hierophant_ansible" -GLOBAL_VAR_INIT(clockwork_construction_value, 0) //The total value of all structures built by the clockwork cult -GLOBAL_VAR_INIT(clockwork_vitality, 0) //How much Vitality is stored, total -GLOBAL_VAR_INIT(clockwork_power, 0) //How many watts of power are globally available to the clockwork cult +/// The total value of all structures built by the clockwork cult +GLOBAL_VAR_INIT(clockwork_construction_value, 0) +/// How much Vitality is stored, total +GLOBAL_VAR_INIT(clockwork_vitality, 0) +/// How many watts of power are globally available to the clockwork cult +GLOBAL_VAR_INIT(clockwork_power, 0) -GLOBAL_LIST_EMPTY(all_clockwork_objects) //All clockwork items, structures, and effects in existence -GLOBAL_LIST_EMPTY(all_clockwork_mobs) //All clockwork SERVANTS (not creatures) in existence +/// All clockwork items, structures, and effects in existence +GLOBAL_LIST_EMPTY(all_clockwork_objects) +/// All clockwork SERVANTS (not creatures) in existence +GLOBAL_LIST_EMPTY(all_clockwork_mobs) -GLOBAL_VAR_INIT(ratvar_approaches, 0) //The servants can choose to "herald" Ratvar, permanently buffing them but announcing their presence to the crew. -GLOBAL_VAR_INIT(ratvar_awakens, 0) //If Ratvar has been summoned; not a boolean, for proper handling of multiple Ratvars -GLOBAL_VAR_INIT(ark_of_the_clockwork_justiciar, FALSE) //The Ark on the Reebe z-level +/// The servants can choose to "herald" Ratvar, permanently buffing them but announcing their presence to the crew. +GLOBAL_VAR_INIT(ratvar_approaches, 0) +/// If Ratvar has been summoned; not a boolean, for proper handling of multiple Ratvars +GLOBAL_VAR_INIT(ratvar_awakens, 0) +/// The Ark on the Reebe z-level +GLOBAL_VAR_INIT(ark_of_the_clockwork_justiciar, FALSE) -GLOBAL_VAR_INIT(clockwork_gateway_activated, FALSE) //if a gateway to the celestial derelict has ever been successfully activated -GLOBAL_VAR_INIT(script_scripture_unlocked, FALSE) //If script scripture is available, through converting at least one crewmember -GLOBAL_VAR_INIT(application_scripture_unlocked, FALSE) //If script scripture is available -GLOBAL_LIST_EMPTY(all_scripture) //a list containing scripture instances; not used to track existing scripture +/// if a gateway to the celestial derelict has ever been successfully activated +GLOBAL_VAR_INIT(clockwork_gateway_activated, FALSE) +/// If script scripture is available, through converting at least one crewmember +GLOBAL_VAR_INIT(script_scripture_unlocked, FALSE) +/// If script scripture is available +GLOBAL_VAR_INIT(application_scripture_unlocked, FALSE) +/// a list containing scripture instances; not used to track existing scripture +GLOBAL_LIST_EMPTY(all_scripture) //Scripture tiers and requirements; peripherals should never be used #define SCRIPTURE_PERIPHERAL "Peripheral" @@ -28,64 +44,91 @@ GLOBAL_LIST_EMPTY(all_scripture) //a list containing scripture instances; not us #define SCRIPTURE_APPLICATION "Application" //Various costs related to power. -#define MAX_CLOCKWORK_POWER 50000 //The max power in W that the cult can stockpile -#define SCRIPT_UNLOCK_THRESHOLD 25000 //Scripts will unlock if the total power reaches this amount -#define APPLICATION_UNLOCK_THRESHOLD 40000 //Applications will unlock if the total powre reaches this amount +/// The max power in W that the cult can stockpile +#define MAX_CLOCKWORK_POWER 50000 +/// Scripts will unlock if the total power reaches this amount +#define SCRIPT_UNLOCK_THRESHOLD 25000 +/// Applications will unlock if the total powre reaches this amount +#define APPLICATION_UNLOCK_THRESHOLD 40000 #define ABSCOND_ABDUCTION_COST 95 //clockcult power defines -#define MIN_CLOCKCULT_POWER 25 //the minimum amount of power clockcult machines will handle gracefully +/// the minimum amount of power clockcult machines will handle gracefully +#define MIN_CLOCKCULT_POWER 25 -#define CLOCKCULT_POWER_UNIT (MIN_CLOCKCULT_POWER*100) //standard power amount for replica fabricator costs +/// standard power amount for replica fabricator costs +#define CLOCKCULT_POWER_UNIT (MIN_CLOCKCULT_POWER*100) -#define POWER_STANDARD (CLOCKCULT_POWER_UNIT*0.2) //how much power is in anything else; doesn't matter as much as the following +/// how much power is in anything else; doesn't matter as much as the following +#define POWER_STANDARD (CLOCKCULT_POWER_UNIT*0.2) -#define POWER_FLOOR (CLOCKCULT_POWER_UNIT*0.1) //how much power is in a clockwork floor, determines the cost of clockwork floor production +/// how much power is in a clockwork floor, determines the cost of clockwork floor production +#define POWER_FLOOR (CLOCKCULT_POWER_UNIT*0.1) -#define POWER_WALL_MINUS_FLOOR (CLOCKCULT_POWER_UNIT*0.4) //how much power is in a clockwork wall, determines the cost of clockwork wall production +/// how much power is in a clockwork wall, determines the cost of clockwork wall production +#define POWER_WALL_MINUS_FLOOR (CLOCKCULT_POWER_UNIT*0.4) -#define POWER_GEAR (CLOCKCULT_POWER_UNIT*0.3) //how much power is in a wall gear, minus the brass from the wall +/// how much power is in a wall gear, minus the brass from the wall +#define POWER_GEAR (CLOCKCULT_POWER_UNIT*0.3) -#define POWER_WALL_TOTAL (POWER_WALL_MINUS_FLOOR+POWER_FLOOR) //how much power is in a clockwork wall and the floor under it +/// how much power is in a clockwork wall and the floor under it +#define POWER_WALL_TOTAL (POWER_WALL_MINUS_FLOOR+POWER_FLOOR) -#define POWER_ROD (CLOCKCULT_POWER_UNIT*0.01) //how much power is in one rod +/// how much power is in one rod +#define POWER_ROD (CLOCKCULT_POWER_UNIT*0.01) -#define POWER_METAL (CLOCKCULT_POWER_UNIT*0.02) //how much power is in one sheet of metal +/// how much power is in one sheet of metal +#define POWER_METAL (CLOCKCULT_POWER_UNIT*0.02) -#define POWER_PLASTEEL (CLOCKCULT_POWER_UNIT*0.05) //how much power is in one sheet of plasteel +/// how much power is in one sheet of plasteel +#define POWER_PLASTEEL (CLOCKCULT_POWER_UNIT*0.05) //Ark defines -#define GATEWAY_SUMMON_RATE 1 //the time amount the Gateway to the Celestial Derelict gets each process tick; defaults to 1 per tick +/// the time amount the Gateway to the Celestial Derelict gets each process tick; defaults to 1 per tick +#define GATEWAY_SUMMON_RATE 1 -#define GATEWAY_REEBE_FOUND 240 //when progress is at or above this, the gateway finds reebe and begins drawing power +/// when progress is at or above this, the gateway finds reebe and begins drawing power +#define GATEWAY_REEBE_FOUND 240 -#define GATEWAY_RATVAR_COMING 480 //when progress is at or above this, ratvar has entered and is coming through the gateway +/// when progress is at or above this, ratvar has entered and is coming through the gateway +#define GATEWAY_RATVAR_COMING 480 -#define GATEWAY_RATVAR_ARRIVAL 600 //when progress is at or above this, game over ratvar's here everybody go home +/// when progress is at or above this, game over ratvar's here everybody go home +#define GATEWAY_RATVAR_ARRIVAL 600 -//Objective text define +///Objective text define #define CLOCKCULT_OBJECTIVE "Construct the Ark of the Clockwork Justicar and free Ratvar." //Eminence defines -#define SUPERHEATED_CLOCKWORK_WALL_LIMIT 20 //How many walls can be superheated at once +/// How many walls can be superheated at once +#define SUPERHEATED_CLOCKWORK_WALL_LIMIT 20 //misc clockcult stuff -#define SIGIL_ACCESS_RANGE 2 //range at which transmission sigils can access power +/// range at which transmission sigils can access power +#define SIGIL_ACCESS_RANGE 2 -#define FABRICATOR_REPAIR_PER_TICK 4 //how much a fabricator repairs each tick, and also how many deciseconds each tick is +/// how much a fabricator repairs each tick, and also how many deciseconds each tick is +#define FABRICATOR_REPAIR_PER_TICK 4 -#define OCULAR_WARDEN_EXCLUSION_RANGE 3 //the range at which ocular wardens cannot be placed near other ocular wardens +/// the range at which ocular wardens cannot be placed near other ocular wardens +#define OCULAR_WARDEN_EXCLUSION_RANGE 3 -#define CLOCKWORK_ARMOR_COOLDOWN 1800 //The cooldown period between summoning suits of clockwork armor +/// The cooldown period between summoning suits of clockwork armor +#define CLOCKWORK_ARMOR_COOLDOWN 1800 -#define RATVARIAN_SPEAR_COOLDOWN 300 //The cooldown period between summoning another Ratvarian spear +/// The cooldown period between summoning another Ratvarian spear +#define RATVARIAN_SPEAR_COOLDOWN 300 -#define MARAUDER_SCRIPTURE_SCALING_THRESHOLD 600 //The amount of deciseconds that must pass before marauder scripture will not gain a recital penalty +/// The amount of deciseconds that must pass before marauder scripture will not gain a recital penalty +#define MARAUDER_SCRIPTURE_SCALING_THRESHOLD 600 -#define MARAUDER_SCRIPTURE_SCALING_TIME 20 //The amount of extra deciseconds tacked on to the marauder scripture recital time per recent marauder +/// The amount of extra deciseconds tacked on to the marauder scripture recital time per recent marauder +#define MARAUDER_SCRIPTURE_SCALING_TIME 20 -#define MARAUDER_SCRIPTURE_SCALING_MAX 300 //The maximum extra time applied to the marauder scripture +/// The maximum extra time applied to the marauder scripture +#define MARAUDER_SCRIPTURE_SCALING_MAX 300 -#define ARK_SCREAM_COOLDOWN 600 //This much time has to pass between instances of the Ark taking damage before it will "scream" again +/// This much time has to pass between instances of the Ark taking damage before it will "scream" again +#define ARK_SCREAM_COOLDOWN 600 diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm index 4cc86fbfddc..db3903c67ab 100644 --- a/code/__DEFINES/components.dm +++ b/code/__DEFINES/components.dm @@ -5,17 +5,21 @@ #define COMPONENT_INCOMPATIBLE 1 #define COMPONENT_NOTRANSFER 2 -#define ELEMENT_INCOMPATIBLE 1 // Return value to cancel attaching +/// Return value to cancel attaching +#define ELEMENT_INCOMPATIBLE 1 -// /datum/element flags +/// /datum/element flags #define ELEMENT_DETACH (1 << 0) // How multiple components of the exact same type are handled in the same datum - -#define COMPONENT_DUPE_HIGHLANDER 0 //old component is deleted (default) -#define COMPONENT_DUPE_ALLOWED 1 //duplicates allowed -#define COMPONENT_DUPE_UNIQUE 2 //new component is deleted -#define COMPONENT_DUPE_UNIQUE_PASSARGS 4 //old component is given the initialization args of the new +/// old component is deleted (default) +#define COMPONENT_DUPE_HIGHLANDER 0 +/// duplicates allowed +#define COMPONENT_DUPE_ALLOWED 1 +/// new component is deleted +#define COMPONENT_DUPE_UNIQUE 2 +/// old component is given the initialization args of the new +#define COMPONENT_DUPE_UNIQUE_PASSARGS 4 // All signals. Format: // When the signal is called: (signal arguments) @@ -24,20 +28,30 @@ // global signals // These are signals which can be listened to by any component on any parent // start global signals with "!", this used to be necessary but now it's just a formatting choice -#define COMSIG_GLOB_NEW_Z "!new_z" //from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args) -#define COMSIG_GLOB_VAR_EDIT "!var_edit" //called after a successful var edit somewhere in the world: (list/args) -#define COMSIG_GLOB_MOB_CREATED "!mob_created" //mob was created somewhere : (mob) -#define COMSIG_GLOB_MOB_DEATH "!mob_death" //mob died somewhere : (mob , gibbed) -#define COMSIG_GLOB_LIVING_SAY_SPECIAL "!say_special" //global living say plug - use sparingly: (mob/speaker , message) +/// from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args) +#define COMSIG_GLOB_NEW_Z "!new_z" +/// called after a successful var edit somewhere in the world: (list/args) +#define COMSIG_GLOB_VAR_EDIT "!var_edit" +/// mob was created somewhere : (mob) +#define COMSIG_GLOB_MOB_CREATED "!mob_created" +/// mob died somewhere : (mob , gibbed) +#define COMSIG_GLOB_MOB_DEATH "!mob_death" +/// global living say plug - use sparingly: (mob/speaker , message) +#define COMSIG_GLOB_LIVING_SAY_SPECIAL "!say_special" ////////////////////////////////////////////////////////////////// // /datum signals -#define COMSIG_COMPONENT_ADDED "component_added" //when a component is added to a datum: (/datum/component) -#define COMSIG_COMPONENT_REMOVING "component_removing" //before a component is removed from a datum because of RemoveComponent: (/datum/component) -#define COMSIG_PARENT_PREQDELETED "parent_preqdeleted" //before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation -#define COMSIG_PARENT_QDELETING "parent_qdeleting" //just before a datum's Destroy() is called: (force), at this point none of the other components chose to interrupt qdel and Destroy will be called -#define COMSIG_TOPIC "handle_topic" //generic topic handler (usr, href_list) +/// when a component is added to a datum: (/datum/component) +#define COMSIG_COMPONENT_ADDED "component_added" +/// before a component is removed from a datum because of RemoveComponent: (/datum/component) +#define COMSIG_COMPONENT_REMOVING "component_removing" +/// before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation +#define COMSIG_PARENT_PREQDELETED "parent_preqdeleted" +/// just before a datum's Destroy() is called: (force), at this point none of the other components chose to interrupt qdel and Destroy will be called +#define COMSIG_PARENT_QDELETING "parent_qdeleting" +/// generic topic handler (usr, href_list) +#define COMSIG_TOPIC "handle_topic" // /atom signals #define COMSIG_PARENT_ATTACKBY "atom_attackby" //from base of atom/attackby(): (/obj/item, /mob/living, params) diff --git a/code/__DEFINES/configuration.dm b/code/__DEFINES/configuration.dm index c4ef8e66068..c724c358dbf 100644 --- a/code/__DEFINES/configuration.dm +++ b/code/__DEFINES/configuration.dm @@ -5,5 +5,7 @@ #define CONFIG_MAPS_FILE "maps.txt" //flags -#define CONFIG_ENTRY_LOCKED 1 //can't edit -#define CONFIG_ENTRY_HIDDEN 2 //can't see value +/// can't edit +#define CONFIG_ENTRY_LOCKED 1 +/// can't see value +#define CONFIG_ENTRY_HIDDEN 2 diff --git a/code/__DEFINES/cult.dm b/code/__DEFINES/cult.dm index 987263c8053..054d6345dbd 100644 --- a/code/__DEFINES/cult.dm +++ b/code/__DEFINES/cult.dm @@ -12,8 +12,10 @@ //blood magic #define MAX_BLOODCHARGE 4 #define RUNELESS_MAX_BLOODCHARGE 1 -#define CULT_RISEN 0.2 //percent before rise -#define CULT_ASCENDENT 0.4 //percent before ascend +/// percent before rise +#define CULT_RISEN 0.2 +/// percent before ascend +#define CULT_ASCENDENT 0.4 #define BLOOD_SPEAR_COST 150 #define BLOOD_BARRAGE_COST 300 #define BLOOD_BEAM_COST 500 @@ -24,4 +26,4 @@ #define DEFAULT_TOOLTIP "6:-29,5:-2" //misc #define SOULS_TO_REVIVE 3 -#define BLOODCULT_EYE "f00" \ No newline at end of file +#define BLOODCULT_EYE "f00" diff --git a/code/__DEFINES/diseases.dm b/code/__DEFINES/diseases.dm index 8376f5c12e1..a8112c03911 100644 --- a/code/__DEFINES/diseases.dm +++ b/code/__DEFINES/diseases.dm @@ -20,10 +20,17 @@ #define DISEASE_SPREAD_AIRBORNE (1<<5) //Severity Defines -#define DISEASE_SEVERITY_POSITIVE "Positive" //Diseases that buff, heal, or at least do nothing at all -#define DISEASE_SEVERITY_NONTHREAT "Harmless" //Diseases that may have annoying effects, but nothing disruptive (sneezing) -#define DISEASE_SEVERITY_MINOR "Minor" //Diseases that can annoy in concrete ways (dizziness) -#define DISEASE_SEVERITY_MEDIUM "Medium" //Diseases that can do minor harm, or severe annoyance (vomit) -#define DISEASE_SEVERITY_HARMFUL "Harmful" //Diseases that can do significant harm, or severe disruption (brainrot) -#define DISEASE_SEVERITY_DANGEROUS "Dangerous" //Diseases that can kill or maim if left untreated (flesh eating, blindness) -#define DISEASE_SEVERITY_BIOHAZARD "BIOHAZARD" //Diseases that can quickly kill an unprepared victim (fungal tb, gbs) +/// Diseases that buff, heal, or at least do nothing at all +#define DISEASE_SEVERITY_POSITIVE "Positive" +/// Diseases that may have annoying effects, but nothing disruptive (sneezing) +#define DISEASE_SEVERITY_NONTHREAT "Harmless" +/// Diseases that can annoy in concrete ways (dizziness) +#define DISEASE_SEVERITY_MINOR "Minor" +/// Diseases that can do minor harm, or severe annoyance (vomit) +#define DISEASE_SEVERITY_MEDIUM "Medium" +/// Diseases that can do significant harm, or severe disruption (brainrot) +#define DISEASE_SEVERITY_HARMFUL "Harmful" +/// Diseases that can kill or maim if left untreated (flesh eating, blindness) +#define DISEASE_SEVERITY_DANGEROUS "Dangerous" +/// Diseases that can quickly kill an unprepared victim (fungal tb, gbs) +#define DISEASE_SEVERITY_BIOHAZARD "BIOHAZARD" diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index 4f3d9970371..5600a80ffb1 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -23,24 +23,37 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 //FLAGS BITMASK -#define HEAR_1 (1<<3) // This flag is what recursive_hear_check() uses to determine wether to add an item to the hearer list or not. -#define CHECK_RICOCHET_1 (1<<4) // Projectiels will check ricochet on things impacted that have this. -#define CONDUCT_1 (1<<5) // conducts electricity (metal etc.) -#define NODECONSTRUCT_1 (1<<7) // For machines and structures that should not break into parts, eg, holodeck stuff -#define OVERLAY_QUEUED_1 (1<<8) // atom queued to SSoverlay -#define ON_BORDER_1 (1<<9) // item has priority to check when entering or leaving -#define PREVENT_CLICK_UNDER_1 (1<<11) //Prevent clicking things below it on the same turf eg. doors/ fulltile windows +/// This flag is what recursive_hear_check() uses to determine wether to add an item to the hearer list or not. +#define HEAR_1 (1<<3) +/// Projectiels will check ricochet on things impacted that have this. +#define CHECK_RICOCHET_1 (1<<4) +/// conducts electricity (metal etc.) +#define CONDUCT_1 (1<<5) +/// For machines and structures that should not break into parts, eg, holodeck stuff +#define NODECONSTRUCT_1 (1<<7) +/// atom queued to SSoverlay +#define OVERLAY_QUEUED_1 (1<<8) +/// item has priority to check when entering or leaving +#define ON_BORDER_1 (1<<9) +/// Prevent clicking things below it on the same turf eg. doors/ fulltile windows +#define PREVENT_CLICK_UNDER_1 (1<<11) #define HOLOGRAM_1 (1<<12) -#define TESLA_IGNORE_1 (1<<13) // TESLA_IGNORE grants immunity from being targeted by tesla-style electricity -#define INITIALIZED_1 (1<<14) //Whether /atom/Initialize() has already run for the object -#define ADMIN_SPAWNED_1 (1<<15) //was this spawned by an admin? used for stat tracking stuff. +/// TESLA_IGNORE grants immunity from being targeted by tesla-style electricity +#define TESLA_IGNORE_1 (1<<13) +///Whether /atom/Initialize() has already run for the object +#define INITIALIZED_1 (1<<14) +/// was this spawned by an admin? used for stat tracking stuff. +#define ADMIN_SPAWNED_1 (1<<15) //turf-only flags #define NOJAUNT_1 (1<<0) #define UNUSED_RESERVATION_TURF_1 (1<<1) -#define CAN_BE_DIRTY_1 (1<<2) // If a turf can be made dirty at roundstart. This is also used in areas. -#define NO_LAVA_GEN_1 (1<<6) //Blocks lava rivers being generated on the turf -#define NO_RUINS_1 (1<<10) //Blocks ruins spawning on the turf +/// If a turf can be made dirty at roundstart. This is also used in areas. +#define CAN_BE_DIRTY_1 (1<<2) +/// Blocks lava rivers being generated on the turf +#define NO_LAVA_GEN_1 (1<<6) +/// Blocks ruins spawning on the turf +#define NO_RUINS_1 (1<<10) /* These defines are used specifically with the atom/pass_flags bitmask @@ -60,17 +73,23 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 #define FLYING (1<<1) #define VENTCRAWLING (1<<2) #define FLOATING (1<<3) -#define UNSTOPPABLE (1<<4) //When moving, will Bump()/Cross()/Uncross() everything, but won't be stopped. +/// When moving, will Bump()/Cross()/Uncross() everything, but won't be stopped. +#define UNSTOPPABLE (1<<4) //Fire and Acid stuff, for resistance_flags #define LAVA_PROOF (1<<0) -#define FIRE_PROOF (1<<1) //100% immune to fire damage (but not necessarily to lava or heat) +/// 100% immune to fire damage (but not necessarily to lava or heat) +#define FIRE_PROOF (1<<1) #define FLAMMABLE (1<<2) #define ON_FIRE (1<<3) -#define UNACIDABLE (1<<4) //acid can't even appear on it, let alone melt it. -#define ACID_PROOF (1<<5) //acid stuck on it doesn't melt it. -#define INDESTRUCTIBLE (1<<6) //doesn't take damage -#define FREEZE_PROOF (1<<7) //can't be frozen +/// acid can't even appear on it, let alone melt it. +#define UNACIDABLE (1<<4) +/// acid stuck on it doesn't melt it. +#define ACID_PROOF (1<<5) +/// doesn't take damage +#define INDESTRUCTIBLE (1<<6) +/// can't be frozen +#define FREEZE_PROOF (1<<7) //tesla_zap #define TESLA_MACHINE_EXPLOSIVE (1<<0) @@ -88,13 +107,20 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 #define EMP_PROTECT_WIRES (1<<2) //Mob mobility var flags -#define MOBILITY_MOVE (1<<0) //can move -#define MOBILITY_STAND (1<<1) //can, and is, standing up -#define MOBILITY_PICKUP (1<<2) //can pickup items -#define MOBILITY_USE (1<<3) //can hold and use items -#define MOBILITY_UI (1<<4) //can use interfaces like machinery -#define MOBILITY_STORAGE (1<<5) //can use storage item -#define MOBILITY_PULL (1<<6) //can pull things +/// can move +#define MOBILITY_MOVE (1<<0) +/// can, and is, standing up +#define MOBILITY_STAND (1<<1) +/// can pickup items +#define MOBILITY_PICKUP (1<<2) +/// can hold and use items +#define MOBILITY_USE (1<<3) +/// can use interfaces like machinery +#define MOBILITY_UI (1<<4) +/// can use storage item +#define MOBILITY_STORAGE (1<<5) +/// can pull things +#define MOBILITY_PULL (1<<6) #define MOBILITY_FLAGS_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND | MOBILITY_PICKUP | MOBILITY_USE | MOBILITY_UI | MOBILITY_STORAGE | MOBILITY_PULL) #define MOBILITY_FLAGS_INTERACTION (MOBILITY_USE | MOBILITY_PICKUP | MOBILITY_UI | MOBILITY_STORAGE) diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm index 7bf8bbd25a1..0d6ec96021d 100644 --- a/code/__DEFINES/hud.dm +++ b/code/__DEFINES/hud.dm @@ -1,9 +1,13 @@ //HUD styles. Index order defines how they are cycled in F12. -#define HUD_STYLE_STANDARD 1 //Standard hud -#define HUD_STYLE_REDUCED 2 //Reduced hud (just hands and intent switcher) -#define HUD_STYLE_NOHUD 3 //No hud (for screenshots) +/// Standard hud +#define HUD_STYLE_STANDARD 1 +/// Reduced hud (just hands and intent switcher) +#define HUD_STYLE_REDUCED 2 +/// No hud (for screenshots) +#define HUD_STYLE_NOHUD 3 -#define HUD_VERSIONS 3 //Used in show_hud(); Please ensure this is the same as the maximum index. +/// Used in show_hud(); Please ensure this is the same as the maximum index. +#define HUD_VERSIONS 3 //1:1 HUD layout stuff #define UI_BOXCRAFT "EAST-4:22,SOUTH+1:6" diff --git a/code/__DEFINES/interaction_flags.dm b/code/__DEFINES/interaction_flags.dm index a117e71d518..b9aaa3e6391 100644 --- a/code/__DEFINES/interaction_flags.dm +++ b/code/__DEFINES/interaction_flags.dm @@ -1,22 +1,38 @@ +/// whether can_interact() checks for anchored. only works on movables. +#define INTERACT_ATOM_REQUIRES_ANCHORED (1<<0) +/// calls try_interact() on attack_hand() and returns that. +#define INTERACT_ATOM_ATTACK_HAND (1<<1) +/// automatically calls and returns ui_interact() on interact(). +#define INTERACT_ATOM_UI_INTERACT (1<<2) +/// user must be dextrous +#define INTERACT_ATOM_REQUIRES_DEXTERITY (1<<3) +/// ignores incapacitated check +#define INTERACT_ATOM_IGNORE_INCAPACITATED (1<<4) +/// incapacitated check ignores restrained +#define INTERACT_ATOM_IGNORE_RESTRAINED (1<<5) +/// incapacitated check checks grab +#define INTERACT_ATOM_CHECK_GRAB (1<<6) +/// prevents leaving fingerprints automatically on attack_hand +#define INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HAND (1<<7) +/// adds hiddenprints instead of fingerprints on interact +#define INTERACT_ATOM_NO_FINGERPRINT_INTERACT (1<<8) -#define INTERACT_ATOM_REQUIRES_ANCHORED (1<<0) //whether can_interact() checks for anchored. only works on movables. -#define INTERACT_ATOM_ATTACK_HAND (1<<1) //calls try_interact() on attack_hand() and returns that. -#define INTERACT_ATOM_UI_INTERACT (1<<2) //automatically calls and returns ui_interact() on interact(). -#define INTERACT_ATOM_REQUIRES_DEXTERITY (1<<3) //user must be dextrous -#define INTERACT_ATOM_IGNORE_INCAPACITATED (1<<4) //ignores incapacitated check -#define INTERACT_ATOM_IGNORE_RESTRAINED (1<<5) //incapacitated check ignores restrained -#define INTERACT_ATOM_CHECK_GRAB (1<<6) //incapacitated check checks grab -#define INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HAND (1<<7) //prevents leaving fingerprints automatically on attack_hand -#define INTERACT_ATOM_NO_FINGERPRINT_INTERACT (1<<8) //adds hiddenprints instead of fingerprints on interact +/// attempt pickup on attack_hand for items +#define INTERACT_ITEM_ATTACK_HAND_PICKUP (1<<0) -#define INTERACT_ITEM_ATTACK_HAND_PICKUP (1<<0) //attempt pickup on attack_hand for items - -#define INTERACT_MACHINE_OPEN (1<<0) //can_interact() while open -#define INTERACT_MACHINE_OFFLINE (1<<1) //can_interact() while offline -#define INTERACT_MACHINE_WIRES_IF_OPEN (1<<2) //try to interact with wires if open -#define INTERACT_MACHINE_ALLOW_SILICON (1<<3) //let silicons interact -#define INTERACT_MACHINE_OPEN_SILICON (1<<4) //let silicons interact while open -#define INTERACT_MACHINE_REQUIRES_SILICON (1<<5) //must be silicon to interact -#define INTERACT_MACHINE_SET_MACHINE (1<<6) //MACHINES HAVE THIS BY DEFAULT, SOMEONE SHOULD RUN THROUGH MACHINES AND REMOVE IT FROM THINGS LIKE LIGHT SWITCHES WHEN POSSIBLE!!-------------------------- - //This flag determines if a machine set_machine's the user when the user uses it, making updateUsrDialog make the user re-call interact() on it. - //THIS FLAG IS ON ALL MACHINES BY DEFAULT, NEEDS TO BE RE-EVALUATED LATER!! +/// can_interact() while open +#define INTERACT_MACHINE_OPEN (1<<0) +/// can_interact() while offline +#define INTERACT_MACHINE_OFFLINE (1<<1) +/// try to interact with wires if open +#define INTERACT_MACHINE_WIRES_IF_OPEN (1<<2) +/// let silicons interact +#define INTERACT_MACHINE_ALLOW_SILICON (1<<3) +/// let silicons interact while open +#define INTERACT_MACHINE_OPEN_SILICON (1<<4) +/// must be silicon to interact +#define INTERACT_MACHINE_REQUIRES_SILICON (1<<5) +/// MACHINES HAVE THIS BY DEFAULT, SOMEONE SHOULD RUN THROUGH MACHINES AND REMOVE IT FROM THINGS LIKE LIGHT SWITCHES WHEN POSSIBLE!!-------------------------- +/// This flag determines if a machine set_machine's the user when the user uses it, making updateUsrDialog make the user re-call interact() on it. +/// THIS FLAG IS ON ALL MACHINES BY DEFAULT, NEEDS TO BE RE-EVALUATED LATER!! +#define INTERACT_MACHINE_SET_MACHINE (1<<6) diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm index 5a1030d9084..ccc8de289d0 100644 --- a/code/__DEFINES/inventory.dm +++ b/code/__DEFINES/inventory.dm @@ -1,12 +1,18 @@ /*ALL DEFINES RELATED TO INVENTORY OBJECTS, MANAGEMENT, ETC, GO HERE*/ //ITEM INVENTORY WEIGHT, FOR w_class -#define WEIGHT_CLASS_TINY 1 //Usually items smaller then a human hand, (e.g. playing cards, lighter, scalpel, coins/holochips) -#define WEIGHT_CLASS_SMALL 2 //Pockets can hold small and tiny items, (e.g. flashlight, multitool, grenades, GPS device) -#define WEIGHT_CLASS_NORMAL 3 //Standard backpacks can carry tiny, small & normal items, (e.g. fire extinguisher, stun baton, gas mask, metal sheets) -#define WEIGHT_CLASS_BULKY 4 //Items that can be weilded or equipped but not stored in an inventory, (e.g. defibrillator, backpack, space suits) -#define WEIGHT_CLASS_HUGE 5 //Usually represents objects that require two hands to operate, (e.g. shotgun, two-handed melee weapons) -#define WEIGHT_CLASS_GIGANTIC 6 //Essentially means it cannot be picked up or placed in an inventory, (e.g. mech parts, safe) +/// Usually items smaller then a human hand, (e.g. playing cards, lighter, scalpel, coins/holochips) +#define WEIGHT_CLASS_TINY 1 +/// Pockets can hold small and tiny items, (e.g. flashlight, multitool, grenades, GPS device) +#define WEIGHT_CLASS_SMALL 2 +/// Standard backpacks can carry tiny, small & normal items, (e.g. fire extinguisher, stun baton, gas mask, metal sheets) +#define WEIGHT_CLASS_NORMAL 3 +/// Items that can be weilded or equipped but not stored in an inventory, (e.g. defibrillator, backpack, space suits) +#define WEIGHT_CLASS_BULKY 4 +/// Usually represents objects that require two hands to operate, (e.g. shotgun, two-handed melee weapons) +#define WEIGHT_CLASS_HUGE 5 +/// Essentially means it cannot be picked up or placed in an inventory, (e.g. mech parts, safe) +#define WEIGHT_CLASS_GIGANTIC 6 //Inventory depth: limits how many nested storage items you can access directly. //1: stuff in mob, 2: stuff in backpack, 3: stuff in box in backpack, etc @@ -25,8 +31,10 @@ #define ITEM_SLOT_ID (1<<8) #define ITEM_SLOT_BELT (1<<9) #define ITEM_SLOT_BACK (1<<10) -#define ITEM_SLOT_POCKET (1<<11) // this is to allow items with a w_class of WEIGHT_CLASS_NORMAL or WEIGHT_CLASS_BULKY to fit in pockets. -#define ITEM_SLOT_DENYPOCKET (1<<12) // this is to deny items with a w_class of WEIGHT_CLASS_SMALL or WEIGHT_CLASS_TINY to fit in pockets. +/// this is to allow items with a w_class of WEIGHT_CLASS_NORMAL or WEIGHT_CLASS_BULKY to fit in pockets. +#define ITEM_SLOT_POCKET (1<<11) +/// this is to deny items with a w_class of WEIGHT_CLASS_SMALL or WEIGHT_CLASS_TINY to fit in pockets. +#define ITEM_SLOT_DENYPOCKET (1<<12) #define ITEM_SLOT_NECK (1<<13) #define ITEM_SLOT_HANDS (1<<14) #define ITEM_SLOT_BACKPACK (1<<15) @@ -36,8 +44,9 @@ #define SLOT_BACK 1 #define SLOT_WEAR_MASK 2 #define SLOT_HANDCUFFED 3 -#define SLOT_HANDS 4 //wherever you provide a slot for hands you provide SLOT_HANDS - //SLOT_HANDS as a slot will pick ANY available hand +/// wherever you provide a slot for hands you provide SLOT_HANDS. +/// SLOT_HANDS as a slot will pick ANY available hand +#define SLOT_HANDS 4 #define SLOT_BELT 5 #define SLOT_WEAR_ID 6 #define SLOT_EARS 7 diff --git a/code/__DEFINES/lighting.dm b/code/__DEFINES/lighting.dm index 8e1fb5ec4e9..0b60c5701cb 100644 --- a/code/__DEFINES/lighting.dm +++ b/code/__DEFINES/lighting.dm @@ -1,20 +1,26 @@ //Bay lighting engine shit, not in /code/modules/lighting because BYOND is being shit about it -#define LIGHTING_INTERVAL 5 // frequency, in 1/10ths of a second, of the lighting process +/// frequency, in 1/10ths of a second, of the lighting process +#define LIGHTING_INTERVAL 5 #define MINIMUM_USEFUL_LIGHT_RANGE 1.4 -#define LIGHTING_FALLOFF 1 // type of falloff to use for lighting; 1 for circular, 2 for square -#define LIGHTING_LAMBERTIAN 0 // use lambertian shading for light sources -#define LIGHTING_HEIGHT 1 // height off the ground of light sources on the pseudo-z-axis, you should probably leave this alone -#define LIGHTING_ROUND_VALUE (1 / 64) //Value used to round lumcounts, values smaller than 1/129 don't matter (if they do, thanks sinking points), greater values will make lighting less precise, but in turn increase performance, VERY SLIGHTLY. +/// type of falloff to use for lighting; 1 for circular, 2 for square +#define LIGHTING_FALLOFF 1 +/// use lambertian shading for light sources +#define LIGHTING_LAMBERTIAN 0 +/// height off the ground of light sources on the pseudo-z-axis, you should probably leave this alone +#define LIGHTING_HEIGHT 1 +/// Value used to round lumcounts, values smaller than 1/129 don't matter (if they do, thanks sinking points), greater values will make lighting less precise, but in turn increase performance, VERY SLIGHTLY. +#define LIGHTING_ROUND_VALUE (1 / 64) -#define LIGHTING_ICON 'icons/effects/lighting_object.dmi' // icon used for lighting shading effects +/// icon used for lighting shading effects +#define LIGHTING_ICON 'icons/effects/lighting_object.dmi' -// If the max of the lighting lumcounts of each spectrum drops below this, disable luminosity on the lighting objects. -// Set to zero to disable soft lighting. Luminosity changes then work if it's lit at all. +/// If the max of the lighting lumcounts of each spectrum drops below this, disable luminosity on the lighting objects. +/// Set to zero to disable soft lighting. Luminosity changes then work if it's lit at all. #define LIGHTING_SOFT_THRESHOLD 0 -// If I were you I'd leave this alone. +/// If I were you I'd leave this alone. #define LIGHTING_BASE_MATRIX \ list \ ( \ @@ -29,45 +35,71 @@ //Some defines to generalise colours used in lighting. //Important note on colors. Colors can end up significantly different from the basic html picture, especially when saturated #define LIGHT_COLOR_WHITE "#FFFFFF" -#define LIGHT_COLOR_RED "#FA8282" //Warm but extremely diluted red. rgb(250, 130, 130) -#define LIGHT_COLOR_GREEN "#64C864" //Bright but quickly dissipating neon green. rgb(100, 200, 100) -#define LIGHT_COLOR_BLUE "#6496FA" //Cold, diluted blue. rgb(100, 150, 250) +/// Warm but extremely diluted red. rgb(250, 130, 130) +#define LIGHT_COLOR_RED "#FA8282" +/// Bright but quickly dissipating neon green. rgb(100, 200, 100) +#define LIGHT_COLOR_GREEN "#64C864" +/// Cold, diluted blue. rgb(100, 150, 250) +#define LIGHT_COLOR_BLUE "#6496FA" +/// Light blueish green. rgb(125, 225, 175) +#define LIGHT_COLOR_BLUEGREEN "#7DE1AF" +/// Diluted cyan. rgb(125, 225, 225) +#define LIGHT_COLOR_CYAN "#7DE1E1" +/// More-saturated cyan. rgb(64, 206, 255) +#define LIGHT_COLOR_LIGHT_CYAN "#40CEFF" +/// Saturated blue. rgb(51, 117, 248) +#define LIGHT_COLOR_DARK_BLUE "#6496FA" +/// Diluted, mid-warmth pink. rgb(225, 125, 225) +#define LIGHT_COLOR_PINK "#E17DE1" +/// Dimmed yellow, leaning kaki. rgb(225, 225, 125) +#define LIGHT_COLOR_YELLOW "#E1E17D" +/// Clear brown, mostly dim. rgb(150, 100, 50) +#define LIGHT_COLOR_BROWN "#966432" +/// Mostly pure orange. rgb(250, 150, 50) +#define LIGHT_COLOR_ORANGE "#FA9632" +/// Light Purple. rgb(149, 44, 244) +#define LIGHT_COLOR_PURPLE "#952CF4" +/// Less-saturated light purple. rgb(155, 81, 255) +#define LIGHT_COLOR_LAVENDER "#9B51FF" -#define LIGHT_COLOR_BLUEGREEN "#7DE1AF" //Light blueish green. rgb(125, 225, 175) -#define LIGHT_COLOR_CYAN "#7DE1E1" //Diluted cyan. rgb(125, 225, 225) -#define LIGHT_COLOR_LIGHT_CYAN "#40CEFF" //More-saturated cyan. rgb(64, 206, 255) -#define LIGHT_COLOR_DARK_BLUE "#6496FA" //Saturated blue. rgb(51, 117, 248) -#define LIGHT_COLOR_PINK "#E17DE1" //Diluted, mid-warmth pink. rgb(225, 125, 225) -#define LIGHT_COLOR_YELLOW "#E1E17D" //Dimmed yellow, leaning kaki. rgb(225, 225, 125) -#define LIGHT_COLOR_BROWN "#966432" //Clear brown, mostly dim. rgb(150, 100, 50) -#define LIGHT_COLOR_ORANGE "#FA9632" //Mostly pure orange. rgb(250, 150, 50) -#define LIGHT_COLOR_PURPLE "#952CF4" //Light Purple. rgb(149, 44, 244) -#define LIGHT_COLOR_LAVENDER "#9B51FF" //Less-saturated light purple. rgb(155, 81, 255) - -#define LIGHT_COLOR_HOLY_MAGIC "#FFF743" //slightly desaturated bright yellow. -#define LIGHT_COLOR_BLOOD_MAGIC "#D00000" //deep crimson +///slightly desaturated bright yellow. +#define LIGHT_COLOR_HOLY_MAGIC "#FFF743" +/// deep crimson +#define LIGHT_COLOR_BLOOD_MAGIC "#D00000" //These ones aren't a direct colour like the ones above, because nothing would fit -#define LIGHT_COLOR_FIRE "#FAA019" //Warm orange color, leaning strongly towards yellow. rgb(250, 160, 25) -#define LIGHT_COLOR_LAVA "#C48A18" //Very warm yellow, leaning slightly towards orange. rgb(196, 138, 24) -#define LIGHT_COLOR_FLARE "#FA644B" //Bright, non-saturated red. Leaning slightly towards pink for visibility. rgb(250, 100, 75) -#define LIGHT_COLOR_SLIME_LAMP "#AFC84B" //Weird color, between yellow and green, very slimy. rgb(175, 200, 75) -#define LIGHT_COLOR_TUNGSTEN "#FAE1AF" //Extremely diluted yellow, close to skin color (for some reason). rgb(250, 225, 175) -#define LIGHT_COLOR_HALOGEN "#F0FAFA" //Barely visible cyan-ish hue, as the doctor prescribed. rgb(240, 250, 250) +/// Warm orange color, leaning strongly towards yellow. rgb(250, 160, 25) +#define LIGHT_COLOR_FIRE "#FAA019" +/// Very warm yellow, leaning slightly towards orange. rgb(196, 138, 24) +#define LIGHT_COLOR_LAVA "#C48A18" +/// Bright, non-saturated red. Leaning slightly towards pink for visibility. rgb(250, 100, 75) +#define LIGHT_COLOR_FLARE "#FA644B" +/// Weird color, between yellow and green, very slimy. rgb(175, 200, 75) +#define LIGHT_COLOR_SLIME_LAMP "#AFC84B" +/// Extremely diluted yellow, close to skin color (for some reason). rgb(250, 225, 175) +#define LIGHT_COLOR_TUNGSTEN "#FAE1AF" +/// Barely visible cyan-ish hue, as the doctor prescribed. rgb(240, 250, 250) +#define LIGHT_COLOR_HALOGEN "#F0FAFA" -#define LIGHT_RANGE_FIRE 3 //How many tiles standard fires glow. +///How many tiles standard fires glow. +#define LIGHT_RANGE_FIRE 3 #define LIGHTING_PLANE_ALPHA_VISIBLE 255 #define LIGHTING_PLANE_ALPHA_NV_TRAIT 245 #define LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE 192 -#define LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE 128 //For lighting alpha, small amounts lead to big changes. even at 128 its hard to figure out what is dark and what is light, at 64 you almost can't even tell. +/// For lighting alpha, small amounts lead to big changes. even at 128 its hard to figure out what is dark and what is light, at 64 you almost can't even tell. +#define LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE 128 #define LIGHTING_PLANE_ALPHA_INVISIBLE 0 //lighting area defines -#define DYNAMIC_LIGHTING_DISABLED 0 //dynamic lighting disabled (area stays at full brightness) -#define DYNAMIC_LIGHTING_ENABLED 1 //dynamic lighting enabled -#define DYNAMIC_LIGHTING_FORCED 2 //dynamic lighting enabled even if the area doesn't require power -#define DYNAMIC_LIGHTING_IFSTARLIGHT 3 //dynamic lighting enabled only if starlight is. +/// dynamic lighting disabled (area stays at full brightness) +#define DYNAMIC_LIGHTING_DISABLED 0 +/// dynamic lighting enabled +#define DYNAMIC_LIGHTING_ENABLED 1 +/// dynamic lighting enabled even if the area doesn't require power +#define DYNAMIC_LIGHTING_FORCED 2 +/// dynamic lighting enabled only if starlight is. +#define DYNAMIC_LIGHTING_IFSTARLIGHT 3 #define IS_DYNAMIC_LIGHTING(A) A.dynamic_lighting