mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +00:00
305 lines
12 KiB
Plaintext
305 lines
12 KiB
Plaintext
#define DEBUG
|
|
// Turf-only flags.
|
|
#define NOJAUNT 1 // This is used in literally one place, turf.dm, to block ethereal jaunt.
|
|
|
|
#define TRANSITIONEDGE 7 // Distance from edge to move to another z-level.
|
|
|
|
// Invisibility constants. These should only be used for TRUE invisibility, AKA nothing living players touch
|
|
#define INVISIBILITY_LIGHTING 20
|
|
#define INVISIBILITY_LEVEL_ONE 35
|
|
#define INVISIBILITY_LEVEL_TWO 45
|
|
#define INVISIBILITY_OBSERVER 60
|
|
#define INVISIBILITY_EYE 61
|
|
|
|
#define SEE_INVISIBLE_LIVING 25
|
|
#define SEE_INVISIBLE_NOLIGHTING 15
|
|
#define SEE_INVISIBLE_LEVEL_ONE 35
|
|
#define SEE_INVISIBLE_LEVEL_TWO 45
|
|
#define SEE_INVISIBLE_CULT 60
|
|
#define SEE_INVISIBLE_OBSERVER 61
|
|
|
|
#define SEE_INVISIBLE_MINIMUM 5
|
|
#define INVISIBILITY_MAXIMUM 100
|
|
|
|
// Pseudo-Invis, like Ninja, Ling, Etc.
|
|
#define EFFECTIVE_INVIS 50 // Below this, can't be examined, may as well be invisible to the game
|
|
|
|
// For the client FPS pref and anywhere else
|
|
#define MAX_CLIENT_FPS 200
|
|
|
|
// 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.
|
|
#define MAX_GEAR_COST 15 // Used in chargen for accessory loadout limit.
|
|
|
|
// 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, paroled, 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 LIFE_HUD 10 // STATUS_HUD that only reports dead or alive
|
|
#define TOTAL_HUDS 10 // Total number of HUDs. Like body layers, and other things, it comes up sometimes.
|
|
|
|
//some colors
|
|
#define COLOR_WHITE "#FFFFFF"
|
|
#define COLOR_SILVER "#C0C0C0"
|
|
#define COLOR_GRAY "#808080"
|
|
#define COLOR_BLACK "#000000"
|
|
#define COLOR_RED "#FF0000"
|
|
#define COLOR_MAROON "#800000"
|
|
#define COLOR_YELLOW "#FFFF00"
|
|
#define COLOR_OLIVE "#808000"
|
|
#define COLOR_LIME "#00FF00"
|
|
#define COLOR_GREEN "#008000"
|
|
#define COLOR_CYAN "#00FFFF"
|
|
#define COLOR_TEAL "#008080"
|
|
#define COLOR_BLUE "#0000FF"
|
|
#define COLOR_NAVY "#000080"
|
|
#define COLOR_PINK "#FF00FF"
|
|
#define COLOR_PURPLE "#800080"
|
|
#define COLOR_ORANGE "#FF9900"
|
|
#define COLOR_LUMINOL "#66FFFF"
|
|
#define COLOR_BEIGE "#CEB689"
|
|
#define COLOR_BLUE_GRAY "#6A97B0"
|
|
#define COLOR_BROWN "#B19664"
|
|
#define COLOR_DARK_BROWN "#917448"
|
|
#define COLOR_DARK_ORANGE "#B95A00"
|
|
#define COLOR_GREEN_GRAY "#8DAF6A"
|
|
#define COLOR_RED_GRAY "#AA5F61"
|
|
#define COLOR_PALE_BLUE_GRAY "#8BBBD5"
|
|
#define COLOR_PALE_GREEN_GRAY "#AED18B"
|
|
#define COLOR_PALE_RED_GRAY "#CC9090"
|
|
#define COLOR_PALE_PURPLE_GRAY "#BDA2BA"
|
|
#define COLOR_PURPLE_GRAY "#A2819E"
|
|
#define COLOR_RED_LIGHT "#FF3333"
|
|
#define COLOR_DEEP_SKY_BLUE "#00e1ff"
|
|
|
|
|
|
|
|
|
|
// Shuttles.
|
|
|
|
// These define the time taken for the shuttle to get to the space station, 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
|
|
|
|
// Sound defines for shuttles.
|
|
#define HYPERSPACE_WARMUP 0
|
|
#define HYPERSPACE_PROGRESS 1
|
|
#define HYPERSPACE_END 2
|
|
|
|
// Ferry shuttle processing status.
|
|
#define IDLE_STATE 0
|
|
#define WAIT_LAUNCH 1
|
|
#define FORCE_LAUNCH 2
|
|
#define WAIT_ARRIVE 3
|
|
#define WAIT_FINISH 4
|
|
|
|
// Setting this much higher than 1024 could allow spammers to DOS the server easily.
|
|
#define MAX_MESSAGE_LEN 2048 //VOREStation Edit - I'm not sure about "easily". It can be a little longer.
|
|
#define MAX_PAPER_MESSAGE_LEN 6144
|
|
#define MAX_BOOK_MESSAGE_LEN 24576
|
|
#define MAX_RECORD_LENGTH 24576
|
|
#define MAX_LNAME_LEN 64
|
|
#define MAX_NAME_LEN 52
|
|
|
|
// Event defines.
|
|
#define EVENT_LEVEL_MUNDANE 1
|
|
#define EVENT_LEVEL_MODERATE 2
|
|
#define EVENT_LEVEL_MAJOR 3
|
|
|
|
//General-purpose life speed define for plants.
|
|
#define HYDRO_SPEED_MULTIPLIER 1
|
|
|
|
#define DEFAULT_JOB_TYPE /datum/job/assistant
|
|
|
|
//Area flags, possibly more to come
|
|
#define RAD_SHIELDED 1 //shielded from radiation, clearly
|
|
|
|
// Convoluted setup so defines can be supplied by Bay12 main server compile script.
|
|
// Should still work fine for people jamming the icons into their repo.
|
|
#ifndef CUSTOM_ITEM_OBJ
|
|
#define CUSTOM_ITEM_OBJ 'icons/obj/custom_items_obj.dmi'
|
|
#endif
|
|
#ifndef CUSTOM_ITEM_MOB
|
|
#define CUSTOM_ITEM_MOB 'icons/mob/custom_items_mob.dmi'
|
|
#endif
|
|
#ifndef CUSTOM_ITEM_SYNTH
|
|
#define CUSTOM_ITEM_SYNTH 'icons/mob/custom_synthetic.dmi'
|
|
#endif
|
|
|
|
#define WALL_CAN_OPEN 1
|
|
#define WALL_OPENING 2
|
|
|
|
#define DEFAULT_TABLE_MATERIAL "plastic"
|
|
#define DEFAULT_WALL_MATERIAL "steel"
|
|
|
|
#define MAT_STEEL "steel"
|
|
#define MAT_GLASS "glass"
|
|
#define MAT_SILVER "silver"
|
|
#define MAT_GOLD "gold"
|
|
#define MAT_URANIUM "uranium" //Did it
|
|
#define MAT_TITANIUM "titanium"
|
|
#define MAT_PHORON "phoron"
|
|
#define MAT_DIAMOND "diamond"
|
|
#define MAT_SNOW "snow"
|
|
#define MAT_WOOD "wood"
|
|
#define MAT_LOG "log"
|
|
#define MAT_SIFWOOD "alien wood"
|
|
#define MAT_SIFLOG "alien log"
|
|
#define MAT_STEELHULL "steel hull"
|
|
#define MAT_PLASTEEL "plasteel"
|
|
#define MAT_PLASTEELHULL "plasteel hull"
|
|
#define MAT_DURASTEEL "durasteel"
|
|
#define MAT_DURASTEELHULL "durasteel hull"
|
|
#define MAT_TITANIUMHULL "titanium hull"
|
|
|
|
#define SHARD_SHARD "shard"
|
|
#define SHARD_SHRAPNEL "shrapnel"
|
|
#define SHARD_STONE_PIECE "piece"
|
|
#define SHARD_SPLINTER "splinters"
|
|
#define SHARD_NONE ""
|
|
|
|
#define MATERIAL_UNMELTABLE 0x1
|
|
#define MATERIAL_BRITTLE 0x2
|
|
#define MATERIAL_PADDING 0x4
|
|
|
|
#define TABLE_BRITTLE_MATERIAL_MULTIPLIER 4 // Amount table damage is multiplied by if it is made of a brittle material (e.g. glass)
|
|
|
|
#define BOMBCAP_DVSTN_RADIUS (max_explosion_range/4)
|
|
#define BOMBCAP_HEAVY_RADIUS (max_explosion_range/2)
|
|
#define BOMBCAP_LIGHT_RADIUS max_explosion_range
|
|
#define BOMBCAP_FLASH_RADIUS (max_explosion_range*1.5)
|
|
|
|
// Special return values from bullet_act(). Positive return values are already used to indicate the blocked level of the projectile.
|
|
#define PROJECTILE_CONTINUE -1 //if the projectile should continue flying after calling bullet_act()
|
|
#define PROJECTILE_FORCE_MISS -2 //if the projectile should treat the attack as a miss (suppresses attack and admin logs) - only applies to mobs.
|
|
|
|
|
|
// Vending stuff
|
|
#define CAT_NORMAL 1
|
|
#define CAT_HIDDEN 2
|
|
#define CAT_COIN 4
|
|
|
|
//Antag Faction Visbility
|
|
#define ANTAG_HIDDEN "Hidden"
|
|
#define ANTAG_SHARED "Shared"
|
|
#define ANTAG_KNOWN "Known"
|
|
|
|
// Job groups
|
|
#define ROLE_COMMAND "command"
|
|
#define ROLE_SECURITY "security"
|
|
#define ROLE_ENGINEERING "engineering"
|
|
#define ROLE_MEDICAL "medical"
|
|
#define ROLE_RESEARCH "research"
|
|
#define ROLE_CARGO "cargo"
|
|
#define ROLE_CIVILIAN "civilian"
|
|
#define ROLE_SYNTHETIC "synthetic"
|
|
#define ROLE_UNKNOWN "unknown"
|
|
#define ROLE_EVERYONE "everyone"
|
|
|
|
// Canonical spellings of TSCs, so typos never have to happen again due to human error.
|
|
#define TSC_NT "NanoTrasen"
|
|
#define TSC_HEPH "Hephaestus" // Because everyone misspells it
|
|
#define TSC_VM "Vey Med"
|
|
#define TSC_ZH "Zeng-Hu"
|
|
#define TSC_WT "Ward-Takahashi"
|
|
#define TSC_BC "Bishop Cybernetics"
|
|
#define TSC_MORPH "Morpheus"
|
|
#define TSC_XION "Xion" // Not really needed but consistancy I guess.
|
|
#define TSC_GIL "Gilthari"
|
|
|
|
#define MIDNIGHT_ROLLOVER 864000 //number of deciseconds in a day
|
|
|
|
#define WORLD_ICON_SIZE 32 //Needed for the R-UST port
|
|
#define PIXEL_MULTIPLIER WORLD_ICON_SIZE/32 //Needed for the R-UST port
|
|
|
|
// 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
|
|
|
|
// /atom/proc/use_check flags
|
|
#define USE_ALLOW_NONLIVING 1
|
|
#define USE_ALLOW_NON_ADV_TOOL_USR 2
|
|
#define USE_ALLOW_DEAD 4
|
|
#define USE_ALLOW_INCAPACITATED 8
|
|
#define USE_ALLOW_NON_ADJACENT 16
|
|
#define USE_FORCE_SRC_IN_USER 32
|
|
#define USE_DISALLOW_SILICONS 64
|
|
|
|
#define USE_SUCCESS 0
|
|
#define USE_FAIL_NON_ADJACENT 1
|
|
#define USE_FAIL_NONLIVING 2
|
|
#define USE_FAIL_NON_ADV_TOOL_USR 3
|
|
#define USE_FAIL_DEAD 4
|
|
#define USE_FAIL_INCAPACITATED 5
|
|
#define USE_FAIL_NOT_IN_USER 6
|
|
#define USE_FAIL_IS_SILICON 7
|
|
|
|
// This creates a consistant definition for creating global lists, automatically inserting objects into it when they are created, and removing them when deleted.
|
|
// It is very good for removing the 'in world' junk that exists in the codebase painlessly.
|
|
// First argument is the list name/path desired, e.g. 'all_candles' would be 'var/list/all_candles = list()'.
|
|
// Second argument is the path the list is expected to contain. Note that children will also get added to the global list.
|
|
// If the GLOB system is ever ported, you can change this macro in one place and have less work to do than you otherwise would.
|
|
#define GLOBAL_LIST_BOILERPLATE(LIST_NAME, PATH)\
|
|
var/global/list/##LIST_NAME = list();\
|
|
##PATH/initialize(mapload, ...)\
|
|
{\
|
|
##LIST_NAME += src;\
|
|
return ..();\
|
|
}\
|
|
##PATH/Destroy(force, ...)\
|
|
{\
|
|
##LIST_NAME -= src;\
|
|
return ..();\
|
|
}\
|
|
|
|
|
|
//'Normal'ness v v v
|
|
//Various types of colorblindness R2R R2G R2B G2R G2G G2B B2R B2G B2B
|
|
#define MATRIX_Monochromia list(0.33, 0.33, 0.33, 0.59, 0.59, 0.59, 0.11, 0.11, 0.11)
|
|
#define MATRIX_Protanopia list(0.57, 0.43, 0, 0.56, 0.44, 0, 0, 0.24, 0.76)
|
|
#define MATRIX_Protanomaly list(0.82, 0.18, 0, 0.33, 0.67, 0, 0, 0.13, 0.88)
|
|
#define MATRIX_Deuteranopia list(0.63, 0.38, 0, 0.70, 0.30, 0, 0, 0.30, 0.70)
|
|
#define MATRIX_Deuteranomaly list(0.80, 0.20, 0, 0.26, 0.74, 0, 0, 0.14, 0.86)
|
|
#define MATRIX_Tritanopia list(0.95, 0.05, 0, 0, 0.43, 0.57, 0, 0.48, 0.53)
|
|
#define MATRIX_Tritanomaly list(0.97, 0.03, 0, 0, 0.73, 0.27, 0, 0.18, 0.82)
|
|
#define MATRIX_Achromatopsia list(0.30, 0.59, 0.11, 0.30, 0.59, 0.11, 0.30, 0.59, 0.11)
|
|
#define MATRIX_Achromatomaly list(0.62, 0.32, 0.06, 0.16, 0.78, 0.06, 0.16, 0.32, 0.52)
|
|
#define MATRIX_Vulp_Colorblind list(0.50, 0.40, 0.10, 0.50, 0.40, 0.10, 0, 0.20, 0.80)
|
|
#define MATRIX_Taj_Colorblind list(0.40, 0.20, 0.40, 0.40, 0.60, 0, 0.20, 0.20, 0.60)
|
|
|
|
// Tool substitution defines
|
|
#define IS_SCREWDRIVER "screwdriver"
|
|
#define IS_CROWBAR "crowbar"
|
|
#define IS_WIRECUTTER "wirecutter"
|
|
#define IS_WRENCH "wrench"
|
|
|
|
// RCD modes. Used on the RCD, and gets passed to an object's rcd_act() when an RCD is used on it, to determine what happens.
|
|
#define RCD_FLOORWALL "Floor / Wall" // Builds plating on space/ground/open tiles. Builds a wall when on floors. Finishes walls when used on girders.
|
|
#define RCD_AIRLOCK "Airlock" // Builds an airlock on the tile if one isn't already there.
|
|
#define RCD_WINDOWGRILLE "Window / Grille" // Builds a full tile window and grille pair on floors.
|
|
#define RCD_DECONSTRUCT "Deconstruction" // Removes various things. Still consumes compressed matter.
|
|
|
|
#define RCD_VALUE_MODE "mode"
|
|
#define RCD_VALUE_DELAY "delay"
|
|
#define RCD_VALUE_COST "cost"
|
|
|
|
|
|
#define RCD_SHEETS_PER_MATTER_UNIT 4 // Each physical material sheet is worth four matter units.
|
|
#define RCD_MAX_CAPACITY 30 * RCD_SHEETS_PER_MATTER_UNIT |