mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 02:16:05 +00:00
They include such procs as sanitize_integer(num, min, max, default) which will check num is a number, round num to make it an integer, then check if it is between min and max (inclusive). If it fails the bound-checks it will return default. There are others, have a look.
PERSISTENT PREFERENCES: Every ckey which connects to the game gets its own persistent /datum/preferences datum.
It is archived in var/list/preferences_datums = list("ckey" = datum)
At connect it is automatically associated with the client defines.dm (or a new one is created if it can't find an archived prefs datum). This means clients will ALWAYS have a var/datum/preferences/prefs which references this datum. So you can use it without checking if(client.prefs)
This has simplified only a few bits of code. It will however, allow us to make preferences like see_deadchat ghost_ears etc, persistent. So they will not reset when you DC.
SAVEFILES: Changed the player savefile code a lot. Hopefully I've not fucked it up too much. Every single variable loaded from saves is now sanity checked using the new sanity procs. This should help prevent savefiles becomming obsolete by sanitizing input to meet current requirements, without deleting all the ok variables and making you start from scratch >_> NOTE: I still need to sort out the savefile version stuff. I'll probably figure it out before the server updates anyway. It sees to be fine without it.
You can no longer choose your blood type. It is randomised (with each bloodtype having a realistic probability of occuring). This is to make blood analysis (detective/medical) less pointless. It is chosen as soon as you connect. It remains persistent throughout each round so you won't be able to change it by logging in/out over and over.
Replaces some copypasta code with is_afk() (still a fair bit to do)
There are new hyperlink shortcut things. _src_=vars will direct your hyperlink to viewvars. _src_=prefs to your preferences datum. (These are the only way to access those bits of code via links). This means that the overall amount of operations in almost every Topic has pretty much halved and is much prettier.
Replaced and removed adminplayervars from datum/admins/Topic. It was superfluous. They now all point directly to the viewvars code using _src_=vars
Removed the changelog popup at round start. Instead a button on your game-window will glow white if there are new updates. To peruse at your convenience. This will speed up connect times.
Removed the AFK_THRESHOLD define. It is integrated into is_afk() now.
TODO: remove the prefs stuff from mobs and clients and update code to use client.prefs to access that info.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5121 316c924e-a436-60f5-8080-3fe189b3f50e
236 lines
7.8 KiB
Plaintext
236 lines
7.8 KiB
Plaintext
//#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/machines = list()
|
|
var/global/list/processing_objects = list()
|
|
var/global/list/active_diseases = 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/global/list/global_map = null
|
|
//list/global_map = list(list(1,5),list(4,3))//an array of map Z levels.
|
|
//Resulting sector map looks like
|
|
//|_1_|_4_|
|
|
//|_5_|_3_|
|
|
//
|
|
//1 - SS13
|
|
//4 - Derelict
|
|
//3 - AI satellite
|
|
//5 - empty space
|
|
|
|
|
|
//////////////
|
|
|
|
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/BLOCKADD = 0
|
|
var/DIFFMUT = 0
|
|
|
|
var/skipupdate = 0
|
|
///////////////
|
|
var/eventchance = 3 //% per 5 mins
|
|
var/event = 0
|
|
var/hadevent = 0
|
|
var/blobevent = 0
|
|
///////////////
|
|
|
|
var/diary = null
|
|
var/diaryofmeanpeople = null
|
|
var/href_logfile = null
|
|
var/station_name = null
|
|
var/game_version = "/tg/ Station 13"
|
|
var/changelog_hash = ""
|
|
|
|
var/datum/air_tunnel/air_tunnel1/SS13_airtunnel = null
|
|
var/going = 1.0
|
|
var/master_mode = "traitor"//"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/host = null
|
|
var/aliens_allowed = 1
|
|
var/ooc_allowed = 1
|
|
var/dooc_allowed = 1
|
|
var/traitor_scaling = 1
|
|
//var/goonsay_allowed = 0
|
|
var/dna_ident = 1
|
|
var/abandon_allowed = 1
|
|
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/shuttles = list( )
|
|
var/list/reg_dna = list( )
|
|
// list/traitobj = list( )
|
|
|
|
|
|
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.001 // Cap for how fast cells charge, as a percentage-per-tick (.001 means cellcharge is capped to 1% per second)
|
|
|
|
var/shuttle_z = 2 //default
|
|
var/airtunnel_start = 68 // default
|
|
var/airtunnel_stop = 68 // default
|
|
var/airtunnel_bottom = 72 // default
|
|
var/list/monkeystart = list()
|
|
var/list/wizardstart = list()
|
|
var/list/newplayer_start = list()
|
|
var/list/latejoin = list()
|
|
var/list/prisonwarp = list() //prisoners go to these
|
|
var/list/holdingfacility = list() //captured people go here
|
|
var/list/xeno_spawn = list()//Aliens spawn at these.
|
|
// list/mazewarp = list()
|
|
var/list/tdome1 = list()
|
|
var/list/tdome2 = list()
|
|
var/list/tdomeobserve = list()
|
|
var/list/tdomeadmin = list()
|
|
var/list/prisonsecuritywarp = list() //prison security goes to these
|
|
var/list/prisonwarped = list() //list of players already warped
|
|
var/list/blobstart = list()
|
|
// list/traitors = list() //traitor list
|
|
var/list/cardinal = list( NORTH, SOUTH, EAST, WEST )
|
|
var/list/alldirs = list(NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
|
|
|
|
var/datum/station_state/start_state = null
|
|
var/datum/configuration/config = null
|
|
var/datum/sun/sun = 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 = 0
|
|
|
|
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
|
|
|
|
//airlockWireColorToIndex takes a number representing the wire color, e.g. the orange wire is always 1, the dark red wire is always 2, etc. It returns the index for whatever that wire does.
|
|
//airlockIndexToWireColor does the opposite thing - it takes the index for what the wire does, for example AIRLOCK_WIRE_IDSCAN is 1, AIRLOCK_WIRE_POWER1 is 2, etc. It returns the wire color number.
|
|
//airlockWireColorToFlag takes the wire color number and returns the flag for it (1, 2, 4, 8, 16, etc)
|
|
var/list/airlockWireColorToFlag = RandomAirlockWires()
|
|
var/list/airlockIndexToFlag
|
|
var/list/airlockIndexToWireColor
|
|
var/list/airlockWireColorToIndex
|
|
var/list/APCWireColorToFlag = RandomAPCWires()
|
|
var/list/APCIndexToFlag
|
|
var/list/APCIndexToWireColor
|
|
var/list/APCWireColorToIndex
|
|
var/list/BorgWireColorToFlag = RandomBorgWires()
|
|
var/list/BorgIndexToFlag
|
|
var/list/BorgIndexToWireColor
|
|
var/list/BorgWireColorToIndex
|
|
var/list/AAlarmWireColorToFlag = RandomAAlarmWires()
|
|
var/list/AAlarmIndexToFlag
|
|
var/list/AAlarmIndexToWireColor
|
|
var/list/AAlarmWireColorToIndex
|
|
|
|
#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 2.025 //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_NAME_LEN 26
|
|
|
|
#define shuttle_time_in_station 1800 // 3 minutes in the station
|
|
#define shuttle_time_to_arrive 6000 // 10 minutes to arrive
|
|
|
|
//away missions
|
|
var/list/awaydestinations = list() //a list of landmarks that the warpgate can take you to
|
|
var/returndestination //the location immediately south of the station gateway
|
|
var/calibrateddestination //If you actually arrive at the away gate
|
|
|
|
// MySQL configuration
|
|
|
|
var/sqladdress = "localhost"
|
|
var/sqlport = "3306"
|
|
var/sqldb = "tgstation"
|
|
var/sqllogin = "root"
|
|
var/sqlpass = ""
|
|
|
|
// Feedback gathering sql connection
|
|
|
|
var/sqlfdbkdb = "test"
|
|
var/sqlfdbklogin = "root"
|
|
var/sqlfdbkpass = ""
|
|
|
|
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 = ""
|
|
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 = 1800 //Cannot access files by ftp until the game is finished setting up and stuff.
|
|
|
|
|
|
//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_FUN 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_MAXPERMISSION 4096 //This holds the maximum value for a permission. It is used in iteration, so keep it updated.
|
|
|
|
#define R_HOST 65535
|
|
|
|
|
|
//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. |