mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-22 08:01:06 +00:00
* Replace SSingulo with SScalamity; processing cleanup
- SScalamity now handles blobs as well as singularity-types.
- Processing subtypes have been simplified to not require a stop_processing definition.
* this is probably important
* Remove cascade disabling SSgarbage
* Fixed a bug where dust() did not qdel the target mob
* Misc fixes
* Fix decals surviving break-to-plating
* Subsystem flag tweaks
* Apparently subsystems are new'd before config is.
* Fix paper icons
* Speculative fix for insane lag
* Better machinery stat
* Make organs not use SSoverlay
* Misc bugfixes & tweaks
* Nightmode fixes
* Changelog for SMC
* Port /tg/'s improved MC crash handling
* Add some more SS Recover() procs
* supply_controller -> SScargo
* More New() -> Initialize()
* pAI and robot construction overlays
* Fix cargo unit tests
* Merge the DMM Suite's atom/New() into atoms_init
* Lighting pre-baking
* Lighting initialization logging
* Fix some bad SS init orders
* Fix SSlighting logging; rename Processes to MC
* Speculative fix for insane GC lag
* Prebaked openturf/icon_smooth & fix lighting prebake
* SS init status; SSatoms LATEQDEL
* Fix bug with MC init stat panel
* Fix parallax
* Misc
* Ignore SS_NO_DISPLAY during init
* apparently this is important
* REEEEEE
* Image GC fixes; broadcaster radio-new sanity
* RCON Cleanup
* Move pAI recruiter into subsystem
* Move global solars list into sun subsystem
* Make chickens not use a global
* Demote SSdisposals to SS_BACKGROUND; garbage-debug cleanup
* Speed up space init a little
* Fix bad timer flags on floor drying
* Subsystem panic-restart verb for mins
* Explosion speedup
* Minor subsystem & MC logging tweaks
* SSopenturf improvements
* Make pipenet actually initialize (whoops)
* Minor tweaks
* Implement lighting rounding
* comments are hard okay
* Minor lattice tweaks
* Fix some timer issues & better closet init
* Timer sanity
* Request console tweaks + Storage init sanity
* Minor SSmachiner RCON improvements
* Further reduce world-start timer count
* Standardize subsystem logging
* Garbage hard delete profiling from /tg/
* Timer hang detection & recovery
* Log machines that sleep in process() and fuck up SSmachinery
* Fix an issue with external airlocks sleeping in process()
* Failsafe logging
* Minor tweaks
* Revert "Request console tweaks + Storage init sanity"
This reverts commit 98d3579e35.
* Re-implement RC changes
* Fix SQL FT saving
* Fix SSmachinery sleep in disposals
* Minor SS tweaks
* Paper fixes
* Blood drying fixes
* Merge gameticker and SSticker
* Minor global list init cleanup
* Lagcheck biogenerator & bags
* Tweak SScargo init order; RIG Initialize()
* Caching tweaks
* Remove rogue comma
* Initialize fixes
* Lighting destroy cleanup
* Fix emagging airlocks
* Initial SSicon implementation
* Tweaks & Fixes
* Fire + Air alarm queued icon updates
* Overlays + Queued icon cleanup
* Runtime & background fixes
* Kill some meaningless set statements
* Kill some image qdels
* Bump up lighting rounding val
* Fix adv. scanner destroy runtimes
* Remove unneeded icon update limiting
* Move icon smoothing into helpers
* Show a warning if DM 510 compiles without memory leak hack enabled
* Re-organize subsystems & MC defines a little
* Airlock SFX
* Log of Changes
* Make SSicon_update disable itself when not doing anything
* Fix respawn verb runtime when used early in server-init
* Add more information to MC's stat_entry()
* Replace direct refernces to gcDestroyed with QDEL* macros
* plant_controller -> SSplants
* More plant tweaks
* Add more humor to changelog
* Move parallax globals into SSparallax
* Lighting responsiveness tweaks
* Fix parallax init order & better MC init panel stat
* Make mobs GC
* More overlays + Remove intercom spawn()
* SSfast_process; make pinpointers not use spawn-recursion to process
Also made the SM Cascade beach process with SSprocessing instead of a spawn loop.
* Update changelog
* Mob GC tweaks
* Del() cleanup
* Fix insomniac ZAS connection edges
* Minor pAI cleanup
* Convert more things to SSoverlay; fix duplicated overlay in field gens
* SM Bluespace turf tweaks
* Update SSgarbage debug globals list
* Human-type qdel tweaks
* Subsystem suspension; stat_entry improvements
* SQL Statistics cleanup
* Fix runtimes with ambrosia
* More disable() -> suspend(); fix nightmode again
* Human qdel fix; minor tweaks
* Update turbolift to work with StonedMC
* Make lifts use timers instead of a subsystem
* Make SSassets start earlier
* Convert the radio controller into a subsystem
* Fix some missing CHECK_TICKs in asteroid generation
* MC stat tweaks; make shouldnt_see a typecache
* Kill some redundant debug-controller entries
* radio_controller -> SSradio
* Better SSgarbage hard-del logging from /tg/ upstream
* Logging tweaks + GELF
* Misc client caching improvements
* Slime SSoverlay
* Oven icon fixes
* Implant fixes
- Death implants will no longer spam Common on death of user.
- Death implants should handle a deleted user better.
* Holder tweaks + Welding tool Initialize()
* Fix some bad subsystem logging
* Fix suit cooling units spawning without cells
* Starlight tweaks
* Gibber infinite gib fix
* More SSoverlay stuff
* Make crates use CUT_OVERLAY_IN
* Make SSarrivals suspend instead of disable
* Make openturf use split/phased tick checks
* Speculative fix for unwet timer runtimes
* Blood overlay tweaks/fixes
* Update crusher to play nice with SMC + SSoverlay
* Openturf improvements and fixes
* Minor turbolift tweaks
* Lighting performance improvements + ChangeTurf tweaks
* this is probably important
* Fix wall weld noises on changeturf
* More ChangeTurf tweaks
* Explosion tweaks
* Pre-game lobby tweaks
* Openturf tweaks
* Prevent admins from starting the game before init finishes
* Fix Travis
* Kill an unused var
* Fix ChangeTurf runtimes on openturfs
* Fixes
* Browser datum fixes, asset caching
* Update changelog
* Changelog
* Lobby tweaks
* Ticker tweaks; kill ticker var
* Further lobby tweaks
* Cascade tweaks
* air_master -> SSair
* Reduce overhead from radio autosay
* alarm_manager -> SSalarm
* bomb_processor -> SSexplosives
* corp_regs -> SSlaw
* ZAS overlay fixes
* Small wall icon optimization
* Fix effects master
* Assembly tweaks
* Megavend fixes
* Shuttle fixes
* Camera alert performance improvements
* Fix some world.log spam from lighting overlays
* Fix some Initialize() procs
* Openspace responsiveness tweaks
* Make HE pipes animate through openturfs
* Kill a spawn
311 lines
12 KiB
Plaintext
311 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.
|
|
#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
|
|
|
|
// 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.
|
|
|
|
// Age limits on a character.
|
|
#define AGE_MIN 17
|
|
#define AGE_MAX 85
|
|
|
|
#define MAX_GEAR_COST 5 // Used in chargen for accessory loadout limit.
|
|
|
|
// Preference toggles.
|
|
#define SOUND_ADMINHELP 0x1
|
|
#define SOUND_MIDI 0x2
|
|
#define SOUND_AMBIENCE 0x4
|
|
#define SOUND_LOBBY 0x8
|
|
#define CHAT_OOC 0x10
|
|
#define CHAT_DEAD 0x20
|
|
#define CHAT_GHOSTEARS 0x40
|
|
#define CHAT_GHOSTSIGHT 0x80
|
|
#define CHAT_PRAYER 0x100
|
|
#define CHAT_RADIO 0x200
|
|
#define CHAT_ATTACKLOGS 0x400
|
|
#define CHAT_DEBUGLOGS 0x800
|
|
#define CHAT_LOOC 0x1000
|
|
#define CHAT_GHOSTRADIO 0x2000
|
|
#define SHOW_TYPING 0x4000
|
|
#define CHAT_NOICONS 0x8000
|
|
|
|
#define PARALLAX_SPACE 0x1
|
|
#define PARALLAX_DUST 0x2
|
|
#define PROGRESS_BARS 0x4
|
|
|
|
#define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_ATTACKLOGS|CHAT_LOOC)
|
|
|
|
//Sound effects toggles
|
|
#define ASFX_AMBIENCE 1
|
|
#define ASFX_FOOTSTEPS 2
|
|
#define ASFX_VOTE 4
|
|
|
|
#define ASFX_DEFAULT (ASFX_AMBIENCE|ASFX_FOOTSTEPS|ASFX_VOTE)
|
|
|
|
// 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
|
|
|
|
//some colors
|
|
#define COLOR_WHITE "#ffffff"
|
|
#define COLOR_SILVER "#c0c0c0"
|
|
#define COLOR_GRAY "#808080"
|
|
#define COLOR_BLACK "#000000"
|
|
#define COLOR_RED "#ff0000"
|
|
#define COLOR_RED_LIGHT "#ff3333"
|
|
#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_BLUE_LIGHT "#33ccff"
|
|
#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_SUN "#ec8b2f"
|
|
|
|
// 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
|
|
|
|
// 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 1024
|
|
#define MAX_PAPER_MESSAGE_LEN 3072
|
|
#define MAX_BOOK_MESSAGE_LEN 9216
|
|
#define MAX_LNAME_LEN 64
|
|
#define MAX_NAME_LEN 26
|
|
|
|
// 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
|
|
|
|
// Custom layer definitions, supplementing the default TURF_LAYER, MOB_LAYER, etc.
|
|
#define DOOR_OPEN_LAYER 2.7 //Under all objects if opened. 2.7 due to tables being at 2.6
|
|
#define DOOR_CLOSED_LAYER 3.1 //Above most items if closed
|
|
#define LIGHTING_LAYER 11
|
|
#define HUD_LAYER 20 //Above lighting, but below obfuscation. For in-game HUD effects (whereas SCREEN_LAYER is for abstract/OOC things like inventory slots)
|
|
#define OBFUSCATION_LAYER 21 //Where images covering the view for eyes are put
|
|
#define SCREEN_LAYER 22 //Mob HUD/effects layer
|
|
#define UNDERDOOR 3.09 //Just barely under a closed door.
|
|
|
|
// 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 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)
|
|
// NTNet module-configuration values. Do not change these. If you need to add another use larger number (5..6..7 etc)
|
|
#define NTNET_SOFTWAREDOWNLOAD 1 // Downloads of software from NTNet
|
|
#define NTNET_PEERTOPEER 2 // P2P transfers of files between devices
|
|
#define NTNET_COMMUNICATION 3 // Communication (messaging)
|
|
#define NTNET_SYSTEMCONTROL 4 // Control of various systems, RCon, air alarm control, etc.
|
|
|
|
// NTNet transfer speeds, used when downloading/uploading a file/program.
|
|
#define NTNETSPEED_LOWSIGNAL 0.05 // GQ/s transfer speed when the device is wirelessly connected and on Low signal
|
|
#define NTNETSPEED_HIGHSIGNAL 0.25 // GQ/s transfer speed when the device is wirelessly connected and on High signal
|
|
#define NTNETSPEED_ETHERNET 1 // GQ/s transfer speed when the device is using wired connection
|
|
#define NTNETSPEED_DOS_AMPLIFICATION 5 // Multiplier for Denial of Service program. Resulting load on NTNet relay is this multiplied by NTNETSPEED of the device
|
|
|
|
// Program bitflags
|
|
#define PROGRAM_ALL 15
|
|
#define PROGRAM_CONSOLE 1
|
|
#define PROGRAM_LAPTOP 2
|
|
#define PROGRAM_TABLET 4
|
|
#define PROGRAM_TELESCREEN 8
|
|
|
|
#define PROGRAM_STATE_KILLED 0
|
|
#define PROGRAM_STATE_BACKGROUND 1
|
|
#define PROGRAM_STATE_ACTIVE 2
|
|
|
|
// Caps for NTNet logging. Less than 10 would make logging useless anyway, more than 500 may make the log browser too laggy. Defaults to 100 unless user changes it.
|
|
#define MAX_NTNET_LOGS 500
|
|
#define MIN_NTNET_LOGS 10
|
|
|
|
#define PROGRAM_ACCESS_ONE 1
|
|
#define PROGRAM_ACCESS_LIST_ONE 2
|
|
#define PROGRAM_ACCESS_LIST_ALL 3
|
|
|
|
// 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.
|
|
|
|
//Camera capture modes
|
|
#define CAPTURE_MODE_REGULAR 0 //Regular polaroid camera mode
|
|
#define CAPTURE_MODE_ALL 1 //Admin camera mode
|
|
#define CAPTURE_MODE_PARTIAL 3 //Simular to regular mode, but does not do dummy check
|
|
|
|
//Sound effects toggles
|
|
#define ASFX_AMBIENCE 1
|
|
#define ASFX_FOOTSTEPS 2
|
|
#define ASFX_VOTE 4
|
|
|
|
//Cargo random stock vars
|
|
//These are used in randomstock.dm
|
|
//And also for generating random loot crates in crates.dm
|
|
#define TOTAL_STOCK 80//The total number of items we'll spawn in cargo stock
|
|
|
|
|
|
#define STOCK_UNCOMMON_PROB 23
|
|
//The probability, as a percentage for each item, that we'll choose from the uncommon spawns list
|
|
|
|
#define STOCK_RARE_PROB 2.8
|
|
//The probability, as a percentage for each item, that we'll choose from the rare spawns list
|
|
|
|
//If an item is not rare or uncommon, it will be chosen from the common spawns list.
|
|
//So the probability of a common item is 100 - (uncommon + rare)
|
|
|
|
|
|
#define STOCK_LARGE_PROB 75
|
|
//Large items are spawned on predetermined locations.
|
|
//For each large spawn marker, this is the chance that we will spawn there
|
|
|
|
|
|
// Law settings
|
|
#define PERMABRIG_SENTENCE 90 // Measured in minutes
|
|
//#define PERMAPRISON_SENTENCE 60 // Measured in IC days
|
|
#define FELONY_LEVEL 2.0 // What is the minimum law severity that counts as a felony?
|
|
|
|
#define LAYER_TABLE 2.8
|
|
#define LAYER_UNDER_TABLE 2.79
|
|
#define LAYER_ABOVE_TABLE 2.81
|
|
|
|
// Stoplag.
|
|
#define TICK_CHECK ( world.tick_usage > CURRENT_TICKLIMIT ? stoplag() : 0 )
|
|
#define CHECK_TICK if (world.tick_usage > CURRENT_TICKLIMIT) stoplag()
|
|
|
|
// Performance bullshit.
|
|
|
|
//supposedly the fastest way to do this according to https://gist.github.com/Giacom/be635398926bb463b42a
|
|
#define RANGE_TURFS(RADIUS, CENTER) \
|
|
block( \
|
|
locate(max(CENTER.x-(RADIUS),1), max(CENTER.y-(RADIUS),1), CENTER.z), \
|
|
locate(min(CENTER.x+(RADIUS),world.maxx), min(CENTER.y+(RADIUS),world.maxy), CENTER.z) \
|
|
)
|
|
|
|
#define get_turf(A) (get_step(A, 0))
|
|
|
|
#define UNTIL(X) while(!(X)) stoplag()
|
|
|
|
#define MIDNIGHT_ROLLOVER 864000 //number of deciseconds in a day
|
|
#define DEBUG_REF(D) (D ? "[D]|\ref[D]" : "NULL")
|
|
|
|
#define DEBUG_REF(D) (D ? "\ref[D]|[D] ([D.type])" : "NULL")
|
|
|
|
//Recipe type defines. Used to determine what machine makes them
|
|
#define MICROWAVE 0x1
|
|
#define FRYER 0x2
|
|
#define OVEN 0x4
|
|
#define CANDYMAKER 0x8
|
|
#define CEREALMAKER 0x10
|
|
|
|
// MultiZAS directions.
|
|
#define NORTHUP (NORTH|UP)
|
|
#define EASTUP (EAST|UP)
|
|
#define SOUTHUP (SOUTH|UP)
|
|
#define WESTUP (WEST|UP)
|
|
#define NORTHDOWN (NORTH|DOWN)
|
|
#define EASTDOWN (EAST|DOWN)
|
|
#define SOUTHDOWN (SOUTH|DOWN)
|
|
#define WESTDOWN (WEST|DOWN)
|
|
|
|
#define NL_NOT_DISABLED 0
|
|
#define NL_TEMPORARY_DISABLE 1
|
|
#define NL_PERMANENT_DISABLE 2
|