mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
409 lines
14 KiB
Plaintext
409 lines
14 KiB
Plaintext
//Human Overlays Indexes/////////
|
|
#define MUTATIONS_LAYER 28 //mutations. Tk headglows, cold resistance glow, etc
|
|
#define BODY_BEHIND_LAYER 27 //certain mutantrace features (tail when looking south) that must appear behind the body parts
|
|
#define BODYPARTS_LAYER 26 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag
|
|
#define BODY_ADJ_LAYER 25 //certain mutantrace features (snout, body markings) that must appear above the body parts
|
|
#define BODY_LAYER 24 //underwear, undershirts, socks, eyes, lips(makeup)
|
|
#define FRONT_MUTATIONS_LAYER 23 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
|
|
#define DAMAGE_LAYER 22 //damage indicators (cuts and burns)
|
|
#define UNIFORM_LAYER 21
|
|
#define ID_LAYER 20 //lmao at the idiot who put both ids and hands on the same layer
|
|
#define HANDS_PART_LAYER 19
|
|
#define GLOVES_LAYER 18
|
|
#define SHOES_LAYER 17
|
|
#define EARS_LAYER 16
|
|
#define SUIT_LAYER 15
|
|
#define GLASSES_LAYER 14
|
|
#define BELT_LAYER 13 //Possible make this an overlay of somethign required to wear a belt?
|
|
#define SUIT_STORE_LAYER 12
|
|
#define BACK_LAYER 11
|
|
#define NECK_LAYER 10
|
|
#define HAIR_LAYER 9 //TODO: make part of head layer?
|
|
#define HANDCUFF_LAYER 8
|
|
#define LEGCUFF_LAYER 7
|
|
#define HANDS_LAYER 6
|
|
#define BODY_FRONT_LAYER 5
|
|
#define FACEMASK_LAYER 4
|
|
#define HEAD_LAYER 3
|
|
#define HALO_LAYER 2 //blood cult ascended halo, because there's currently no better solution for adding/removing
|
|
#define FIRE_LAYER 1 //If you're on fire
|
|
#define TOTAL_LAYERS 28 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
|
|
|
|
//Human Overlay Index Shortcuts for alternate_worn_layer, layers
|
|
//Because I *KNOW* somebody will think layer+1 means "above"
|
|
//IT DOESN'T OK, IT MEANS "UNDER"
|
|
#define UNDER_SUIT_LAYER (SUIT_LAYER+1)
|
|
#define UNDER_HEAD_LAYER (HEAD_LAYER+1)
|
|
|
|
//AND -1 MEANS "ABOVE", OK?, OK!?!
|
|
#define ABOVE_SHOES_LAYER (SHOES_LAYER-1)
|
|
#define ABOVE_BODY_FRONT_LAYER (BODY_FRONT_LAYER-1)
|
|
|
|
|
|
//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
|
|
|
|
//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
|
|
|
|
// Cargo-related stuff.
|
|
#define MANIFEST_ERROR_CHANCE 5
|
|
#define MANIFEST_ERROR_NAME 1
|
|
#define MANIFEST_ERROR_CONTENTS 2
|
|
#define MANIFEST_ERROR_ITEM 4
|
|
|
|
#define BE_CLOSE TRUE //in the case of a silicon, to select if they need to be next to the atom
|
|
#define NO_DEXTERITY TRUE //if other mobs (monkeys, aliens, etc) can use this
|
|
#define NO_TK TRUE
|
|
//used by canUseTopic()
|
|
|
|
//singularity defines
|
|
#define STAGE_ONE 1
|
|
#define STAGE_TWO 3
|
|
#define STAGE_THREE 5
|
|
#define STAGE_FOUR 7
|
|
#define STAGE_FIVE 9
|
|
#define STAGE_SIX 11 //From supermatter shard
|
|
|
|
//FONTS:
|
|
// Used by Paper and PhotoCopier (and PaperBin once a year).
|
|
// Used by PDA's Notekeeper.
|
|
// Used by NewsCaster and NewsPaper.
|
|
// Used by Modular Computers
|
|
#define PEN_FONT "Verdana"
|
|
#define FOUNTAIN_PEN_FONT "Segoe Script"
|
|
#define CRAYON_FONT "Comic Sans MS"
|
|
#define PRINTER_FONT "Times New Roman"
|
|
#define SIGNFONT "Times New Roman"
|
|
#define CHARCOAL_FONT "Candara"
|
|
|
|
#define PAPER_FIELD "<span class=\"paper_field\"></span>"
|
|
|
|
|
|
#define RESIZE_DEFAULT_SIZE 1
|
|
|
|
//transfer_ai() defines. Main proc in ai_core.dm
|
|
#define AI_TRANS_TO_CARD 1 //Downloading AI to InteliCard.
|
|
#define AI_TRANS_FROM_CARD 2 //Uploading AI from InteliCard
|
|
#define AI_MECH_HACK 3 //Malfunctioning AI hijacking mecha
|
|
|
|
//check_target_facings() return defines
|
|
#define FACING_SAME_DIR 1
|
|
#define FACING_EACHOTHER 2
|
|
#define FACING_INIT_FACING_TARGET_TARGET_FACING_PERPENDICULAR 3 //Do I win the most informative but also most stupid define award?
|
|
|
|
|
|
//Cache of bloody footprint images
|
|
//Key:
|
|
//"entered-[blood_state]-[dir_of_image]"
|
|
//or: "exited-[blood_state]-[dir_of_image]"
|
|
GLOBAL_LIST_EMPTY(bloody_footprints_cache)
|
|
|
|
//Bloody shoes/footprints
|
|
#define BLOODY_FOOTPRINT_BASE_ALPHA 80 /// Minimum alpha of footprints
|
|
#define BLOOD_AMOUNT_PER_DECAL 50 /// How much blood a regular blood splatter contains
|
|
#define BLOOD_ITEM_MAX 200 /// How much blood an item can have stuck on it
|
|
#define BLOOD_POOL_MAX 300 /// How much blood a blood decal can contain
|
|
#define BLOOD_FOOTPRINTS_MIN 5 /// How much blood a footprint need to at least contain
|
|
|
|
//Bloody shoe blood states
|
|
#define BLOOD_STATE_HUMAN "blood"
|
|
#define BLOOD_STATE_XENO "xeno"
|
|
#define BLOOD_STATE_OIL "oil"
|
|
#define BLOOD_STATE_NOT_BLOODY "no blood whatsoever"
|
|
|
|
//suit sensors: sensor_mode defines
|
|
|
|
#define SENSOR_OFF 0
|
|
#define SENSOR_LIVING 1
|
|
#define SENSOR_VITALS 2
|
|
#define SENSOR_COORDS 3
|
|
|
|
//suit sensors: has_sensor defines
|
|
|
|
#define BROKEN_SENSORS -1
|
|
#define NO_SENSORS 0
|
|
#define HAS_SENSORS 1
|
|
#define LOCKED_SENSORS 2
|
|
|
|
|
|
//unmagic-strings for types of polls
|
|
#define POLLTYPE_OPTION "OPTION"
|
|
#define POLLTYPE_TEXT "TEXT"
|
|
#define POLLTYPE_RATING "NUMVAL"
|
|
#define POLLTYPE_MULTI "MULTICHOICE"
|
|
#define POLLTYPE_IRV "IRV"
|
|
|
|
//subtypesof(), typesof() without the parent path
|
|
#define subtypesof(typepath) ( typesof(typepath) - typepath )
|
|
|
|
//Ghost orbit types:
|
|
#define GHOST_ORBIT_CIRCLE "circle"
|
|
#define GHOST_ORBIT_TRIANGLE "triangle"
|
|
#define GHOST_ORBIT_HEXAGON "hexagon"
|
|
#define GHOST_ORBIT_SQUARE "square"
|
|
#define GHOST_ORBIT_PENTAGON "pentagon"
|
|
|
|
#define GHOST_ORBIT_DEFAULT_OPTION GHOST_ORBIT_CIRCLE
|
|
|
|
//Ghost showing preferences:
|
|
#define GHOST_ACCS_NONE "Default sprites"
|
|
#define GHOST_ACCS_DIR "Only directional sprites"
|
|
#define GHOST_ACCS_FULL "Full accessories"
|
|
|
|
#define GHOST_ACCS_DEFAULT_OPTION GHOST_ACCS_FULL
|
|
|
|
#define GHOST_OTHERS_SIMPLE "White ghosts"
|
|
#define GHOST_OTHERS_DEFAULT_SPRITE "Default sprites"
|
|
#define GHOST_OTHERS_THEIR_SETTING "Their sprites"
|
|
|
|
#define GHOST_OTHERS_DEFAULT_OPTION GHOST_OTHERS_THEIR_SETTING
|
|
|
|
#define GHOST_MAX_VIEW_RANGE_DEFAULT 10
|
|
#define GHOST_MAX_VIEW_RANGE_MEMBER 14
|
|
|
|
|
|
//pda fonts
|
|
#define PDA_FONT_MONO "Monospaced"
|
|
#define PDA_FONT_VT "VT323"
|
|
#define PDA_FONT_ORBITRON "Orbitron"
|
|
#define PDA_FONT_SHARE "Share Tech Mono"
|
|
|
|
GLOBAL_LIST_INIT(pda_styles, list(PDA_FONT_MONO, PDA_FONT_VT, PDA_FONT_ORBITRON, PDA_FONT_SHARE))
|
|
|
|
//pda colours
|
|
#define PDA_COLOR_NORMAL "Normal"
|
|
#define PDA_COLOR_TRANSPARENT "Transparent"
|
|
#define PDA_COLOR_PIPBOY "Pip Boy"
|
|
#define PDA_COLOR_RAINBOW "Rainbow"
|
|
|
|
GLOBAL_LIST_INIT(donor_pdas, list(PDA_COLOR_NORMAL, PDA_COLOR_TRANSPARENT, PDA_COLOR_PIPBOY, PDA_COLOR_RAINBOW))
|
|
|
|
/////////////////////////////////////
|
|
// atom.appearence_flags shortcuts //
|
|
/////////////////////////////////////
|
|
|
|
/*
|
|
|
|
// Disabling certain features
|
|
#define APPEARANCE_IGNORE_TRANSFORM RESET_TRANSFORM
|
|
#define APPEARANCE_IGNORE_COLOUR RESET_COLOR
|
|
#define APPEARANCE_IGNORE_CLIENT_COLOUR NO_CLIENT_COLOR
|
|
#define APPEARANCE_IGNORE_COLOURING (RESET_COLOR|NO_CLIENT_COLOR)
|
|
#define APPEARANCE_IGNORE_ALPHA RESET_ALPHA
|
|
#define APPEARANCE_NORMAL_GLIDE ~LONG_GLIDE
|
|
|
|
// Enabling certain features
|
|
#define APPEARANCE_CONSIDER_TRANSFORM ~RESET_TRANSFORM
|
|
#define APPEARANCE_CONSIDER_COLOUR ~RESET_COLOUR
|
|
#define APPEARANCE_CONSIDER_CLIENT_COLOUR ~NO_CLIENT_COLOR
|
|
#define APPEARANCE_CONSIDER_COLOURING (~RESET_COLOR|~NO_CLIENT_COLOR)
|
|
#define APPEARANCE_CONSIDER_ALPHA ~RESET_ALPHA
|
|
#define APPEARANCE_LONG_GLIDE LONG_GLIDE
|
|
|
|
*/
|
|
|
|
// Consider these images/atoms as part of the UI/HUD
|
|
#define APPEARANCE_UI_IGNORE_ALPHA (RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|RESET_ALPHA|PIXEL_SCALE)
|
|
#define APPEARANCE_UI (RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|PIXEL_SCALE)
|
|
|
|
//Just space
|
|
#define SPACE_ICON_STATE "[((x + y) ^ ~(x * y) + z) % 25]"
|
|
|
|
// Defib stats
|
|
#define DEFIB_TIME_LIMIT 15 MINUTES
|
|
|
|
// Diagonal movement
|
|
#define FIRST_DIAG_STEP 1
|
|
#define SECOND_DIAG_STEP 2
|
|
|
|
#define DEADCHAT_ARRIVALRATTLE "arrivalrattle"
|
|
#define DEADCHAT_DEATHRATTLE "deathrattle"
|
|
#define DEADCHAT_REGULAR "regular-deadchat"
|
|
#define DEADCHAT_ANNOUNCEMENT "announcement"
|
|
#define DEADCHAT_PDA "pdamessage"
|
|
|
|
// Bluespace shelter deploy checks
|
|
#define SHELTER_DEPLOY_ALLOWED "allowed"
|
|
#define SHELTER_DEPLOY_BAD_TURFS "bad turfs"
|
|
#define SHELTER_DEPLOY_BAD_AREA "bad area"
|
|
#define SHELTER_DEPLOY_ANCHORED_OBJECTS "anchored objects"
|
|
#define SHELTER_DEPLOY_OUTSIDE_MAP "outside map"
|
|
|
|
#define INCREMENT_TALLY(L, stat) if(L[stat]){L[stat]++}else{L[stat] = 1}
|
|
|
|
//TODO Move to a pref
|
|
#define STATION_GOAL_BUDGET 1
|
|
|
|
//Luma coefficients suggested for HDTVs. If you change these, make sure they add up to 1.
|
|
#define LUMA_R 0.213
|
|
#define LUMA_G 0.715
|
|
#define LUMA_B 0.072
|
|
|
|
//Endgame Results
|
|
#define NUKE_NEAR_MISS 1
|
|
#define NUKE_MISS_STATION 2
|
|
#define NUKE_SYNDICATE_BASE 3
|
|
#define STATION_DESTROYED_NUKE 4
|
|
#define STATION_EVACUATED 5
|
|
#define BLOB_WIN 8
|
|
#define BLOB_NUKE 9
|
|
#define BLOB_DESTROYED 10
|
|
#define CULT_ESCAPE 11
|
|
#define CULT_FAILURE 12
|
|
#define CULT_SUMMON 13
|
|
#define NUKE_MISS 14
|
|
#define OPERATIVES_KILLED 15
|
|
#define OPERATIVE_SKIRMISH 16
|
|
#define REVS_WIN 17
|
|
#define REVS_LOSE 18
|
|
#define WIZARD_KILLED 19
|
|
#define STATION_NUKED 20
|
|
#define CLOCK_SUMMON 21
|
|
#define CLOCK_SILICONS 22
|
|
#define CLOCK_PROSELYTIZATION 23
|
|
#define SHUTTLE_HIJACK 24
|
|
|
|
#define FIELD_TURF 1
|
|
#define FIELD_EDGE 2
|
|
|
|
//gibtonite state defines
|
|
#define GIBTONITE_UNSTRUCK 0
|
|
#define GIBTONITE_ACTIVE 1
|
|
#define GIBTONITE_STABLE 2
|
|
#define GIBTONITE_DETONATE 3
|
|
|
|
//for obj explosion block calculation
|
|
#define EXPLOSION_BLOCK_PROC -1
|
|
|
|
//for determining which type of heartbeat sound is playing
|
|
#define BEAT_FAST 1
|
|
#define BEAT_SLOW 2
|
|
#define BEAT_NONE 0
|
|
|
|
//world/proc/shelleo
|
|
#define SHELLEO_ERRORLEVEL 1
|
|
#define SHELLEO_STDOUT 2
|
|
#define SHELLEO_STDERR 3
|
|
|
|
//server security mode
|
|
#define SECURITY_SAFE 1
|
|
#define SECURITY_ULTRASAFE 2
|
|
#define SECURITY_TRUSTED 3
|
|
|
|
//Dummy mob reserve slots
|
|
#define DUMMY_HUMAN_SLOT_ADMIN "admintools"
|
|
#define DUMMY_HUMAN_SLOT_MANIFEST "dummy_manifest_generation"
|
|
|
|
#define PR_ANNOUNCEMENTS_PER_ROUND 5 //The number of unique PR announcements allowed per round
|
|
//This makes sure that a single person can only spam 3 reopens and 3 closes before being ignored
|
|
|
|
#define MAX_PROC_DEPTH 195 // 200 proc calls deep and shit breaks, this is a bit lower to give some safety room
|
|
|
|
//gold slime core spawning
|
|
#define NO_SPAWN 0
|
|
#define HOSTILE_SPAWN 1
|
|
#define FRIENDLY_SPAWN 2
|
|
|
|
//slime core activation type
|
|
#define SLIME_ACTIVATE_MINOR 1
|
|
#define SLIME_ACTIVATE_MAJOR 2
|
|
|
|
#define LUMINESCENT_DEFAULT_GLOW 2
|
|
|
|
#define RIDING_OFFSET_ALL "ALL"
|
|
|
|
//stack recipe placement check types
|
|
#define STACK_CHECK_CARDINALS "cardinals" //checks if there is an object of the result type in any of the cardinal directions
|
|
#define STACK_CHECK_ADJACENT "adjacent" //checks if there is an object of the result type within one tile
|
|
|
|
//Fullscreen overlay resolution in tiles.
|
|
#define FULLSCREEN_OVERLAY_RESOLUTION_X 15
|
|
#define FULLSCREEN_OVERLAY_RESOLUTION_Y 15
|
|
|
|
#define SUMMON_GUNS "guns"
|
|
#define SUMMON_MAGIC "magic"
|
|
|
|
#define TELEPORT_CHANNEL_BLUESPACE "bluespace" //Classic bluespace teleportation, requires a sender but no receiver
|
|
#define TELEPORT_CHANNEL_QUANTUM "quantum" //Quantum-based teleportation, requires both sender and receiver, but is free from normal disruption
|
|
#define TELEPORT_CHANNEL_WORMHOLE "wormhole" //Wormhole teleportation, is not disrupted by bluespace fluctuations but tends to be very random or unsafe
|
|
#define TELEPORT_CHANNEL_MAGIC "magic" //Magic teleportation, does whatever it wants (unless there's antimagic)
|
|
#define TELEPORT_CHANNEL_CULT "cult" //Cult teleportation, does whatever it wants (unless there's holiness)
|
|
#define TELEPORT_CHANNEL_FREE "free" //Anything else
|
|
|
|
//Run the world with this parameter to enable a single run though of the game setup and tear down process with unit tests in between
|
|
#define TEST_RUN_PARAMETER "test-run"
|
|
//Force the config directory to be something other than "config"
|
|
#define OVERRIDE_CONFIG_DIRECTORY_PARAMETER "config-directory"
|
|
|
|
#define EGG_LAYING_MESSAGES list("lays an egg.","squats down and croons.","begins making a huge racket.","begins clucking raucously.")
|
|
|
|
// Used by PDA and cartridge code to reduce repetitiveness of spritesheets
|
|
#define PDAIMG(what) {"<span class="pda16x16 [#what]"></span>"}
|
|
|
|
#define NEGATIVE_GRAVITY -1
|
|
|
|
#define STANDARD_GRAVITY 1 //Anything above this is high gravity, anything below no grav
|
|
#define GRAVITY_DAMAGE_TRESHOLD 3 //Starting with this value gravity will start to damage mobs
|
|
/// The scaling factor for high gravity damage.
|
|
#define GRAVITY_DAMAGE_SCALING 3.5
|
|
/// The maximum [BRUTE] damage a mob can take from high gravity per second.
|
|
#define GRAVITY_DAMAGE_MAXIMUM 4.5
|
|
|
|
#define CAMERA_NO_GHOSTS 0
|
|
#define CAMERA_SEE_GHOSTS_BASIC 1
|
|
#define CAMERA_SEE_GHOSTS_ORBIT 2
|
|
|
|
#define CLIENT_FROM_VAR(I) (ismob(I) ? I:client : (istype(I, /client) ? I : (istype(I, /datum/mind) ? I:current?:client : null)))
|
|
|
|
#define AREASELECT_CORNERA "corner A"
|
|
#define AREASELECT_CORNERB "corner B"
|
|
|
|
#define VARSET_FROM_LIST(L, V) if(L && L[#V]) V = L[#V]
|
|
#define VARSET_FROM_LIST_IF(L, V, C...) if(L && L[#V] && (C)) V = L[#V]
|
|
#define VARSET_TO_LIST(L, V) if(L) L[#V] = V
|
|
#define VARSET_TO_LIST_IF(L, V, C...) if(L && (C)) L[#V] = V
|
|
|
|
#define DICE_NOT_RIGGED 1
|
|
#define DICE_BASICALLY_RIGGED 2
|
|
#define DICE_TOTALLY_RIGGED 3
|
|
|
|
#define VOMIT_TOXIC 1
|
|
#define VOMIT_PURPLE 2
|
|
|
|
//chem grenades defines
|
|
#define GRENADE_EMPTY 1
|
|
#define GRENADE_WIRED 2
|
|
#define GRENADE_READY 3
|
|
|
|
// camera shooting modes , originally was going to put this under tools since the camera is a tool in rl but wasn't 100% sure
|
|
#define CAMERA_STANDARD "standard"
|
|
#define CAMERA_DESCRIPTION "description"
|
|
|
|
//Religion
|
|
|
|
#define HOLY_ROLE_PRIEST 1 //default priestly role
|
|
#define HOLY_ROLE_HIGHPRIEST 2 //the one who designates the religion
|
|
|
|
#define ALIGNMENT_GOOD "good"
|
|
#define ALIGNMENT_NEUT "neutral"
|
|
#define ALIGNMENT_EVIL "evil"
|
|
|
|
/// Whether we have succesfully hidden out blood level
|
|
#define BLOODSUCKER_HIDE_BLOOD "hide_blood_volume"
|
|
#define BLOODSUCKER_SHOW_BLOOD "show_blood_volume"
|
|
/// 1 tile down
|
|
#define ui_blood_display "WEST:6,CENTER-1:0"
|
|
/// 2 tiles down
|
|
#define ui_vamprank_display "WEST:6,CENTER-2:-5"
|
|
/// 6 pixels to the right, zero tiles & 5 pixels DOWN.
|
|
#define ui_sunlight_display "WEST:6,CENTER-0:0"
|
|
|
|
|
|
|