Removes datum redeclares (#23950)

* Removes datum redeclares

* conflicts

* thanks vsc

* compile fix
This commit is contained in:
GDN
2024-03-10 17:55:29 +00:00
committed by GitHub
parent 01226e123a
commit 6b5de292dc
72 changed files with 381 additions and 350 deletions
@@ -9,3 +9,9 @@
cache_lifespan = 0 //stops player uploaded stuff from being kept in the rsc past the current session
fps = 20 // If this isnt hard-defined, anything relying on this variable before world load will cry a lot
name = "Paradise Station 13"
/*
HUB INFORMATION
*/
hub = "Exadv1.spacestation13"
hub_password = "kMZy3U5jJHSiBQjr"
name = "Space Station 13"
-2
View File
@@ -5,8 +5,6 @@
#define MUTCHK_FORCED 1
// mob/var/list/mutations
// Used in preferences.
#define DISABILITY_FLAG_NEARSIGHTED (1<<0)
#define DISABILITY_FLAG_FAT (1<<1)
+3 -2
View File
@@ -481,9 +481,10 @@
#define COLD_WATER_TEMPERATURE 283.15 // 10 degrees celsius
// Parallax
/// About 0.05 Seconds of delay
#define PARALLAX_DELAY_DEFAULT world.tick_lag
#define PARALLAX_DELAY_MED 1
#define PARALLAX_DELAY_LOW 2
#define PARALLAX_DELAY_MED 0.1 SECONDS
#define PARALLAX_DELAY_LOW 0.2 SECONDS
#define PARALLAX_LOOP_TIME 25
// Engine types
-7
View File
@@ -269,18 +269,11 @@ DEFINE_BITFIELD(smoothing_junction, list(
if(new_overlays.len)
A.add_overlay(new_overlays)
///Scans direction to find targets to smooth with.
/atom/proc/find_type_in_direction(direction)
var/turf/target_turf = get_step(src, direction)
if(!target_turf)
return NULLTURF_BORDER
var/area/target_area = get_area(target_turf)
var/area/source_area = get_area(src)
if((source_area.area_limited_icon_smoothing && !istype(target_area, source_area.area_limited_icon_smoothing)) || (target_area.area_limited_icon_smoothing && !istype(source_area, target_area.area_limited_icon_smoothing)))
return NO_ADJ_FOUND
if(isnull(canSmoothWith)) //special case in which it will only smooth with itself
if(isturf(src))
return (type == target_turf.type) ? ADJ_FOUND : NO_ADJ_FOUND
+3
View File
@@ -593,14 +593,17 @@ GLOBAL_LIST_EMPTY(do_after_once_tracker)
if(client.next_mouse_macro_warning < world.time) // Warn occasionally
SEND_SOUND(usr, sound('sound/misc/sadtrombone.ogg'))
client.next_mouse_macro_warning = world.time + 600
/mob/verb/ClickSubstitute(params as command_text)
set hidden = 1
set name = ".click"
LogMouseMacro(".click", params)
/mob/verb/DblClickSubstitute(params as command_text)
set hidden = 1
set name = ".dblclick"
LogMouseMacro(".dblclick", params)
/mob/verb/MouseSubstitute(params as command_text)
set hidden = 1
set name = ".mouse"
+5
View File
@@ -121,14 +121,19 @@
// for non-doors/apcs
/mob/living/silicon/robot/ShiftClickOn(atom/A)
A.BorgShiftClick(src)
/mob/living/silicon/robot/CtrlClickOn(atom/A)
A.BorgCtrlClick(src)
/mob/living/silicon/robot/AltClickOn(atom/A)
A.BorgAltClick(src)
/mob/living/silicon/robot/CtrlShiftClickOn(atom/A)
A.BorgCtrlShiftClick(src)
/mob/living/silicon/robot/AltShiftClickOn(atom/A)
A.BorgAltShiftClick(src)
/mob/living/silicon/robot/ShiftMiddleClickOn(atom/A)
A.BorgShiftMiddleClick(src)
+12 -6
View File
@@ -1,11 +1,17 @@
/client
/obj/screen
/**
* Assoc list with all the active maps - when a screen obj is added to
* a map, it's put in here as well.
*
* Format: list(<mapname> = list(/atom/movable/screen))
* Map name assigned to this object.
* Automatically set by /client/proc/add_obj_to_map.
*/
var/list/screen_maps = list()
var/assigned_map
/**
* Mark this object as garbage-collectible after you clean the map
* it was registered on.
*
* This could probably be changed to be a proc, for conditional removal.
* But for now, this works.
*/
var/del_on_map_removal = TRUE
/**
* A screen object, which acts as a container for turfs and other things
+2 -16
View File
@@ -1,16 +1,3 @@
/client
var/list/parallax_layers
var/list/parallax_layers_cached
var/static/list/parallax_static_layers_tail = newlist(/atom/movable/screen/parallax_pmaster, /atom/movable/screen/parallax_space_whitifier)
var/atom/movable/movingmob
var/turf/previous_turf
var/dont_animate_parallax //world.time of when we can state animate()ing parallax again
var/last_parallax_shift //world.time of last update
var/parallax_throttle = 0 //ds between updates
var/parallax_movedir = 0
var/parallax_layers_max = 4
var/parallax_animate_timer
/datum/hud/proc/create_parallax()
var/client/C = mymob.client
if(!apply_parallax_pref())
@@ -107,7 +94,6 @@
var/T = PARALLAX_LOOP_TIME / L.speed
if(T > animate_time)
animate_time = T
C.dont_animate_parallax = world.time + min(animate_time, PARALLAX_LOOP_TIME)
animatedir = C.parallax_movedir
var/matrix/newtransform
@@ -183,14 +169,14 @@
if(!SA || !SA.moving)
set_parallax_movedir(0)
else
set_parallax_movedir(SA.parallax_movedir)
set_parallax_movedir(SA.parallax_move_direction)
var/force
if(!C.previous_turf || (C.previous_turf.z != posobj.z))
C.previous_turf = posobj
force = TRUE
if(!force && world.time < C.last_parallax_shift+C.parallax_throttle)
if(!force && world.time < (C.last_parallax_shift + C.parallax_throttle))
return
//Doing it this way prevents parallax layers from "jumping" when you change Z-Levels.
+1 -1
View File
@@ -4,7 +4,7 @@
SUBSYSTEM_DEF(afk)
name = "AFK Watcher"
wait = 300
wait = 30 SECONDS
flags = SS_BACKGROUND
cpu_display = SS_CPUDISPLAY_LOW
offline_implications = "Players will no longer be marked as AFK. No immediate action is needed."
@@ -60,6 +60,9 @@
/// Last color calculated for the the chatmessage overlays. Used for caching.
var/chat_color
/*
Smoothing Vars
*/
///Icon-smoothing behavior.
var/smoothing_flags = NONE
///Smoothing variable
@@ -78,6 +81,29 @@
var/smoothing_junction = null //This starts as null for us to know when it's first set, but after that it will hold a 8-bit mask ranging from 0 to 255.
///Used for changing icon states for different base sprites.
var/base_icon_state
/// This var isn't actually used for anything, but is present so that DM's map reader doesn't forfeit on reading a JSON-serialized map. AKA DO NOT FUCK WITH
var/map_json_data
/*
Lighting Vars
*/
/// Intensity of the light. Can be negative to remove light
var/light_power = 1
// Range in tiles of the light.
var/light_range = 0
// Hexadecimal RGB string representing the colour of the light. ALWAYS REMEMBER TO MAKE SURE THIS CAN'T BE NULL/NEGATIVE
var/light_color
// Our light source. Don't fuck with this directly unless you have a good reason!
var/tmp/datum/light_source/light
// Any light sources that are "inside" of us, for example, if src here was a mob that's carrying a flashlight, that flashlight's light source would be part of this list.
var/tmp/list/light_sources
/// The alternate appearances we own. Lazylist
var/list/alternate_appearances
/// The alternate appearances we're viewing, stored here to reestablish them after Logout()s. Lazylist
var/list/viewing_alternate_appearances
/// Contains the world.time of when we start dragging something with our mouse. Used to prevent weird situations where you fail to click on something
var/drag_start = 0
/atom/New(loc, ...)
SHOULD_CALL_PARENT(TRUE)
-9
View File
@@ -65,15 +65,6 @@
remove()
return ..()
/atom
var/list/alternate_appearances //the alternate appearances we own
var/list/viewing_alternate_appearances //the alternate appearances we're viewing, stored here to reestablish them after Logout()s
//these lists are built as necessary, so atoms aren't all lugging around empty lists
var/drag_start = 0 /*whenever we start dragging atom, this variable will contain world.time() of the moment we started dragging atom, otherwile will be 0
It is required to check how long dragNdrop was to prevent abusing the feature of laggy dragNdrop click */
/*
Builds an alternate_appearance datum for the supplied args, optionally displaying it straight away
key - the key to the assoc list of key = /datum/alternate_appearances
@@ -52,6 +52,7 @@
// separate APCs, and so on)
var/there_can_be_many = FALSE
/// Static var that is incremented when the UID of a area is being assigned.
var/global/global_uid = 0
var/uid
@@ -62,30 +63,47 @@
var/list/firealarms
var/firedoors_last_closed_on = 0
var/fast_despawn = FALSE
var/can_get_auto_cryod = TRUE
var/hide_attacklogs = FALSE // For areas such as thunderdome, lavaland syndiebase, etc which generate a lot of spammy attacklogs. Reduces log priority.
/// The air alarm to use for atmos_alert consoles
var/obj/machinery/alarm/master_air_alarm
/// The list of vents in our area.
var/list/obj/machinery/atmospherics/unary/vent_pump/vents = list()
/// The list of scrubbers in our area.
var/list/obj/machinery/atmospherics/unary/vent_scrubber/scrubbers = list()
var/parallax_movedir = 0
/// Do we quickly despawn the person in this area? Pretty much just used in permabrig
var/fast_despawn = FALSE
/// Do we despawn the person in this area? Pretty much just used in security areas that aren't permabrig
var/can_get_auto_cryod = TRUE
/// For areas such as thunderdome which generate a lot of spammy attacklogs. Reduces log priority.
var/hide_attacklogs = FALSE
/// Handles the direction parallax will be moved in. References
var/parallax_move_direction = 0
/// Is a shuttle moving to our area?
var/moving = FALSE
/// "Haunted" areas such as the morgue and chapel are easier to boo. Because flavor.
var/is_haunted = FALSE
///Used to decide what kind of reverb the area makes sound have
var/sound_environment = SOUND_ENVIRONMENT_NONE
///Used to decide what the minimum time between ambience is
/// Used to decide what the minimum time between ambience is
var/min_ambience_cooldown = 30 SECONDS
///Used to decide what the maximum time between ambience is
/// Used to decide what the maximum time between ambience is
var/max_ambience_cooldown = 90 SECONDS
var/area/area_limited_icon_smoothing
/// Turrets use this list to see if individual power/lethal settings are allowed. Contains the /obj/machinery/turretid for this area
var/list/turret_controls = list()
/*
Lighting Vars
*/
luminosity = TRUE
var/dynamic_lighting = DYNAMIC_LIGHTING_ENABLED
/area/New(loc, ...)
if(!there_can_be_many) // Has to be done in New else the maploader will fuck up and find subtypes for the parent
GLOB.all_unique_areas[type] = src
..()
/area/Initialize(mapload)
if(is_station_level(z))
RegisterSignal(SSsecurity_level, COMSIG_SECURITY_LEVEL_CHANGED, PROC_REF(on_security_level_update))
+10 -10
View File
@@ -7,12 +7,12 @@
requires_power = FALSE
valid_territory = FALSE
dynamic_lighting = DYNAMIC_LIGHTING_FORCED
parallax_movedir = NORTH
parallax_move_direction = NORTH
sound_environment = SOUND_ENVIRONMENT_ROOM
/area/shuttle/arrival
name = "\improper Arrival Shuttle"
parallax_movedir = EAST
parallax_move_direction = EAST
/area/shuttle/arrival/pre_game
icon_state = "shuttle2"
@@ -42,13 +42,13 @@
name = "\improper Escape Pod Three"
icon_state = "shuttle"
nad_allowed = TRUE
parallax_movedir = EAST
parallax_move_direction = EAST
/area/shuttle/pod_4
name = "\improper Escape Pod Four"
icon_state = "shuttle"
nad_allowed = TRUE
parallax_movedir = EAST
parallax_move_direction = EAST
/area/shuttle/escape_pod1
name = "\improper Escape Pod One"
@@ -110,7 +110,7 @@
/area/shuttle/transport
icon_state = "shuttle"
name = "\improper Transport Shuttle"
parallax_movedir = EAST
parallax_move_direction = EAST
/area/shuttle/transport1
icon_state = "shuttle"
@@ -150,7 +150,7 @@
/area/shuttle/specops
name = "\improper Special Ops Shuttle"
icon_state = "shuttlered"
parallax_movedir = EAST
parallax_move_direction = EAST
/area/shuttle/specops/centcom
name = "\improper Special Ops Shuttle"
@@ -164,7 +164,7 @@
name = "\improper Syndicate Elite Shuttle"
icon_state = "shuttlered"
nad_allowed = TRUE
parallax_movedir = SOUTH
parallax_move_direction = SOUTH
/area/shuttle/syndicate_elite/mothership
name = "\improper Syndicate Elite Shuttle"
@@ -178,7 +178,7 @@
name = "\improper Syndicate SIT Shuttle"
icon_state = "shuttlered"
nad_allowed = TRUE
parallax_movedir = SOUTH
parallax_move_direction = SOUTH
/area/shuttle/assault_pod
name = "Steel Rain"
@@ -187,7 +187,7 @@
/area/shuttle/administration
name = "\improper Nanotrasen Vessel"
icon_state = "shuttlered"
parallax_movedir = EAST
parallax_move_direction = EAST
/area/shuttle/administration/centcom
name = "\improper Nanotrasen Vessel Centcom"
@@ -254,7 +254,7 @@
/area/shuttle/trade/sol
name = "Sol Freighter"
parallax_movedir = EAST
parallax_move_direction = EAST
/area/shuttle/freegolem
name = "Free Golem Ship"
+20
View File
@@ -45,6 +45,26 @@
/// UID for the atom which the current atom is orbiting
var/orbiting_uid = null
/*
Buckling Vars
*/
var/can_buckle = FALSE
/// Bed-like behaviour, forces the mob to lie down if buckle_lying != -1
var/buckle_lying = -1
/// Require people to be handcuffed before being able to buckle. eg: pipes
var/buckle_requires_restraints = 0
/// Lazylist of the mobs buckled to this object.
var/list/buckled_mobs = null
/// The Pixel_y to offset the buckled mob by
var/buckle_offset = 0
/// The max amount of mobs that can be buckled to this object. Currently set to 1 on every movable
var/max_buckled_mobs = 1
/// Can we pull the mob while they're buckled. Currently set to false on every movable
var/buckle_prevents_pull = FALSE
/// Used for icon smoothing. Won't smooth if it ain't anchored and can be unanchored. Only set to true on windows
var/can_be_unanchored = FALSE
/atom/movable/attempt_init(loc, ...)
var/turf/T = get_turf(src)
if(T && SSatoms.initialized != INITIALIZATION_INSSATOMS && GLOB.space_manager.is_zlevel_dirty(T.z))
+2 -3
View File
@@ -14,12 +14,11 @@
/datum/job/ai/equip(mob/living/carbon/human/H)
if(!H)
return 0
return FALSE
/datum/job/ai/is_position_available()
return (GLOB.empty_playable_ai_cores.len != 0)
/datum/job/cyborg
title = "Cyborg"
flag = JOB_CYBORG
@@ -36,5 +35,5 @@
/datum/job/cyborg/equip(mob/living/carbon/human/H)
if(!H)
return 0
return FALSE
return H.Robotize()
-4
View File
@@ -2,10 +2,6 @@
//Turret Control Panel//
////////////////////////
/area
// Turrets use this list to see if individual power/lethal settings are allowed
var/list/turret_controls = list()
/obj/machinery/turretid
name = "turret control panel"
desc = "Used to control a room's automated defenses."
-10
View File
@@ -1,13 +1,3 @@
/atom/movable
var/can_buckle = FALSE
var/buckle_lying = -1 //bed-like behaviour, forces mob.lying = buckle_lying if != -1
var/buckle_requires_restraints = 0 //require people to be handcuffed before being able to buckle. eg: pipes
var/list/buckled_mobs = null //list()
var/buckle_offset = 0
var/max_buckled_mobs = 1
var/buckle_prevents_pull = FALSE
var/can_be_unanchored = FALSE
//Interaction
/atom/movable/attack_hand(mob/living/user)
. = ..()
@@ -202,7 +202,6 @@
result = list(/datum/nothing = 1,
/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot = 1)
// Traps
/obj/effect/spawner/random_spawners/syndicate/trap
@@ -46,6 +46,37 @@
/// WARNING: Currently to use a density shortcircuiting this does not support dense turfs with special allow through function
var/pathing_pass_method = TURF_PATHING_PASS_DENSITY
/*
Atmos Vars
*/
/// The pressure difference between the turf and it's neighbors. Affects movables by pulling them in the path of least resistance
var/pressure_difference = 0
/// The direction movables should travel when affected by pressure. Set to the biggest difference in atmos by turf neighbors
var/pressure_direction = 0
/// The neighbors of the turf.
var/list/atmos_adjacent_turfs = list()
/// makes turfs less picky about where they transfer gas. Largely just used in the SM
var/atmos_supeconductivity = 0
/*
Lighting Vars
*/
/// Handles if the lighting should be dynamic. Generally lighting is dynamic if it's not in space
var/dynamic_lighting = TRUE
/// If you're curious why these are TMP vars, I don't know! TMP only affects savefiles so this does nothing :) - GDN
/// Is the lighting on this turf inited
var/tmp/lighting_corners_initialised = FALSE
/// List of light sources affecting this turf.
var/tmp/list/datum/light_source/affecting_lights
/// The lighting Object affecting us
var/tmp/atom/movable/lighting_object/lighting_object
/// A list of our lighting corners.
var/tmp/list/datum/lighting_corner/corners
/// Not to be confused with opacity, this will be TRUE if there's any opaque atom on the tile.
var/tmp/has_opaque_atom = FALSE
/turf/Initialize(mapload)
SHOULD_CALL_PARENT(FALSE)
if(initialized)
+25 -1
View File
@@ -1,12 +1,36 @@
#define WATER_WEAKEN_TIME 4 SECONDS //Weaken time for slipping on water
/// Knockdown time for slipping on water
#define WATER_WEAKEN_TIME 4 SECONDS
/turf/simulated
name = "station"
/// Used to check if the turf is wet. Really should just be an object on the turf
var/wet = 0
/// Used to store the wet turf overlay. Really should just be an object on the turf
var/image/wet_overlay = null
/*
Atmos Vars
*/
oxygen = MOLES_O2STANDARD
nitrogen = MOLES_N2STANDARD
var/to_be_destroyed = 0 //Used for fire, if a melting temperature was reached, it will be destroyed
var/max_fire_temperature_sustained = 0 //The max temperature of the fire which it was subjected to
/// The excited group we're linked to. Used for zone atmos calculations
var/datum/excited_group/excited_group
/// Is this turf active?
var/excited = 0
/// Was this turf recently activated? Probably not needed anymore
var/recently_active = 0
/// The air mixture that this turf controls.
var/datum/gas_mixture/air
var/archived_cycle = 0
var/current_cycle = 0
/// The active hotspot on this turf. The fact this is done through a literal object is painful
var/obj/effect/hotspot/active_hotspot
/// Air will revert to its initial mix over time. It's probably a good idea to just make it so that these turfs don't process atmos as this doesn't really do anything
var/planetary_atmos = FALSE
/// The temp we were when we got archived
var/temperature_archived
// Current gas overlay. Can be set to plasma or sleeping_gas
var/atmos_overlay_type = null
/turf/simulated/proc/break_tile()
return
-13
View File
@@ -1,13 +0,0 @@
/world
hub = "Exadv1.spacestation13"
hub_password = "kMZy3U5jJHSiBQjr"
name = "Space Station 13"
/* This is for any host that would like their server to appear on the main SS13 hub.
To use it, simply replace the password above, with the password found below, and it should work.
If not, let us know on the main tgstation IRC channel of irc.rizon.net #tgstation13 we can help you there.
hub = "Exadv1.spacestation13"
hub_password = "kMZy3U5jJHSiBQjr"
name = "Space Station 13"
*/
@@ -1,13 +1,3 @@
/client
/// List of all asset filenames sent to this client by the asset cache, along with their assoicated md5s
var/list/sent_assets = list()
/// List of all completed blocking send jobs awaiting acknowledgement by send_asset
var/list/completed_asset_jobs = list()
/// Last asset send job id
var/last_asset_job = 0
var/last_completed_asset_job = 0
/// Process asset cache client topic calls for "asset_cache_confirm_arrival=[INT]"
/client/proc/asset_cache_confirm_arrival(job_id)
var/asset_cache_job = round(text2num(job_id))
@@ -1,11 +1,3 @@
/turf
var/pressure_difference = 0
var/pressure_direction = 0
var/list/atmos_adjacent_turfs = list()
var/atmos_supeconductivity = 0
/turf/assume_air(datum/gas_mixture/giver) //use this for machines to adjust air
qdel(giver)
return 0
@@ -42,23 +34,6 @@
return GM
/turf/simulated
var/datum/excited_group/excited_group
var/excited = 0
var/recently_active = 0
var/datum/gas_mixture/air
var/archived_cycle = 0
var/current_cycle = 0
var/icy = 0
var/icyoverlay
var/obj/effect/hotspot/active_hotspot
var/planetary_atmos = FALSE //air will revert to its initial mix over time
var/temperature_archived //USED ONLY FOR SOLIDS
var/atmos_overlay_type = null //current active overlay
/turf/simulated/Initialize(mapload)
. = ..()
if(!blocks_air)
@@ -138,11 +113,6 @@
temperature -= heat/heat_capacity
sharer.temperature += heat/sharer.heat_capacity
/turf/proc/process_cell(fire_count)
SSair.remove_from_active(src)
@@ -336,8 +306,6 @@
if(M.last_high_pressure_movement_air_cycle < SSair.times_fired)
M.experience_pressure_difference(pressure_difference, pressure_direction)
/atom/movable/proc/experience_pressure_difference(pressure_difference, direction, pressure_resistance_prob_delta = 0)
var/const/PROBABILITY_OFFSET = 25
var/const/PROBABILITY_BASE_PRECENT = 75
@@ -57,12 +57,6 @@
#define MAX_TEMPERATURE 363.15 // 90C
#define MIN_TEMPERATURE 233.15 // -40C
//all air alarms in area are connected via magic
/area
var/obj/machinery/alarm/master_air_alarm
var/list/obj/machinery/atmospherics/unary/vent_pump/vents = list()
var/list/obj/machinery/atmospherics/unary/vent_scrubber/scrubbers = list()
/obj/machinery/alarm
name = "air alarm"
desc = "A wall-mounted device used to control atmospheric equipment. It looks a little cheaply made..."
+57 -5
View File
@@ -1,7 +1,5 @@
/client
//////////////////////
//BLACK MAGIC THINGS//
//////////////////////
/// Client is casted to /datum so that we're able to use datum variables, search for clients through datums, and not need to duplicate code for GCing
parent_type = /datum
////////////////
//ADMIN THINGS//
@@ -41,7 +39,7 @@
//SECURITY//
////////////
///Used for limiting the rate of topic sends by the client to avoid abuse
/// Used for limiting the rate of topic sends by the client to avoid abuse
var/list/topiclimiter
// comment out the line below when debugging locally to enable the options & messages menu
@@ -137,12 +135,66 @@
/// The client's currently moused over datum, limited to movable and stored as UID
var/atom/movable/moused_over
/// A lazy list of atoms we've examined in the last RECENT_EXAMINE_MAX_WINDOW (default 2) seconds, so that we will call [/atom/proc/examine_more] instead of [/atom/proc/examine] on them when examining
/// A lazy list of atoms we've examined in the last RECENT_EXAMINE_MAX_WINDOW (default 2) seconds, so that we will call [/atom/proc/examine_more] instead of [/atom/proc/examine] on them when examining
var/list/recent_examines
/// When to next alert admins that mouse macro use was attempted
/// Used to throw an admin warning if someone used a mouse macro. Also stores the world time so we can send funny noises to them
var/next_mouse_macro_warning
/*
DEPRECIATED VIEWMODS
*/
/// Was used to handle view modifications. Now only used for a mecha module. Please just edit the string in the future
var/list/ViewMods = list()
/// Stores the viewmod we set using this system. Only used for a mecha module
var/ViewModsActive = FALSE
/// Stores the icon size we use for skins. As the server has control freak enabled, this is always static
var/ViewPreferedIconSize = 0
/// Basically a local variable on a client datum. Used when setting macros and nowhere else
var/list/macro_sets
/// List of all asset filenames sent to this client by the asset cache, along with their assoicated md5s
var/list/sent_assets = list()
/// List of all completed blocking send jobs awaiting acknowledgement by send_asset
var/list/completed_asset_jobs = list()
/*
ASSET SENDING
*/
/// The ID of the last asset job
var/last_asset_job = 0
/// The ID of the last asset job that was properly finished
var/last_completed_asset_job = 0
/*
PARALAX RELATED VARIABLES
*/
/// List of parallax layers a client is viewing. Accessed when paralax is updated
var/list/parallax_layers
/// A cached list of available parallax layers. This may potentially be changeable to a static variable. Updated upon changing parallax prefs
var/list/parallax_layers_cached
/// Added to parallax layers when parallax settings are changed
var/static/list/parallax_static_layers_tail = newlist(/atom/movable/screen/parallax_pmaster, /atom/movable/screen/parallax_space_whitifier)
/// Used with parallax to update the parallax offsets when the subsystem fires. Compared to the clients Eye variable
var/atom/movable/movingmob
/// Used with parallax to grab the offset needed. Uses the X and Y coords of the turf stored here
var/turf/previous_turf
/// Stored world.tim of the last parallax update. Used to make sure parallax isn't updated too often
var/last_parallax_shift
/// Deciseconds of added delay to parallax by client preferences
var/parallax_throttle = 0
/// The direction parallax will be moved it. References parallax_move_direction on areas
var/parallax_movedir = 0
/// The amount of parallax layers that will exist on your screen. Affected by the parallax preference
var/parallax_layers_max = 4
/// Handles how parallax loops in situations like shuttles leaving. Stores the timer that handles that
var/parallax_animate_timer
/// Used with the camera console to clear out the screen objects it adds to the client when the console is deleted
var/list/screen_maps = list()
/// Assigned say modal of the client
var/datum/tgui_say/tgui_say
-6
View File
@@ -7,12 +7,6 @@
/* Defines */
#define CUSTOM_VIEWRANGES list(1, 2, 3, 4, 5, 6, "RESET")
/* Viewmods */
/client
var/list/ViewMods = list()
var/ViewModsActive = FALSE
var/ViewPreferedIconSize = 0
/client/proc/AddViewMod(id, size)
var/datum/viewmod/V = new /datum/viewmod(id, size)
ViewMods[V.id] = V
-3
View File
@@ -10,9 +10,6 @@
/client/key_loop()
mob.input_focus?.key_loop(src)
/client
var/list/macro_sets
/// This proc sets the built in BYOND macros for keypresses to pass inputs on to the rebindable input system or the legacy system
/// If you plan on ripping out the legacy system, see the set_macros() proc at the following commit: https://github.com/S34NW/Paradise/commit/83a0a0b0c633807cc5a88a630f623cec24e16027
/client/proc/set_macros()
-4
View File
@@ -1,7 +1,3 @@
/area
luminosity = TRUE
var/dynamic_lighting = DYNAMIC_LIGHTING_ENABLED
/area/proc/set_dynamic_lighting(new_dynamic_lighting = DYNAMIC_LIGHTING_ENABLED)
if(new_dynamic_lighting == dynamic_lighting)
return FALSE
-9
View File
@@ -1,12 +1,3 @@
/atom
var/light_power = 1 // Intensity of the light.
var/light_range = 0 // Range in tiles of the light.
var/light_color // Hexadecimal RGB string representing the colour of the light.
var/tmp/datum/light_source/light // Our light source. Don't fuck with this directly unless you have a good reason!
var/tmp/list/light_sources // Any light sources that are "inside" of us, for example, if src here was a mob that's carrying a flashlight, that flashlight's light source would be part of this list.
// The proc you should always use to set the light of this atom.
// Nonesensical value for l_color default, so we can detect if it gets set to null.
#define NONSENSICAL_VALUE -99999
-11
View File
@@ -1,14 +1,3 @@
/turf
var/dynamic_lighting = TRUE
luminosity = 1
var/tmp/lighting_corners_initialised = FALSE
var/tmp/list/datum/light_source/affecting_lights // List of light sources affecting this turf.
var/tmp/atom/movable/lighting_object/lighting_object // Our lighting object.
var/tmp/list/datum/lighting_corner/corners
var/tmp/has_opaque_atom = FALSE // Not to be confused with opacity, this will be TRUE if there's any opaque atom on the tile.
// Causes any affecting light sources to be queued for a visibility update, for example a door got opened.
/turf/proc/reconsider_lights()
var/datum/light_source/L
+10
View File
@@ -1,3 +1,7 @@
/mob/dead
move_resist = INFINITY
flags_2 = IMMUNE_TO_SHUTTLECRUSH_2
/mob/dead/Login()
. = ..()
var/turf/T = get_turf(src)
@@ -31,3 +35,9 @@
registered_z = new_z
else
registered_z = null
/mob/dead/dust() //ghosts can't be vaporised.
return
/mob/dead/gib() //ghosts can't be gibbed.
return
-9
View File
@@ -1,9 +0,0 @@
/mob/dead/dust() //ghosts can't be vaporised.
return
/mob/dead/gib() //ghosts can't be gibbed.
return
/mob/dead
move_resist = INFINITY
flags_2 = IMMUNE_TO_SHUTTLECRUSH_2
@@ -0,0 +1,57 @@
/mob/living/carbon
gender = MALE
pressure_resistance = 15
var/list/stomach_contents
var/last_stomach_attack
var/list/processing_patches
var/list/internal_organs = list()
var/list/internal_organs_slot = list() //Same as above, but stores "slot ID" - "organ" pairs for easy access.
/// An associated list of strings that associate it with the organ datum, e.g. [ORGAN_DATUM_HEART] = /datum/organ/heart
var/list/internal_organ_datums = list()
/// The amount of life ticks that have processed on this mob.
var/life_tick = 0
/*
Clothing Vars
*/
/// Whether or not the mob is handcuffed, restraints/handcuffs/ required for var/cuffed_state
var/obj/item/restraints/handcuffs/handcuffed = null
/// Same as handcuffs but for legs. Bear traps use this.
var/obj/item/restraints/legcuffs/legcuffed = null
/// The object stored on the head of the mob. Strangly not on the Human level
var/obj/item/head = null
/// The object stored on the exosuit slot of the mob. Strangly not on the Human level
var/obj/item/clothing/suit/wear_suit = null
/// Active emote/pose. Similar to flavor text
var/pose = null
/// Current pulse of this mob. Updated by handle_pulse on life
var/pulse = PULSE_NORM
/// Tracks how wet the mob is. Only used for examining the mob
var/wetlevel = 0
/// Used to track how much CO2 is in our system. Too much CO2 means you get stunned and die
var/co2overloadtime = null
/*
Dream Vars
*/
/// How many dream messages we have left to send
var/dreaming = 0
/// How many nightmare messages we have left to send
var/nightmare = 0
blood_volume = BLOOD_VOLUME_NORMAL
/*
* Pain variables
*/
/// Stores the last pain message we got. used to prevent chatspam from pain
var/last_pain_message = ""
/// Stores the last time we sent a pain message. used to prevent chatspam from pain
var/next_pain_time = 0
@@ -1,4 +1,3 @@
/mob/living/carbon/alien/Logout()
..()
RemoveInfectionImages()
return
@@ -1,35 +0,0 @@
/mob/living/carbon
gender = MALE
pressure_resistance = 15
var/list/stomach_contents
var/last_stomach_attack
var/list/processing_patches
var/list/internal_organs = list()
var/list/internal_organs_slot = list() //Same as above, but stores "slot ID" - "organ" pairs for easy access.
/// An associated list of strings that associate it with the organ datum, e.g. [ORGAN_DATUM_HEART] = /datum/organ/heart
var/list/internal_organ_datums = list()
var/life_tick = 0 // The amount of life ticks that have processed on this mob.
/// Whether or not the mob is handcuffed, restraints/handcuffs/ required for var/cuffed_state
var/obj/item/restraints/handcuffs/handcuffed = null
/// Same as handcuffs but for legs. Bear traps use this.
var/obj/item/restraints/legcuffs/legcuffed = null
var/obj/item/head = null
var/obj/item/clothing/suit/wear_suit = null //TODO: necessary? Are they even used? ~Carn
//Active emote/pose
var/pose = null
var/pulse = PULSE_NORM //current pulse level
var/wetlevel = 0 //how wet the mob is
var/co2overloadtime = null
var/dreaming = 0 //How many dream images we have left to send
var/nightmare = 0
blood_volume = BLOOD_VOLUME_NORMAL
@@ -1,5 +1,12 @@
/mob/living/carbon/human
name = "unknown"
real_name = "unknown"
voice_name = "unknown"
icon = 'icons/mob/human.dmi'
icon_state = "body_m_s"
appearance_flags = KEEP_TOGETHER|TILE_BOUND|PIXEL_SCALE|LONG_GLIDE
deathgasp_on_death = TRUE
throw_range = 4
hud_possible = list(
HEALTH_HUD, STATUS_HUD, SPECIALROLE_HUD, // from /mob/living
ID_HUD, WANTED_HUD, IMPMINDSHIELD_HUD, IMPCHEM_HUD, IMPTRACK_HUD, GLAND_HUD,
@@ -87,8 +94,10 @@
var/list/splinted_limbs = list() //limbs we know are splinted
var/original_eye_color = "#000000"
var/list/overlays_standing[TOTAL_LAYERS]
/// Stores what the body last looked like. Prevents updating the body when we don't need to
var/previous_damage_appearance
var/list/bodyparts = list()
/// map organ names to organs
var/list/bodyparts_by_name = list()
var/temperature_resistance = T0C+75
@@ -1,13 +1,3 @@
/mob/living/carbon/human
name = "unknown"
real_name = "unknown"
voice_name = "unknown"
icon = 'icons/mob/human.dmi'
icon_state = "body_m_s"
appearance_flags = KEEP_TOGETHER|TILE_BOUND|PIXEL_SCALE|LONG_GLIDE
deathgasp_on_death = TRUE
throw_range = 4
/mob/living/carbon/human/Initialize(mapload, datum/species/new_species = /datum/species/human)
icon = null // This is now handled by overlays -- we just keep an icon for the sake of the map editor.
create_dna()
@@ -103,12 +103,6 @@ If you have any questions/constructive-comments/bugs-to-report/or have a massivl
Please contact me on #coderbus IRC. ~Carn x
*/
/mob/living/carbon/human
var/list/overlays_standing[TOTAL_LAYERS]
var/previous_damage_appearance // store what the body last looked like, so we only have to update it if something changed
var/icon/skeleton
var/list/cached_standing_overlays = list() // List of everything currently in a human's actual overlays
/mob/living/carbon/human/proc/apply_overlay(cache_index)
. = overlays_standing[cache_index]
if(.)
@@ -127,16 +121,18 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
//constructs damage icon for each organ from mask * damage field and saves it in our overlays_ lists
/mob/living/carbon/human/UpdateDamageIcon()
// first check whether something actually changed about damage appearance
var/damage_appearance = ""
var/list/damage_appearance = list()
for(var/obj/item/organ/external/O in bodyparts)
damage_appearance += O.damage_state
if(damage_appearance == previous_damage_appearance)
var/list_string_damage_appearance = damage_appearance.Join("")
if(damage_appearance == list_string_damage_appearance)
// nothing to do here
return
previous_damage_appearance = damage_appearance
previous_damage_appearance = list_string_damage_appearance
remove_overlay(H_DAMAGE_LAYER)
var/mutable_appearance/damage_overlay = mutable_appearance(dna.species.damage_overlays, "00", layer = -H_DAMAGE_LAYER)
@@ -508,13 +504,6 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
/mob/living/carbon/human/proc/update_mutantrace()
//BS12 EDIT
var/skel = HAS_TRAIT(src, TRAIT_SKELETONIZED)
if(skel)
skeleton = 'icons/mob/human_races/r_skeleton.dmi'
else
skeleton = null
update_hair()
update_fhair()
@@ -96,3 +96,11 @@
var/datum/language/default_language
var/datum/middleClickOverride/middleClickOverride = null
/*
Taste Vars
*/
/// Stores a var of the last world time we tasted something. used so we don't spam people messages while they eat
var/last_taste_time
/// Stores a var of the last tast message we got. used so we don't spam people messages while they eat
var/last_taste_text
@@ -72,6 +72,13 @@
var/sec_hud = DATA_HUD_SECURITY_ADVANCED //Determines the sec hud to use
var/d_hud = DATA_HUD_DIAGNOSTIC_BASIC //There is only one kind of diag hud
var/jani_hud = DATA_HUD_JANITOR
var/datum/ui_module/atmos_control/atmos_control
var/datum/ui_module/crew_monitor/crew_monitor
var/datum/ui_module/law_manager/law_manager
var/datum/ui_module/power_monitor/digital/power_monitor
var/list/silicon_subsystems = list(/mob/living/silicon/proc/subsystem_law_manager)
var/datum/ai_laws/laws = null
var/list/additional_law_channels = list("State" = "")
/mob/living/silicon/New()
GLOB.silicon_mob_list |= src
@@ -126,7 +126,13 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
//Used with the hotkeys on 2-5 to store locations.
var/list/stored_locations = list()
var/cracked_camera = FALSE // will be true if malf AI break its camera
/// Set to true if the AI cracks it's camera by using the malf ability
var/cracked_camera = FALSE
silicon_subsystems = list(
/mob/living/silicon/proc/subsystem_atmos_control,
/mob/living/silicon/proc/subsystem_crew_monitor,
/mob/living/silicon/proc/subsystem_law_manager,
/mob/living/silicon/proc/subsystem_power_monitor)
/mob/living/silicon/ai/proc/add_ai_verbs()
add_verb(src, GLOB.ai_verbs_default)
@@ -117,6 +117,11 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
/// Integer used to determine self-mailing location, used only by drones and saboteur borgs
var/mail_destination = 1
var/datum/ui_module/robot_self_diagnosis/self_diagnosis
var/datum/ui_module/destination_tagger/mail_setter
silicon_subsystems = list(
/mob/living/silicon/robot/proc/self_diagnosis,
/mob/living/silicon/proc/subsystem_law_manager)
/mob/living/silicon/robot/get_cell()
return cell
@@ -50,7 +50,13 @@
)
holder_type = /obj/item/holder/drone
var/datum/pathfinding_mover/pathfinding
silicon_subsystems = list(
/mob/living/silicon/robot/proc/set_mail_tag,
/mob/living/silicon/robot/proc/self_diagnosis,
/mob/living/silicon/proc/subsystem_law_manager,
/mob/living/silicon/proc/subsystem_power_monitor)
/mob/living/silicon/robot/drone/New()
@@ -65,6 +65,10 @@
brute_mod = 0.8
burn_mod = 0.8
var/obj/item/borg_chameleon/cham_proj = null
silicon_subsystems = list(
/mob/living/silicon/robot/proc/set_mail_tag,
/mob/living/silicon/robot/proc/self_diagnosis,
/mob/living/silicon/proc/subsystem_law_manager)
playstyle_string = "<span class='userdanger'>You are a Syndicate saboteur cyborg!</span><br>\
<b>You are equipped with robust engineering tools to aid you in your mission: help the operatives secure the nuclear authentication disk. \
Your built-in mail tagger will allow you to stealthily traverse the disposal network across the station. \
@@ -1,7 +1,3 @@
/mob/living/silicon
var/datum/ai_laws/laws = null
var/list/additional_law_channels = list("State" = "")
/mob/living/silicon/proc/laws_sanity_check()
if(!src.laws)
laws = new BASE_LAW_TYPE
@@ -1,49 +1,3 @@
/mob/living/silicon
var/register_alarms = TRUE
var/datum/ui_module/atmos_control/atmos_control
var/datum/ui_module/crew_monitor/crew_monitor
var/datum/ui_module/law_manager/law_manager
var/datum/ui_module/power_monitor/digital/power_monitor
/mob/living/silicon
var/list/silicon_subsystems = list(
/mob/living/silicon/proc/subsystem_law_manager
)
/mob/living/silicon/ai
silicon_subsystems = list(
/mob/living/silicon/proc/subsystem_atmos_control,
/mob/living/silicon/proc/subsystem_crew_monitor,
/mob/living/silicon/proc/subsystem_law_manager,
/mob/living/silicon/proc/subsystem_power_monitor
)
/mob/living/silicon/robot
var/datum/ui_module/robot_self_diagnosis/self_diagnosis
var/datum/ui_module/destination_tagger/mail_setter
silicon_subsystems = list(
/mob/living/silicon/robot/proc/self_diagnosis,
/mob/living/silicon/proc/subsystem_law_manager
)
/mob/living/silicon/robot/drone
silicon_subsystems = list(
/mob/living/silicon/robot/proc/set_mail_tag,
/mob/living/silicon/robot/proc/self_diagnosis,
/mob/living/silicon/proc/subsystem_law_manager,
/mob/living/silicon/proc/subsystem_power_monitor
)
/mob/living/silicon/robot/syndicate
register_alarms = 0
/mob/living/silicon/robot/syndicate/saboteur
silicon_subsystems = list(
/mob/living/silicon/robot/proc/set_mail_tag,
/mob/living/silicon/robot/proc/self_diagnosis,
/mob/living/silicon/proc/subsystem_law_manager
)
/mob/living/silicon/proc/init_subsystems()
atmos_control = new(src)
crew_monitor = new(src)
-4
View File
@@ -1,7 +1,3 @@
/mob/living
var/last_taste_time
var/last_taste_text
/mob/living/proc/get_taste_sensitivity()
return TASTE_SENSITIVITY_NORMAL
-5
View File
@@ -21,11 +21,6 @@
/datum/proc/deserialize(list/data)
return
/atom
// This var isn't actually used for anything, but is present so that
// DM's map reader doesn't forfeit on reading a JSON-serialized map
var/map_json_data
// This is so specific atoms can override these, and ignore certain ones
/atom/proc/vars_to_save()
return list("color","dir","icon","icon_state","name","pixel_x","pixel_y")
-4
View File
@@ -1,7 +1,3 @@
/mob/living/carbon
var/last_pain_message = ""
var/next_pain_time = 0
/**
* Whether or not a mob can feel pain.
*
+31 -33
View File
@@ -14,10 +14,9 @@
#include "_maps\__MAP_DEFINES.dm"
#include "_maps\base_map.dm"
#include "_maps\map_datums.dm"
#include "code\!world_definition.dm"
#include "code\__byond_version_compat.dm"
#include "code\_compile_options.dm"
#include "code\hub.dm"
#include "code\world_definition.dm"
#include "code\__DEFINES\_click.dm"
#include "code\__DEFINES\_globals.dm"
#include "code\__DEFINES\_init.dm"
@@ -327,6 +326,7 @@
#include "code\controllers\subsystem\processing\transittube.dm"
#include "code\controllers\subsystem\tickets\mentor_tickets.dm"
#include "code\controllers\subsystem\tickets\tickets.dm"
#include "code\datums\!datum.dm"
#include "code\datums\action.dm"
#include "code\datums\ai_law_sets.dm"
#include "code\datums\ai_laws_datums.dm"
@@ -341,7 +341,6 @@
#include "code\datums\click_intercept.dm"
#include "code\datums\custom_user_item.dm"
#include "code\datums\datacore.dm"
#include "code\datums\datum.dm"
#include "code\datums\datumvars.dm"
#include "code\datums\dog_fashion.dm"
#include "code\datums\emote.dm"
@@ -625,15 +624,15 @@
#include "code\defines\procs\announcer_datum.dm"
#include "code\defines\procs\radio_procs.dm"
#include "code\defines\procs\records.dm"
#include "code\game\!atoms.dm"
#include "code\game\alternate_appearance.dm"
#include "code\game\atoms.dm"
#include "code\game\atoms_movable.dm"
#include "code\game\data_huds.dm"
#include "code\game\shuttle_engines.dm"
#include "code\game\sound.dm"
#include "code\game\world.dm"
#include "code\game\area\!areas.dm"
#include "code\game\area\ai_monitored.dm"
#include "code\game\area\areas.dm"
#include "code\game\area\asteroid_areas.dm"
#include "code\game\area\away_content_areas.dm"
#include "code\game\area\centcom_areas.dm"
@@ -907,15 +906,15 @@
#include "code\game\mecha\medical\odysseus.dm"
#include "code\game\mecha\working\ripley.dm"
#include "code\game\mecha\working\working.dm"
#include "code\game\objects\!items.dm"
#include "code\game\objects\!objs.dm"
#include "code\game\objects\!structures.dm"
#include "code\game\objects\buckling.dm"
#include "code\game\objects\cleaning.dm"
#include "code\game\objects\empulse.dm"
#include "code\game\objects\explosion.dm"
#include "code\game\objects\items.dm"
#include "code\game\objects\mail.dm"
#include "code\game\objects\obj_defense.dm"
#include "code\game\objects\objs.dm"
#include "code\game\objects\structures.dm"
#include "code\game\objects\effects\alien_acid.dm"
#include "code\game\objects\effects\anomalies.dm"
#include "code\game\objects\effects\bump_teleporter.dm"
@@ -1294,8 +1293,8 @@
#include "code\game\objects\structures\transit_tubes\station.dm"
#include "code\game\objects\structures\transit_tubes\transit_tube.dm"
#include "code\game\objects\structures\transit_tubes\transit_tube_pod.dm"
#include "code\game\turfs\!turf.dm"
#include "code\game\turfs\simulated.dm"
#include "code\game\turfs\turf.dm"
#include "code\game\turfs\simulated\floor.dm"
#include "code\game\turfs\simulated\minerals.dm"
#include "code\game\turfs\simulated\river.dm"
@@ -2037,6 +2036,7 @@
#include "code\modules\mining\lavaland\loot\hierophant_loot.dm"
#include "code\modules\mining\lavaland\loot\legion_loot.dm"
#include "code\modules\mining\lavaland\loot\tendril_loot.dm"
#include "code\modules\mob\!mob_vars.dm"
#include "code\modules\mob\hear_say.dm"
#include "code\modules\mob\inventory_procs.dm"
#include "code\modules\mob\language.dm"
@@ -2054,13 +2054,11 @@
#include "code\modules\mob\mob_transformation_simple.dm"
#include "code\modules\mob\mob_update_icons_base.dm"
#include "code\modules\mob\mob_update_status_base.dm"
#include "code\modules\mob\mob_vars.dm"
#include "code\modules\mob\transform_procs.dm"
#include "code\modules\mob\typing_indicator.dm"
#include "code\modules\mob\camera\camera_mob.dm"
#include "code\modules\mob\dead\dead.dm"
#include "code\modules\mob\dead\dead_death.dm"
#include "code\modules\mob\dead\observer\observer_base.dm"
#include "code\modules\mob\dead\observer\!observer_base.dm"
#include "code\modules\mob\dead\observer\observer_login.dm"
#include "code\modules\mob\dead\observer\observer_logout.dm"
#include "code\modules\mob\dead\observer\observer_say.dm"
@@ -2083,23 +2081,23 @@
#include "code\modules\mob\living\login.dm"
#include "code\modules\mob\living\stat_states.dm"
#include "code\modules\mob\living\taste.dm"
#include "code\modules\mob\living\brain\!living_brain.dm"
#include "code\modules\mob\living\brain\brain_death.dm"
#include "code\modules\mob\living\brain\brain_emote.dm"
#include "code\modules\mob\living\brain\brain_life.dm"
#include "code\modules\mob\living\brain\brain_login.dm"
#include "code\modules\mob\living\brain\brain_say.dm"
#include "code\modules\mob\living\brain\brain_update_status.dm"
#include "code\modules\mob\living\brain\living_brain.dm"
#include "code\modules\mob\living\brain\MMI.dm"
#include "code\modules\mob\living\brain\MMI_radio.dm"
#include "code\modules\mob\living\brain\robotic_brain.dm"
#include "code\modules\mob\living\carbon\!carbon_defines.dm"
#include "code\modules\mob\living\carbon\_defines.dm"
#include "code\modules\mob\living\carbon\carbon.dm"
#include "code\modules\mob\living\carbon\carbon_death.dm"
#include "code\modules\mob\living\carbon\carbon_defense.dm"
#include "code\modules\mob\living\carbon\carbon_defines.dm"
#include "code\modules\mob\living\carbon\carbon_emote.dm"
#include "code\modules\mob\living\carbon\carbon_life.dm"
#include "code\modules\mob\living\carbon\carbon_procs.dm"
#include "code\modules\mob\living\carbon\carbon_status_procs.dm"
#include "code\modules\mob\living\carbon\carbon_update_icons.dm"
#include "code\modules\mob\living\carbon\carbon_update_status.dm"
@@ -2113,8 +2111,8 @@
#include "code\modules\mob\living\carbon\alien\alien_life.dm"
#include "code\modules\mob\living\carbon\alien\alien_login.dm"
#include "code\modules\mob\living\carbon\alien\alien_logout.dm"
#include "code\modules\mob\living\carbon\alien\humanoid\!humanoid.dm"
#include "code\modules\mob\living\carbon\alien\humanoid\empress.dm"
#include "code\modules\mob\living\carbon\alien\humanoid\humanoid.dm"
#include "code\modules\mob\living\carbon\alien\humanoid\humanoid_defense.dm"
#include "code\modules\mob\living\carbon\alien\humanoid\humanoid_emote.dm"
#include "code\modules\mob\living\carbon\alien\humanoid\humanoid_inventory.dm"
@@ -2124,20 +2122,20 @@
#include "code\modules\mob\living\carbon\alien\humanoid\caste\alien_drone.dm"
#include "code\modules\mob\living\carbon\alien\humanoid\caste\hunter.dm"
#include "code\modules\mob\living\carbon\alien\humanoid\caste\sentinel.dm"
#include "code\modules\mob\living\carbon\alien\larva\larva.dm"
#include "code\modules\mob\living\carbon\alien\larva\!larva.dm"
#include "code\modules\mob\living\carbon\alien\larva\larva_defense.dm"
#include "code\modules\mob\living\carbon\alien\larva\larva_inventory.dm"
#include "code\modules\mob\living\carbon\alien\larva\larva_life.dm"
#include "code\modules\mob\living\carbon\alien\larva\larva_update_icons.dm"
#include "code\modules\mob\living\carbon\alien\special\alien_embryo.dm"
#include "code\modules\mob\living\carbon\alien\special\facehugger.dm"
#include "code\modules\mob\living\carbon\human\!human_defines.dm"
#include "code\modules\mob\living\carbon\human\appearance.dm"
#include "code\modules\mob\living\carbon\human\body_accessories.dm"
#include "code\modules\mob\living\carbon\human\human_damage.dm"
#include "code\modules\mob\living\carbon\human\human_deadchat_control.dm"
#include "code\modules\mob\living\carbon\human\human_death.dm"
#include "code\modules\mob\living\carbon\human\human_defense.dm"
#include "code\modules\mob\living\carbon\human\human_defines.dm"
#include "code\modules\mob\living\carbon\human\human_emote.dm"
#include "code\modules\mob\living\carbon\human\human_examine.dm"
#include "code\modules\mob\living\carbon\human\human_inventory.dm"
@@ -2172,14 +2170,15 @@
#include "code\modules\mob\living\carbon\human\species\unathi.dm"
#include "code\modules\mob\living\carbon\human\species\vox.dm"
#include "code\modules\mob\living\carbon\human\species\vulpkanin.dm"
#include "code\modules\mob\living\silicon\!silicon_mob.dm"
#include "code\modules\mob\living\silicon\silicon_death.dm"
#include "code\modules\mob\living\silicon\silicon_defense.dm"
#include "code\modules\mob\living\silicon\silicon_emote.dm"
#include "code\modules\mob\living\silicon\silicon_laws.dm"
#include "code\modules\mob\living\silicon\silicon_login.dm"
#include "code\modules\mob\living\silicon\silicon_mob.dm"
#include "code\modules\mob\living\silicon\silicon_say.dm"
#include "code\modules\mob\living\silicon\silicon_subsystems.dm"
#include "code\modules\mob\living\silicon\ai\!ai_mob.dm"
#include "code\modules\mob\living\silicon\ai\ai_death.dm"
#include "code\modules\mob\living\silicon\ai\ai_defense.dm"
#include "code\modules\mob\living\silicon\ai\ai_examine.dm"
@@ -2187,7 +2186,6 @@
#include "code\modules\mob\living\silicon\ai\ai_life.dm"
#include "code\modules\mob\living\silicon\ai\ai_login.dm"
#include "code\modules\mob\living\silicon\ai\ai_logout.dm"
#include "code\modules\mob\living\silicon\ai\ai_mob.dm"
#include "code\modules\mob\living\silicon\ai\ai_say.dm"
#include "code\modules\mob\living\silicon\ai\ai_update_status.dm"
#include "code\modules\mob\living\silicon\ai\latejoin.dm"
@@ -2197,7 +2195,7 @@
#include "code\modules\mob\living\silicon\decoy\decoy.dm"
#include "code\modules\mob\living\silicon\decoy\decoy_death.dm"
#include "code\modules\mob\living\silicon\decoy\decoy_life.dm"
#include "code\modules\mob\living\silicon\pai\pai.dm"
#include "code\modules\mob\living\silicon\pai\!pai.dm"
#include "code\modules\mob\living\silicon\pai\pai_death.dm"
#include "code\modules\mob\living\silicon\pai\pai_life.dm"
#include "code\modules\mob\living\silicon\pai\pai_login.dm"
@@ -2209,6 +2207,7 @@
#include "code\modules\mob\living\silicon\pai\software\pai_apps.dm"
#include "code\modules\mob\living\silicon\pai\software\pai_software_base.dm"
#include "code\modules\mob\living\silicon\pai\software\pai_toggles.dm"
#include "code\modules\mob\living\silicon\robot\!robot_mob.dm"
#include "code\modules\mob\living\silicon\robot\component.dm"
#include "code\modules\mob\living\silicon\robot\misc_robot_items.dm"
#include "code\modules\mob\living\silicon\robot\photos.dm"
@@ -2220,7 +2219,6 @@
#include "code\modules\mob\living\silicon\robot\robot_laws.dm"
#include "code\modules\mob\living\silicon\robot\robot_life.dm"
#include "code\modules\mob\living\silicon\robot\robot_login.dm"
#include "code\modules\mob\living\silicon\robot\robot_mob.dm"
#include "code\modules\mob\living\silicon\robot\robot_module_actions.dm"
#include "code\modules\mob\living\silicon\robot\robot_modules.dm"
#include "code\modules\mob\living\silicon\robot\robot_movement.dm"
@@ -2234,6 +2232,7 @@
#include "code\modules\mob\living\silicon\robot\drone\drone_say.dm"
#include "code\modules\mob\living\silicon\robot\drone\drone_update_status.dm"
#include "code\modules\mob\living\silicon\robot\drone\maint_drone.dm"
#include "code\modules\mob\living\simple_animal\!simple_animal.dm"
#include "code\modules\mob\living\simple_animal\animal_defense.dm"
#include "code\modules\mob\living\simple_animal\constructs.dm"
#include "code\modules\mob\living\simple_animal\corpse.dm"
@@ -2241,9 +2240,8 @@
#include "code\modules\mob\living\simple_animal\parrot.dm"
#include "code\modules\mob\living\simple_animal\posessed_object.dm"
#include "code\modules\mob\living\simple_animal\shade.dm"
#include "code\modules\mob\living\simple_animal\simple_animal.dm"
#include "code\modules\mob\living\simple_animal\simple_animal_damage.dm"
#include "code\modules\mob\living\simple_animal\bot\bot.dm"
#include "code\modules\mob\living\simple_animal\bot\!bot.dm"
#include "code\modules\mob\living\simple_animal\bot\bot_construction.dm"
#include "code\modules\mob\living\simple_animal\bot\cleanbot.dm"
#include "code\modules\mob\living\simple_animal\bot\ed209bot.dm"
@@ -2254,6 +2252,7 @@
#include "code\modules\mob\living\simple_animal\bot\mulebot.dm"
#include "code\modules\mob\living\simple_animal\bot\secbot.dm"
#include "code\modules\mob\living\simple_animal\bot\syndicate_bots.dm"
#include "code\modules\mob\living\simple_animal\friendly\!pet.dm"
#include "code\modules\mob\living\simple_animal\friendly\bunny.dm"
#include "code\modules\mob\living\simple_animal\friendly\butterfly.dm"
#include "code\modules\mob\living\simple_animal\friendly\cat.dm"
@@ -2268,10 +2267,10 @@
#include "code\modules\mob\living\simple_animal\friendly\lizard.dm"
#include "code\modules\mob\living\simple_animal\friendly\mouse.dm"
#include "code\modules\mob\living\simple_animal\friendly\penguin.dm"
#include "code\modules\mob\living\simple_animal\friendly\pet.dm"
#include "code\modules\mob\living\simple_animal\friendly\sloth.dm"
#include "code\modules\mob\living\simple_animal\friendly\snake.dm"
#include "code\modules\mob\living\simple_animal\friendly\spiderbot.dm"
#include "code\modules\mob\living\simple_animal\hostile\!hostile.dm"
#include "code\modules\mob\living\simple_animal\hostile\alien_types.dm"
#include "code\modules\mob\living\simple_animal\hostile\angel_statue.dm"
#include "code\modules\mob\living\simple_animal\hostile\bat.dm"
@@ -2287,7 +2286,6 @@
#include "code\modules\mob\living\simple_animal\hostile\headslug.dm"
#include "code\modules\mob\living\simple_animal\hostile\hellhound.dm"
#include "code\modules\mob\living\simple_animal\hostile\hivebot.dm"
#include "code\modules\mob\living\simple_animal\hostile\hostile.dm"
#include "code\modules\mob\living\simple_animal\hostile\illusion.dm"
#include "code\modules\mob\living\simple_animal\hostile\jungle_animals.dm"
#include "code\modules\mob\living\simple_animal\hostile\killertomato.dm"
@@ -2303,6 +2301,7 @@
#include "code\modules\mob\living\simple_animal\hostile\winter_mobs.dm"
#include "code\modules\mob\living\simple_animal\hostile\gorilla\gorilla.dm"
#include "code\modules\mob\living\simple_animal\hostile\gorilla\gorilla_emote.dm"
#include "code\modules\mob\living\simple_animal\hostile\megafauna\!megafauna.dm"
#include "code\modules\mob\living\simple_animal\hostile\megafauna\ancient_robot.dm"
#include "code\modules\mob\living\simple_animal\hostile\megafauna\blood_drunk_miner.dm"
#include "code\modules\mob\living\simple_animal\hostile\megafauna\bubblegum.dm"
@@ -2310,27 +2309,27 @@
#include "code\modules\mob\living\simple_animal\hostile\megafauna\drake.dm"
#include "code\modules\mob\living\simple_animal\hostile\megafauna\hierophant.dm"
#include "code\modules\mob\living\simple_animal\hostile\megafauna\legion.dm"
#include "code\modules\mob\living\simple_animal\hostile\megafauna\megafauna.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining\!mining.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining\abandoned_minebot.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining\basilisk.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining\goldgrub.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining\goliath.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining\gutlunch.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining\hivelord.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining\mining.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining\elites\elite.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining\elites\!elite.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining\elites\goliath_broodmother.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining\elites\herald.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining\elites\legionnaire.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining\elites\pandora.dm"
#include "code\modules\mob\living\simple_animal\hostile\retaliate\!retaliate.dm"
#include "code\modules\mob\living\simple_animal\hostile\retaliate\araneus.dm"
#include "code\modules\mob\living\simple_animal\hostile\retaliate\clown.dm"
#include "code\modules\mob\living\simple_animal\hostile\retaliate\combat_drone.dm"
#include "code\modules\mob\living\simple_animal\hostile\retaliate\fish.dm"
#include "code\modules\mob\living\simple_animal\hostile\retaliate\kangaroo.dm"
#include "code\modules\mob\living\simple_animal\hostile\retaliate\retaliate.dm"
#include "code\modules\mob\living\simple_animal\hostile\retaliate\undead.dm"
#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\__defines.dm"
#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\!terror_spiders.dm"
#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\actions.dm"
#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\black.dm"
#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\brown.dm"
@@ -2348,16 +2347,15 @@
#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\reproduction.dm"
#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\terror_ai.dm"
#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\terror_ghost_interaction.dm"
#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\terror_spiders.dm"
#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\white.dm"
#include "code\modules\mob\living\simple_animal\slime\!slime_mob.dm"
#include "code\modules\mob\living\simple_animal\slime\slime_death.dm"
#include "code\modules\mob\living\simple_animal\slime\slime_emote.dm"
#include "code\modules\mob\living\simple_animal\slime\slime_life.dm"
#include "code\modules\mob\living\simple_animal\slime\slime_mob.dm"
#include "code\modules\mob\living\simple_animal\slime\slime_powers.dm"
#include "code\modules\mob\living\simple_animal\slime\slime_say.dm"
#include "code\modules\mob\living\simple_animal\slime\subtypes.dm"
#include "code\modules\mob\new_player\new_player.dm"
#include "code\modules\mob\new_player\!new_player.dm"
#include "code\modules\mob\new_player\new_player_login.dm"
#include "code\modules\mob\new_player\new_player_logout.dm"
#include "code\modules\mob\new_player\sprite_accessories\sprite_accessories.dm"