diff --git a/.gitignore b/.gitignore index c8846bcb8c..c824a920cd 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,3 @@ Thumbs.db data/ cfg/ -code/global.dm diff --git a/code/global.dm b/code/global.dm new file mode 100644 index 0000000000..a07f9d14f7 --- /dev/null +++ b/code/global.dm @@ -0,0 +1,191 @@ +//#define TESTING +#if DM_VERSION < 506 +#warn This compiler is out of date. You may experience issues with projectile animations. +#endif + +// Items that ask to be called every cycle. +var/global/obj/effect/datacore/data_core = null +var/global/list/all_areas = list() +var/global/list/machines = list() +var/global/list/processing_objects = list() +var/global/list/processing_power_items = list() +var/global/list/active_diseases = list() +var/global/list/med_hud_users = list() // List of all entities using a medical HUD. +var/global/list/sec_hud_users = list() // List of all entities using a security HUD. + + +var/global/list/global_mutations = list() // List of hidden mutation things. + +var/global/datum/universal_state/universe = new + +var/global/list/global_map = null + +// Noises made when hit while typing. +var/list/hit_appends = list("-OOF", "-ACK", "-UGH", "-HRNK", "-HURGH", "-GLORF") + + +var/diary = null +var/href_logfile = null +var/station_name = "Northern Star" +var/game_version = "Polaris" +var/changelog_hash = "" +var/game_year = (text2num(time2text(world.realtime, "YYYY")) + 544) + +var/round_progressing = 1 + + //On some maps, it does not make sense for space turf to appear when something blows up (e.g. on an asteroid colony, or planetside) + //The turf listed here is what is created after ex_act() and other tile-destroying procs are called on a turf that + //is not already in a blacklisted area. + //Set to 1 to enable it. +var/destroy_floor_override = 1 + //Below is the path of turf used in place of space tiles. +var/destroy_floor_override_path = /turf/simulated/floor/plating/asteroid + //A list of z-levels to apply the override to. This is so z-levels like tcomms work as they did before. +var/list/destroy_floor_override_z_levels = list(1) + //Some areas you may want to not turn into the override path you made above, like space or the solars. +var/list/destroy_floor_override_ignore_areas = list(/area/space,/area/solar,/area/shuttle) +var/master_mode = "extended" // "extended" +var/secret_force_mode = "secret" // if this is anything but "secret", the secret rotation will forceably choose this mode. + +var/host = null //only here until check @ code\modules\ghosttrap\trap.dm:112 is fixed + +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/reg_dna = list() + +var/mouse_respawn_time = 5 // Amount of time that must pass between a player dying as a mouse and repawning as a mouse. In minutes. + +var/list/monkeystart = list() +var/list/wizardstart = list() +var/list/newplayer_start = list() + +//Spawnpoints. +var/list/latejoin = list() +var/list/latejoin_gateway = list() +var/list/latejoin_cryo = list() +var/list/latejoin_cyborg = 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 at these. +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() +var/list/ninjastart = list() + +var/list/cardinal = list(NORTH, SOUTH, EAST, WEST) +var/list/alldirs = list(NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST) +var/list/reverse_dir = list( // reverse_dir[dir] = reverse of dir + 2, 1, 3, 8, 10, 9, 11, 4, 6, 5, 7, 12, 14, 13, 15, 32, 34, 33, 35, 40, 42, + 41, 43, 36, 38, 37, 39, 44, 46, 45, 47, 16, 18, 17, 19, 24, 26, 25, 27, 20, 22, 21, + 23, 28, 30, 29, 31, 48, 50, 49, 51, 56, 58, 57, 59, 52, 54, 53, 55, 60, 62, 61, 63 +) + +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/Debug2 = 0 +var/datum/debug/debugobj + +var/datum/moduletypes/mods = new() + +var/gravity_is_on = 1 + +var/join_motd = null + +var/datum/nanomanager/nanomanager = new() // NanoManager, the manager for Nano UIs. +var/datum/event_manager/event_manager = new() // Event Manager, the manager for events. +var/datum/subsystem/alarm/alarm_manager = new() // Alarm Manager, the manager for alarms. + +var/list/awaydestinations = list() // Away missions. A list of landmarks that the warpgate can take you to. + +// 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 = 0 +var/custom_event_msg = null + +// 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() // /tg/station database (Old database) -- see the files in the SQL folder for information on what goes where. + +// Reference list for disposal sort junctions. Filled up by sorting junction's New() +/var/list/tagger_locations = list() + +// Added for Xenoarchaeology, might be useful for other stuff. +var/global/list/alphabet_uppercase = list("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z") + + +// Used by robots and robot preferences. +var/list/robot_module_types = list( + "Standard", "Engineering", "Construction", "Surgeon", "Crisis", + "Miner", "Janitor", "Service", "Clerical", "Security", + "Research" +) + +// Some scary sounds. +var/static/list/scarySounds = list( + 'sound/weapons/thudswoosh.ogg', + 'sound/weapons/Taser.ogg', + 'sound/weapons/armbomb.ogg', + 'sound/voice/hiss1.ogg', + 'sound/voice/hiss2.ogg', + 'sound/voice/hiss3.ogg', + 'sound/voice/hiss4.ogg', + 'sound/voice/hiss5.ogg', + 'sound/voice/hiss6.ogg', + 'sound/effects/Glassbr1.ogg', + 'sound/effects/Glassbr2.ogg', + 'sound/effects/Glassbr3.ogg', + 'sound/items/Welder.ogg', + 'sound/items/Welder2.ogg', + 'sound/machines/airlock.ogg', + 'sound/effects/clownstep1.ogg', + 'sound/effects/clownstep2.ogg' +) + +// Bomb cap! +var/max_explosion_range = 14 + +// Announcer intercom, because too much stuff creates an intercom for one message then hard del()s it. +var/global/obj/item/device/radio/intercom/global_announcer = new(null) + +var/list/station_departments = list("Command", "Medical", "Engineering", "Science", "Security", "Cargo", "Civilian") \ No newline at end of file