From 993ad208a8ad1d7a0812b7f1b7a44b0d5185c36e Mon Sep 17 00:00:00 2001 From: Tigercat2000 Date: Tue, 12 May 2015 20:48:38 -0700 Subject: [PATCH] Overhaul global defines and vars This commit overhauls the global.dm file, global_lists.dm file, and defines.dm file into a tree system based on -tg-. All defines have been split and distributed in code/__DEFINES/ Everything from global.dm and global_lists.dm has been split and distributed in code/_globalvars The _compile_options.dm file contains anything that absolutely, 100%, must be initialized before world.dm. Name definitions have been moved to code/_globalvars/lists/names.dm. Other things to note - All instances of something.z == 2/1/3/5 have been replaced with easily configurable defines, labeled ZLEVEL_. The map include file can override these by defining custom ones in it's file, as it is at the top of the tree. --- code/__DEFINES/_readme.dm | 14 + code/__DEFINES/admin.dm | 43 + code/__DEFINES/atmospherics.dm | 137 +++ code/__DEFINES/clothing.dm | 79 ++ code/__DEFINES/combat.dm | 57 + code/__DEFINES/flags.dm | 97 ++ code/__DEFINES/genetics.dm | 96 ++ code/__DEFINES/hud.dm | 11 + code/__DEFINES/language.dm | 19 + code/__DEFINES/machines.dm | 27 + code/__DEFINES/math.dm | 13 + code/__DEFINES/misc.dm | 84 ++ code/__DEFINES/mob.dm | 77 ++ code/__DEFINES/preferences.dm | 40 + code/__DEFINES/sight.dm | 31 + code/__DEFINES/stat.dm | 40 + code/__HELPERS/global_lists.dm | 88 -- code/_compile_options.dm | 13 + code/_globalvars/configuration.dm | 59 ++ code/_globalvars/database.dm | 35 + code/_globalvars/game_modes.dm | 5 + code/_globalvars/genetics.dm | 70 ++ code/_globalvars/lists/flavor_misc.dm | 38 + code/_globalvars/lists/misc.dm | 17 + code/_globalvars/lists/mobs.dm | 55 + code/{ => _globalvars/lists}/names.dm | 36 +- code/_globalvars/lists/objects.dm | 21 + code/_globalvars/logging.dm | 14 + code/_globalvars/mapping.dm | 1 + code/_globalvars/misc.dm | 59 ++ code/_globalvars/station.dm | 13 + code/_globalvars/unused.dm | 40 + code/datums/spell.dm | 4 +- code/game/gamemodes/xenos/xenos.dm | 2 +- code/game/machinery/alarm.dm | 2 +- code/game/machinery/camera/camera.dm | 2 +- .../game/machinery/computer/communications.dm | 2 +- .../telecomms/machine_interactions.dm | 10 +- code/global.dm | 293 ------ code/modules/computer3/computers/prisoner.dm | 2 +- code/modules/mining/ore.dm | 2 +- code/setup.dm | 973 ------------------ paradise.dme | 33 +- 43 files changed, 1365 insertions(+), 1389 deletions(-) create mode 100644 code/__DEFINES/_readme.dm create mode 100644 code/__DEFINES/admin.dm create mode 100644 code/__DEFINES/atmospherics.dm create mode 100644 code/__DEFINES/clothing.dm create mode 100644 code/__DEFINES/combat.dm create mode 100644 code/__DEFINES/flags.dm create mode 100644 code/__DEFINES/genetics.dm create mode 100644 code/__DEFINES/hud.dm create mode 100644 code/__DEFINES/language.dm create mode 100644 code/__DEFINES/machines.dm create mode 100644 code/__DEFINES/math.dm create mode 100644 code/__DEFINES/misc.dm create mode 100644 code/__DEFINES/mob.dm create mode 100644 code/__DEFINES/preferences.dm create mode 100644 code/__DEFINES/sight.dm create mode 100644 code/__DEFINES/stat.dm create mode 100644 code/_compile_options.dm create mode 100644 code/_globalvars/configuration.dm create mode 100644 code/_globalvars/database.dm create mode 100644 code/_globalvars/game_modes.dm create mode 100644 code/_globalvars/genetics.dm create mode 100644 code/_globalvars/lists/flavor_misc.dm create mode 100644 code/_globalvars/lists/misc.dm create mode 100644 code/_globalvars/lists/mobs.dm rename code/{ => _globalvars/lists}/names.dm (95%) create mode 100644 code/_globalvars/lists/objects.dm create mode 100644 code/_globalvars/logging.dm create mode 100644 code/_globalvars/misc.dm create mode 100644 code/_globalvars/unused.dm delete mode 100644 code/global.dm delete mode 100644 code/setup.dm diff --git a/code/__DEFINES/_readme.dm b/code/__DEFINES/_readme.dm new file mode 100644 index 00000000000..42ad52286fe --- /dev/null +++ b/code/__DEFINES/_readme.dm @@ -0,0 +1,14 @@ +/* + This folder is full of #define statements. They are similar to constants, + but must come before any code that references them, and they do not take up + memory the way constants do. + + The values in this folder are NOT options. They are not for hosts to play with. + Some of the values are arbitrary and only need to be different from similar constants; + for example, the genetic mutation numbers in genetics.dm mean nothing, but MUST be distinct. + + It is wise not to touch them unless you understand what they do, where they're used, + and most importantly, + how to undo your changes if you screw it up. + - Sayu +*/ \ No newline at end of file diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm new file mode 100644 index 00000000000..1bcd5f5a3f4 --- /dev/null +++ b/code/__DEFINES/admin.dm @@ -0,0 +1,43 @@ +//A set of constants used to determine which type of mute an admin wishes to apply: +//Please read and understand the muting/automuting stuff before changing these. MUTE_IC_AUTO etc = (MUTE_IC << 1) +//Therefore there needs to be a gap between the flags for the automute flags +#define MUTE_IC 1 +#define MUTE_OOC 2 +#define MUTE_PRAY 4 +#define MUTE_ADMINHELP 8 +#define MUTE_DEADCHAT 16 +#define MUTE_ALL 31 + +//Number of identical messages required to get the spam-prevention automute thing to trigger warnings and automutes +#define SPAM_TRIGGER_WARNING 5 +#define SPAM_TRIGGER_AUTOMUTE 10 + +//Some constants for DB_Ban +#define BANTYPE_PERMA 1 +#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. +#define BANTYPE_APPEARANCE 6 + +//Please don't edit these values without speaking to Errorage first ~Carn +//Admin Permissions +#define R_BUILDMODE 1 +#define R_ADMIN 2 +#define R_BAN 4 +#define R_EVENT 8 +#define R_SERVER 16 +#define R_DEBUG 32 +#define R_POSSESS 64 +#define R_PERMISSIONS 128 +#define R_STEALTH 256 +#define R_REJUVINATE 512 +#define R_VAREDIT 1024 +#define R_SOUNDS 2048 +#define R_SPAWN 4096 +#define R_MOD 8192 +#define R_MENTOR 16384 + +#define R_MAXPERMISSION 16384 //This holds the maximum value for a permission. It is used in iteration, so keep it updated. + +#define R_HOST 65535 \ No newline at end of file diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm new file mode 100644 index 00000000000..6ed953516c2 --- /dev/null +++ b/code/__DEFINES/atmospherics.dm @@ -0,0 +1,137 @@ +#define FIRE_DAMAGE_MODIFIER 0.0215 //Higher values result in more external fire damage to the skin (default 0.0215) +#define AIR_DAMAGE_MODIFIER 4.050 //More means less damage from hot air scalding lungs, less = more damage. (default 2.025) + +#define CELL_VOLUME 2500 //liters in a cell +#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) +#define O2STANDARD 0.21 +#define N2STANDARD 0.79 +#define MOLES_O2STANDARD MOLES_CELLSTANDARD*O2STANDARD // O2 standard value (21%) +#define MOLES_N2STANDARD MOLES_CELLSTANDARD*N2STANDARD // N2 standard value (79%) + +#define GAS_O2 (1 << 0) +#define GAS_N2 (1 << 1) +#define GAS_PL (1 << 2) +#define GAS_CO2 (1 << 3) +#define GAS_N2O (1 << 4) + +#define MOLES_PLASMA_VISIBLE 0.7 //Moles in a standard cell after which plasma is visible +#define MIN_PLASMA_DAMAGE 1 +#define MAX_PLASMA_DAMAGE 10 + +#define BREATH_VOLUME 0.5 //liters in a normal breath +#define BREATH_MOLES (ONE_ATMOSPHERE * BREATH_VOLUME /(T20C*R_IDEAL_GAS_EQUATION)) +#define BREATH_PERCENTAGE BREATH_VOLUME/CELL_VOLUME + //Amount of air to take a from a tile +#define HUMAN_NEEDED_OXYGEN MOLES_CELLSTANDARD*BREATH_PERCENTAGE*0.16 + //Amount of air needed before pass out/suffocation commences + +#define SOUND_MINIMUM_PRESSURE 10 + +// 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) + +#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. +#define BODYTEMP_AUTORECOVERY_DIVISOR 12 //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 10 //Minimum amount of kelvin moved toward 310.15K 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 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_COOLING_MAX 30 //The maximum number of degrees that your body can cool in 1 tick, when in a cold area. +#define BODYTEMP_HEATING_MAX 30 //The maximum number of degrees that your body can heat up in 1 tick, when in a hot area. + +#define BODYTEMP_HEAT_DAMAGE_LIMIT 360.15 // The limit the human body can take before it starts taking damage from heat. +#define BODYTEMP_COLD_DAMAGE_LIMIT 260.15 // The limit the human body can take before it starts taking damage from coldness. + +#define SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE 2.0 //what min_cold_protection_temperature is set to for space-helmet quality headwear. MUST NOT BE 0. +#define SPACE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE 1500 +#define SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE 2.0 //what min_cold_protection_temperature is set to for space-suit quality jumpsuits or suits. MUST NOT BE 0. +#define SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE 1500 //These need better heat protect + +#define FIRESUIT_MIN_COLD_PROTECTION_TEMPERATURE 60 +#define FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE 30000 //what max_heat_protection_temperature is set to for firesuit quality headwear. MUST NOT BE 0. +#define FIRE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE 60 +#define FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE 30000 //for fire helmet quality items (red and white hardhats) + +#define FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT 35000 //what max_heat_protection_temperature is set to for firesuit quality suits. MUST NOT BE 0. +#define FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT 35000 //for fire helmet quality items (red and white hardhats) + +#define HELMET_MIN_COLD_PROTECTION_TEMPERATURE 160 //For normal helmets +#define HELMET_MAX_HEAT_PROTECTION_TEMPERATURE 600 //For normal helmets +#define ARMOR_MIN_COLD_PROTECTION_TEMPERATURE 160 //For armor +#define ARMOR_MAX_HEAT_PROTECTION_TEMPERATURE 600 //For armor + +#define GLOVES_MIN_COLD_PROTECTION_TEMPERATURE 2.0 //For some gloves (black and) +#define GLOVES_MAX_HEAT_PROTECTION_TEMPERATURE 1500 //For some gloves +#define SHOE_MIN_COLD_PROTECTION_TEMPERATURE 2.0 //For gloves +#define SHOE_MAX_HEAT_PROTECTION_TEMPERATURE 1500 //For gloves + + +#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 +#define MAX_HIGH_PRESSURE_DAMAGE 4 //This used to be 20... I got this much random rage for some retarded decision by polymorph?! Polymorph now lies in a pool of blood with a katana jammed in his spleen. ~Errorage --PS: The katana did less than 20 damage to him :( +#define LOW_PRESSURE_DAMAGE 2 //The amounb 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 PRESSURE_SUIT_REDUCTION_COEFFICIENT 0.8 //This is how much (percentual) a suit with the flag STOPSPRESSUREDMAGE reduces pressure. +#define PRESSURE_HEAD_REDUCTION_COEFFICIENT 0.4 //This is how much (percentual) a helmet/hat with the flag STOPSPRESSUREDMAGE reduces pressure. + + +#define MINIMUM_AIR_RATIO_TO_SUSPEND 0.05 + //Minimum ratio of air that must move to/from a tile to suspend group processing +#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_SUSPEND //Either this must be active +#define MINIMUM_TEMPERATURE_TO_MOVE T20C+100 //or this (or both, obviously) + +#define MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND 0.012 +#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 + +#define MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTION T20C+10 +#define MINIMUM_TEMPERATURE_START_SUPERCONDUCTION T20C+200 + +#define FLOOR_HEAT_TRANSFER_COEFFICIENT 0.4 +#define WALL_HEAT_TRANSFER_COEFFICIENT 0.0 +#define DOOR_HEAT_TRANSFER_COEFFICIENT 0.0 +#define SPACE_HEAT_TRANSFER_COEFFICIENT 0.2 //a hack to partly simulate radiative heat +#define OPEN_HEAT_TRANSFER_COEFFICIENT 0.4 +#define WINDOW_HEAT_TRANSFER_COEFFICIENT 0.1 //a hack for now + //Must be between 0 and 1. Values closer to 1 equalize temperature faster + //Should not exceed 0.4 else strange heat flow occur + +#define FIRE_MINIMUM_TEMPERATURE_TO_SPREAD 150+T0C +#define FIRE_MINIMUM_TEMPERATURE_TO_EXIST 100+T0C +#define FIRE_SPREAD_RADIOSITY_SCALE 0.85 +#define FIRE_CARBON_ENERGY_RELEASED 500000 //Amount of heat released per mole of burnt carbon into the tile +#define FIRE_PLASMA_ENERGY_RELEASED 3000000 //Amount of heat released per mole of burnt plasma into the tile +#define FIRE_GROWTH_RATE 40000 //For small fires + +//#define WATER_BOIL_TEMP 393 + +// Fire Damage +#define CARBON_LIFEFORM_FIRE_RESISTANCE 200+T0C +#define CARBON_LIFEFORM_FIRE_DAMAGE 4 + +//Plasma fire properties +#define PLASMA_MINIMUM_BURN_TEMPERATURE 100+T0C +#define PLASMA_FLASHPOINT 246+T0C +#define PLASMA_UPPER_TEMPERATURE 1370+T0C +#define PLASMA_MINIMUM_OXYGEN_NEEDED 2 +#define PLASMA_MINIMUM_OXYGEN_PLASMA_RATIO 20 +#define PLASMA_OXYGEN_FULLBURN 10 + +#define NORMPIPERATE 30 //pipe-insulation rate divisor +#define HEATPIPERATE 8 //heat-exch pipe insulation + +#define FLOWFRAC 0.99 // fraction of gas transfered per process + +#define TANK_LEAK_PRESSURE (30.*ONE_ATMOSPHERE) // Tank starts leaking +#define TANK_RUPTURE_PRESSURE (40.*ONE_ATMOSPHERE) // Tank spills all contents into atmosphere + +#define TANK_FRAGMENT_PRESSURE (50.*ONE_ATMOSPHERE) // Boom 3x3 base explosion +#define TANK_FRAGMENT_SCALE (10.*ONE_ATMOSPHERE) // +1 for each SCALE kPa aboe threshold + // was 2 atm \ No newline at end of file diff --git a/code/__DEFINES/clothing.dm b/code/__DEFINES/clothing.dm new file mode 100644 index 00000000000..a9474044978 --- /dev/null +++ b/code/__DEFINES/clothing.dm @@ -0,0 +1,79 @@ +//Bit flags for the flags_inv variable, which determine when a piece of clothing hides another. IE a helmet hiding glasses. +#define HIDEGLOVES 1 //APPLIES ONLY TO THE EXTERIOR SUIT!! +#define HIDESUITSTORAGE 2 //APPLIES ONLY TO THE EXTERIOR SUIT!! +#define HIDEJUMPSUIT 4 //APPLIES ONLY TO THE EXTERIOR SUIT!! +#define HIDESHOES 8 //APPLIES ONLY TO THE EXTERIOR SUIT!! +#define HIDETAIL 16 //APPLIES ONLY TO THE EXTERIOR SUIT!! +#define HIDEMASK 1 //APPLIES ONLY TO HELMETS/MASKS!! +#define HIDEEARS 2 //APPLIES ONLY TO HELMETS/MASKS!! (ears means headsets and such) +#define HIDEEYES 4 //APPLIES ONLY TO HELMETS/MASKS!! (eyes means glasses) +#define HIDEFACE 8 //APPLIES ONLY TO HELMETS/MASKS!! Dictates whether we appear as unknown. + +//slots +#define slot_back 1 +#define slot_wear_mask 2 +#define slot_handcuffed 3 +#define slot_l_hand 4 +#define slot_r_hand 5 +#define slot_belt 6 +#define slot_wear_id 7 +#define slot_l_ear 8 +#define slot_glasses 9 +#define slot_gloves 10 +#define slot_head 11 +#define slot_shoes 12 +#define slot_wear_suit 13 +#define slot_w_uniform 14 +#define slot_l_store 15 +#define slot_r_store 16 +#define slot_s_store 17 +#define slot_in_backpack 18 +#define slot_legcuffed 19 +#define slot_r_ear 20 +#define slot_wear_pda 21 +#define slot_tie 22 + +//Cant seem to find a mob bitflags area other than the powers one + +// bitflags for clothing parts +#define HEAD 1 +#define UPPER_TORSO 2 +#define LOWER_TORSO 4 +#define LEG_LEFT 8 +#define LEG_RIGHT 16 +#define LEGS 24 +#define FOOT_LEFT 32 +#define FOOT_RIGHT 64 +#define FEET 96 +#define ARM_LEFT 128 +#define ARM_RIGHT 256 +#define ARMS 384 +#define HAND_LEFT 512 +#define HAND_RIGHT 1024 +#define HANDS 1536 +#define FULL_BODY 2047 + +// bitflags for the percentual amount of protection a piece of clothing which covers the body part offers. +// Used with human/proc/get_heat_protection() and human/proc/get_cold_protection() +// The values here should add up to 1. +// Hands and feet have 2.5%, arms and legs 7.5%, each of the torso parts has 15% and the head has 30% +#define THERMAL_PROTECTION_HEAD 0.3 +#define THERMAL_PROTECTION_UPPER_TORSO 0.15 +#define THERMAL_PROTECTION_LOWER_TORSO 0.15 +#define THERMAL_PROTECTION_LEG_LEFT 0.075 +#define THERMAL_PROTECTION_LEG_RIGHT 0.075 +#define THERMAL_PROTECTION_FOOT_LEFT 0.025 +#define THERMAL_PROTECTION_FOOT_RIGHT 0.025 +#define THERMAL_PROTECTION_ARM_LEFT 0.075 +#define THERMAL_PROTECTION_ARM_RIGHT 0.075 +#define THERMAL_PROTECTION_HAND_LEFT 0.025 +#define THERMAL_PROTECTION_HAND_RIGHT 0.025 + +// Suit sensor levels +#define SUIT_SENSOR_OFF 0 +#define SUIT_SENSOR_BINARY 1 +#define SUIT_SENSOR_VITAL 2 +#define SUIT_SENSOR_TRACKING 3 + +#define BLOCKHEADHAIR 4 // temporarily removes the user's hair overlay. Leaves facial hair. +#define BLOCKHAIR 32768 // temporarily removes the user's hair, facial and otherwise. diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm new file mode 100644 index 00000000000..34e1f4279b8 --- /dev/null +++ b/code/__DEFINES/combat.dm @@ -0,0 +1,57 @@ +//Damage things //TODO: merge these down to reduce on defines +//Way to waste perfectly good damagetype names (BRUTE) on this... If you were really worried about case sensitivity, you could have just used lowertext(damagetype) in the proc... +#define CUT "cut" +#define BRUISE "bruise" +#define BRUTE "brute" +#define BURN "fire" +#define TOX "tox" +#define OXY "oxy" +#define CLONE "clone" +#define HALLOSS "halloss" +#define STAMINA "stamina" + +#define STUN "stun" +#define WEAKEN "weaken" +#define PARALYZE "paralize" +#define IRRADIATE "irradiate" +#define AGONY "agony" // Added in PAIN! +#define STUTTER "stutter" +#define SLUR "slur" +#define EYE_BLUR "eye_blur" +#define DROWSY "drowsy" +#define JITTER "jitter" + +//I hate adding defines like this but I'd much rather deal with bitflags than lists and string searches +#define BRUTELOSS 1 +#define FIRELOSS 2 +#define TOXLOSS 4 +#define OXYLOSS 8 + +//Bitflags defining which status effects could be or are inflicted on a mob +#define CANSTUN 1 +#define CANWEAKEN 2 +#define CANPARALYSE 4 +#define CANPUSH 8 +#define LEAPING 16 +#define PASSEMOTES 32 //Mob has a cortical borer or holders inside of it that need to see emotes. +#define GOTTAGOFAST 64 +#define GOTTAGOREALLYFAST 128 +#define IGNORESLOWDOWN 256 +#define GODMODE 4096 +#define FAKEDEATH 8192 //Replaces stuff like changeling.changeling_fakedeath +#define DISFIGURED 16384 //I'll probably move this elsewhere if I ever get wround to writing a bitflag mob-damage system +#define XENO_HOST 32768 //Tracks whether we're gonna be a baby alien's mummy. + + +//Grab levels +#define GRAB_PASSIVE 1 +#define GRAB_AGGRESSIVE 2 +#define GRAB_NECK 3 +#define GRAB_UPGRADING 4 +#define GRAB_KILL 5 + +#define HOSTILE_STANCE_IDLE 1 +#define HOSTILE_STANCE_ALERT 2 +#define HOSTILE_STANCE_ATTACK 3 +#define HOSTILE_STANCE_ATTACKING 4 +#define HOSTILE_STANCE_TIRED 5 \ No newline at end of file diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm new file mode 100644 index 00000000000..a54cef72f86 --- /dev/null +++ b/code/__DEFINES/flags.dm @@ -0,0 +1,97 @@ +//FLAGS BITMASK +#define STOPSPRESSUREDMAGE 1 //This flag is used on the flags variable for SUIT and HEAD items which stop pressure damage. Note that the flag 1 was previous used as ONBACK, so it is possible for some code to use (flags & 1) when checking if something can be put on your back. Replace this code with (inv_flags & SLOT_BACK) if you see it anywhere To successfully stop you taking all pressure damage you must have both a suit and head item with this flag. +#define NODROP 2 // This flag makes it so that an item literally cannot be removed at all, or at least that's how it should be. Only deleted. +#define NOBLUDGEON 4 // when an item has this it produces no "X has been hit by Y with Z" message with the default handler +#define MASKINTERNALS 8 // mask allows internals +//#define USEDELAY 16 // 1 second extra delay on use (Can be used once every 2s) +#define NOSHIELD 32 // weapon not affected by shield +#define CONDUCT 64 // conducts electricity (metal etc.) +#define ABSTRACT 128 // for all things that are technically items but used for various different stuff, made it 128 because it could conflict with other flags other way +#define ON_BORDER 512 // item has priority to check when entering or leaving +#define NODELAY 32768 // 1 second attackby delay skipped (Can be used once every 0.2s). Most objects have a 1s attackby delay, which doesn't require a flag. + +#define NOBLOODY 2048 // used to items if they don't want to get a blood overlay + +#define GLASSESCOVERSEYES 1024 +#define MASKCOVERSEYES 1024 // get rid of some of the other retardation in these flags +#define HEADCOVERSEYES 1024 // feel free to realloc these numbers for other purposes +#define MASKCOVERSMOUTH 2048 // on other items, these are just for mask/head +#define HEADCOVERSMOUTH 2048 + +#define HEADBANGPROTECT 4096 +#define EARBANGPROTECT 1024 + +#define THICKMATERIAL 1024 //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body. (NOTE: flag shared with NOSLIP) +#define NOSLIP 1024 //prevents from slipping on wet floors, in space etc + +#define OPENCONTAINER 4096 // is an open container for chemistry purposes + +#define BLOCK_GAS_SMOKE_EFFECT 8192 // blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY! (NOTE: flag shared with ONESIZEFITSALL) +#define ONESIZEFITSALL 8192 +#define PLASMAGUARD 16384 //Does not get contaminated by plasma. + +#define NOREACT 16384 //Reagents dont' react inside this container. + +//Species flags. + +#define NO_BLOOD 1 +#define NO_BREATHE 2 +#define RAD_ABSORB 8 +#define NO_SCAN 16 +#define NO_PAIN 32 +#define REQUIRE_LIGHT 64 +#define IS_WHITELISTED 128 +#define HAS_LIPS 512 +#define HAS_UNDERWEAR 1024 +#define IS_SYNTHETIC 2048 +#define IS_PLANT 4096 +#define CAN_BE_FAT 8192 +#define IS_RESTRICTED 16384 +#define NO_INTORGANS 32768 + +//Species Blood Flags +#define BLOOD_SLIME 1 +//Species Body Flags +#define FEET_CLAWS 1 +#define FEET_PADDED 2 +#define FEET_NOSLIP 4 +#define HAS_TAIL 8 +#define HAS_SKIN_TONE 16 +#define HAS_SKIN_COLOR 32 +#define TAIL_WAGGING 64 + + +//bitflags for door switches. +#define OPEN 1 +#define IDSCAN 2 +#define BOLTS 4 +#define SHOCK 8 +#define SAFE 16 + +//flags for pass_flags +#define PASSTABLE 1 +#define PASSGLASS 2 +#define PASSGRILLE 4 +#define PASSBLOB 8 +#define PASSMOB 16 + +//turf-only flags +#define NOJAUNT 1 + +//ITEM INVENTORY SLOT BITMASKS +#define SLOT_OCLOTHING 1 +#define SLOT_ICLOTHING 2 +#define SLOT_GLOVES 4 +#define SLOT_EYES 8 +#define SLOT_EARS 16 +#define SLOT_MASK 32 +#define SLOT_HEAD 64 +#define SLOT_FEET 128 +#define SLOT_ID 256 +#define SLOT_BELT 512 +#define SLOT_BACK 1024 +#define SLOT_POCKET 2048 //this is to allow items with a w_class of 3 or 4 to fit in pockets. +#define SLOT_DENYPOCKET 4096 //this is to deny items with a w_class of 2 or 1 to fit in pockets. +#define SLOT_TWOEARS 8192 +#define SLOT_PDA 16384 +#define SLOT_TIE 32768 \ No newline at end of file diff --git a/code/__DEFINES/genetics.dm b/code/__DEFINES/genetics.dm new file mode 100644 index 00000000000..4b8f65601af --- /dev/null +++ b/code/__DEFINES/genetics.dm @@ -0,0 +1,96 @@ +// String identifiers for associative list lookup + +// mob/var/list/mutations + +// Used in preferences. +#define DISABILITY_FLAG_NEARSIGHTED 1 +#define DISABILITY_FLAG_FAT 2 +#define DISABILITY_FLAG_EPILEPTIC 4 +#define DISABILITY_FLAG_DEAF 8 + +/////////////////////////////////////// +// MUTATIONS +/////////////////////////////////////// + +// Generic mutations: +#define TK 1 +#define RESIST_COLD 2 +#define XRAY 3 +#define HULK 4 +#define CLUMSY 5 +#define FAT 6 +#define HUSK 7 +#define NOCLONE 8 + + +// Extra powers: +#define LASER 9 // harm intent - click anywhere to shoot lasers from eyes +//#define HEAL 10 // (Not implemented) healing people with hands +//#define SHADOW 11 // (Not implemented) shadow teleportation (create in/out portals anywhere) (25%) +//#define SCREAM 12 // (Not implemented) supersonic screaming (25%) +//#define EXPLOSIVE 13 // (Not implemented) exploding on-demand (15%) +//#define REGENERATION 14 // (Not implemented) superhuman regeneration (30%) +//#define REPROCESSOR 15 // (Not implemented) eat anything (50%) +//#define SHAPESHIFTING 16 // (Not implemented) take on the appearance of anything (40%) +//#define PHASING 17 // (Not implemented) ability to phase through walls (40%) +//#define SHIELD 18 // (Not implemented) shielding from all projectile attacks (30%) +//#define SHOCKWAVE 19 // (Not implemented) attack a nearby tile and cause a massive shockwave, knocking most people on their asses (25%) +//#define ELECTRICITY 20 // (Not implemented) ability to shoot electric attacks (15%) + +//bitflags for mutations + // Extra powers: +#define SHADOW (1<<10) // shadow teleportation (create in/out portals anywhere) (25%) +#define SCREAM (1<<11) // supersonic screaming (25%) +#define EXPLOSIVE (1<<12) // exploding on-demand (15%) +#define REGENERATION (1<<13) // superhuman regeneration (30%) +#define REPROCESSOR (1<<14) // eat anything (50%) +#define SHAPESHIFTING (1<<15) // take on the appearance of anything (40%) +#define PHASING (1<<16) // ability to phase through walls (40%) +#define SHIELD (1<<17) // shielding from all projectile attacks (30%) +#define SHOCKWAVE (1<<18) // attack a nearby tile and cause a massive shockwave, knocking most people on their asses (25%) +#define ELECTRICITY (1<<19) // ability to shoot electric attacks (15%) + + + //2spooky +#define SKELETON 29 +#define PLANT 30 + +// Other Mutations: +#define NO_BREATH 100 // no need to breathe +#define REMOTE_VIEW 101 // remote viewing +#define REGEN 102 // health regen +#define RUN 103 // no slowdown +#define REMOTE_TALK 104 // remote talking +#define MORPH 105 // changing appearance +#define RESIST_HEAT 106 // heat resistance +#define HALLUCINATE 107 // hallucinations +#define FINGERPRINTS 108 // no fingerprints +#define NO_SHOCK 109 // insulated hands +#define DWARF 110 // table climbing + +// Goon muts +#define OBESITY 200 // Decreased metabolism +#define TOXIC_FARTS 201 // Duh +#define STRONG 202 // (Nothing) +#define SOBER 203 // Increased alcohol metabolism +#define PSY_RESIST 204 // Block remoteview +#define SUPER_FART 205 // Duh +#define EMPATH 206 //Read minds +#define COMIC 207 //Comic Sans + +// /vg/ muts +#define LOUD 208 // CAUSES INTENSE YELLING +//#define WHISPER 209 // causes quiet whispering +#define DIZZY 210 // Trippy. + +//disabilities +#define NEARSIGHTED 1 +#define EPILEPSY 2 +#define COUGHING 4 +#define TOURETTES 8 +#define NERVOUS 16 + +//sdisabilities +#define BLIND 1 +#define MUTE 2 +#define DEAF 4 \ No newline at end of file diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm new file mode 100644 index 00000000000..3e3e219792b --- /dev/null +++ b/code/__DEFINES/hud.dm @@ -0,0 +1,11 @@ +// for secHUDs and medHUDs and variants. The number is the location of the image on the list hud_list of humans. +#define HEALTH_HUD 1 // a simple line rounding the mob's number health +#define STATUS_HUD 2 // alive, dead, diseased, etc. +#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 SPECIALROLE_HUD 8 // AntagHUD image +#define STATUS_HUD_OOC 9 // STATUS_HUD without virus db check for someone being ill. +#define NATIONS_HUD 10 //Show nations icons during nations gamemode diff --git a/code/__DEFINES/language.dm b/code/__DEFINES/language.dm new file mode 100644 index 00000000000..fd467e7a054 --- /dev/null +++ b/code/__DEFINES/language.dm @@ -0,0 +1,19 @@ +//Languages! +#define LANGUAGE_HUMAN 1 +#define LANGUAGE_ALIEN 2 +#define LANGUAGE_DOG 4 +#define LANGUAGE_CAT 8 +#define LANGUAGE_BINARY 16 +#define LANGUAGE_OTHER 32768 + +#define LANGUAGE_UNIVERSAL 65535 + +//Language flags. +#define WHITELISTED 1 // Language is available if the speaker is whitelisted. +#define RESTRICTED 2 // Language can only be accquired by spawning or an admin. +#define NONVERBAL 4 // Language has a significant non-verbal component. Speech is garbled without line-of-sight +#define SIGNLANG 8 // Language is completely non-verbal. Speech is displayed through emotes for those who can understand. +#define HIVEMIND 16 // Broadcast to all mobs with this language. +#define NONGLOBAL 32 // Do not add to general languages list +#define INNATE 64 // All mobs can be assumed to speak and understand this language (audible emotes) +#define NO_TALK_MSG 128 // Do not show the "\The [speaker] talks into \the [radio]" message diff --git a/code/__DEFINES/machines.dm b/code/__DEFINES/machines.dm new file mode 100644 index 00000000000..5282720932b --- /dev/null +++ b/code/__DEFINES/machines.dm @@ -0,0 +1,27 @@ +// channel numbers for power +#define EQUIP 1 +#define LIGHT 2 +#define ENVIRON 3 +#define TOTAL 4 //for total power used only + +//computer3 error codes, move lower in the file when it passes dev -Sayu + #define PROG_CRASH 1 // Generic crash + #define MISSING_PERIPHERAL 2 // Missing hardware + #define BUSTED_ASS_COMPUTER 4 // Self-perpetuating error. BAC will continue to crash forever. + #define MISSING_PROGRAM 8 // Some files try to automatically launch a program. This is that failing. + #define FILE_DRM 16 // Some files want to not be copied/moved. This is them complaining that you tried. + #define NETWORK_FAILURE 32 + +#define MINERAL_MATERIAL_AMOUNT 2000 //The amount of materials you get from a sheet of mineral like iron/diamond/glass etc + +#define IMPRINTER 1 //For circuits. Uses glass/chemicals. +#define PROTOLATHE 2 //New stuff. Uses glass/metal/chemicals +#define AUTOLATHE 4 //Uses glass/metal only. +#define CRAFTLATHE 8 //Uses fuck if I know. For use eventually. +#define MECHFAB 16 //Remember, objects utilising this flag should have construction_time and construction_cost vars. +#define PODFAB 32 //Used by the spacepod part fabricator. Same idea as the mechfab +//Note: More then one of these can be added to a design but imprinter and lathe designs are incompatable. + +#define HYDRO_SPEED_MULTIPLIER 1 + +#define NANO_IGNORE_DISTANCE 1 \ No newline at end of file diff --git a/code/__DEFINES/math.dm b/code/__DEFINES/math.dm new file mode 100644 index 00000000000..dc361b61c97 --- /dev/null +++ b/code/__DEFINES/math.dm @@ -0,0 +1,13 @@ +#define PI 3.1415 +#define SPEED_OF_LIGHT 3e8 //not exact but hey! +#define SPEED_OF_LIGHT_SQ 9e+16 +#define INFINITY 1e31 //closer then enough + +//atmos +#define R_IDEAL_GAS_EQUATION 8.31 //kPa*L/(K*mol) +#define ONE_ATMOSPHERE 101.325 //kPa +#define T0C 273.15 // 0degC +#define T20C 293.15 // 20degC +#define TCMB 2.7 // -270.3degC + +#define CLAMP01(x) max(0, min(1, x)) \ No newline at end of file diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm new file mode 100644 index 00000000000..bb6a0aad684 --- /dev/null +++ b/code/__DEFINES/misc.dm @@ -0,0 +1,84 @@ + + + +//zlevel defines, can be overriden for different maps in the appropriate _maps file. +#define ZLEVEL_STATION 1 +#define ZLEVEL_CENTCOMM 2 +#define ZLEVEL_TELECOMMS 3 +#define ZLEVEL_ENGI 4 +#define ZLEVEL_ASTEROID 5 +#define ZLEVEL_DERELICT 6 +#define ZLEVEL_SYNDIE 7 +#define ZLEVEL_EMPTY 8 +#define MAX_Z 8 // Used in space.dm to defince which Z-levels cannot be exited via space. +#define TRANSITIONEDGE 7 //Distance from edge to move to another z-level + +/// +#define ENGINE_EJECT_Z 3 + +//Object specific defines +#define CANDLE_LUM 3 //For how bright candles are + +//Security levels +#define SEC_LEVEL_GREEN 0 +#define SEC_LEVEL_BLUE 1 +#define SEC_LEVEL_RED 2 +#define SEC_LEVEL_GAMMA 3 +#define SEC_LEVEL_EPSILON 4 +#define SEC_LEVEL_DELTA 5 + +//Click cooldowns, in tenths of a second +#define CLICK_CD_MELEE 8 +#define CLICK_CD_RANGE 4 +#define CLICK_CD_BREAKOUT 100 +#define CLICK_CD_HANDCUFFED 10 +#define CLICK_CD_TKSTRANGLE 10 +#define CLICK_CD_POINT 10 +#define CLICK_CD_RESIST 20 + +/// +#define ROUNDSTART_LOGOUT_REPORT_TIME 6000 //Amount of time (in deciseconds) after the rounds starts, that the player disconnect report is issued. + +// DOOR CRUSHING DAMAGE! +#define DOOR_CRUSH_DAMAGE 10 + +////////////GERMS AND INFECTIONS//////////// +#define GERM_LEVEL_AMBIENT 110 //maximum germ level you can reach by standing still +#define GERM_LEVEL_MOVE_CAP 200 //maximum germ level you can reach by running around + +#define INFECTION_LEVEL_ONE 100 +#define INFECTION_LEVEL_TWO 500 +#define INFECTION_LEVEL_THREE 1000 + +//metal, glass, rod stacks +#define MAX_STACK_AMOUNT_METAL 50 +#define MAX_STACK_AMOUNT_GLASS 50 +#define MAX_STACK_AMOUNT_RODS 60 + +#define CC_PER_SHEET_METAL 3750 +#define CC_PER_SHEET_GLASS 3750 +#define CC_PER_SHEET_MISC 2000 + +//some colors +#define COLOR_RED "#FF0000" +#define COLOR_GREEN "#00FF00" +#define COLOR_BLUE "#0000FF" +#define COLOR_CYAN "#00FFFF" +#define COLOR_PINK "#FF00FF" +#define COLOR_YELLOW "#FFFF00" +#define COLOR_ORANGE "#FF9900" +#define COLOR_WHITE "#FFFFFF" + +//some arbitrary defines to be used by self-pruning global lists. (see master_controller) +#define PROCESS_KILL 26 //Used to trigger removal from a processing list + +//Flags for zone sleeping +#define ZONE_ACTIVE 1 +#define ZONE_SLEEPING 0 + +#define shuttle_time_in_station 1800 // 3 minutes in the station +#define shuttle_time_to_arrive 6000 // 10 minutes to arrive + +#define EVENT_LEVEL_MUNDANE 1 +#define EVENT_LEVEL_MODERATE 2 +#define EVENT_LEVEL_MAJOR 3 \ No newline at end of file diff --git a/code/__DEFINES/mob.dm b/code/__DEFINES/mob.dm new file mode 100644 index 00000000000..75a11f33acc --- /dev/null +++ b/code/__DEFINES/mob.dm @@ -0,0 +1,77 @@ +// Vampire power defines +#define VAMP_REJUV 1 +#define VAMP_GLARE 2 +#define VAMP_HYPNO 3 +#define VAMP_SHAPE 4 +#define VAMP_VISION 5 +#define VAMP_DISEASE 6 +#define VAMP_CLOAK 7 +#define VAMP_BATS 8 +#define VAMP_SCREAM 9 +#define VAMP_JAUNT 10 +#define VAMP_SLAVE 11 +#define VAMP_BLINK 12 +#define VAMP_FULL 13 +///////////////////ORGAN DEFINES/////////////////// + +// Organ defines. +#define ORGAN_CUT_AWAY 1 +#define ORGAN_GAUZED 2 +#define ORGAN_ATTACHABLE 4 +#define ORGAN_BLEEDING 8 +#define ORGAN_BROKEN 32 +#define ORGAN_DESTROYED 64 +#define ORGAN_ROBOT 128 +#define ORGAN_SPLINTED 256 +#define SALVED 512 +#define ORGAN_DEAD 1024 +#define ORGAN_MUTATED 2048 +#define ORGAN_ASSISTED 4096 + +#define DROPLIMB_EDGE 0 +#define DROPLIMB_BLUNT 1 +#define DROPLIMB_BURN 2 + +#define AGE_MIN 17 //youngest a character can be +#define AGE_MAX 85 //oldest a character can be + + +#define LEFT 1 +#define RIGHT 2 + + +//Pulse levels, very simplified +#define PULSE_NONE 0 //so !M.pulse checks would be possible +#define PULSE_SLOW 1 //<60 bpm +#define PULSE_NORM 2 //60-90 bpm +#define PULSE_FAST 3 //90-120 bpm +#define PULSE_2FAST 4 //>120 bpm +#define PULSE_THREADY 5 //occurs during hypovolemic shock +//feel free to add shit to lists below + + +//proc/get_pulse methods +#define GETPULSE_HAND 0 //less accurate (hand) +#define GETPULSE_TOOL 1 //more accurate (med scanner, sleeper, etc) + +//Some on_mob_life() procs check for alien races. +#define IS_DIONA 1 +#define IS_VOX 2 +#define IS_SKRELL 3 +#define IS_UNATHI 4 + +#define HUMAN_STRIP_DELAY 40 //takes 40ds = 4s to strip someone. +#define ALIEN_SELECT_AFK_BUFFER 1 // How many minutes that a person can be AFK before not being allowed to be an alien. +#define SHOES_SLOWDOWN -1.0 // How much shoes slow you down by default. Negative values speed you up + + +////////REAGENT STUFF//////// +// How many units of reagent are consumed per tick, by default. +#define 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 REAGENTS_EFFECT_MULTIPLIER REAGENTS_METABOLISM / 0.4 + +// Factor of how fast mob nutrition decreases +#define HUNGER_FACTOR 0.1 \ No newline at end of file diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm new file mode 100644 index 00000000000..affe84a0156 --- /dev/null +++ b/code/__DEFINES/preferences.dm @@ -0,0 +1,40 @@ +//Preference toggles +#define SOUND_ADMINHELP 1 +#define SOUND_MIDI 2 +#define SOUND_AMBIENCE 4 +#define SOUND_LOBBY 8 +#define SOUND_STREAMING 16 +#define SOUND_HEARTBEAT 32 +#define SOUND_BUZZ 64 + +#define SOUND_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|SOUND_STREAMING|SOUND_HEARTBEAT|SOUND_BUZZ) + +#define CHAT_OOC 1 +#define CHAT_DEAD 2 +#define CHAT_GHOSTEARS 4 +#define CHAT_GHOSTSIGHT 8 +#define CHAT_PRAYER 16 +#define CHAT_RADIO 32 +#define CHAT_ATTACKLOGS 64 +#define CHAT_DEBUGLOGS 128 +#define CHAT_LOOC 256 +#define CHAT_GHOSTRADIO 512 +#define SHOW_TYPING 1024 + +#define TOGGLES_DEFAULT (CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_ATTACKLOGS|CHAT_LOOC) + +#define BE_TRAITOR 1 +#define BE_OPERATIVE 2 +#define BE_CHANGELING 4 +#define BE_WIZARD 8 +#define BE_MALF 16 +#define BE_REV 32 +#define BE_ALIEN 64 +#define BE_PAI 128 +#define BE_CULTIST 256 +#define BE_NINJA 512 +#define BE_RAIDER 1024 +#define BE_VAMPIRE 2048 +#define BE_MUTINEER 4096 +#define BE_BLOB 8192 +#define BE_SHADOWLING 16384 \ No newline at end of file diff --git a/code/__DEFINES/sight.dm b/code/__DEFINES/sight.dm new file mode 100644 index 00000000000..677d33ecddc --- /dev/null +++ b/code/__DEFINES/sight.dm @@ -0,0 +1,31 @@ +#define SEE_INVISIBLE_MINIMUM 5 + +#define SEE_INVISIBLE_OBSERVER_NOLIGHTING 15 + +#define INVISIBILITY_LIGHTING 20 + +#define SEE_INVISIBLE_LIVING 25 + +#define SEE_INVISIBLE_LEVEL_ONE 35 //Used by some stuff in code. It's really poorly organized. +#define INVISIBILITY_LEVEL_ONE 35 //Used by some stuff in code. It's really poorly organized. + +#define SEE_INVISIBLE_LEVEL_TWO 45 //Used by some other stuff in code. It's really poorly organized. +#define INVISIBILITY_LEVEL_TWO 45 //Used by some other stuff in code. It's really poorly organized. + +#define INVISIBILITY_SPIRIT 50 +#define SEE_SPIRITS 50 + +#define SEE_INVISIBLE_OBSERVER_NOOBSERVERS 59 +#define INVISIBILITY_OBSERVER 60 +#define SEE_INVISIBLE_OBSERVER 60 +#define INVISIBILITY_AI_EYE 61 +#define SEE_INVISIBLE_OBSERVER_AI_EYE 61 + +#define INVISIBILITY_MAXIMUM 100 + +//Some mob defines below +#define AI_CAMERA_LUMINOSITY 6 + +#define BORGMESON 1 +#define BORGTHERM 2 +#define BORGXRAY 4 diff --git a/code/__DEFINES/stat.dm b/code/__DEFINES/stat.dm new file mode 100644 index 00000000000..28013d1473f --- /dev/null +++ b/code/__DEFINES/stat.dm @@ -0,0 +1,40 @@ +//mob/var/stat things +#define CONSCIOUS 0 +#define UNCONSCIOUS 1 +#define DEAD 2 + +// NanoUI flags +#define STATUS_INTERACTIVE 2 // GREEN Visability +#define STATUS_UPDATE 1 // ORANGE Visability +#define STATUS_DISABLED 0 // RED Visability +#define STATUS_CLOSE -1 // Close the interface + +// bitflags for machine stat variable +#define BROKEN 1 +#define NOPOWER 2 +#define POWEROFF 4 // tbd +#define MAINT 8 // under maintaince +#define EMPED 16 // temporary broken by EMP pulse + +/* + Shuttles +*/ + +// these define the time taken for the shuttle to get to SS13 +// and the time before it leaves again +#define SHUTTLE_PREPTIME 300 // 5 minutes = 300 seconds - after this time, the shuttle departs centcom and cannot be recalled +#define SHUTTLE_LEAVETIME 180 // 3 minutes = 180 seconds - the duration for which the shuttle will wait at the station after arriving +#define SHUTTLE_TRANSIT_DURATION 300 // 5 minutes = 300 seconds - how long it takes for the shuttle to get to the station +#define SHUTTLE_TRANSIT_DURATION_RETURN 120 // 2 minutes = 120 seconds - for some reason it takes less time to come back, go figure. + +//Shuttle moving status +#define SHUTTLE_IDLE 0 +#define SHUTTLE_WARMUP 1 +#define SHUTTLE_INTRANSIT 2 +#define SHUTTLE_STRANDED 3 + +//Ferry shuttle processing status +#define IDLE_STATE 0 +#define WAIT_LAUNCH 1 +#define WAIT_ARRIVE 2 +#define WAIT_FINISH 3 \ No newline at end of file diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 8fa1726ba52..26380218d1e 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -1,91 +1,3 @@ -var/list/clients = list() //list of all clients -var/list/admins = list() //list of all clients whom are admins -var/list/directory = list() //list of all ckeys with associated client - -//Since it didn't really belong in any other category, I'm putting this here -//This is for procs to replace all the goddamn 'in world's that are chilling around the code - -var/global/list/player_list = list() //List of all mobs **with clients attached**. Excludes /mob/new_player -var/global/list/mob_list = list() //List of all mobs, including clientless -var/global/list/spirits = list() //List of all the spirits, including Masks -var/global/list/living_mob_list = list() //List of all alive mobs, including clientless. Excludes /mob/new_player -var/global/list/dead_mob_list = list() //List of all dead mobs, including clientless. Excludes /mob/new_player -var/global/list/respawnable_list = list() //List of all mobs, dead or in mindless creatures that still be respawned. - -var/global/list/portals = list() //for use by portals -var/global/list/cable_list = list() //Index for all cables, so that powernets don't have to look through the entire world all the time -var/global/list/chemical_reactions_list //list of all /datum/chemical_reaction datums. Used during chemical reactions -var/global/list/chemical_reagents_list //list of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff -var/global/list/landmarks_list = list() //list of all landmarks created -var/global/list/surgery_steps = list() //list of all surgery steps |BS12 -var/global/list/side_effects = list() //list of all medical sideeffects types by thier names |BS12 -var/global/list/mechas_list = list() //list of all mechs. Used by hostile mobs target tracking. -var/global/list/spacepods_list = list() //list of all space pods. Used by hostile mobs target tracking. -var/global/list/joblist = list() //list of all jobstypes, minus borg and AI -var/global/list/flag_list = list() //list of flags during Nations gamemode -var/global/list/airlocks = list() //list of all airlocks - - -var/global/list/alphabet_uppercase = list("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z") //added for Xenoarchaeology, might be useful for other stuff - -var/global/list/aibots = list() // AI controlled bots -var/global/list/table_recipes = list() //list of all table craft recipes - -//Languages/species/whitelist. -var/global/list/all_species[0] -var/global/list/all_languages[0] -var/global/list/language_keys[0] // Table of say codes for all languages -var/global/list/all_nations[0] -var/global/list/all_superheroes[0] -var/global/list/whitelisted_species = list() - -//global var of unsafe-to-spawn-on-reaction mobs -var/global/list/blocked_mobs = list(/mob/living/simple_animal/hostile, - /mob/living/simple_animal/hostile/pirate, - /mob/living/simple_animal/hostile/pirate/ranged, - /mob/living/simple_animal/hostile/russian, - /mob/living/simple_animal/hostile/russian/ranged, - /mob/living/simple_animal/hostile/syndicate, - /mob/living/simple_animal/hostile/syndicate/melee, - /mob/living/simple_animal/hostile/syndicate/melee/space, - /mob/living/simple_animal/hostile/syndicate/ranged, - /mob/living/simple_animal/hostile/syndicate/ranged/space, - /mob/living/simple_animal/hostile/alien/queen/large, - /mob/living/simple_animal/hostile/retaliate, - /mob/living/simple_animal/hostile/retaliate/clown, - /mob/living/simple_animal/hostile/mushroom, - /mob/living/simple_animal/hostile/asteroid, - /mob/living/simple_animal/hostile/asteroid/basilisk, - /mob/living/simple_animal/hostile/asteroid/goldgrub, - /mob/living/simple_animal/hostile/asteroid/goliath, - /mob/living/simple_animal/hostile/asteroid/hivelord, - /mob/living/simple_animal/hostile/asteroid/hivelordbrood, - /mob/living/simple_animal/hostile/carp/holocarp, - /mob/living/simple_animal/hostile/mining_drone, - /mob/living/simple_animal/hostile/spaceWorm, - /mob/living/simple_animal/hostile/spaceWorm/wormHead, - /mob/living/simple_animal/ascendant_shadowling - ) - -//Preferences stuff - //Hairstyles -var/global/list/hair_styles_list = list() //stores /datum/sprite_accessory/hair indexed by name -var/global/list/hair_styles_male_list = list() -var/global/list/hair_styles_female_list = list() -var/global/list/facial_hair_styles_list = list() //stores /datum/sprite_accessory/facial_hair indexed by name -var/global/list/facial_hair_styles_male_list = list() -var/global/list/facial_hair_styles_female_list = list() -var/global/list/skin_styles_female_list = list() //unused - //Underwear -var/global/list/underwear_m = list("White", "Grey", "Green", "Blue", "Black", "Mankini", "None") -var/global/list/underwear_f = list("Red", "White", "Yellow", "Blue", "Black", "Thong", "None") -var/global/list/underwear_list = underwear_m + underwear_f - //undershirt -var/global/list/undershirt_t = list("White Shirt", "White Tank top", "Black shirt", "Black Tank top", "Grey Shirt", "Grey tank top", "Lover Shirt", "Blue Ian Shirt", "UK Shirt","I Love NT Shirt", "Peace Shirt", "Band Shirt", "PogoMan Shirt", "Matroska Shirt", "White Short-sleeved shirt", "Purple Short-sleeved shirt", "Blue Short-sleeved shirt", "Green Short-sleeved shirt", "Black Short-Sleeved shirt", "Blue T-Shirt", "Red T-Shirt", "Yellow T-Shirt", "Green T-Shirt", "Blue Polo Shirt", "Red Polo Shirt", "White Polo Shirt", "Gray-Yellow Polo Shirt", "Green Sports Shirt", "Red Sports Shirt", "Blue Sports Shirt", "SS13 Shirt", "Fire Tank Top", "Question Shirt", "Skull Shirt", "Commie Shirt", "Nanotrasen Shirt", "Striped Shirt", "Blue Shirt", "Red Shirt", "Green Shirt", "Meat Shirt", "Tie-Dye Shirt", "Red Jersey", "Blue Jersey", "None") -var/global/list/undershirt_list = undershirt_t - //Backpacks -var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel", "Satchel Alt") - ////////////////////////// /////Initial Building///// diff --git a/code/_compile_options.dm b/code/_compile_options.dm new file mode 100644 index 00000000000..4d9f7f48a3d --- /dev/null +++ b/code/_compile_options.dm @@ -0,0 +1,13 @@ +#define DEBUG + +#define IS_MODE_COMPILED(MODE) (ispath(text2path("/datum/game_mode/"+(MODE)))) + +#define BACKGROUND_ENABLED 0 // The default value for all uses of set background. Set background can cause gradual lag and is recommended you only turn this on if necessary. + + //Don't set this very much higher then 1024 unless you like inviting people in to dos your server with message spam +#define MAX_MESSAGE_LEN 1024 +#define MAX_PAPER_MESSAGE_LEN 3072 +#define MAX_BOOK_MESSAGE_LEN 9216 +#define MAX_NAME_LEN 26 + +var/global/list/processing_objects = list() //This has to be initialized BEFORE world \ No newline at end of file diff --git a/code/_globalvars/configuration.dm b/code/_globalvars/configuration.dm new file mode 100644 index 00000000000..30974675e07 --- /dev/null +++ b/code/_globalvars/configuration.dm @@ -0,0 +1,59 @@ +var/datum/configuration/config = null + +var/host = null +var/join_motd = null +var/station_name = "NSS Cyberiad" +var/game_version = "Custom ParaCode" +var/changelog_hash = "" +var/game_year = (text2num(time2text(world.realtime, "YYYY")) + 544) + +var/aliens_allowed = 1 +var/ooc_allowed = 1 +var/dsay_allowed = 1 +var/dooc_allowed = 1 +var/traitor_scaling = 1 +//var/goonsay_allowed = 0 +var/dna_ident = 1 +var/abandon_allowed = 0 +var/enter_allowed = 1 +var/guests_allowed = 1 +var/shuttle_frozen = 0 +var/shuttle_left = 0 +var/tinted_weldhelh = 1 +var/mouse_respawn_time = 5 //Amount of time that must pass between a player dying as a mouse and repawning as a mouse. In minutes. + +// Debug is used exactly once (in living.dm) but is commented out in a lot of places. It is not set anywhere and only checked. +// Debug2 is used in conjunction with a lot of admin verbs and therefore is actually legit. +var/Debug = 0 // global debug switch +var/Debug2 = 1 // enables detailed job debug file in secrets + +//This was a define, but I changed it to a variable so it can be changed in-game.(kept the all-caps definition because... code...) -Errorage +var/MAX_EXPLOSION_RANGE = 14 +var/MAX_EX_DEVESTATION_RANGE = 3 +var/MAX_EX_HEAVY_RANGE = 7 +var/MAX_EX_LIGHT_RANGE = 14 +var/MAX_EX_FLASH_RANGE = 14 +//#define MAX_EXPLOSION_RANGE 14 // Defaults to 12 (was 8) -- TLE + +var/list/be_special_flags = list( + "traitor" = BE_TRAITOR, + "operative" = BE_OPERATIVE, + "changeling" = BE_CHANGELING, + "wizard" = BE_WIZARD, + "malf AI" = BE_MALF, + "revolutionary" = BE_REV, + "alien" = BE_ALIEN, + "pAI" = BE_PAI, + "cultist" = BE_CULTIST, + "ninja" = BE_NINJA, + "raider" = BE_RAIDER, + "vampire" = BE_VAMPIRE, + "mutineer" = BE_MUTINEER, + "blob" = BE_BLOB +) + +//Random event stuff, apparently used +var/eventchance = 10 //% per 5 mins +var/event = 0 +var/hadevent = 0 +var/blobevent = 0 \ No newline at end of file diff --git a/code/_globalvars/database.dm b/code/_globalvars/database.dm new file mode 100644 index 00000000000..437f479f99c --- /dev/null +++ b/code/_globalvars/database.dm @@ -0,0 +1,35 @@ + // MySQL configuration +var/sqladdress = "localhost" +var/sqlport = "3306" +var/sqldb = "paradise" +var/sqllogin = "root" +var/sqlpass = "example" + + // Feedback gathering sql connection +var/sqlfdbkdb = "paradise" +var/sqlfdbklogin = "root" +var/sqlfdbkpass = "example" + +var/sqllogging = 0 // Should we log deaths, population stats, etc? + + // Forum MySQL configuration (for use with forum account/key authentication) + // These are all default values that will load should the forumdbconfig.txt + // file fail to read for whatever reason. + +var/forumsqladdress = "localhost" +var/forumsqlport = "3306" +var/forumsqldb = "tgstation" +var/forumsqllogin = "root" +var/forumsqlpass = "bleh" +var/forum_activated_group = "2" +var/forum_authenticated_group = "10" + + // For FTP requests. (i.e. downloading runtime logs.) + // However it'd be ok to use for accessing attack logs and such too, which are even laggier. +var/fileaccess_timer = 0 +var/custom_event_msg = null + +//Database connections +//A connection is established on world creation. Ideally, the connection dies when the server restarts (After feedback logging.). +var/DBConnection/dbcon = new() //Feedback database (New database) +var/DBConnection/dbcon_old = new() //Tgstation database (Old database) - See the files in the SQL folder for information what goes where. \ No newline at end of file diff --git a/code/_globalvars/game_modes.dm b/code/_globalvars/game_modes.dm new file mode 100644 index 00000000000..6051d6c8e16 --- /dev/null +++ b/code/_globalvars/game_modes.dm @@ -0,0 +1,5 @@ +var/master_mode = "extended"//"extended" +var/secret_force_mode = "secret" // if this is anything but "secret", the secret rotation will forceably choose this mode + +var/wavesecret = 0 // meteor mode, delays wave progression, terrible name +var/datum/station_state/start_state = null // Used in round-end report \ No newline at end of file diff --git a/code/_globalvars/genetics.dm b/code/_globalvars/genetics.dm new file mode 100644 index 00000000000..b642b034921 --- /dev/null +++ b/code/_globalvars/genetics.dm @@ -0,0 +1,70 @@ + /////////// +var/BLINDBLOCK = 0 +var/DEAFBLOCK = 0 +var/HULKBLOCK = 0 +var/TELEBLOCK = 0 +var/FIREBLOCK = 0 +var/XRAYBLOCK = 0 +var/CLUMSYBLOCK = 0 +var/FAKEBLOCK = 0 +var/COUGHBLOCK = 0 +var/GLASSESBLOCK = 0 +var/EPILEPSYBLOCK = 0 +var/TWITCHBLOCK = 0 +var/NERVOUSBLOCK = 0 +var/MONKEYBLOCK = 50 // Monkey block will always be the DNA_SE_LENGTH + +var/BLOCKADD = 0 +var/DIFFMUT = 0 + +var/NOBREATHBLOCK = 0 +var/REMOTEVIEWBLOCK = 0 +var/REGENERATEBLOCK = 0 +var/INCREASERUNBLOCK = 0 +var/REMOTETALKBLOCK = 0 +var/MORPHBLOCK = 0 +var/COLDBLOCK = 0 +var/HALLUCINATIONBLOCK = 0 +var/NOPRINTSBLOCK = 0 +var/SHOCKIMMUNITYBLOCK = 0 +var/SMALLSIZEBLOCK = 0 + +/////////////////////////////// +// Goon Stuff +/////////////////////////////// +// Disabilities +var/LISPBLOCK = 0 +var/MUTEBLOCK = 0 +var/RADBLOCK = 0 +var/FATBLOCK = 0 +var/CHAVBLOCK = 0 +var/SWEDEBLOCK = 0 +var/SCRAMBLEBLOCK = 0 +var/TOXICFARTBLOCK = 0 +var/STRONGBLOCK = 0 +var/HORNSBLOCK = 0 +var/COMICBLOCK = 0 + +// Powers +var/SOBERBLOCK = 0 +var/PSYRESISTBLOCK = 0 +var/SHADOWBLOCK = 0 +var/CHAMELEONBLOCK = 0 +var/CRYOBLOCK = 0 +var/EATBLOCK = 0 +var/JUMPBLOCK = 0 +//var/MELTBLOCK = 0 +var/EMPATHBLOCK = 0 +var/SUPERFARTBLOCK = 0 +var/IMMOLATEBLOCK = 0 +var/POLYMORPHBLOCK = 0 + +/////////////////////////////// +// /vg/ Mutations +/////////////////////////////// +var/LOUDBLOCK = 0 +//var/WHISPERBLOCK = 0 +var/DIZZYBLOCK = 0 + +var/list/reg_dna = list( ) //this appears to be a list of UE == real_name correlations +var/list/global_mutations = list() // list of hidden mutation things \ No newline at end of file diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm new file mode 100644 index 00000000000..8ec230cc13b --- /dev/null +++ b/code/_globalvars/lists/flavor_misc.dm @@ -0,0 +1,38 @@ +//Preferences stuff + //Hairstyles +var/global/list/hair_styles_list = list() //stores /datum/sprite_accessory/hair indexed by name +var/global/list/hair_styles_male_list = list() +var/global/list/hair_styles_female_list = list() +var/global/list/facial_hair_styles_list = list() //stores /datum/sprite_accessory/facial_hair indexed by name +var/global/list/facial_hair_styles_male_list = list() +var/global/list/facial_hair_styles_female_list = list() +var/global/list/skin_styles_female_list = list() //unused + //Underwear +var/global/list/underwear_m = list("White", "Grey", "Green", "Blue", "Black", "Mankini", "None") +var/global/list/underwear_f = list("Red", "White", "Yellow", "Blue", "Black", "Thong", "None") +var/global/list/underwear_list = underwear_m + underwear_f + //undershirt +var/global/list/undershirt_t = list("White Shirt", "White Tank top", "Black shirt", "Black Tank top", "Grey Shirt", "Grey tank top", "Lover Shirt", "Blue Ian Shirt", "UK Shirt","I Love NT Shirt", "Peace Shirt", "Band Shirt", "PogoMan Shirt", "Matroska Shirt", "White Short-sleeved shirt", "Purple Short-sleeved shirt", "Blue Short-sleeved shirt", "Green Short-sleeved shirt", "Black Short-Sleeved shirt", "Blue T-Shirt", "Red T-Shirt", "Yellow T-Shirt", "Green T-Shirt", "Blue Polo Shirt", "Red Polo Shirt", "White Polo Shirt", "Gray-Yellow Polo Shirt", "Green Sports Shirt", "Red Sports Shirt", "Blue Sports Shirt", "SS13 Shirt", "Fire Tank Top", "Question Shirt", "Skull Shirt", "Commie Shirt", "Nanotrasen Shirt", "Striped Shirt", "Blue Shirt", "Red Shirt", "Green Shirt", "Meat Shirt", "Tie-Dye Shirt", "Red Jersey", "Blue Jersey", "None") +var/global/list/undershirt_list = undershirt_t + //Backpacks +var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel", "Satchel Alt") + +var/static/list/scarySounds = list('sound/weapons/thudswoosh.ogg','sound/weapons/Taser.ogg','sound/weapons/armbomb.ogg','sound/voice/hiss1.ogg','sound/voice/hiss2.ogg', \ +'sound/voice/hiss3.ogg','sound/voice/hiss4.ogg','sound/voice/hiss5.ogg','sound/voice/hiss6.ogg','sound/effects/Glassbr1.ogg','sound/effects/Glassbr2.ogg','sound/effects/Glassbr3.ogg', \ +'sound/items/Welder.ogg','sound/items/Welder2.ogg','sound/machines/airlock.ogg','sound/effects/clownstep1.ogg','sound/effects/clownstep2.ogg') + +// Reference list for disposal sort junctions. Set the sortType variable on disposal sort junctions to +// the index of the sort department that you want. For example, sortType set to 2 will reroute all packages +// tagged for the Cargo Bay. + +//If you don't want to fuck up disposals, add to this list, and don't change the order. +//If you insist on changing the order, you'll have to change every sort junction to reflect the new order. --Pete + +var/list/TAGGERLOCATIONS = list("Disposals", + "Cargo Bay", "QM Office", "Engineering", "CE Office", + "Atmospherics", "HoS Office", "Security", "Medbay", + "CMO Office", "Chemistry", "Research", "RD Office", + "Robotics", "HoP Office", "Library", "Chapel", "Captain's Office", + "Bar", "Kitchen", "Hydroponics", "Janitor Closet","Genetics") + +var/list/hit_appends = list("-OOF", "-ACK", "-UGH", "-HRNK", "-HURGH", "-GLORF") \ No newline at end of file diff --git a/code/_globalvars/lists/misc.dm b/code/_globalvars/lists/misc.dm new file mode 100644 index 00000000000..780f17a1b90 --- /dev/null +++ b/code/_globalvars/lists/misc.dm @@ -0,0 +1,17 @@ +var/global/list/alphabet_uppercase = list("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z") //added for Xenoarchaeology, might be useful for other stuff + +//Reagent stuff +var/list/tachycardics = list("coffee", "methamphetamine", "nitroglycerin", "thirteenloko", "nicotine") //increase heart rate +var/list/bradycardics = list("neurotoxin", "cryoxadone", "space_drugs") //decrease heart rate +var/list/heartstopper = list("capulettium", "capulettium_plus") //this stops the heart +var/list/cheartstopper = list() //this stops the heart when overdose is met -- c = conditional + +var/list/restricted_camera_networks = list( //Those networks can only be accessed by preexisting terminals. AIs and new terminals can't use them. + "CentCom", + "ERT", + "NukeOps", + "Thunderdome", + "UO45", + "UO45R", + "Xeno" + ) \ No newline at end of file diff --git a/code/_globalvars/lists/mobs.dm b/code/_globalvars/lists/mobs.dm new file mode 100644 index 00000000000..153a81c4aa0 --- /dev/null +++ b/code/_globalvars/lists/mobs.dm @@ -0,0 +1,55 @@ +//Languages/species/whitelist. //Languages and species fit with mobs right +var/global/list/all_species[0] +var/global/list/all_languages[0] +var/global/list/language_keys[0] // Table of say codes for all languages +var/global/list/all_nations[0] +var/global/list/all_superheroes[0] +var/global/list/whitelisted_species = list() + +var/list/clients = list() //list of all clients +var/list/admins = list() //list of all clients whom are admins +var/list/directory = list() //list of all ckeys with associated client + +//Since it didn't really belong in any other category, I'm putting this here +//This is for procs to replace all the goddamn 'in world's that are chilling around the code + +var/global/list/player_list = list() //List of all mobs **with clients attached**. Excludes /mob/new_player +var/global/list/mob_list = list() //List of all mobs, including clientless +var/global/list/spirits = list() //List of all the spirits, including Masks +var/global/list/living_mob_list = list() //List of all alive mobs, including clientless. Excludes /mob/new_player +var/global/list/dead_mob_list = list() //List of all dead mobs, including clientless. Excludes /mob/new_player +var/global/list/respawnable_list = list() //List of all mobs, dead or in mindless creatures that still be respawned. + +//global var of unsafe-to-spawn-on-reaction mobs +var/global/list/blocked_mobs = list(/mob/living/simple_animal/hostile, + /mob/living/simple_animal/hostile/pirate, + /mob/living/simple_animal/hostile/pirate/ranged, + /mob/living/simple_animal/hostile/russian, + /mob/living/simple_animal/hostile/russian/ranged, + /mob/living/simple_animal/hostile/syndicate, + /mob/living/simple_animal/hostile/syndicate/melee, + /mob/living/simple_animal/hostile/syndicate/melee/space, + /mob/living/simple_animal/hostile/syndicate/ranged, + /mob/living/simple_animal/hostile/syndicate/ranged/space, + /mob/living/simple_animal/hostile/alien/queen/large, + /mob/living/simple_animal/hostile/retaliate, + /mob/living/simple_animal/hostile/retaliate/clown, + /mob/living/simple_animal/hostile/mushroom, + /mob/living/simple_animal/hostile/asteroid, + /mob/living/simple_animal/hostile/asteroid/basilisk, + /mob/living/simple_animal/hostile/asteroid/goldgrub, + /mob/living/simple_animal/hostile/asteroid/goliath, + /mob/living/simple_animal/hostile/asteroid/hivelord, + /mob/living/simple_animal/hostile/asteroid/hivelordbrood, + /mob/living/simple_animal/hostile/carp/holocarp, + /mob/living/simple_animal/hostile/mining_drone, + /mob/living/simple_animal/hostile/spaceWorm, + /mob/living/simple_animal/hostile/spaceWorm/wormHead, + /mob/living/simple_animal/ascendant_shadowling + ) + +var/global/list/med_hud_users = list() +var/global/list/sec_hud_users = list() + //items that ask to be called every cycle + +var/global/list/active_diseases = list() //Diseases are mob-based, so they get to go here \ No newline at end of file diff --git a/code/names.dm b/code/_globalvars/lists/names.dm similarity index 95% rename from code/names.dm rename to code/_globalvars/lists/names.dm index 0b93759a9e4..e85ba6a12cf 100644 --- a/code/names.dm +++ b/code/_globalvars/lists/names.dm @@ -1,18 +1,18 @@ -var/list/ai_names = file2list("config/names/ai.txt") -var/list/wizard_first = file2list("config/names/wizardfirst.txt") -var/list/wizard_second = file2list("config/names/wizardsecond.txt") -var/list/ninja_titles = file2list("config/names/ninjatitle.txt") -var/list/ninja_names = file2list("config/names/ninjaname.txt") -var/list/commando_names = file2list("config/names/death_commando.txt") -var/list/first_names_male = file2list("config/names/first_male.txt") -var/list/first_names_female = file2list("config/names/first_female.txt") -var/list/last_names = file2list("config/names/last.txt") -var/list/clown_names = file2list("config/names/clown.txt") -var/list/diona_names = file2list ("config/names/diona.txt") - -var/list/verbs = file2list("config/names/verbs.txt") -var/list/adjectives = file2list("config/names/adjectives.txt") -//loaded on startup because of " -//would include in rsc if ' was used - -var/list/vox_name_syllables = list("ti","hi","ki","ya","ta","ha","ka","ya","chi","cha","kah") +var/list/ai_names = file2list("config/names/ai.txt") +var/list/wizard_first = file2list("config/names/wizardfirst.txt") +var/list/wizard_second = file2list("config/names/wizardsecond.txt") +var/list/ninja_titles = file2list("config/names/ninjatitle.txt") +var/list/ninja_names = file2list("config/names/ninjaname.txt") +var/list/commando_names = file2list("config/names/death_commando.txt") +var/list/first_names_male = file2list("config/names/first_male.txt") +var/list/first_names_female = file2list("config/names/first_female.txt") +var/list/last_names = file2list("config/names/last.txt") +var/list/clown_names = file2list("config/names/clown.txt") +var/list/diona_names = file2list ("config/names/diona.txt") + +var/list/verbs = file2list("config/names/verbs.txt") +var/list/adjectives = file2list("config/names/adjectives.txt") +//loaded on startup because of " +//would include in rsc if ' was used + +var/list/vox_name_syllables = list("ti","hi","ki","ya","ta","ha","ka","ya","chi","cha","kah") \ No newline at end of file diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm new file mode 100644 index 00000000000..03b16f38efe --- /dev/null +++ b/code/_globalvars/lists/objects.dm @@ -0,0 +1,21 @@ +var/global/list/portals = list() //for use by portals +var/global/list/cable_list = list() //Index for all cables, so that powernets don't have to look through the entire world all the time +var/global/list/chemical_reactions_list //list of all /datum/chemical_reaction datums. Used during chemical reactions +var/global/list/chemical_reagents_list //list of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff +var/global/list/landmarks_list = list() //list of all landmarks created +var/global/list/surgery_steps = list() //list of all surgery steps |BS12 +var/global/list/side_effects = list() //list of all medical sideeffects types by thier names |BS12 +var/global/list/mechas_list = list() //list of all mechs. Used by hostile mobs target tracking. +var/global/list/spacepods_list = list() //list of all space pods. Used by hostile mobs target tracking. +var/global/list/joblist = list() //list of all jobstypes, minus borg and AI +var/global/list/flag_list = list() //list of flags during Nations gamemode +var/global/list/airlocks = list() //list of all airlocks + +var/global/list/aibots = list() // AI controlled bots +var/global/list/table_recipes = list() //list of all table craft recipes + +var/global/list/active_areas = list() +var/global/list/all_areas = list() +var/global/list/machines = list() + //items that ask to be called every cycle + diff --git a/code/_globalvars/logging.dm b/code/_globalvars/logging.dm new file mode 100644 index 00000000000..d975491a15c --- /dev/null +++ b/code/_globalvars/logging.dm @@ -0,0 +1,14 @@ +var/diary = null +var/diaryofmeanpeople = null +var/href_logfile = null + +var/list/jobMax = list() +var/list/bombers = list( ) +var/list/admin_log = list ( ) +var/list/lastsignalers = list( ) //keeps last 100 signals here in format: "[src] used \ref[src] @ location [src.loc]: [freq]/[code]" +var/list/lawchanges = list( ) //Stores who uploaded laws to which silicon-based lifeform, and what the law was + +var/list/combatlog = list() +var/list/IClog = list() +var/list/OOClog = list() +var/list/adminlog = list() diff --git a/code/_globalvars/mapping.dm b/code/_globalvars/mapping.dm index cb5c07a351f..1c8564e0ec9 100644 --- a/code/_globalvars/mapping.dm +++ b/code/_globalvars/mapping.dm @@ -48,6 +48,7 @@ var/list/prisonsecuritywarp = list() //prison security goes to these var/list/prisonwarped = list() //list of players already warped var/list/blobstart = list() var/list/ninjastart = list() +var/list/carplist = list() //list of all carp-spawn landmarks //away missions var/list/awaydestinations = list() //a list of landmarks that the warpgate can take you to \ No newline at end of file diff --git a/code/_globalvars/misc.dm b/code/_globalvars/misc.dm new file mode 100644 index 00000000000..4dd134b57b2 --- /dev/null +++ b/code/_globalvars/misc.dm @@ -0,0 +1,59 @@ +var/global/obj/effect/overlay/plmaster = null +var/global/obj/effect/overlay/slmaster = null + +// nanomanager, the manager for Nano UIs +var/datum/nanomanager/nanomanager = new() +// event manager, the manager for events +var/datum/event_manager/event_manager = new() +// Announcer intercom, because too much stuff creates an intercom for one message then hard del()s it. +var/global/obj/item/device/radio/intercom/global_announcer = new(null) + +var/list/paper_tag_whitelist = list("center","p","div","span","h1","h2","h3","h4","h5","h6","hr","pre", \ + "big","small","font","i","u","b","s","sub","sup","tt","br","hr","ol","ul","li","caption","col", \ + "table","td","th","tr") +var/list/paper_blacklist = list("java","onblur","onchange","onclick","ondblclick","onfocus","onkeydown", \ + "onkeypress","onkeyup","onload","onmousedown","onmousemove","onmouseout","onmouseover", \ + "onmouseup","onreset","onselect","onsubmit","onunload") + +//Reverse of dir +var/list/reverse_dir = list(2, 1, 3, 8, 10, 9, 11, 4, 6, 5, 7, 12, 14, 13, 15, 32, 34, 33, 35, 40, 42, 41, 43, 36, 38, 37, 39, 44, 46, 45, 47, 16, 18, 17, 19, 24, 26, 25, 27, 20, 22, 21, 23, 28, 30, 29, 31, 48, 50, 49, 51, 56, 58, 57, 59, 52, 54, 53, 55, 60, 62, 61, 63) +var/gravity_is_on = 1 //basically unused, just one admin verb.. +// Recall time limit: 2 hours +var/recall_time_limit=72000 //apparently used for the comm console + +//////SCORE STUFF +//Goonstyle scoreboard +var/score_crewscore = 0 // this is the overall var/score for the whole round +var/score_stuffshipped = 0 // how many useful items have cargo shipped out? +var/score_stuffharvested = 0 // how many harvests have hydroponics done? +var/score_oremined = 0 // obvious +var/score_researchdone = 0 +var/score_eventsendured = 0 // how many random events did the station survive? +var/score_powerloss = 0 // how many APCs have poor charge? +var/score_escapees = 0 // how many people got out alive? +var/score_deadcrew = 0 // dead bodies on the station, oh no +var/score_mess = 0 // how much poo, puke, gibs, etc went uncleaned +var/score_meals = 0 +var/score_disease = 0 // how many rampant, uncured diseases are on board the station +var/score_deadcommand = 0 // used during rev, how many command staff perished +var/score_arrested = 0 // how many traitors/revs/whatever are alive in the brig +var/score_traitorswon = 0 // how many traitors were successful? +var/score_allarrested = 0 // did the crew catch all the enemies alive? +var/score_opkilled = 0 // used during nuke mode, how many operatives died? +var/score_disc = 0 // is the disc safe and secure? +var/score_nuked = 0 // was the station blown into little bits? + + // these ones are mainly for the stat panel +var/score_powerbonus = 0 // if all APCs on the station are running optimally, big bonus +var/score_messbonus = 0 // if there are no messes on the station anywhere, huge bonus +var/score_deadaipenalty = 0 // is the AI dead? if so, big penalty +var/score_foodeaten = 0 // nom nom nom +var/score_clownabuse = 0 // how many times a clown was punched, struck or otherwise maligned +var/score_richestname = null // this is all stuff to show who was the richest alive on the shuttle +var/score_richestjob = null // kinda pointless if you dont have a money system i guess +var/score_richestcash = 0 +var/score_richestkey = null +var/score_dmgestname = null // who had the most damage on the shuttle (but was still alive) +var/score_dmgestjob = null +var/score_dmgestdamage = 0 +var/score_dmgestkey = null \ No newline at end of file diff --git a/code/_globalvars/station.dm b/code/_globalvars/station.dm index d25cfa053d5..3a077a48948 100644 --- a/code/_globalvars/station.dm +++ b/code/_globalvars/station.dm @@ -1 +1,14 @@ +var/global/obj/effect/datacore/data_core = null + +var/global/defer_powernet_rebuild = 0 // true if net rebuild will be called manually after an event + +var/CELLRATE = 0.002 // multiplier for watts per tick <> cell storage (eg: .002 means if there is a load of 1000 watts, 20 units will be taken from a cell per second) +var/CHARGELEVEL = 0.0005 // Cap for how fast cells charge, as a percentage-per-tick (.001 means cellcharge is capped to 1% per second) + +var/list/powernets = list() + +// this is not strictly unused although the whole modules datum thing is unused +// To remove this you need to remove that +var/datum/moduletypes/mods = new() + var/map_name = "Unknown" //The name of the map that is loaded. Assigned in world/New() \ No newline at end of file diff --git a/code/_globalvars/unused.dm b/code/_globalvars/unused.dm new file mode 100644 index 00000000000..81fb2c6d4bd --- /dev/null +++ b/code/_globalvars/unused.dm @@ -0,0 +1,40 @@ +var/skipupdate = 0 + +var/shuttlecoming = 0 +var/forceblob = 0 +var/datum/debug/debugobj + +var/list/liftable_structures = list(\ + /obj/machinery/autolathe, \ + /obj/machinery/constructable_frame, \ + /obj/machinery/portable_atmospherics/hydroponics, \ + /obj/machinery/computer, \ + /obj/machinery/optable, \ + /obj/structure/dispenser, \ + /obj/machinery/gibber, \ + /obj/machinery/microwave, \ + /obj/machinery/vending, \ + /obj/machinery/seed_extractor, \ + /obj/machinery/space_heater, \ + /obj/machinery/recharge_station, \ + /obj/machinery/flasher, \ + /obj/structure/stool, \ + /obj/structure/closet, \ + /obj/machinery/photocopier, \ + /obj/structure/filingcabinet, \ + /obj/structure/reagent_dispensers, \ + /obj/machinery/portable_atmospherics/canister) + +var/starticon = null +var/midicon = null +var/endicon = null +var/datum/air_tunnel/air_tunnel1/SS13_airtunnel = null +var/going = 1.0 +var/datum/engine_eject/engine_eject_control = null +// list/traitors = list() //traitor list +// list/traitobj = list( ) +var/airtunnel_start = 68 // default +var/airtunnel_stop = 68 // default +var/airtunnel_bottom = 72 // default +// reverse_dir[dir] = reverse of dir + diff --git a/code/datums/spell.dm b/code/datums/spell.dm index dbe98647575..2c27947ddbf 100644 --- a/code/datums/spell.dm +++ b/code/datums/spell.dm @@ -343,9 +343,9 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin if(((!user.mind) || !(src in user.mind.spell_list)) && !(src in user.spell_list)) return 0 - if(user.z == 2 && !centcom_cancast) //Certain spells are not allowed on the centcom zlevel + if(user.z == ZLEVEL_CENTCOMM && !centcom_cancast) //Certain spells are not allowed on the centcom zlevel return 0 - if(user.z == 2 && ticker.mode.name == "ragin' mages") + if(user.z == ZLEVEL_CENTCOMM && ticker.mode.name == "ragin' mages") return 0 switch(charge_type) diff --git a/code/game/gamemodes/xenos/xenos.dm b/code/game/gamemodes/xenos/xenos.dm index b8f57122a7c..74b4bea15cd 100644 --- a/code/game/gamemodes/xenos/xenos.dm +++ b/code/game/gamemodes/xenos/xenos.dm @@ -153,7 +153,7 @@ /datum/game_mode/xenos/proc/get_nuke_code() var/nukecode = "ERROR" for(var/obj/machinery/nuclearbomb/bomb in world) - if(bomb && bomb.r_code && bomb.z == 1) + if(bomb && bomb.r_code && bomb.z == ZLEVEL_STATION) nukecode = bomb.r_code return nukecode diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index 88ec385db88..d7e56d66f5e 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -1323,7 +1323,7 @@ FIRE ALARM pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24) pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0 - if(z == 1 || z == 5) + if(z == ZLEVEL_STATION || ZLEVEL_ASTEROID == 5) if(security_level) src.overlays += image('icons/obj/monitors.dmi', "overlay_[get_security_level()]") else diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index fdb6bfb0d00..7c24df85ba8 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -46,7 +46,7 @@ ..() /obj/machinery/camera/initialize() - if(z == 1 && prob(3) && !start_active) + if(z == ZLEVEL_STATION && prob(3) && !start_active) deactivate() /obj/machinery/camera/Destroy() diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index ecd428fca1e..1bd865b2d37 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -264,7 +264,7 @@ var/shuttle_call/shuttle_calls[0] if(..(user)) return - if (!(src.z in list(STATION_Z, CENTCOMM_Z))) + if (!(src.z in list(ZLEVEL_STATION, ZLEVEL_CENTCOMM))) user << "\red Unable to establish a connection: \black You're too far away from the station!" return diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm index 55a4e604e0f..98d7835bdb6 100644 --- a/code/game/machinery/telecomms/machine_interactions.dm +++ b/code/game/machinery/telecomms/machine_interactions.dm @@ -188,11 +188,11 @@ var/turf/position = get_turf(src) // Toggle on/off getting signals from the station or the current Z level - if(src.listening_level == STATION_Z) // equals the station + if(src.listening_level == ZLEVEL_STATION) // equals the station src.listening_level = position.z return 1 - else if(position.z == TELECOMM_Z) - src.listening_level = STATION_Z + else if(position.z == ZLEVEL_TELECOMMS) + src.listening_level = ZLEVEL_STATION return 1 return 0 @@ -241,8 +241,8 @@ /obj/machinery/telecomms/relay/Options_Menu() var/dat = "" - if(src.z == TELECOMM_Z) - dat += "
Signal Locked to Station: [listening_level == STATION_Z ? "TRUE" : "FALSE"]" + if(src.z == ZLEVEL_TELECOMMS) + dat += "
Signal Locked to Station: [listening_level == ZLEVEL_STATION ? "TRUE" : "FALSE"]" dat += "
Broadcasting: [broadcasting ? "YES" : "NO"]" dat += "
Receiving: [receiving ? "YES" : "NO"]" return dat diff --git a/code/global.dm b/code/global.dm deleted file mode 100644 index d75d5977ac2..00000000000 --- a/code/global.dm +++ /dev/null @@ -1,293 +0,0 @@ -//#define TESTING -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 - -var/global/obj/effect/datacore/data_core = null -var/global/obj/effect/overlay/plmaster = null -var/global/obj/effect/overlay/slmaster = null - - -var/global/list/active_areas = list() -var/global/list/all_areas = list() -var/global/list/machines = list() -var/global/list/processing_objects = list() -var/global/list/active_diseases = list() -var/global/list/med_hud_users = list() -var/global/list/sec_hud_users = list() - //items that ask to be called every cycle - -var/global/defer_powernet_rebuild = 0 // true if net rebuild will be called manually after an event - - ////////////// -var/list/paper_tag_whitelist = list("center","p","div","span","h1","h2","h3","h4","h5","h6","hr","pre", \ - "big","small","font","i","u","b","s","sub","sup","tt","br","hr","ol","ul","li","caption","col", \ - "table","td","th","tr") -var/list/paper_blacklist = list("java","onblur","onchange","onclick","ondblclick","onfocus","onkeydown", \ - "onkeypress","onkeyup","onload","onmousedown","onmousemove","onmouseout","onmouseover", \ - "onmouseup","onreset","onselect","onsubmit","onunload") - -var/BLINDBLOCK = 0 -var/DEAFBLOCK = 0 -var/HULKBLOCK = 0 -var/TELEBLOCK = 0 -var/FIREBLOCK = 0 -var/XRAYBLOCK = 0 -var/CLUMSYBLOCK = 0 -var/FAKEBLOCK = 0 -var/COUGHBLOCK = 0 -var/GLASSESBLOCK = 0 -var/EPILEPSYBLOCK = 0 -var/TWITCHBLOCK = 0 -var/NERVOUSBLOCK = 0 -var/MONKEYBLOCK = 50 // Monkey block will always be the DNA_SE_LENGTH - -var/BLOCKADD = 0 -var/DIFFMUT = 0 - -var/NOBREATHBLOCK = 0 -var/REMOTEVIEWBLOCK = 0 -var/REGENERATEBLOCK = 0 -var/INCREASERUNBLOCK = 0 -var/REMOTETALKBLOCK = 0 -var/MORPHBLOCK = 0 -var/COLDBLOCK = 0 -var/HALLUCINATIONBLOCK = 0 -var/NOPRINTSBLOCK = 0 -var/SHOCKIMMUNITYBLOCK = 0 -var/SMALLSIZEBLOCK = 0 - -/////////////////////////////// -// Goon Stuff -/////////////////////////////// -// Disabilities -var/LISPBLOCK = 0 -var/MUTEBLOCK = 0 -var/RADBLOCK = 0 -var/FATBLOCK = 0 -var/CHAVBLOCK = 0 -var/SWEDEBLOCK = 0 -var/SCRAMBLEBLOCK = 0 -var/TOXICFARTBLOCK = 0 -var/STRONGBLOCK = 0 -var/HORNSBLOCK = 0 -var/COMICBLOCK = 0 - -// Powers -var/SOBERBLOCK = 0 -var/PSYRESISTBLOCK = 0 -var/SHADOWBLOCK = 0 -var/CHAMELEONBLOCK = 0 -var/CRYOBLOCK = 0 -var/EATBLOCK = 0 -var/JUMPBLOCK = 0 -//var/MELTBLOCK = 0 -var/EMPATHBLOCK = 0 -var/SUPERFARTBLOCK = 0 -var/IMMOLATEBLOCK = 0 -var/POLYMORPHBLOCK = 0 - -/////////////////////////////// -// /vg/ Mutations -/////////////////////////////// -var/LOUDBLOCK = 0 -//var/WHISPERBLOCK = 0 -var/DIZZYBLOCK = 0 - - - - -var/skipupdate = 0 - /////////////// -var/eventchance = 10 //% per 5 mins -var/event = 0 -var/hadevent = 0 -var/blobevent = 0 - /////////////// -var/starticon = null -var/midicon = null -var/endicon = null -var/diary = null -var/diaryofmeanpeople = null -var/href_logfile = null -var/station_name = "NSS Cyberiad" -var/game_version = "Custom ParaCode" -var/changelog_hash = "" -var/game_year = (text2num(time2text(world.realtime, "YYYY")) + 544) - -var/datum/air_tunnel/air_tunnel1/SS13_airtunnel = null -var/going = 1.0 -var/master_mode = "extended"//"extended" -var/secret_force_mode = "secret" // if this is anything but "secret", the secret rotation will forceably choose this mode - -var/datum/engine_eject/engine_eject_control = null -var/list/carplist = list() -// list/traitors = list() //traitor list -var/host = null -var/aliens_allowed = 1 -var/ooc_allowed = 1 -var/dsay_allowed = 1 -var/dooc_allowed = 1 -var/traitor_scaling = 1 -//var/goonsay_allowed = 0 -var/dna_ident = 1 -var/abandon_allowed = 0 -var/enter_allowed = 1 -var/guests_allowed = 1 -var/shuttle_frozen = 0 -var/shuttle_left = 0 -var/tinted_weldhelh = 1 - -var/list/jobMax = list() -var/list/bombers = list( ) -var/list/admin_log = list ( ) -var/list/lastsignalers = list( ) //keeps last 100 signals here in format: "[src] used \ref[src] @ location [src.loc]: [freq]/[code]" -var/list/lawchanges = list( ) //Stores who uploaded laws to which silicon-based lifeform, and what the law was -var/list/reg_dna = list( ) -// list/traitobj = list( ) - -var/mouse_respawn_time = 5 //Amount of time that must pass between a player dying as a mouse and repawning as a mouse. In minutes. - -var/CELLRATE = 0.002 // multiplier for watts per tick <> cell storage (eg: .002 means if there is a load of 1000 watts, 20 units will be taken from a cell per second) -var/CHARGELEVEL = 0.0005 // Cap for how fast cells charge, as a percentage-per-tick (.001 means cellcharge is capped to 1% per second) - -var/airtunnel_start = 68 // default -var/airtunnel_stop = 68 // default -var/airtunnel_bottom = 72 // default -// reverse_dir[dir] = reverse of dir -var/list/reverse_dir = list(2, 1, 3, 8, 10, 9, 11, 4, 6, 5, 7, 12, 14, 13, 15, 32, 34, 33, 35, 40, 42, 41, 43, 36, 38, 37, 39, 44, 46, 45, 47, 16, 18, 17, 19, 24, 26, 25, 27, 20, 22, 21, 23, 28, 30, 29, 31, 48, 50, 49, 51, 56, 58, 57, 59, 52, 54, 53, 55, 60, 62, 61, 63) - -var/datum/station_state/start_state = null -var/datum/configuration/config = null - -var/list/combatlog = list() -var/list/IClog = list() -var/list/OOClog = list() -var/list/adminlog = list() - - -var/list/powernets = list() - -var/Debug = 0 // global debug switch -var/Debug2 = 1 // enables detailed job debug file in secrets - -var/datum/debug/debugobj - -var/datum/moduletypes/mods = new() - -var/wavesecret = 0 -var/gravity_is_on = 1 - -var/shuttlecoming = 0 - -var/join_motd = null -var/forceblob = 0 - -// nanomanager, the manager for Nano UIs -var/datum/nanomanager/nanomanager = new() - -// event manager, the manager for events -var/datum/event_manager/event_manager = new() - -#define SPEED_OF_LIGHT 3e8 //not exact but hey! -#define SPEED_OF_LIGHT_SQ 9e+16 -#define FIRE_DAMAGE_MODIFIER 0.0215 //Higher values result in more external fire damage to the skin (default 0.0215) -#define AIR_DAMAGE_MODIFIER 4.050 //More means less damage from hot air scalding lungs, less = more damage. (default 2.025) -#define INFINITY 1e31 //closer then enough - - //Don't set this very much higher then 1024 unless you like inviting people in to dos your server with message spam -#define MAX_MESSAGE_LEN 1024 -#define MAX_PAPER_MESSAGE_LEN 3072 -#define MAX_BOOK_MESSAGE_LEN 9216 -#define MAX_NAME_LEN 26 - -#define shuttle_time_in_station 1800 // 3 minutes in the station -#define shuttle_time_to_arrive 6000 // 10 minutes to arrive - -#define EVENT_LEVEL_MUNDANE 1 -#define EVENT_LEVEL_MODERATE 2 -#define EVENT_LEVEL_MAJOR 3 - - - - // MySQL configuration - -var/sqladdress = "localhost" -var/sqlport = "3306" -var/sqldb = "paradise" -var/sqllogin = "root" -var/sqlpass = "example" - - // Feedback gathering sql connection - -var/sqlfdbkdb = "paradise" -var/sqlfdbklogin = "root" -var/sqlfdbkpass = "example" - -var/sqllogging = 0 // Should we log deaths, population stats, etc? - - - - // Forum MySQL configuration (for use with forum account/key authentication) - // These are all default values that will load should the forumdbconfig.txt - // file fail to read for whatever reason. - -var/forumsqladdress = "localhost" -var/forumsqlport = "3306" -var/forumsqldb = "tgstation" -var/forumsqllogin = "root" -var/forumsqlpass = "bleh" -var/forum_activated_group = "2" -var/forum_authenticated_group = "10" - - // For FTP requests. (i.e. downloading runtime logs.) - // However it'd be ok to use for accessing attack logs and such too, which are even laggier. -var/fileaccess_timer = 0 -var/custom_event_msg = null - -//Database connections -//A connection is established on world creation. Ideally, the connection dies when the server restarts (After feedback logging.). -var/DBConnection/dbcon = new() //Feedback database (New database) -var/DBConnection/dbcon_old = new() //Tgstation database (Old database) - See the files in the SQL folder for information what goes where. - - -//Goonstyle scoreboard -var/score_crewscore = 0 // this is the overall var/score for the whole round -var/score_stuffshipped = 0 // how many useful items have cargo shipped out? -var/score_stuffharvested = 0 // how many harvests have hydroponics done? -var/score_oremined = 0 // obvious -var/score_researchdone = 0 -var/score_eventsendured = 0 // how many random events did the station survive? -var/score_powerloss = 0 // how many APCs have poor charge? -var/score_escapees = 0 // how many people got out alive? -var/score_deadcrew = 0 // dead bodies on the station, oh no -var/score_mess = 0 // how much poo, puke, gibs, etc went uncleaned -var/score_meals = 0 -var/score_disease = 0 // how many rampant, uncured diseases are on board the station -var/score_deadcommand = 0 // used during rev, how many command staff perished -var/score_arrested = 0 // how many traitors/revs/whatever are alive in the brig -var/score_traitorswon = 0 // how many traitors were successful? -var/score_allarrested = 0 // did the crew catch all the enemies alive? -var/score_opkilled = 0 // used during nuke mode, how many operatives died? -var/score_disc = 0 // is the disc safe and secure? -var/score_nuked = 0 // was the station blown into little bits? - - // these ones are mainly for the stat panel -var/score_powerbonus = 0 // if all APCs on the station are running optimally, big bonus -var/score_messbonus = 0 // if there are no messes on the station anywhere, huge bonus -var/score_deadaipenalty = 0 // is the AI dead? if so, big penalty -var/score_foodeaten = 0 // nom nom nom -var/score_clownabuse = 0 // how many times a clown was punched, struck or otherwise maligned -var/score_richestname = null // this is all stuff to show who was the richest alive on the shuttle -var/score_richestjob = null // kinda pointless if you dont have a money system i guess -var/score_richestcash = 0 -var/score_richestkey = null -var/score_dmgestname = null // who had the most damage on the shuttle (but was still alive) -var/score_dmgestjob = null -var/score_dmgestdamage = 0 -var/score_dmgestkey = null - - -// Recall time limit: 2 hours -var/recall_time_limit=72000 - -// Announcer intercom, because too much stuff creates an intercom for one message then hard del()s it. -var/global/obj/item/device/radio/intercom/global_announcer = new(null) diff --git a/code/modules/computer3/computers/prisoner.dm b/code/modules/computer3/computers/prisoner.dm index 4bb238852fc..e3cfba6e673 100644 --- a/code/modules/computer3/computers/prisoner.dm +++ b/code/modules/computer3/computers/prisoner.dm @@ -43,7 +43,7 @@ if(!T.implanted) continue var/loc_display = "Unknown" var/mob/living/carbon/M = T.imp_in - if(M.z == 1 && !istype(M.loc, /turf/space)) + if(M.z == ZLEVEL_STATION && !istype(M.loc, /turf/space)) var/turf/mob_loc = get_turf(M) loc_display = mob_loc.loc if(T.malfunction) diff --git a/code/modules/mining/ore.dm b/code/modules/mining/ore.dm index 78e0509cc0c..ab1aa6a8dd8 100644 --- a/code/modules/mining/ore.dm +++ b/code/modules/mining/ore.dm @@ -84,7 +84,7 @@ /obj/item/weapon/ore/New() pixel_x = rand(0,16)-8 pixel_y = rand(0,8)-8 - if(src.z == ASTEROID_Z) score_oremined++ //When ore spawns, increment score. Only include ore spawned on mining asteroid (No Clown Planet) + if(src.z == ZLEVEL_ASTEROID) score_oremined++ //When ore spawns, increment score. Only include ore spawned on mining asteroid (No Clown Planet) /obj/item/weapon/ore/attackby(obj/item/weapon/W as obj, mob/user as mob, params) if(istype(W,/obj/item/device/core_sampler)) diff --git a/code/setup.dm b/code/setup.dm deleted file mode 100644 index 8c45cc43199..00000000000 --- a/code/setup.dm +++ /dev/null @@ -1,973 +0,0 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 - -#define DEBUG - -#define PI 3.1415 - -#define R_IDEAL_GAS_EQUATION 8.31 //kPa*L/(K*mol) -#define ONE_ATMOSPHERE 101.325 //kPa - -#define CELL_VOLUME 2500 //liters in a cell -#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) - -#define O2STANDARD 0.21 -#define N2STANDARD 0.79 - -#define AUTOIGNITION_WOOD 573.15 -#define AUTOIGNITION_PAPER 519.15 - -#define MOLES_O2STANDARD MOLES_CELLSTANDARD*O2STANDARD // O2 standard value (21%) -#define MOLES_N2STANDARD MOLES_CELLSTANDARD*N2STANDARD // N2 standard value (79%) - -#define MOLES_PLASMA_VISIBLE 0.7 //Moles in a standard cell after which plasma is visible -#define MIN_PLASMA_DAMAGE 1 -#define MAX_PLASMA_DAMAGE 10 - -#define BREATH_VOLUME 0.5 //liters in a normal breath -#define BREATH_MOLES (ONE_ATMOSPHERE * BREATH_VOLUME /(T20C*R_IDEAL_GAS_EQUATION)) -#define BREATH_PERCENTAGE BREATH_VOLUME/CELL_VOLUME - //Amount of air to take a from a tile -#define HUMAN_NEEDED_OXYGEN MOLES_CELLSTANDARD*BREATH_PERCENTAGE*0.16 - //Amount of air needed before pass out/suffocation commences - -#define SOUND_MINIMUM_PRESSURE 10 - -// 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) - -#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. -#define BODYTEMP_AUTORECOVERY_DIVISOR 12 //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 10 //Minimum amount of kelvin moved toward 310.15K 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 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_COOLING_MAX 30 //The maximum number of degrees that your body can cool in 1 tick, when in a cold area. -#define BODYTEMP_HEATING_MAX 30 //The maximum number of degrees that your body can heat up in 1 tick, when in a hot area. - -#define BODYTEMP_HEAT_DAMAGE_LIMIT 360.15 // The limit the human body can take before it starts taking damage from heat. -#define BODYTEMP_COLD_DAMAGE_LIMIT 260.15 // The limit the human body can take before it starts taking damage from coldness. - -#define SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE 2.0 //what min_cold_protection_temperature is set to for space-helmet quality headwear. MUST NOT BE 0. -#define SPACE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE 1500 -#define SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE 2.0 //what min_cold_protection_temperature is set to for space-suit quality jumpsuits or suits. MUST NOT BE 0. -#define SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE 1500 //These need better heat protect - -#define FIRESUIT_MIN_COLD_PROTECTION_TEMPERATURE 60 -#define FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE 30000 //what max_heat_protection_temperature is set to for firesuit quality headwear. MUST NOT BE 0. -#define FIRE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE 60 -#define FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE 30000 //for fire helmet quality items (red and white hardhats) - -#define FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT 35000 //what max_heat_protection_temperature is set to for firesuit quality suits. MUST NOT BE 0. -#define FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT 35000 //for fire helmet quality items (red and white hardhats) - -#define HELMET_MIN_COLD_PROTECTION_TEMPERATURE 160 //For normal helmets -#define HELMET_MAX_HEAT_PROTECTION_TEMPERATURE 600 //For normal helmets -#define ARMOR_MIN_COLD_PROTECTION_TEMPERATURE 160 //For armor -#define ARMOR_MAX_HEAT_PROTECTION_TEMPERATURE 600 //For armor - -#define GLOVES_MIN_COLD_PROTECTION_TEMPERATURE 2.0 //For some gloves (black and) -#define GLOVES_MAX_HEAT_PROTECTION_TEMPERATURE 1500 //For some gloves -#define SHOE_MIN_COLD_PROTECTION_TEMPERATURE 2.0 //For gloves -#define SHOE_MAX_HEAT_PROTECTION_TEMPERATURE 1500 //For gloves - - -#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 -#define MAX_HIGH_PRESSURE_DAMAGE 4 //This used to be 20... I got this much random rage for some retarded decision by polymorph?! Polymorph now lies in a pool of blood with a katana jammed in his spleen. ~Errorage --PS: The katana did less than 20 damage to him :( -#define LOW_PRESSURE_DAMAGE 2 //The amounb 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 PRESSURE_SUIT_REDUCTION_COEFFICIENT 0.8 //This is how much (percentual) a suit with the flag STOPSPRESSUREDMAGE reduces pressure. -#define PRESSURE_HEAD_REDUCTION_COEFFICIENT 0.4 //This is how much (percentual) a helmet/hat with the flag STOPSPRESSUREDMAGE reduces pressure. - -// Doors! -#define DOOR_CRUSH_DAMAGE 10 - -// Factor of how fast mob nutrition decreases -#define HUNGER_FACTOR 0.1 - -// How many units of reagent are consumed per tick, by default. -#define 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 REAGENTS_EFFECT_MULTIPLIER REAGENTS_METABOLISM / 0.4 - - -#define MINIMUM_AIR_RATIO_TO_SUSPEND 0.05 - //Minimum ratio of air that must move to/from a tile to suspend group processing -#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_SUSPEND //Either this must be active -#define MINIMUM_TEMPERATURE_TO_MOVE T20C+100 //or this (or both, obviously) - -#define MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND 0.012 -#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 - -#define MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTION T20C+10 -#define MINIMUM_TEMPERATURE_START_SUPERCONDUCTION T20C+200 - -#define FLOOR_HEAT_TRANSFER_COEFFICIENT 0.4 -#define WALL_HEAT_TRANSFER_COEFFICIENT 0.0 -#define DOOR_HEAT_TRANSFER_COEFFICIENT 0.0 -#define SPACE_HEAT_TRANSFER_COEFFICIENT 0.2 //a hack to partly simulate radiative heat -#define OPEN_HEAT_TRANSFER_COEFFICIENT 0.4 -#define WINDOW_HEAT_TRANSFER_COEFFICIENT 0.1 //a hack for now - //Must be between 0 and 1. Values closer to 1 equalize temperature faster - //Should not exceed 0.4 else strange heat flow occur - -#define FIRE_MINIMUM_TEMPERATURE_TO_SPREAD 150+T0C -#define FIRE_MINIMUM_TEMPERATURE_TO_EXIST 100+T0C -#define FIRE_SPREAD_RADIOSITY_SCALE 0.85 -#define FIRE_CARBON_ENERGY_RELEASED 500000 //Amount of heat released per mole of burnt carbon into the tile -#define FIRE_PLASMA_ENERGY_RELEASED 3000000 //Amount of heat released per mole of burnt plasma into the tile -#define FIRE_GROWTH_RATE 40000 //For small fires - -//#define WATER_BOIL_TEMP 393 - -// Fire Damage -#define CARBON_LIFEFORM_FIRE_RESISTANCE 200+T0C -#define CARBON_LIFEFORM_FIRE_DAMAGE 4 - -//Plasma fire properties -#define PLASMA_MINIMUM_BURN_TEMPERATURE 100+T0C -#define PLASMA_FLASHPOINT 246+T0C -#define PLASMA_UPPER_TEMPERATURE 1370+T0C -#define PLASMA_MINIMUM_OXYGEN_NEEDED 2 -#define PLASMA_MINIMUM_OXYGEN_PLASMA_RATIO 20 -#define PLASMA_OXYGEN_FULLBURN 10 - -#define T0C 273.15 // 0degC -#define T20C 293.15 // 20degC -#define TCMB 2.7 // -270.3degC - -#define TANK_LEAK_PRESSURE (30.*ONE_ATMOSPHERE) // Tank starts leaking -#define TANK_RUPTURE_PRESSURE (40.*ONE_ATMOSPHERE) // Tank spills all contents into atmosphere - -#define TANK_FRAGMENT_PRESSURE (50.*ONE_ATMOSPHERE) // Boom 3x3 base explosion -#define TANK_FRAGMENT_SCALE (10.*ONE_ATMOSPHERE) // +1 for each SCALE kPa aboe threshold - // was 2 atm - -//This was a define, but I changed it to a variable so it can be changed in-game.(kept the all-caps definition because... code...) -Errorage -var/MAX_EXPLOSION_RANGE = 14 -var/MAX_EX_DEVESTATION_RANGE = 3 -var/MAX_EX_HEAVY_RANGE = 7 -var/MAX_EX_LIGHT_RANGE = 14 -var/MAX_EX_FLASH_RANGE = 14 -//#define MAX_EXPLOSION_RANGE 14 // Defaults to 12 (was 8) -- TLE - -#define HUMAN_STRIP_DELAY 40 //takes 40ds = 4s to strip someone. - -#define ALIEN_SELECT_AFK_BUFFER 1 // How many minutes that a person can be AFK before not being allowed to be an alien. - -#define NORMPIPERATE 30 //pipe-insulation rate divisor -#define HEATPIPERATE 8 //heat-exch pipe insulation - -#define FLOWFRAC 0.99 // fraction of gas transfered per process - -#define SHOES_SLOWDOWN -1.0 // How much shoes slow you down by default. Negative values speed you up - - -//ITEM INVENTORY SLOT BITMASKS -#define SLOT_OCLOTHING 1 -#define SLOT_ICLOTHING 2 -#define SLOT_GLOVES 4 -#define SLOT_EYES 8 -#define SLOT_EARS 16 -#define SLOT_MASK 32 -#define SLOT_HEAD 64 -#define SLOT_FEET 128 -#define SLOT_ID 256 -#define SLOT_BELT 512 -#define SLOT_BACK 1024 -#define SLOT_POCKET 2048 //this is to allow items with a w_class of 3 or 4 to fit in pockets. -#define SLOT_DENYPOCKET 4096 //this is to deny items with a w_class of 2 or 1 to fit in pockets. -#define SLOT_TWOEARS 8192 -#define SLOT_PDA 16384 -#define SLOT_TIE 32768 - - -//FLAGS BITMASK -#define STOPSPRESSUREDMAGE 1 //This flag is used on the flags variable for SUIT and HEAD items which stop pressure damage. Note that the flag 1 was previous used as ONBACK, so it is possible for some code to use (flags & 1) when checking if something can be put on your back. Replace this code with (inv_flags & SLOT_BACK) if you see it anywhere To successfully stop you taking all pressure damage you must have both a suit and head item with this flag. -#define NODROP 2 // This flag makes it so that an item literally cannot be removed at all, or at least that's how it should be. Only deleted. -#define NOBLUDGEON 4 // when an item has this it produces no "X has been hit by Y with Z" message with the default handler -#define MASKINTERNALS 8 // mask allows internals -//#define USEDELAY 16 // 1 second extra delay on use (Can be used once every 2s) -#define NOSHIELD 32 // weapon not affected by shield -#define CONDUCT 64 // conducts electricity (metal etc.) -#define ABSTRACT 128 // for all things that are technically items but used for various different stuff, made it 128 because it could conflict with other flags other way -#define ON_BORDER 512 // item has priority to check when entering or leaving -#define NODELAY 32768 // 1 second attackby delay skipped (Can be used once every 0.2s). Most objects have a 1s attackby delay, which doesn't require a flag. - -#define NOBLOODY 2048 // used to items if they don't want to get a blood overlay - -#define GLASSESCOVERSEYES 1024 -#define MASKCOVERSEYES 1024 // get rid of some of the other retardation in these flags -#define HEADCOVERSEYES 1024 // feel free to realloc these numbers for other purposes -#define MASKCOVERSMOUTH 2048 // on other items, these are just for mask/head -#define HEADCOVERSMOUTH 2048 - -#define HEADBANGPROTECT 4096 -#define EARBANGPROTECT 1024 - -#define THICKMATERIAL 1024 //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body. (NOTE: flag shared with NOSLIP) -#define NOSLIP 1024 //prevents from slipping on wet floors, in space etc - -#define OPENCONTAINER 4096 // is an open container for chemistry purposes - -#define BLOCK_GAS_SMOKE_EFFECT 8192 // blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY! (NOTE: flag shared with ONESIZEFITSALL) -#define ONESIZEFITSALL 8192 -#define PLASMAGUARD 16384 //Does not get contaminated by plasma. - -#define NOREACT 16384 //Reagents dont' react inside this container. - -#define BLOCKHEADHAIR 4 // temporarily removes the user's hair overlay. Leaves facial hair. -#define BLOCKHAIR 32768 // temporarily removes the user's hair, facial and otherwise. - -//flags for pass_flags -#define PASSTABLE 1 -#define PASSGLASS 2 -#define PASSGRILLE 4 -#define PASSBLOB 8 -#define PASSMOB 16 - -//turf-only flags -#define NOJAUNT 1 - - -//Bit flags for the flags_inv variable, which determine when a piece of clothing hides another. IE a helmet hiding glasses. -#define HIDEGLOVES 1 //APPLIES ONLY TO THE EXTERIOR SUIT!! -#define HIDESUITSTORAGE 2 //APPLIES ONLY TO THE EXTERIOR SUIT!! -#define HIDEJUMPSUIT 4 //APPLIES ONLY TO THE EXTERIOR SUIT!! -#define HIDESHOES 8 //APPLIES ONLY TO THE EXTERIOR SUIT!! -#define HIDETAIL 16 //APPLIES ONLY TO THE EXTERIOR SUIT!! -#define HIDEMASK 1 //APPLIES ONLY TO HELMETS/MASKS!! -#define HIDEEARS 2 //APPLIES ONLY TO HELMETS/MASKS!! (ears means headsets and such) -#define HIDEEYES 4 //APPLIES ONLY TO HELMETS/MASKS!! (eyes means glasses) -#define HIDEFACE 8 //APPLIES ONLY TO HELMETS/MASKS!! Dictates whether we appear as unknown. - -//slots -#define slot_back 1 -#define slot_wear_mask 2 -#define slot_handcuffed 3 -#define slot_l_hand 4 -#define slot_r_hand 5 -#define slot_belt 6 -#define slot_wear_id 7 -#define slot_l_ear 8 -#define slot_glasses 9 -#define slot_gloves 10 -#define slot_head 11 -#define slot_shoes 12 -#define slot_wear_suit 13 -#define slot_w_uniform 14 -#define slot_l_store 15 -#define slot_r_store 16 -#define slot_s_store 17 -#define slot_in_backpack 18 -#define slot_legcuffed 19 -#define slot_r_ear 20 -#define slot_wear_pda 21 -#define slot_tie 22 - -//Cant seem to find a mob bitflags area other than the powers one - -// bitflags for clothing parts -#define HEAD 1 -#define UPPER_TORSO 2 -#define LOWER_TORSO 4 -#define LEG_LEFT 8 -#define LEG_RIGHT 16 -#define LEGS 24 -#define FOOT_LEFT 32 -#define FOOT_RIGHT 64 -#define FEET 96 -#define ARM_LEFT 128 -#define ARM_RIGHT 256 -#define ARMS 384 -#define HAND_LEFT 512 -#define HAND_RIGHT 1024 -#define HANDS 1536 -#define FULL_BODY 2047 - -// bitflags for the percentual amount of protection a piece of clothing which covers the body part offers. -// Used with human/proc/get_heat_protection() and human/proc/get_cold_protection() -// The values here should add up to 1. -// Hands and feet have 2.5%, arms and legs 7.5%, each of the torso parts has 15% and the head has 30% -#define THERMAL_PROTECTION_HEAD 0.3 -#define THERMAL_PROTECTION_UPPER_TORSO 0.15 -#define THERMAL_PROTECTION_LOWER_TORSO 0.15 -#define THERMAL_PROTECTION_LEG_LEFT 0.075 -#define THERMAL_PROTECTION_LEG_RIGHT 0.075 -#define THERMAL_PROTECTION_FOOT_LEFT 0.025 -#define THERMAL_PROTECTION_FOOT_RIGHT 0.025 -#define THERMAL_PROTECTION_ARM_LEFT 0.075 -#define THERMAL_PROTECTION_ARM_RIGHT 0.075 -#define THERMAL_PROTECTION_HAND_LEFT 0.025 -#define THERMAL_PROTECTION_HAND_RIGHT 0.025 - - - -// String identifiers for associative list lookup - -// mob/var/list/mutations - -// Used in preferences. -#define DISABILITY_FLAG_NEARSIGHTED 1 -#define DISABILITY_FLAG_FAT 2 -#define DISABILITY_FLAG_EPILEPTIC 4 -#define DISABILITY_FLAG_DEAF 8 - -/////////////////////////////////////// -// MUTATIONS -/////////////////////////////////////// - -// Generic mutations: -#define TK 1 -#define RESIST_COLD 2 -#define XRAY 3 -#define HULK 4 -#define CLUMSY 5 -#define FAT 6 -#define HUSK 7 -#define NOCLONE 8 - - -// Extra powers: -#define LASER 9 // harm intent - click anywhere to shoot lasers from eyes -//#define HEAL 10 // (Not implemented) healing people with hands -//#define SHADOW 11 // (Not implemented) shadow teleportation (create in/out portals anywhere) (25%) -//#define SCREAM 12 // (Not implemented) supersonic screaming (25%) -//#define EXPLOSIVE 13 // (Not implemented) exploding on-demand (15%) -//#define REGENERATION 14 // (Not implemented) superhuman regeneration (30%) -//#define REPROCESSOR 15 // (Not implemented) eat anything (50%) -//#define SHAPESHIFTING 16 // (Not implemented) take on the appearance of anything (40%) -//#define PHASING 17 // (Not implemented) ability to phase through walls (40%) -//#define SHIELD 18 // (Not implemented) shielding from all projectile attacks (30%) -//#define SHOCKWAVE 19 // (Not implemented) attack a nearby tile and cause a massive shockwave, knocking most people on their asses (25%) -//#define ELECTRICITY 20 // (Not implemented) ability to shoot electric attacks (15%) - -//bitflags for mutations - // Extra powers: -#define SHADOW (1<<10) // shadow teleportation (create in/out portals anywhere) (25%) -#define SCREAM (1<<11) // supersonic screaming (25%) -#define EXPLOSIVE (1<<12) // exploding on-demand (15%) -#define REGENERATION (1<<13) // superhuman regeneration (30%) -#define REPROCESSOR (1<<14) // eat anything (50%) -#define SHAPESHIFTING (1<<15) // take on the appearance of anything (40%) -#define PHASING (1<<16) // ability to phase through walls (40%) -#define SHIELD (1<<17) // shielding from all projectile attacks (30%) -#define SHOCKWAVE (1<<18) // attack a nearby tile and cause a massive shockwave, knocking most people on their asses (25%) -#define ELECTRICITY (1<<19) // ability to shoot electric attacks (15%) - - - //2spooky -#define SKELETON 29 -#define PLANT 30 - -// Other Mutations: -#define NO_BREATH 100 // no need to breathe -#define REMOTE_VIEW 101 // remote viewing -#define REGEN 102 // health regen -#define RUN 103 // no slowdown -#define REMOTE_TALK 104 // remote talking -#define MORPH 105 // changing appearance -#define RESIST_HEAT 106 // heat resistance -#define HALLUCINATE 107 // hallucinations -#define FINGERPRINTS 108 // no fingerprints -#define NO_SHOCK 109 // insulated hands -#define DWARF 110 // table climbing - -// Goon muts -#define OBESITY 200 // Decreased metabolism -#define TOXIC_FARTS 201 // Duh -#define STRONG 202 // (Nothing) -#define SOBER 203 // Increased alcohol metabolism -#define PSY_RESIST 204 // Block remoteview -#define SUPER_FART 205 // Duh -#define EMPATH 206 //Read minds -#define COMIC 207 //Comic Sans - -// /vg/ muts -#define LOUD 208 // CAUSES INTENSE YELLING -//#define WHISPER 209 // causes quiet whispering -#define DIZZY 210 // Trippy. - -//disabilities -#define NEARSIGHTED 1 -#define EPILEPSY 2 -#define COUGHING 4 -#define TOURETTES 8 -#define NERVOUS 16 - -//sdisabilities -#define BLIND 1 -#define MUTE 2 -#define DEAF 4 - -//mob/var/stat things -#define CONSCIOUS 0 -#define UNCONSCIOUS 1 -#define DEAD 2 - -// channel numbers for power -#define EQUIP 1 -#define LIGHT 2 -#define ENVIRON 3 -#define TOTAL 4 //for total power used only - -// bitflags for machine stat variable -#define BROKEN 1 -#define NOPOWER 2 -#define POWEROFF 4 // tbd -#define MAINT 8 // under maintaince -#define EMPED 16 // temporary broken by EMP pulse - -//bitflags for door switches. -#define OPEN 1 -#define IDSCAN 2 -#define BOLTS 4 -#define SHOCK 8 -#define SAFE 16 - -#define ENGINE_EJECT_Z 3 - -//metal, glass, rod stacks -#define MAX_STACK_AMOUNT_METAL 50 -#define MAX_STACK_AMOUNT_GLASS 50 -#define MAX_STACK_AMOUNT_RODS 60 - -#define CC_PER_SHEET_METAL 3750 -#define CC_PER_SHEET_GLASS 3750 -#define CC_PER_SHEET_MISC 2000 - -#define GAS_O2 (1 << 0) -#define GAS_N2 (1 << 1) -#define GAS_PL (1 << 2) -#define GAS_CO2 (1 << 3) -#define GAS_N2O (1 << 4) - -#define MAX_Z 8 // Used in space.dm to defince which Z-levels cannot be exited via space. - -#define IS_MODE_COMPILED(MODE) (ispath(text2path("/datum/game_mode/"+(MODE)))) - - -var/list/global_mutations = list() // list of hidden mutation things - -//Bluh shields - - -//Damage things //TODO: merge these down to reduce on defines -//Way to waste perfectly good damagetype names (BRUTE) on this... If you were really worried about case sensitivity, you could have just used lowertext(damagetype) in the proc... -#define BRUTE "brute" -#define BURN "fire" -#define TOX "tox" -#define OXY "oxy" -#define CLONE "clone" -#define HALLOSS "halloss" -#define STAMINA "stamina" - -#define STUN "stun" -#define WEAKEN "weaken" -#define PARALYZE "paralize" -#define IRRADIATE "irradiate" -#define AGONY "agony" // Added in PAIN! -#define STUTTER "stutter" -#define EYE_BLUR "eye_blur" -#define DROWSY "drowsy" -#define JITTER "jitter" - -//I hate adding defines like this but I'd much rather deal with bitflags than lists and string searches -#define BRUTELOSS 1 -#define FIRELOSS 2 -#define TOXLOSS 4 -#define OXYLOSS 8 - -//Bitflags defining which status effects could be or are inflicted on a mob -#define CANSTUN 1 -#define CANWEAKEN 2 -#define CANPARALYSE 4 -#define CANPUSH 8 -#define LEAPING 16 -#define PASSEMOTES 32 //Mob has a cortical borer or holders inside of it that need to see emotes. -#define GOTTAGOFAST 64 -#define GOTTAGOREALLYFAST 128 -#define IGNORESLOWDOWN 256 -#define GODMODE 4096 -#define FAKEDEATH 8192 //Replaces stuff like changeling.changeling_fakedeath -#define DISFIGURED 16384 //I'll probably move this elsewhere if I ever get wround to writing a bitflag mob-damage system -#define XENO_HOST 32768 //Tracks whether we're gonna be a baby alien's mummy. - -var/static/list/scarySounds = list('sound/weapons/thudswoosh.ogg','sound/weapons/Taser.ogg','sound/weapons/armbomb.ogg','sound/voice/hiss1.ogg','sound/voice/hiss2.ogg','sound/voice/hiss3.ogg','sound/voice/hiss4.ogg','sound/voice/hiss5.ogg','sound/voice/hiss6.ogg','sound/effects/Glassbr1.ogg','sound/effects/Glassbr2.ogg','sound/effects/Glassbr3.ogg','sound/items/Welder.ogg','sound/items/Welder2.ogg','sound/machines/airlock.ogg','sound/effects/clownstep1.ogg','sound/effects/clownstep2.ogg') - -//Grab levels -#define GRAB_PASSIVE 1 -#define GRAB_AGGRESSIVE 2 -#define GRAB_NECK 3 -#define GRAB_UPGRADING 4 -#define GRAB_KILL 5 - -//Security levels -#define SEC_LEVEL_GREEN 0 -#define SEC_LEVEL_BLUE 1 -#define SEC_LEVEL_RED 2 -#define SEC_LEVEL_GAMMA 3 -#define SEC_LEVEL_EPSILON 4 -#define SEC_LEVEL_DELTA 5 - -#define TRANSITIONEDGE 7 //Distance from edge to move to another z-level - -var/list/liftable_structures = list(\ - - /obj/machinery/autolathe, \ - /obj/machinery/constructable_frame, \ - /obj/machinery/portable_atmospherics/hydroponics, \ - /obj/machinery/computer, \ - /obj/machinery/optable, \ - /obj/structure/dispenser, \ - /obj/machinery/gibber, \ - /obj/machinery/microwave, \ - /obj/machinery/vending, \ - /obj/machinery/seed_extractor, \ - /obj/machinery/space_heater, \ - /obj/machinery/recharge_station, \ - /obj/machinery/flasher, \ - /obj/structure/stool, \ - /obj/structure/closet, \ - /obj/machinery/photocopier, \ - /obj/structure/filingcabinet, \ - /obj/structure/reagent_dispensers, \ - /obj/machinery/portable_atmospherics/canister) - -//A set of constants used to determine which type of mute an admin wishes to apply: -//Please read and understand the muting/automuting stuff before changing these. MUTE_IC_AUTO etc = (MUTE_IC << 1) -//Therefore there needs to be a gap between the flags for the automute flags -#define MUTE_IC 1 -#define MUTE_OOC 2 -#define MUTE_PRAY 4 -#define MUTE_ADMINHELP 8 -#define MUTE_DEADCHAT 16 -#define MUTE_ALL 31 - -//Number of identical messages required to get the spam-prevention automute thing to trigger warnings and automutes -#define SPAM_TRIGGER_WARNING 5 -#define SPAM_TRIGGER_AUTOMUTE 10 - -//Some constants for DB_Ban -#define BANTYPE_PERMA 1 -#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. -#define BANTYPE_APPEARANCE 6 - -#define SEE_INVISIBLE_MINIMUM 5 - -#define SEE_INVISIBLE_OBSERVER_NOLIGHTING 15 - -#define INVISIBILITY_LIGHTING 20 - -#define SEE_INVISIBLE_LIVING 25 - -#define SEE_INVISIBLE_LEVEL_ONE 35 //Used by some stuff in code. It's really poorly organized. -#define INVISIBILITY_LEVEL_ONE 35 //Used by some stuff in code. It's really poorly organized. - -#define SEE_INVISIBLE_LEVEL_TWO 45 //Used by some other stuff in code. It's really poorly organized. -#define INVISIBILITY_LEVEL_TWO 45 //Used by some other stuff in code. It's really poorly organized. - -#define INVISIBILITY_SPIRIT 50 -#define SEE_SPIRITS 50 - -#define SEE_INVISIBLE_OBSERVER_NOOBSERVERS 59 -#define INVISIBILITY_OBSERVER 60 -#define SEE_INVISIBLE_OBSERVER 60 -#define INVISIBILITY_AI_EYE 61 -#define SEE_INVISIBLE_OBSERVER_AI_EYE 61 - -#define INVISIBILITY_MAXIMUM 100 - -//Object specific defines -#define CANDLE_LUM 3 //For how bright candles are - - -//Some mob defines below -#define AI_CAMERA_LUMINOSITY 6 - -#define BORGMESON 1 -#define BORGTHERM 2 -#define BORGXRAY 4 - -//some arbitrary defines to be used by self-pruning global lists. (see master_controller) -#define PROCESS_KILL 26 //Used to trigger removal from a processing list - -// Reference list for disposal sort junctions. Set the sortType variable on disposal sort junctions to -// the index of the sort department that you want. For example, sortType set to 2 will reroute all packages -// tagged for the Cargo Bay. - -//If you don't want to fuck up disposals, add to this list, and don't change the order. -//If you insist on changing the order, you'll have to change every sort junction to reflect the new order. --Pete - -var/list/TAGGERLOCATIONS = list("Disposals", - "Cargo Bay", "QM Office", "Engineering", "CE Office", - "Atmospherics", "HoS Office", "Security", "Medbay", - "CMO Office", "Chemistry", "Research", "RD Office", - "Robotics", "HoP Office", "Library", "Chapel", "Captain's Office", - "Bar", "Kitchen", "Hydroponics", "Janitor Closet","Genetics") - -#define HOSTILE_STANCE_IDLE 1 -#define HOSTILE_STANCE_ALERT 2 -#define HOSTILE_STANCE_ATTACK 3 -#define HOSTILE_STANCE_ATTACKING 4 -#define HOSTILE_STANCE_TIRED 5 - -#define ROUNDSTART_LOGOUT_REPORT_TIME 6000 //Amount of time (in deciseconds) after the rounds starts, that the player disconnect report is issued. - -//Damage things - -#define CUT "cut" -#define BRUISE "bruise" -#define BRUTE "brute" -#define BURN "fire" -#define TOX "tox" -#define OXY "oxy" -#define CLONE "clone" -#define HALLOSS "halloss" -#define STAMINA "stamina" - -#define STUN "stun" -#define WEAKEN "weaken" -#define PARALYZE "paralize" -#define IRRADIATE "irradiate" -#define STUTTER "stutter" -#define SLUR "slur" -#define EYE_BLUR "eye_blur" -#define DROWSY "drowsy" - -///////////////////ORGAN DEFINES/////////////////// - -// Organ defines. -#define ORGAN_CUT_AWAY 1 -#define ORGAN_GAUZED 2 -#define ORGAN_ATTACHABLE 4 -#define ORGAN_BLEEDING 8 -#define ORGAN_BROKEN 32 -#define ORGAN_DESTROYED 64 -#define ORGAN_ROBOT 128 -#define ORGAN_SPLINTED 256 -#define SALVED 512 -#define ORGAN_DEAD 1024 -#define ORGAN_MUTATED 2048 -#define ORGAN_ASSISTED 4096 - -#define DROPLIMB_EDGE 0 -#define DROPLIMB_BLUNT 1 -#define DROPLIMB_BURN 2 - -#define ROUNDSTART_LOGOUT_REPORT_TIME 6000 //Amount of time (in deciseconds) after the rounds starts, that the player disconnect report is issued. - - - -//Please don't edit these values without speaking to Errorage first ~Carn -//Admin Permissions -#define R_BUILDMODE 1 -#define R_ADMIN 2 -#define R_BAN 4 -#define R_EVENT 8 -#define R_SERVER 16 -#define R_DEBUG 32 -#define R_POSSESS 64 -#define R_PERMISSIONS 128 -#define R_STEALTH 256 -#define R_REJUVINATE 512 -#define R_VAREDIT 1024 -#define R_SOUNDS 2048 -#define R_SPAWN 4096 -#define R_MOD 8192 -#define R_MENTOR 16384 - -#define R_MAXPERMISSION 16384 //This holds the maximum value for a permission. It is used in iteration, so keep it updated. - -#define R_HOST 65535 - -//Preference toggles -#define CHAT_OOC 1 -#define CHAT_DEAD 2 -#define CHAT_GHOSTEARS 4 -#define CHAT_GHOSTSIGHT 8 -#define CHAT_PRAYER 16 -#define CHAT_RADIO 32 -#define CHAT_ATTACKLOGS 64 -#define CHAT_DEBUGLOGS 128 -#define CHAT_LOOC 256 -#define CHAT_GHOSTRADIO 512 -#define SHOW_TYPING 1024 - -#define SOUND_ADMINHELP 1 -#define SOUND_MIDI 2 -#define SOUND_AMBIENCE 4 -#define SOUND_LOBBY 8 -#define SOUND_STREAMING 16 -#define SOUND_HEARTBEAT 32 -#define SOUND_BUZZ 64 - -#define SOUND_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|SOUND_STREAMING|SOUND_HEARTBEAT|SOUND_BUZZ) -#define TOGGLES_DEFAULT (CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_ATTACKLOGS|CHAT_LOOC) - -#define BE_TRAITOR 1 -#define BE_OPERATIVE 2 -#define BE_CHANGELING 4 -#define BE_WIZARD 8 -#define BE_MALF 16 -#define BE_REV 32 -#define BE_ALIEN 64 -#define BE_PAI 128 -#define BE_CULTIST 256 -#define BE_NINJA 512 -#define BE_RAIDER 1024 -#define BE_VAMPIRE 2048 -#define BE_MUTINEER 4096 -#define BE_BLOB 8192 -#define BE_SHADOWLING 16384 - -var/list/be_special_flags = list( - "traitor" = BE_TRAITOR, - "operative" = BE_OPERATIVE, - "changeling" = BE_CHANGELING, - "wizard" = BE_WIZARD, - "malf AI" = BE_MALF, - "revolutionary" = BE_REV, - "alien" = BE_ALIEN, - "pAI" = BE_PAI, - "cultist" = BE_CULTIST, - "ninja" = BE_NINJA, - "raider" = BE_RAIDER, - "vampire" = BE_VAMPIRE, - "mutineer" = BE_MUTINEER, - "blob" = BE_BLOB -) - -#define AGE_MIN 17 //youngest a character can be -#define AGE_MAX 85 //oldest a character can be - -//Languages! -#define LANGUAGE_HUMAN 1 -#define LANGUAGE_ALIEN 2 -#define LANGUAGE_DOG 4 -#define LANGUAGE_CAT 8 -#define LANGUAGE_BINARY 16 -#define LANGUAGE_OTHER 32768 - -#define LANGUAGE_UNIVERSAL 65535 - -#define LEFT 1 -#define RIGHT 2 - -// for secHUDs and medHUDs and variants. The number is the location of the image on the list hud_list of humans. -#define HEALTH_HUD 1 // a simple line rounding the mob's number health -#define STATUS_HUD 2 // alive, dead, diseased, etc. -#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 SPECIALROLE_HUD 8 // AntagHUD image -#define STATUS_HUD_OOC 9 // STATUS_HUD without virus db check for someone being ill. -#define NATIONS_HUD 10 //Show nations icons during nations gamemode - -//Pulse levels, very simplified -#define PULSE_NONE 0 //so !M.pulse checks would be possible -#define PULSE_SLOW 1 //<60 bpm -#define PULSE_NORM 2 //60-90 bpm -#define PULSE_FAST 3 //90-120 bpm -#define PULSE_2FAST 4 //>120 bpm -#define PULSE_THREADY 5 //occurs during hypovolemic shock -//feel free to add shit to lists below -var/list/tachycardics = list("coffee", "methamphetamine", "nitroglycerin", "thirteenloko", "nicotine") //increase heart rate -var/list/bradycardics = list("neurotoxin", "cryoxadone", "space_drugs") //decrease heart rate -var/list/heartstopper = list("capulettium", "capulettium_plus") //this stops the heart -var/list/cheartstopper = list() //this stops the heart when overdose is met -- c = conditional - -//proc/get_pulse methods -#define GETPULSE_HAND 0 //less accurate (hand) -#define GETPULSE_TOOL 1 //more accurate (med scanner, sleeper, etc) - -var/list/restricted_camera_networks = list( //Those networks can only be accessed by preexisting terminals. AIs and new terminals can't use them. - "CentCom", - "ERT", - "NukeOps", - "Thunderdome", - "UO45", - "UO45R", - "Xeno" - ) - -//Species flags. - -#define NO_BLOOD 1 -#define NO_BREATHE 2 -#define RAD_ABSORB 8 -#define NO_SCAN 16 -#define NO_PAIN 32 -#define REQUIRE_LIGHT 64 -#define IS_WHITELISTED 128 -#define HAS_LIPS 512 -#define HAS_UNDERWEAR 1024 -#define IS_SYNTHETIC 2048 -#define IS_PLANT 4096 -#define CAN_BE_FAT 8192 -#define IS_RESTRICTED 16384 -#define NO_INTORGANS 32768 - -//Species Blood Flags -#define BLOOD_SLIME 1 -//Species Body Flags -#define FEET_CLAWS 1 -#define FEET_PADDED 2 -#define FEET_NOSLIP 4 -#define HAS_TAIL 8 -#define HAS_SKIN_TONE 16 -#define HAS_SKIN_COLOR 32 -#define TAIL_WAGGING 64 - -//Language flags. -#define WHITELISTED 1 // Language is available if the speaker is whitelisted. -#define RESTRICTED 2 // Language can only be accquired by spawning or an admin. -#define NONVERBAL 4 // Language has a significant non-verbal component. Speech is garbled without line-of-sight -#define SIGNLANG 8 // Language is completely non-verbal. Speech is displayed through emotes for those who can understand. -#define HIVEMIND 16 // Broadcast to all mobs with this language. -#define NONGLOBAL 32 // Do not add to general languages list -#define INNATE 64 // All mobs can be assumed to speak and understand this language (audible emotes) -#define NO_TALK_MSG 128 // Do not show the "\The [speaker] talks into \the [radio]" message - -//Flags for zone sleeping -#define ZONE_ACTIVE 1 -#define ZONE_SLEEPING 0 - -// Vampire power defines -#define VAMP_REJUV 1 -#define VAMP_GLARE 2 -#define VAMP_HYPNO 3 -#define VAMP_SHAPE 4 -#define VAMP_VISION 5 -#define VAMP_DISEASE 6 -#define VAMP_CLOAK 7 -#define VAMP_BATS 8 -#define VAMP_SCREAM 9 -#define VAMP_JAUNT 10 -#define VAMP_SLAVE 11 -#define VAMP_BLINK 12 -#define VAMP_FULL 13 - -// Moved from machine_interactions.dm -#define STATION_Z 1 -#define CENTCOMM_Z 2 -#define TELECOMM_Z 3 -#define ASTEROID_Z 5 - -//some colors -#define COLOR_RED "#FF0000" -#define COLOR_GREEN "#00FF00" -#define COLOR_BLUE "#0000FF" -#define COLOR_CYAN "#00FFFF" -#define COLOR_PINK "#FF00FF" -#define COLOR_YELLOW "#FFFF00" -#define COLOR_ORANGE "#FF9900" -#define COLOR_WHITE "#FFFFFF" - - - -/* - Germs and infections -*/ - -#define GERM_LEVEL_AMBIENT 110 //maximum germ level you can reach by standing still -#define GERM_LEVEL_MOVE_CAP 200 //maximum germ level you can reach by running around - -#define INFECTION_LEVEL_ONE 100 -#define INFECTION_LEVEL_TWO 500 -#define INFECTION_LEVEL_THREE 1000 - - -/* - Shuttles -*/ - -// these define the time taken for the shuttle to get to SS13 -// and the time before it leaves again -#define SHUTTLE_PREPTIME 300 // 5 minutes = 300 seconds - after this time, the shuttle departs centcom and cannot be recalled -#define SHUTTLE_LEAVETIME 180 // 3 minutes = 180 seconds - the duration for which the shuttle will wait at the station after arriving -#define SHUTTLE_TRANSIT_DURATION 300 // 5 minutes = 300 seconds - how long it takes for the shuttle to get to the station -#define SHUTTLE_TRANSIT_DURATION_RETURN 120 // 2 minutes = 120 seconds - for some reason it takes less time to come back, go figure. - -//Shuttle moving status -#define SHUTTLE_IDLE 0 -#define SHUTTLE_WARMUP 1 -#define SHUTTLE_INTRANSIT 2 -#define SHUTTLE_STRANDED 3 - -//Ferry shuttle processing status -#define IDLE_STATE 0 -#define WAIT_LAUNCH 1 -#define WAIT_ARRIVE 2 -#define WAIT_FINISH 3 - -//computer3 error codes, move lower in the file when it passes dev -Sayu - #define PROG_CRASH 1 // Generic crash - #define MISSING_PERIPHERAL 2 // Missing hardware - #define BUSTED_ASS_COMPUTER 4 // Self-perpetuating error. BAC will continue to crash forever. - #define MISSING_PROGRAM 8 // Some files try to automatically launch a program. This is that failing. - #define FILE_DRM 16 // Some files want to not be copied/moved. This is them complaining that you tried. - #define NETWORK_FAILURE 32 - -//Some on_mob_life() procs check for alien races. -#define IS_DIONA 1 -#define IS_VOX 2 -#define IS_SKRELL 3 -#define IS_UNATHI 4 - -var/list/hit_appends = list("-OOF", "-ACK", "-UGH", "-HRNK", "-HURGH", "-GLORF") - -#define BACKGROUND_ENABLED 0 // The default value for all uses of set background. Set background can cause gradual lag and is recommended you only turn this on if necessary. - -#define MINERAL_MATERIAL_AMOUNT 2000 //The amount of materials you get from a sheet of mineral like iron/diamond/glass etc - -#define IMPRINTER 1 //For circuits. Uses glass/chemicals. -#define PROTOLATHE 2 //New stuff. Uses glass/metal/chemicals -#define AUTOLATHE 4 //Uses glass/metal only. -#define CRAFTLATHE 8 //Uses fuck if I know. For use eventually. -#define MECHFAB 16 //Remember, objects utilising this flag should have construction_time and construction_cost vars. -#define PODFAB 32 //Used by the spacepod part fabricator. Same idea as the mechfab -//Note: More then one of these can be added to a design but imprinter and lathe designs are incompatable. - -// Suit sensor levels -#define SUIT_SENSOR_OFF 0 -#define SUIT_SENSOR_BINARY 1 -#define SUIT_SENSOR_VITAL 2 -#define SUIT_SENSOR_TRACKING 3 - -// NanoUI flags -#define STATUS_INTERACTIVE 2 // GREEN Visability -#define STATUS_UPDATE 1 // ORANGE Visability -#define STATUS_DISABLED 0 // RED Visability -#define STATUS_CLOSE -1 // Close the interface - -#define HYDRO_SPEED_MULTIPLIER 1 - -#define NANO_IGNORE_DISTANCE 1 - -//Click cooldowns, in tenths of a second -#define CLICK_CD_MELEE 8 -#define CLICK_CD_RANGE 4 -#define CLICK_CD_BREAKOUT 100 -#define CLICK_CD_HANDCUFFED 10 -#define CLICK_CD_TKSTRANGLE 10 -#define CLICK_CD_POINT 10 -#define CLICK_CD_RESIST 20 - -#define CLAMP01(x) max(0, min(1, x)) diff --git a/paradise.dme b/paradise.dme index b6e088f450c..626082f54a3 100644 --- a/paradise.dme +++ b/paradise.dme @@ -11,13 +11,26 @@ // END_PREFERENCES // BEGIN_INCLUDE #include "_maps\cyberiad.dm" -#include "_maps\map_files\cyberiad\z8.dmm" -#include "code\global.dm" +#include "code\_compile_options.dm" #include "code\hub.dm" -#include "code\names.dm" -#include "code\setup.dm" #include "code\stylesheet.dm" #include "code\world.dm" +#include "code\__DEFINES\_readme.dm" +#include "code\__DEFINES\admin.dm" +#include "code\__DEFINES\atmospherics.dm" +#include "code\__DEFINES\clothing.dm" +#include "code\__DEFINES\combat.dm" +#include "code\__DEFINES\flags.dm" +#include "code\__DEFINES\genetics.dm" +#include "code\__DEFINES\hud.dm" +#include "code\__DEFINES\language.dm" +#include "code\__DEFINES\machines.dm" +#include "code\__DEFINES\math.dm" +#include "code\__DEFINES\misc.dm" +#include "code\__DEFINES\mob.dm" +#include "code\__DEFINES\preferences.dm" +#include "code\__DEFINES\sight.dm" +#include "code\__DEFINES\stat.dm" #include "code\__HELPERS\constants.dm" #include "code\__HELPERS\experimental.dm" #include "code\__HELPERS\files.dm" @@ -36,8 +49,20 @@ #include "code\__HELPERS\timed_alerts.dm" #include "code\__HELPERS\type2type.dm" #include "code\__HELPERS\unsorted.dm" +#include "code\_globalvars\configuration.dm" +#include "code\_globalvars\database.dm" +#include "code\_globalvars\game_modes.dm" +#include "code\_globalvars\genetics.dm" +#include "code\_globalvars\logging.dm" #include "code\_globalvars\mapping.dm" +#include "code\_globalvars\misc.dm" #include "code\_globalvars\station.dm" +#include "code\_globalvars\unused.dm" +#include "code\_globalvars\lists\flavor_misc.dm" +#include "code\_globalvars\lists\misc.dm" +#include "code\_globalvars\lists\mobs.dm" +#include "code\_globalvars\lists\names.dm" +#include "code\_globalvars\lists\objects.dm" #include "code\_hooks\area.dm" #include "code\_hooks\hooks.dm" #include "code\_hooks\mob.dm"