mirror of
https://github.com/fulpstation/fulpstation.git
synced 2025-12-09 16:09:15 +00:00
* Shuttles now have dynamic lighting * heh * there we go * Centcom now supports light tm * fixes the supply shuttle * statue * new and improved
397 lines
14 KiB
Plaintext
397 lines
14 KiB
Plaintext
// Byond direction defines, because I want to put them somewhere.
|
|
// #define NORTH 1
|
|
// #define SOUTH 2
|
|
// #define EAST 4
|
|
// #define WEST 8
|
|
|
|
|
|
#define MIDNIGHT_ROLLOVER 864000 //number of deciseconds in a day
|
|
|
|
#define JANUARY 1
|
|
#define FEBRUARY 2
|
|
#define MARCH 3
|
|
#define APRIL 4
|
|
#define MAY 5
|
|
#define JUNE 6
|
|
#define JULY 7
|
|
#define AUGUST 8
|
|
#define SEPTEMBER 9
|
|
#define OCTOBER 10
|
|
#define NOVEMBER 11
|
|
#define DECEMBER 12
|
|
|
|
//Select holiday names -- If you test for a holiday in the code, make the holiday's name a define and test for that instead
|
|
#define NEW_YEAR "New Year"
|
|
#define VALENTINES "Valentine's Day"
|
|
#define APRIL_FOOLS "April Fool's Day"
|
|
#define EASTER "Easter"
|
|
#define HALLOWEEN "Halloween"
|
|
#define CHRISTMAS "Christmas"
|
|
#define FESTIVE_SEASON "Festive Season"
|
|
#define FRIDAY_13TH "Friday the 13th"
|
|
|
|
//Human Overlays Indexes/////////
|
|
#define MUTATIONS_LAYER 26 //mutations. Tk headglows, cold resistance glow, etc
|
|
#define BODY_BEHIND_LAYER 25 //certain mutantrace features (tail when looking south) that must appear behind the body parts
|
|
#define BODYPARTS_LAYER 24 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag
|
|
#define BODY_ADJ_LAYER 23 //certain mutantrace features (snout, body markings) that must appear above the body parts
|
|
#define BODY_LAYER 22 //underwear, undershirts, socks, eyes, lips(makeup)
|
|
#define FRONT_MUTATIONS_LAYER 21 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
|
|
#define DAMAGE_LAYER 20 //damage indicators (cuts and burns)
|
|
#define UNIFORM_LAYER 19
|
|
#define ID_LAYER 18
|
|
#define SHOES_LAYER 17
|
|
#define GLOVES_LAYER 16
|
|
#define EARS_LAYER 15
|
|
#define SUIT_LAYER 14
|
|
#define GLASSES_LAYER 13
|
|
#define BELT_LAYER 12 //Possible make this an overlay of somethign required to wear a belt?
|
|
#define SUIT_STORE_LAYER 11
|
|
#define NECK_LAYER 10
|
|
#define BACK_LAYER 9
|
|
#define HAIR_LAYER 8 //TODO: make part of head layer?
|
|
#define FACEMASK_LAYER 7
|
|
#define HEAD_LAYER 6
|
|
#define HANDCUFF_LAYER 5
|
|
#define LEGCUFF_LAYER 4
|
|
#define HANDS_LAYER 3
|
|
#define BODY_FRONT_LAYER 2
|
|
#define FIRE_LAYER 1 //If you're on fire
|
|
#define TOTAL_LAYERS 26 //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_BODY_BEHIND_LAYER BODY_BEHIND_LAYER+1
|
|
#define UNDER_BODY_LAYER BODY_LAYER+1
|
|
#define UNDER_BODY_ADJ_LAYER BODY_ADJ_LAYER+1
|
|
#define UNDER_MUTATIONS_LAYER MUTATIONS_LAYER+1
|
|
#define UNDER_BODYPARTS_LAYER BODYPARTS_LAYER+1
|
|
#define UNDER_DAMAGE_LAYER DAMAGE_LAYER+1
|
|
#define UNDER_UNIFORM_LAYER UNIFORM_LAYER+1
|
|
#define UNDER_ID_LAYER ID_LAYER+1
|
|
#define UNDER_SHOES_LAYER SHOES_LAYER+1
|
|
#define UNDER_GLOVES_LAYER GLOVES_LAYER+1
|
|
#define UNDER_EARS_LAYER EARS_LAYER+1
|
|
#define UNDER_SUIT_LAYER SUIT_LAYER+1
|
|
#define UNDER_GLASSES_LAYER GLASSES_LAYER+1
|
|
#define UNDER_BELT_LAYER BELT_LAYER+1
|
|
#define UNDER_SUIT_STORE_LAYER SUIT_STORE_LAYER+1
|
|
#define UNDER_BACK_LAYER BACK_LAYER+1
|
|
#define UNDER_HAIR_LAYER HAIR_LAYER+1
|
|
#define UNDER_FACEMASK_LAYER FACEMASK_LAYER+1
|
|
#define UNDER_HEAD_LAYER HEAD_LAYER+1
|
|
#define UNDER_HANDCUFF_LAYER HANDCUFF_LAYER+1
|
|
#define UNDER_LEGCUFF_LAYER LEGCUFF_LAYER+1
|
|
#define UNDER_HANDS_LAYER HANDS_LAYER+1
|
|
#define UNDER_BODY_FRONT_LAYER BODY_FRONT_LAYER+1
|
|
#define UNDER_FIRE_LAYER FIRE_LAYER+1
|
|
|
|
//AND -1 MEANS "ABOVE", OK?, OK!?!
|
|
#define ABOVE_BODY_BEHIND_LAYER BODY_BEHIND_LAYER-1
|
|
#define ABOVE_BODY_LAYER BODY_LAYER-1
|
|
#define ABOVE_BODY_ADJ_LAYER BODY_ADJ_LAYER-1
|
|
#define ABOVE_MUTATIONS_LAYER MUTATIONS_LAYER-1
|
|
#define ABOVE_BODYPARTS_LAYER BODYPARTS_LAYER-1
|
|
#define ABOVE_DAMAGE_LAYER DAMAGE_LAYER-1
|
|
#define ABOVE_UNIFORM_LAYER UNIFORM_LAYER-1
|
|
#define ABOVE_ID_LAYER ID_LAYER-1
|
|
#define ABOVE_SHOES_LAYER SHOES_LAYER-1
|
|
#define ABOVE_GLOVES_LAYER GLOVES_LAYER-1
|
|
#define ABOVE_EARS_LAYER EARS_LAYER-1
|
|
#define ABOVE_SUIT_LAYER SUIT_LAYER-1
|
|
#define ABOVE_GLASSES_LAYER GLASSES_LAYER-1
|
|
#define ABOVE_BELT_LAYER BELT_LAYER-1
|
|
#define ABOVE_SUIT_STORE_LAYER SUIT_STORE_LAYER-1
|
|
#define ABOVE_BACK_LAYER BACK_LAYER-1
|
|
#define ABOVE_HAIR_LAYER HAIR_LAYER-1
|
|
#define ABOVE_FACEMASK_LAYER FACEMASK_LAYER-1
|
|
#define ABOVE_HEAD_LAYER HEAD_LAYER-1
|
|
#define ABOVE_HANDCUFF_LAYER HANDCUFF_LAYER-1
|
|
#define ABOVE_LEGCUFF_LAYER LEGCUFF_LAYER-1
|
|
#define ABOVE_HANDS_LAYER HANDS_LAYER-1
|
|
#define ABOVE_BODY_FRONT_LAYER BODY_FRONT_LAYER-1
|
|
#define ABOVE_FIRE_LAYER FIRE_LAYER-1
|
|
|
|
|
|
//Security levels
|
|
#define SEC_LEVEL_GREEN 0
|
|
#define SEC_LEVEL_BLUE 1
|
|
#define SEC_LEVEL_RED 2
|
|
#define SEC_LEVEL_DELTA 3
|
|
|
|
//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 TRANSITIONEDGE 7 //Distance from edge to move to another z-level
|
|
|
|
#define BE_CLOSE 1 //in the case of a silicon, to select if they need to be next to the atom
|
|
#define NO_DEXTERY 1 //if other mobs (monkeys, aliens, etc) can use this
|
|
//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
|
|
|
|
//ticker.current_state values
|
|
#define GAME_STATE_STARTUP 0
|
|
#define GAME_STATE_PREGAME 1
|
|
#define GAME_STATE_SETTING_UP 2
|
|
#define GAME_STATE_PLAYING 3
|
|
#define GAME_STATE_FINISHED 4
|
|
//SOUND:
|
|
#define SOUND_MINIMUM_PRESSURE 10
|
|
#define FALLOFF_SOUNDS 1
|
|
#define SURROUND_CAP 7
|
|
|
|
//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 CRAYON_FONT "Comic Sans MS"
|
|
#define PRINTER_FONT "Times New Roman"
|
|
#define SIGNFONT "Times New Roman"
|
|
|
|
#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_FAILED 0
|
|
#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]"
|
|
var/list/bloody_footprints_cache = list()
|
|
|
|
//Bloody shoes/footprints
|
|
#define MAX_SHOE_BLOODINESS 100
|
|
#define BLOODY_FOOTPRINT_BASE_ALPHA 150
|
|
#define BLOOD_GAIN_PER_STEP 100
|
|
#define BLOOD_LOSS_PER_STEP 5
|
|
#define BLOOD_FADEOUT_TIME 2
|
|
|
|
//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"
|
|
//Turf wet states
|
|
#define TURF_DRY 0
|
|
#define TURF_WET_WATER 1
|
|
#define TURF_WET_LUBE 2
|
|
#define TURF_WET_ICE 3
|
|
#define TURF_WET_PERMAFROST 4
|
|
#define TURF_WET_SLIDE 5
|
|
|
|
//Maximum amount of time, (in approx. seconds.) a tile can be wet for.
|
|
#define MAXIMUM_WET_TIME 300
|
|
|
|
//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"
|
|
|
|
|
|
|
|
//lighting area defines
|
|
#define DYNAMIC_LIGHTING_DISABLED 0 //dynamic lighting disabled (area stays at full brightness)
|
|
#define DYNAMIC_LIGHTING_ENABLED 1 //dynamic lighting enabled
|
|
#define DYNAMIC_LIGHTING_FORCED 2 //dynamic lighting enabled even if the area doesn't require power
|
|
#define DYNAMIC_LIGHTING_IFSTARLIGHT 3 //dynamic lighting enabled only if starlight is.
|
|
#define IS_DYNAMIC_LIGHTING(A) ( A.dynamic_lighting == DYNAMIC_LIGHTING_IFSTARLIGHT ? config.starlight : A.dynamic_lighting )
|
|
|
|
//subtypesof(), typesof() without the parent path
|
|
#define subtypesof(typepath) ( typesof(typepath) - typepath )
|
|
|
|
//Gets the turf this atom inhabits
|
|
#define get_turf(A) (get_step(A, 0))
|
|
|
|
//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"
|
|
|
|
//Ghost showing preferences:
|
|
#define GHOST_ACCS_NONE 1
|
|
#define GHOST_ACCS_DIR 50
|
|
#define GHOST_ACCS_FULL 100
|
|
|
|
#define GHOST_ACCS_NONE_NAME "default sprites"
|
|
#define GHOST_ACCS_DIR_NAME "only directional sprites"
|
|
#define GHOST_ACCS_FULL_NAME "full accessories"
|
|
|
|
#define GHOST_ACCS_DEFAULT_OPTION GHOST_ACCS_FULL
|
|
|
|
var/global/list/ghost_accs_options = list(GHOST_ACCS_NONE, GHOST_ACCS_DIR, GHOST_ACCS_FULL) //So save files can be sanitized properly.
|
|
|
|
#define GHOST_OTHERS_SIMPLE 1
|
|
#define GHOST_OTHERS_DEFAULT_SPRITE 50
|
|
#define GHOST_OTHERS_THEIR_SETTING 100
|
|
|
|
#define GHOST_OTHERS_SIMPLE_NAME "white ghost"
|
|
#define GHOST_OTHERS_DEFAULT_SPRITE_NAME "default sprites"
|
|
#define GHOST_OTHERS_THEIR_SETTING_NAME "their setting"
|
|
|
|
#define GHOST_OTHERS_DEFAULT_OPTION GHOST_OTHERS_THEIR_SETTING
|
|
|
|
#define GHOST_MAX_VIEW_RANGE_DEFAULT 10
|
|
#define GHOST_MAX_VIEW_RANGE_MEMBER 14
|
|
|
|
|
|
var/global/list/ghost_others_options = list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DEFAULT_SPRITE, GHOST_OTHERS_THEIR_SETTING) //Same as ghost_accs_options.
|
|
|
|
//Color Defines
|
|
#define OOC_COLOR "#002eb8"
|
|
|
|
/////////////////////////////////////
|
|
// atom.appearence_flags shortcuts //
|
|
/////////////////////////////////////
|
|
//this was added midway thru 510, so it might not exist in some versions, but we can't check by minor verison
|
|
#ifndef TILE_BOUND
|
|
#error this version of 510 is too old, You must use byond 510.1332 or later. (TILE_BOUND is not defined)
|
|
#endif
|
|
|
|
// 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
|
|
#define APPEARANCE_UI RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR
|
|
|
|
//Just space
|
|
#define SPACE_ICON_STATE "[((x + y) ^ ~(x * y) + z) % 25]"
|
|
|
|
// Maploader bounds indices
|
|
#define MAP_MINX 1
|
|
#define MAP_MINY 2
|
|
#define MAP_MINZ 3
|
|
#define MAP_MAXX 4
|
|
#define MAP_MAXY 5
|
|
#define MAP_MAXZ 6
|
|
|
|
// Defib stats
|
|
#define DEFIB_TIME_LIMIT 120
|
|
#define DEFIB_TIME_LOSS 60
|
|
|
|
// 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"
|
|
|
|
// 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"
|
|
|
|
//debug printing macros
|
|
#define debug_world(msg) if (Debug2) to_chat(world, "DEBUG: [msg]")
|
|
#define debug_admins(msg) if (Debug2) to_chat(admins, "DEBUG: [msg]")
|
|
#define debug_world_log(msg) if (Debug2) log_world("DEBUG: [msg]")
|
|
|
|
#define COORD(A) "([A.x],[A.y],[A.z])"
|
|
#define INCREMENT_TALLY(L, stat) if(L[stat]){L[stat]++}else{L[stat] = 1}
|
|
|
|
// Medal names
|
|
#define BOSS_KILL_MEDAL "Killer"
|
|
#define ALL_KILL_MEDAL "Exterminator" //Killing all of x type
|
|
|
|
// Score names
|
|
#define LEGION_SCORE "Legion Killed"
|
|
#define COLOSSUS_SCORE "Colossus Killed"
|
|
#define BUBBLEGUM_SCORE "Bubblegum Killed"
|
|
#define DRAKE_SCORE "Drakes Killed"
|
|
#define BIRD_SCORE "Hierophants Killed"
|
|
#define SWARMER_BEACON_SCORE "Swarmer Beacons Killed"
|
|
#define BOSS_SCORE "Bosses Killed"
|
|
#define TENDRIL_CLEAR_SCORE "Tendrils Killed"
|
|
|
|
//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
|
|
|
|
//different types of atom colorations
|
|
#define ADMIN_COLOUR_PRIORITY 1 //only used by rare effects like greentext coloring mobs and when admins varedit color
|
|
#define TEMPORARY_COLOUR_PRIORITY 2 //e.g. purple effect of the revenant on a mob, black effect when mob electrocuted
|
|
#define WASHABLE_COLOUR_PRIORITY 3 //color splashed onto an atom (e.g. paint on turf)
|
|
#define FIXED_COLOUR_PRIORITY 4 //color inherent to the atom (e.g. blob color)
|
|
#define COLOUR_PRIORITY_AMOUNT 4 //how many priority levels there are.
|
|
|
|
//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 GANG_LOSS 6
|
|
#define GANG_TAKEOVER 7
|
|
#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 TURF_DECAL_PAINT "paint"
|
|
#define TURF_DECAL_DAMAGE "damage"
|
|
#define TURF_DECAL_DIRT "dirt"
|
|
|
|
//Error handler defines
|
|
#define ERROR_USEFUL_LEN 2
|