diff --git a/baystation12.dme b/baystation12.dme index 64cd4dafe0b..af63c3f88ab 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -21,7 +21,6 @@ #include "code\__HELPERS\global_lists.dm" #include "code\__HELPERS\icons.dm" #include "code\__HELPERS\lists.dm" -#include "code\__HELPERS\loc.dm" #include "code\__HELPERS\logging.dm" #include "code\__HELPERS\maths.dm" #include "code\__HELPERS\mobs.dm" @@ -81,9 +80,11 @@ #include "code\ATMOSPHERICS\components\unary\unary_base.dm" #include "code\ATMOSPHERICS\components\unary\vent_pump.dm" #include "code\ATMOSPHERICS\components\unary\vent_scrubber.dm" +#include "code\controllers\_DynamicAreaLighting_TG.dm" #include "code\controllers\configuration.dm" #include "code\controllers\failsafe.dm" #include "code\controllers\garbage.dm" +#include "code\controllers\lighting_controller.dm" #include "code\controllers\master_controller.dm" #include "code\controllers\shuttle_controller.dm" #include "code\controllers\verbs.dm" @@ -1399,12 +1400,6 @@ #include "code\WorkInProgress\fireworks.dm" #include "code\WorkInProgress\periodic_news.dm" #include "code\WorkInProgress\Apples\artifacts.dm" -#include "code\WorkInProgress\Aryn\Lighting\_Defs.dm" -#include "code\WorkInProgress\Aryn\Lighting\Compatibility.dm" -#include "code\WorkInProgress\Aryn\Lighting\Controller.dm" -#include "code\WorkInProgress\Aryn\Lighting\Engine.dm" -#include "code\WorkInProgress\Aryn\Lighting\Light.dm" -#include "code\WorkInProgress\Aryn\Lighting\Lightpoint.dm" #include "code\WorkInProgress\Cael_Aislinn\sculpture.dm" #include "code\WorkInProgress\Cael_Aislinn\Jungle\falsewall.dm" #include "code\WorkInProgress\Cael_Aislinn\Jungle\jungle.dm" diff --git a/code/WorkInProgress/Aryn/Lighting/Compatibility.dm b/code/WorkInProgress/Aryn/Lighting/Compatibility.dm deleted file mode 100644 index ad5ca37b047..00000000000 --- a/code/WorkInProgress/Aryn/Lighting/Compatibility.dm +++ /dev/null @@ -1,49 +0,0 @@ -area/var/lighting_use_dynamic - -turf/space/is_outside = 1 -turf/simulated/shuttle/is_outside = 1 - -/datum/controller/lighting/var/processing = 1 -/datum/controller/lighting/var/iteration = 0 - -//Because so many objects jump the gun. -proc/lighting_ready() - return lighting_controller && lighting_controller.started - -turf_light_data - var/light_overlay - var/lightNW - var/lightSW - var/lightNE - var/lightSE - var/lit_by - -turf_light_data/proc/copy_from(turf/T) - light_overlay = T.light_overlay - lightNW = T.lightNW - lightSW = T.lightSW - lightNE = T.lightNE - lightSE = T.lightSE - lit_by = T.lit_by - -turf_light_data/proc/copy_to(turf/T) - T.light_overlay = light_overlay - T.lightNW = lightNW - T.lightSW = lightSW - T.lightNE = lightNE - T.lightSE = lightSE - T.lit_by = lit_by - //T.ResetValue() - -atom/proc/SetLuminosity(n) - ASSERT(n >= 0) - - n = min(n,10) //Caelcode. - if(n > 0) - //world << "[name].SetLuminosity([n]) \[[max(1,n>>1)],[n]\]" - SetLight(max(1,n),n) - else - //world << "[name].SetLuminosity(0)" - SetLight(0,0) - luminosity = n - //else lighting_controller.initial_lights.Add(src) \ No newline at end of file diff --git a/code/WorkInProgress/Aryn/Lighting/Controller.dm b/code/WorkInProgress/Aryn/Lighting/Controller.dm deleted file mode 100644 index 6220ebe3609..00000000000 --- a/code/WorkInProgress/Aryn/Lighting/Controller.dm +++ /dev/null @@ -1,99 +0,0 @@ -/* - -Overview: - Unlike the previous lighting controller, this is mostly here to hold global lighting procs and vars. - It does not process every tick, because not even DAL did something so stupid. - -Global Vars: - initial_lights - This holds all lights formed before the lighting controller started up. It becomes null on initialization. - -Class Vars: - starlight - The light value of space. - - icon_updates - The list of turfs which need an update to their overlays. - - light_border - Space turfs which are adjacent to non-space turfs. - -Class Procs: - Initialize() - Starts the lighting system, creating all light points and turf overlays. - - StarLight(n) - Sets the light produced by space. If a solar eclipse suddenly happens, it'll probably lag. - - MarkIconUpdate(turf/T) - Called when a turf needs an update to its light icon. Ensures that it only gets calculated once per turf. - - FlushIconUpdates() - Called when a light is done marking icon updates. Updates every marked turf. - - AddBorder(turf/T) & RemoveBorder(turf/T) - Called by turf/CheckForOpaqueObjects() to modify the light_border list. - - -*/ - -var/datum/controller/lighting/lighting_controller - -var/all_lightpoints_made = 0 - -var/list/lit_z_levels = list(1,5) - -/datum/controller/lighting - - var/starlight = LIGHT_STATES - var/list/icon_updates = list() - var/started = 0 - - //var/icon/border = icon('Icons/Test.dmi', "border") - -/datum/controller/lighting/New() - lighting_controller = src - -/datum/controller/lighting/proc/Initialize() - - set background = 1 - - var/start_time = world.timeofday - world << "Processing lights..." - - sleep(1) - - var/turfs_updated = 0 - var/total_turfs = world.maxx*world.maxy*lit_z_levels.len - - for(var/z in lit_z_levels) - for(var/y = 0, y <= world.maxy, y++) - for(var/x = 0, x <= world.maxx, x++) - if(x > 0 && y > 0) - - turfs_updated++ - if((turfs_updated % (total_turfs>>2)) == 0) - sleep(1) - world << "Progress: [round((turfs_updated/total_turfs)*100, 0.01)]% ([turfs_updated]/[total_turfs])" - - var/turf/T = locate(x,y,z) - if(!T.is_outside) - T.light_overlay = new(T) - //T.ResetValue() - if(!all_lightpoints_made) new/lightpoint(x+0.5,y+0.5,z) - - - - //world << "[x],[y],[z]" - - all_lightpoints_made = 1 - started = 1 - - for(var/turf/T) - if(T.light_overlay) - - T.ResetValue() - T.light_overlay.set_state(MAX_VALUE(T.lightSE), MAX_VALUE(T.lightSW), MAX_VALUE(T.lightNW), MAX_VALUE(T.lightNE)) - - world << "Lighting initialization took [(world.timeofday-start_time)/world.fps] seconds." - world << "Updated [turfs_updated] turfs." - -/datum/controller/lighting/proc/GetLightIcon(a,b,c,d) - if(a <= 2) return LIGHT_ICON_1 - else return LIGHT_ICON_2 \ No newline at end of file diff --git a/code/WorkInProgress/Aryn/Lighting/Engine.dm b/code/WorkInProgress/Aryn/Lighting/Engine.dm deleted file mode 100644 index fc94b09c6a4..00000000000 --- a/code/WorkInProgress/Aryn/Lighting/Engine.dm +++ /dev/null @@ -1,231 +0,0 @@ -/* - -Overview: - Procs given to atom and turf by the lighting engine, as well as the lighting overlay object. - -Atom Vars: - light - Contains the light object this atom is currently shining with. - -Turf Vars: - light_overlay - Contains an object showing the lighting icon over this turf. - - lit_value - Stores how brightly lit the turf is. - - has_opaque - A cached value updated by CheckForOpaqueObjects() - - is_outside - Any turf with this set to true will be considered as bright as space. - - needs_light_update - Turf is marked for icon updates when true. - - lightNE, lightSE, lightNW, lightSW - Hold the lightpoints on the four corners of this turf. See Lightpoint.dm - - lit_by - A list of lights that are lighting this turf. - -Atom Procs: - SetLight(intensity, radius) - A more versatile SetLuminosity() that allows independent control of intensity and radius. - Called behind the scenes of SetLuminosity(). - - SetOpacity(opacity) - Does the same thing as DAL. - -Turf Procs: - UpdateLight() - Called by the lighting controller. It is advisable not to call this manually due to the cost of lightpoint/max_value() - - AddLight(light/light) - Called by light/Reset() to light this turf with a particular light. - - RemoveLight(light/light) - Called by light/Off() to unlight turfs that were lit by it. - - ResetValue() - Called when lights are reset or starlight is changed. - - ResetCachedValues() - Resets cached values of all four light points. Called by ResetValue(). - - CheckForOpaqueObjects() - Called by lighting_controller.Initialize(), SetOpacity() or when a turf might change opacity. - Resets the opacity cache and looks for opaque objects. Also responsible for adding and removing borders to space. -*/ - -atom/movable/lighting_overlay - name = "" - anchored = 1 - layer = 9 - mouse_opacity = 0 - invisibility = INVISIBILITY_LIGHTING - -atom/movable/lighting_overlay/proc/set_state(a,b,c,d) - icon_state = "[a][b][c][d]" - icon = lighting_controller.GetLightIcon(a,b,c,d) - -atom/var/light/light - -turf/var/atom/movable/lighting_overlay/light_overlay - -turf/var/lit_value = 0 -turf/var/max_brightness = 0 -turf/var/has_opaque = -1 -turf/var/is_outside = 0 -turf/var/is_border = 0 - -turf/var/lightpoint/lightNE -turf/var/lightpoint/lightNW -turf/var/lightpoint/lightSE -turf/var/lightpoint/lightSW -turf/var/list/lit_by - -atom/movable/New() - . = ..() - if(luminosity) - if(!light) - SetLight(luminosity,luminosity) - else - light.atom = src - light.Reset() - else if(light) - light.atom = src - light.Reset() - if(opacity) - if(lighting_ready()) - opacity = 0 - SetOpacity(1) - -atom/movable/Del() - if(light) light.Off() - if(opacity) SetOpacity(0) - . = ..() - -atom/movable/Move(turf/newloc) - var/o = opacity - if(o) SetOpacity(0) - . = ..() - if(.) - if(o) SetOpacity(1) - -turf/Entered(atom/movable/M) - . = ..() - if(M.light) M.light.Reset() - -atom/proc/SetLight(intensity, radius) - //if(lights_verbose) world << "SetLight([intensity],[radius])" - if(!intensity) - if(!light || !light.intensity) - //if(lights_verbose) world << "Still off." - return - //if(lights_verbose) world << "Shut off light with [light.lit_turfs.len] turfs lit." - light.Off() - light.intensity = 0 - //if(lighting_ready()) lighting_controller.FlushIconUpdates() - return - if(!light) - //if(lights_verbose) world << "New light." - light = new(src) - if(light.intensity == intensity) - //if(lights_verbose) world << "Same intensity." - return - light.radius = min(radius,15) - light.intensity = intensity - light.Reset() - //if(lighting_ready()) lighting_controller.FlushIconUpdates() - -atom/proc/SetOpacity(o) - if(o == opacity) return - opacity = o - var/turf/T = loc - if(isturf(T)) - T.CheckForOpaqueObjects() - for(var/light/A in T.lit_by) - A.Reset() - - //lighting_controller.FlushIconUpdates() - -atom/proc/UpdateLights() - if(light) light.Reset() - for(var/atom/movable/A in src) - if(A.light) A.light.Reset() - -//turf/proc/UpdateLight() -// if(light_overlay) -// light_overlay.icon_state = "[lightSE.max_value()][lightSW.max_value()][lightNW.max_value()][lightNE.max_value()]" - -turf/proc/AddLight(light/light, brightness) - if(is_outside) return - - if(brightness <= 0) return - - if(!lit_by) lit_by = list() - lit_by.Add(light) - - - lit_by[light] = brightness - - if(lighting_ready()) - if(brightness > max_brightness) - lit_value = LIGHTCLAMP(brightness) - max_brightness = brightness - - if(lightNE) lightNE.cached_value = -1 - if(lightNW) lightNW.cached_value = -1 - if(lightSE) lightSE.cached_value = -1 - if(lightSW) lightSW.cached_value = -1 - - for(var/turf/T in range(1,src)) - if(T.light_overlay) - T.light_overlay.set_state(MAX_VALUE(T.lightSE), MAX_VALUE(T.lightSW), MAX_VALUE(T.lightNW), MAX_VALUE(T.lightNE)) - -turf/proc/RemoveLight(light/light) - if(lit_by) - var/brightness = lit_by[light] - lit_by.Remove(light) - if(brightness == max_brightness) - ResetValue() - if(!lit_by.len) lit_by = null - -//Only called by ChangeTurf, because it really needs it. -turf/proc/ResetAllLights() - for(var/light/light in lit_by) - light.Reset() - -/turf/space/ResetAllLights() - var/atom/movable/lighting_overlay/overlay = locate() in src - if(overlay) overlay.loc = null - light_overlay = null - is_outside = 1 - . = ..() - -turf/proc/ResetValue() - if(is_outside) - max_brightness = lighting_controller.starlight - lit_value = LIGHTCLAMP(lighting_controller.starlight) - return - - if(has_opaque < 0) CheckForOpaqueObjects() - if(has_opaque) - lit_value = 0 - else - max_brightness = 0 - for(var/light/light in lit_by) - var/brightness = lit_by[light]//light.CalculateBrightness(src) - if(brightness > max_brightness) - max_brightness = brightness - lit_value = LIGHTCLAMP(max_brightness) - - if(lighting_ready()) - if(lightNE) lightNE.cached_value = -1 - if(lightNW) lightNW.cached_value = -1 - if(lightSE) lightSE.cached_value = -1 - if(lightSW) lightSW.cached_value = -1 - for(var/turf/T in range(1,src)) - if(T.light_overlay) - T.light_overlay.set_state(MAX_VALUE(T.lightSE), MAX_VALUE(T.lightSW), MAX_VALUE(T.lightNW), MAX_VALUE(T.lightNE)) - -turf/proc/CheckForOpaqueObjects() - has_opaque = opacity - if(!opacity) - for(var/atom/movable/M in contents) - if(M.opacity) - has_opaque = 1 - break \ No newline at end of file diff --git a/code/WorkInProgress/Aryn/Lighting/Light.dm b/code/WorkInProgress/Aryn/Lighting/Light.dm deleted file mode 100644 index fd6f196645b..00000000000 --- a/code/WorkInProgress/Aryn/Lighting/Light.dm +++ /dev/null @@ -1,89 +0,0 @@ -/* - -Overview: - This object functions similarly to /tg/'s /light. It is responsible for calculating what turfs are lit by it. - -Class Vars: - radius - Set by atom/SetLight(). This stores how far out turfs will be lit up. - intensity - Set by atom/SetLight(). Stores the amount of light generated at the center. - lit_turfs - A list of turfs being lit by this light. - atom - The atom this light is attached to. - -Class Procs: - Reset() - This is called whenever the light changes, or the underlying atom changes position. - - Off() - A quick way to turn off a light. Removes the light from all turfs in lit_turfs. - - CalculateBrightness(turf/T) - Returns the brightness that should be displayed by this light on a specific turf. - -*/ - - -light/var/radius = 0 -light/var/intensity = 0 -light/var/ambient_extension = 3 -light/var/list/lit_turfs = list() -light/var/atom/atom - -light/New(atom/atom, radius, ambience=3) - ASSERT(atom) - - if(istype(atom)) - src.atom = atom - else - src.intensity = atom - src.radius = radius - src.ambient_extension = ambience - -light/proc/Reset() - //if(atom.lights_verbose) world << "light.Reset()" - Off() - if(intensity > 0) - //if(atom.lights_verbose) world << "Restoring light." - var/turf/loc = atom - for(var/turf/T in view(loc,radius+ambient_extension)) - if(!T.is_outside) - var/brightness = CalculateBrightness(T, loc) - T.AddLight(src, brightness) - lit_turfs.Add(T) - //if(atom.lights_verbose) world << "[lit_turfs.len] turfs added." - -light/proc/Off() - //if(atom.lights_verbose) world << "light.Off()" - for(var/turf/T in lit_turfs) - T.RemoveLight(src) - lit_turfs.Cut() - -light/proc/Flash(t) - Reset() - spawn(t) - Off() - -light/proc/CalculateBrightness(turf/T, turf/loc) - ASSERT(T) - var/square = DISTSQ3(loc.x-T.x,loc.y-T.y,loc.z-T.z) - if(square > (radius+ambient_extension)*(radius+ambient_extension)) return 0 - //+2 offset gives an ambient light effect. - - var/value = ((radius)/(2*FSQRT(square) + 1)) * intensity - 0.48 - /* - lightRadius - ---------------- * lightValue - 0.48 - 2 * distance + 1 - - The light decreases by twice the distance, starting from the radius. - The + 1 causes the graph to shift to the left one unit so that division by zero is prevented on the source tile. - - This is then multiplied by the light value to give the final result. - The -0.48 offset causes the value to be near zero at the radius. - - This gives a result which is likely close to the inverse-square law in two dimensions instead of three. - */ - - - return max(min( value , intensity), 0) //Ensure the value never goes above the maximum light value or below zero. - - //return cos(90 * sqrt(square) / max(1,lightRadius)) * lightValue \ No newline at end of file diff --git a/code/WorkInProgress/Aryn/Lighting/Lightpoint.dm b/code/WorkInProgress/Aryn/Lighting/Lightpoint.dm deleted file mode 100644 index eeeec4c7068..00000000000 --- a/code/WorkInProgress/Aryn/Lighting/Lightpoint.dm +++ /dev/null @@ -1,59 +0,0 @@ -/* - -Overview: - Perhaps the most cryptic datum in the lighting engine, there are four of these at the corners of every turf. - Any two turfs that share a corner will also have the same lightpoint. Because of the nature of the icons used, - light is shown at the corner of the turf rather than in the middle, necessitating some way to keep track of what - icon state to use. - -Class Vars: - x, y, z - The position of the lightpoint. x and y will usually be expressed in terms of 0.5 due to its location on the corner. - - NE, NW, SE, SW - The turfs that are in these directions relative to the lightpoint. - - cached_value - A cached value of max_value(). - -Class Procs: - max_value() - The maximum of the light amounts on the four turfs of this light point. - -*/ - -lightpoint - var/x - var/y - var/z - - var/turf/NE - var/turf/NW - var/turf/SW - var/turf/SE - - var/cached_value = -1 - - New(x,y,z) - var/turf/T = locate(x+0.5,y+0.5,z) - if(T) - NE = T - T.lightSW = src - T = locate(x-0.5,y+0.5,z) - if(T) - NW = T - T.lightSE = src - T = locate(x-0.5,y-0.5,z) - if(T) - SW = T - T.lightNE = src - T = locate(x+0.5,y-0.5,z) - if(T) - SE = T - T.lightNW = src - - proc/max_value() - var - valueA = VALUE_OF(NW) - valueB = VALUE_OF(NE) - valueC = VALUE_OF(SW) - valueD = VALUE_OF(SE) - cached_value = max(valueA,valueB,valueC,valueD) - return cached_value \ No newline at end of file diff --git a/code/WorkInProgress/Aryn/Lighting/Verbs.dm b/code/WorkInProgress/Aryn/Lighting/Verbs.dm deleted file mode 100644 index f9e4d7c688f..00000000000 --- a/code/WorkInProgress/Aryn/Lighting/Verbs.dm +++ /dev/null @@ -1,34 +0,0 @@ -var/icon/lighting_dbg = icon('icons/Testing/Zone.dmi', "created") - -atom/var/lights_verbose = 0 - -obj/machinery/light/verb/ShowInfluence() - set src in world - - lights_verbose = 1 - usr << "[src]" - if(light) - usr << "Intensity: [light.intensity]" - usr << "Radius: [light.radius]" - - for(var/turf/T in light.lit_turfs) - T.overlays += lighting_dbg - spawn(50) - for(var/turf/T in light.lit_turfs) - T.overlays -= lighting_dbg - -turf/verb/ShowData() - set src in world - - usr << "[src]" - usr << "[MAX_VALUE(lightSE)][MAX_VALUE(lightSW)][MAX_VALUE(lightNW)][MAX_VALUE(lightNE)]" - usr << "Lit Value: [lit_value]" - usr << "Max Brightness: [max_brightness]" - - usr << "Lit By: " - for(var/light/light in lit_by) - usr << " - [light.atom] \[[lit_by[light]]\][(lit_by[light] == max_brightness ? "(MAX)" : "")]" - light.atom.overlays += lighting_dbg - spawn(50) - for(var/light/light in lit_by) - light.atom.overlays -= lighting_dbg \ No newline at end of file diff --git a/code/WorkInProgress/Aryn/Lighting/_Defs.dm b/code/WorkInProgress/Aryn/Lighting/_Defs.dm deleted file mode 100644 index 72069a1afa8..00000000000 --- a/code/WorkInProgress/Aryn/Lighting/_Defs.dm +++ /dev/null @@ -1,19 +0,0 @@ -#define LIGHT_ICON_1 'icons/effects/lights/lighting5-1.dmi' -#define LIGHT_ICON_2 'icons/effects/lights/lighting5-2.dmi' -#define LIGHT_STATES 4 - -#define SQ(X) ((X)*(X)) -#define DISTSQ3(A,B,C) (SQ(A)+SQ(B)+SQ(C)) -#define FSQRT(X) (X >= fastroot.len ? new_fsqrt(X) : fastroot[(X)+1]) -#define MAX_VALUE(X) (X.cached_value < 0 ? X.max_value() : X.cached_value) -#define VALUE_OF(X) ( !X ? 0 : ( X.is_outside ? LIGHTCLAMP(lighting_controller.starlight) : X.lit_value ) ) -#define LIGHTCLAMP(x) ( max(0,min(LIGHT_STATES,round(x,1))) ) - -var/list/fastroot = list(0, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7) - -proc/new_fsqrt(n) - //world << "Adding [n-fastroot.len] entries to root table." - for(var/i = fastroot.len, i <= n, i++) - fastroot += round(sqrt(i)) \ No newline at end of file diff --git a/code/__HELPERS/loc.dm b/code/__HELPERS/loc.dm deleted file mode 100644 index 91be708854d..00000000000 --- a/code/__HELPERS/loc.dm +++ /dev/null @@ -1,7 +0,0 @@ -atom/movable/proc/setloc(newloc) - if(light) - var/oldloc = loc - loc = newloc - if(isturf(newloc) != isturf(oldloc)) light.Reset() - else - loc = newloc diff --git a/code/controllers/failsafe.dm b/code/controllers/failsafe.dm index f4231464efa..ff46b6b10b6 100644 --- a/code/controllers/failsafe.dm +++ b/code/controllers/failsafe.dm @@ -45,8 +45,7 @@ var/datum/controller/failsafe/Failsafe MC_defcon = 0 MC_iteration = controller_iteration - //Lighting controller now neither processes nor iterates. - /*if(lighting_controller.processing) + if(lighting_controller.processing) if(lighting_iteration == lighting_controller.iteration) //master_controller hasn't finished processing in the defined interval switch(lighting_defcon) if(0 to 3) @@ -61,7 +60,7 @@ var/datum/controller/failsafe/Failsafe lighting_defcon = 0 else lighting_defcon = 0 - lighting_iteration = lighting_controller.iteration*/ + lighting_iteration = lighting_controller.iteration else MC_defcon = 0 lighting_defcon = 0 diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm index 417c618c8cc..1b1d57789be 100644 --- a/code/controllers/master_controller.dm +++ b/code/controllers/master_controller.dm @@ -83,7 +83,6 @@ datum/controller/game_controller/proc/setup() if(ticker) ticker.pregame() - new/datum/controller/lighting() lighting_controller.Initialize() diff --git a/code/controllers/verbs.dm b/code/controllers/verbs.dm index 5d621b1b726..694f27d7684 100644 --- a/code/controllers/verbs.dm +++ b/code/controllers/verbs.dm @@ -19,7 +19,7 @@ feedback_add_details("admin_verb","RFailsafe") if("Lighting") new /datum/controller/lighting() - //lighting_controller.process() + lighting_controller.process() feedback_add_details("admin_verb","RLighting") if("Supply Shuttle") supply_shuttle.process() diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 8bea8675147..9603638f719 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -26,16 +26,20 @@ // lighting_state = 4 //has_gravity = 0 // Space has gravity. Because.. because. - if(!requires_power) + if(requires_power) + luminosity = 0 + else power_light = 0 //rastaf0 power_equip = 0 //rastaf0 power_environ = 0 //rastaf0 + luminosity = 1 lighting_use_dynamic = 0 ..() // spawn(15) power_change() // all machines set to current power level, also updates lighting icon + InitializeLighting() /area/proc/poweralert(var/state, var/obj/source as obj) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 8a413b89872..3ccb3547a86 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -43,7 +43,7 @@ if(destination) if(loc) loc.Exited(src) - setloc(destination) + loc = destination loc.Entered(src) for(var/atom/movable/AM in loc) AM.Crossed(src) diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index 5931d0e069b..e2224b2c496 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -86,11 +86,14 @@ /obj/machinery/dna_scannernew/proc/eject_occupant() src.go_out() for(var/obj/O in src) - if((!istype(O,/obj/item/weapon/reagent_containers)) && (!istype(O,/obj/item/weapon/circuitboard/clonescanner)) && (!istype(O,/obj/item/weapon/stock_parts)) && (!istype(O,/obj/item/stack/cable_coil))) - O.setloc(get_turf(src))//Ejects items that manage to get in there (exluding the components) + if(!istype(O,/obj/item/weapon/circuitboard/clonescanner) && \ + !istype(O,/obj/item/weapon/stock_parts) && \ + !istype(O,/obj/item/stack/cable_coil) && \ + O != beaker) + O.loc = get_turf(src)//Ejects items that manage to get in there (exluding the components and beaker) if(!occupant) for(var/mob/M in src)//Failsafe so you can get mobs out - M.setloc(get_turf(src)) + M.loc = get_turf(src) /obj/machinery/dna_scannernew/verb/move_inside() set src in oview(1) @@ -113,7 +116,7 @@ usr.stop_pulling() usr.client.perspective = EYE_PERSPECTIVE usr.client.eye = src - usr.setloc(src) + usr.loc = src src.occupant = usr src.icon_state = "scanner_1" src.add_fingerprint(usr) @@ -191,7 +194,7 @@ beaker = item user.drop_item() - item.setloc(src) + item.loc = src user.visible_message("[user] adds \a [item] to \the [src]!", "You add \a [item] to \the [src]!") return else if (!istype(item, /obj/item/weapon/grab)) @@ -214,7 +217,7 @@ if(M.client) M.client.perspective = EYE_PERSPECTIVE M.client.eye = src - M.setloc(src) + M.loc = src src.occupant = M src.icon_state = "scanner_1" @@ -237,7 +240,7 @@ if (src.occupant.client) src.occupant.client.eye = src.occupant.client.mob src.occupant.client.perspective = MOB_PERSPECTIVE - src.occupant.setloc(src.loc) + src.occupant.loc = src.loc src.occupant = null src.icon_state = "scanner_0" return @@ -246,7 +249,7 @@ switch(severity) if(1.0) for(var/atom/movable/A as mob|obj in src) - A.setloc(src.loc) + A.loc = src.loc ex_act(severity) //Foreach goto(35) //SN src = null @@ -255,7 +258,7 @@ if(2.0) if (prob(50)) for(var/atom/movable/A as mob|obj in src) - A.setloc(src.loc) + A.loc = src.loc ex_act(severity) //Foreach goto(108) //SN src = null @@ -264,7 +267,7 @@ if(3.0) if (prob(25)) for(var/atom/movable/A as mob|obj in src) - A.setloc(src.loc) + A.loc = src.loc ex_act(severity) //Foreach goto(181) //SN src = null @@ -277,7 +280,7 @@ /obj/machinery/dna_scannernew/blob_act() if(prob(75)) for(var/atom/movable/A as mob|obj in src) - A.setloc(src.loc) + A.loc = src.loc del(src) /obj/machinery/computer/scan_consolenew diff --git a/code/game/dna/genes/goon_powers.dm b/code/game/dna/genes/goon_powers.dm index 4da90f1aaff..c5e1a757357 100644 --- a/code/game/dna/genes/goon_powers.dm +++ b/code/game/dna/genes/goon_powers.dm @@ -55,7 +55,7 @@ var/turf/simulated/T = get_turf(M) if(!istype(T)) return - if(T.lit_value <= 2) + if(T.lighting_lumcount <= 2) M.alpha = 0 else M.alpha = round(255 * 0.80) diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index 6b33c2e5ab5..bf4d6641f09 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -164,7 +164,7 @@ var/global/datum/controller/gameticker/ticker supply_shuttle.process() //Start the supply shuttle regenerating points -- TLE master_controller.process() //Start master_controller.process() - //lighting_controller.process() //Start processing DynamicAreaLighting updates + lighting_controller.process() //Start processing DynamicAreaLighting updates if(config.sql_enabled) diff --git a/code/game/gamemodes/vampire/vampire_powers.dm b/code/game/gamemodes/vampire/vampire_powers.dm index 79a0966d860..fa7f7698a2c 100644 --- a/code/game/gamemodes/vampire/vampire_powers.dm +++ b/code/game/gamemodes/vampire/vampire_powers.dm @@ -278,7 +278,7 @@ if(!mind.vampire.iscloaking) alpha = 255 return 0 - if(T.lit_value <= 2) + if(T.lighting_lumcount <= 2) alpha = round((255 * 0.15)) return 1 else @@ -432,7 +432,7 @@ if(T.y>world.maxy-outer_tele_radius || T.y max_lum) continue + if(T.lighting_lumcount > max_lum) continue turfs += T if(!turfs.len) diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 0be949dbb01..03a67b4f719 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -187,7 +187,7 @@ blob_act() if(prob(75)) for(var/atom/movable/A as mob|obj in src) - A.setloc(src.loc) + A.loc = src.loc A.blob_act() del(src) return @@ -198,7 +198,7 @@ if(!beaker) beaker = G user.drop_item() - G.setloc(src) + G.loc = src user.visible_message("[user] adds \a [G] to \the [src]!", "You add \a [G] to \the [src]!") src.updateUsrDialog() return @@ -228,7 +228,7 @@ if(M.client) M.client.perspective = EYE_PERSPECTIVE M.client.eye = src - M.setloc(src) + M.loc = src src.occupant = M src.icon_state = "sleeper_1" if(orient == "RIGHT") @@ -248,21 +248,21 @@ switch(severity) if(1.0) for(var/atom/movable/A as mob|obj in src) - A.setloc(src.loc) + A.loc = src.loc ex_act(severity) qdel(src) return if(2.0) if(prob(50)) for(var/atom/movable/A as mob|obj in src) - A.setloc(src.loc) + A.loc = src.loc ex_act(severity) qdel(src) return if(3.0) if(prob(25)) for(var/atom/movable/A as mob|obj in src) - A.setloc(src.loc) + A.loc = src.loc ex_act(severity) qdel(src) return @@ -309,7 +309,7 @@ if(src.occupant.client) src.occupant.client.eye = src.occupant.client.mob src.occupant.client.perspective = MOB_PERSPECTIVE - src.occupant.setloc(src.loc) + src.occupant.loc = src.loc src.occupant = null if(orient == "RIGHT") icon_state = "sleeper_0-r" @@ -411,29 +411,8 @@ if(orient == "RIGHT") icon_state = "sleeper_1-r" - for(var/mob/living/carbon/slime/M in range(1,usr)) - if(M.Victim == usr) - usr << "You're too busy getting your life sucked out of you." - return - visible_message("[usr] starts climbing into the sleeper.", 3) - if(do_after(usr, 20)) - if(src.occupant) - usr << "\blue The sleeper is already occupied!" - return - usr.stop_pulling() - usr.client.perspective = EYE_PERSPECTIVE - usr.client.eye = src - usr.setloc(src) - src.occupant = usr - src.icon_state = "sleeper_1" - if(orient == "RIGHT") - icon_state = "sleeper_1-r" - - usr << "\blue You feel cool air surround you. You go numb as your senses turn inward." - - for(var/obj/O in src) - del(O) - src.add_fingerprint(usr) - return + for(var/obj/O in src) + del(O) + src.add_fingerprint(usr) return - return + return \ No newline at end of file diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index adc0a84ade5..5c61d2cf226 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -46,7 +46,7 @@ usr.pulling = null usr.client.perspective = EYE_PERSPECTIVE usr.client.eye = src - usr.setloc(src) + usr.loc = src src.occupant = usr src.icon_state = "body_scanner_1" for(var/obj/O in src) @@ -60,12 +60,12 @@ if ((!( src.occupant ) || src.locked)) return for(var/obj/O in src) - O.setloc(src.loc) + O.loc = src.loc //Foreach goto(30) if (src.occupant.client) src.occupant.client.eye = src.occupant.client.mob src.occupant.client.perspective = MOB_PERSPECTIVE - src.occupant.setloc(src.loc) + src.occupant.loc = src.loc src.occupant = null src.icon_state = "body_scanner_0" return @@ -83,11 +83,11 @@ if (M.client) M.client.perspective = EYE_PERSPECTIVE M.client.eye = src - M.setloc(src) + M.loc = src src.occupant = M src.icon_state = "body_scanner_1" for(var/obj/O in src) - O.setloc(src.loc) + O.loc = src.loc //Foreach goto(154) src.add_fingerprint(user) //G = null @@ -98,7 +98,7 @@ switch(severity) if(1.0) for(var/atom/movable/A as mob|obj in src) - A.setloc(src.loc) + A.loc = src.loc ex_act(severity) //Foreach goto(35) //SN src = null @@ -107,7 +107,7 @@ if(2.0) if (prob(50)) for(var/atom/movable/A as mob|obj in src) - A.setloc(src.loc) + A.loc = src.loc ex_act(severity) //Foreach goto(108) //SN src = null @@ -116,7 +116,7 @@ if(3.0) if (prob(25)) for(var/atom/movable/A as mob|obj in src) - A.setloc(src.loc) + A.loc = src.loc ex_act(severity) //Foreach goto(181) //SN src = null @@ -128,7 +128,7 @@ /obj/machinery/bodyscanner/blob_act() if(prob(50)) for(var/atom/movable/A as mob|obj in src) - A.setloc(src.loc) + A.loc = src.loc del(src) /obj/machinery/body_scanconsole/ex_act(severity) diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index 52464306d80..34a2f8a4f8a 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -251,7 +251,7 @@ if (occupant.client) occupant.client.eye = occupant.client.mob occupant.client.perspective = MOB_PERSPECTIVE - occupant.setloc(get_step(loc, SOUTH)) //this doesn't account for walls or anything, but i don't forsee that being a problem. + occupant.loc = get_step(loc, SOUTH) //this doesn't account for walls or anything, but i don't forsee that being a problem. if (occupant.bodytemperature < 261 && occupant.bodytemperature >= 70) //Patch by Aranclanos to stop people from taking burn damage after being ejected occupant.bodytemperature = 261 // occupant.metabslow = 0 @@ -275,7 +275,7 @@ M.client.perspective = EYE_PERSPECTIVE M.client.eye = src M.stop_pulling() - M.setloc(src) + M.loc = src if(M.health > -100 && (M.health < 0 || M.sleeping)) M << "\blue You feel a cold liquid surround you. Your skin starts to freeze up." occupant = M diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 5d537787b75..5246d97e321 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -80,7 +80,7 @@ obj/machinery/computer/cryopod/Topic(href, href_list) visible_message("\blue The console beeps happily as it disgorges \the [I].", 3) - I.setloc(get_turf(src)) + I.loc = get_turf(src) frozen_items -= I else if(href_list["allitems"]) @@ -92,7 +92,7 @@ obj/machinery/computer/cryopod/Topic(href, href_list) visible_message("\blue The console beeps happily as it disgorges the desired objects.", 3) for(var/obj/item/I in frozen_items) - I.setloc(get_turf(src)) + I.loc = get_turf(src) frozen_items -= I else if(href_list["crew"]) @@ -186,11 +186,11 @@ obj/machinery/computer/cryopod/Topic(href, href_list) //Drop all items into the pod. for(var/obj/item/W in occupant) occupant.drop_from_inventory(W) - W.setloc(src) + W.loc = src if(W.contents.len) //Make sure we catch anything not handled by del() on the items. for(var/obj/item/O in W.contents) - O.setloc(src) + O.loc = src //Delete all items not on the preservation list. var/list/items = src.contents @@ -240,7 +240,7 @@ obj/machinery/computer/cryopod/Topic(href, href_list) current_mode.possible_traitors.Remove(occupant) // Delete them from datacore. - + if(PDA_Manifest.len) PDA_Manifest.Cut() for(var/datum/data/record/R in data_core.medical) @@ -305,7 +305,7 @@ obj/machinery/computer/cryopod/Topic(href, href_list) if(do_after(user, 20)) if(!M || !G || !G:affecting) return - M.setloc(src) + M.loc = src if(M.client) M.client.perspective = EYE_PERSPECTIVE @@ -375,7 +375,7 @@ obj/machinery/computer/cryopod/Topic(href, href_list) usr.stop_pulling() usr.client.perspective = EYE_PERSPECTIVE usr.client.eye = src - usr.setloc(src) + usr.loc = src src.occupant = usr if(orient_right) @@ -401,7 +401,7 @@ obj/machinery/computer/cryopod/Topic(href, href_list) occupant.client.eye = src.occupant.client.mob occupant.client.perspective = MOB_PERSPECTIVE - occupant.setloc(get_turf(src)) + occupant.loc = get_turf(src) occupant = null if(orient_right) diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 2daaee476c5..c78bc0bb393 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -75,7 +75,7 @@ if (src.occupant.client) src.occupant.client.eye = src.occupant.client.mob src.occupant.client.perspective = MOB_PERSPECTIVE - src.occupant.setloc(src.loc) + src.occupant.loc = src.loc src.occupant = null build_icon() src.use_power = 1 @@ -179,7 +179,7 @@ if(usr && usr.client) usr.client.perspective = EYE_PERSPECTIVE usr.client.eye = src - usr.setloc(src) + usr.loc = src src.occupant = usr /*for(var/obj/O in src) O.loc = src.loc*/ diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index 7308ede2a4b..ec282f5096f 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -410,7 +410,7 @@ src.OCCUPANT.client.eye = src.OCCUPANT.client.mob src.OCCUPANT.client.perspective = MOB_PERSPECTIVE - src.OCCUPANT.setloc(src.loc) + src.OCCUPANT.loc = src.loc src.OCCUPANT = null if(!src.isopen) src.isopen = 1 @@ -453,7 +453,7 @@ usr.stop_pulling() usr.client.perspective = EYE_PERSPECTIVE usr.client.eye = src - usr.setloc(src) + usr.loc = src // usr.metabslow = 1 src.OCCUPANT = usr src.isopen = 0 //Close the thing after the guy gets inside @@ -499,7 +499,7 @@ if (M.client) M.client.perspective = EYE_PERSPECTIVE M.client.eye = src - M.setloc(src) + M.loc = src src.OCCUPANT = M src.isopen = 0 //close ittt @@ -520,7 +520,7 @@ return user << "You load the [S.name] into the storage compartment." user.drop_item() - S.setloc(src) + S.loc = src src.SUIT = S src.update_icon() src.updateUsrDialog() @@ -534,7 +534,7 @@ return user << "You load the [H.name] into the storage compartment." user.drop_item() - H.setloc(src) + H.loc = src src.HELMET = H src.update_icon() src.updateUsrDialog() @@ -548,7 +548,7 @@ return user << "You load the [M.name] into the storage compartment." user.drop_item() - M.setloc(src) + M.loc = src src.MASK = M src.update_icon() src.updateUsrDialog() diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 9bbc4e83192..eb296c5c764 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -535,7 +535,7 @@ var/obj/mecha/working/ripley/R = src if(R.cargo) for(var/obj/O in R.cargo) //Dump contents of stored cargo - O.setloc(T) + O.loc = T R.cargo -= O T.Entered(O) diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm index 9992c18340c..29ddcc812b4 100644 --- a/code/game/objects/items/blueprints.dm +++ b/code/game/objects/items/blueprints.dm @@ -132,6 +132,9 @@ move an amendment to the drawing.

move_turfs_to_area(turfs, A) A.always_unpowered = 0 + for(var/turf/T in A.contents) + T.lighting_changed = 1 + lighting_controller.changed_turfs += T spawn(5) //ma = A.master ? "[A.master]" : "(null)" diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 236f00e3359..59919346bde 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -89,13 +89,13 @@ /obj/item/device/flashlight/pickup(mob/user) - if(on && luminosity) + if(on) user.SetLuminosity(user.luminosity + brightness_on) SetLuminosity(0) /obj/item/device/flashlight/dropped(mob/user) - if(on && !luminosity) + if(on) user.SetLuminosity(user.luminosity - brightness_on) SetLuminosity(brightness_on) diff --git a/code/game/objects/items/weapons/implants/implantchair.dm b/code/game/objects/items/weapons/implants/implantchair.dm index 51e0e0dbca4..0edd1a87362 100644 --- a/code/game/objects/items/weapons/implants/implantchair.dm +++ b/code/game/objects/items/weapons/implants/implantchair.dm @@ -97,7 +97,7 @@ if (src.occupant.client) src.occupant.client.eye = src.occupant.client.mob src.occupant.client.perspective = MOB_PERSPECTIVE - src.occupant.setloc(src.loc) + src.occupant.loc = src.loc if(injecting) implant(src.occupant) injecting = 0 @@ -117,7 +117,7 @@ M.client.perspective = EYE_PERSPECTIVE M.client.eye = src M.stop_pulling() - M.setloc(src) + M.loc = src src.occupant = M src.add_fingerprint(usr) icon_state = "implantchair_on" diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index 8bb855047f7..c49a79f07c6 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -250,7 +250,7 @@ if(usr) usr.u_equip(W) usr.update_icons() //update our overlays - W.setloc(src) + W.loc = src W.on_enter_storage(src) if(usr) if (usr.client && usr.s_active != src) @@ -293,9 +293,9 @@ W.layer = 20 else W.layer = initial(W.layer) - W.setloc(new_location) + W.loc = new_location else - W.setloc(get_turf(src)) + W.loc = get_turf(src) if(usr) src.orient2hud(usr) @@ -325,7 +325,7 @@ user << "\red The tray won't fit in [src]." return 1 else - W.setloc(user.loc) + W.loc = user.loc if ((user.client && user.s_active != src)) user.client.screen -= W W.dropped(user) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 06362c81752..3a9ab2f0ac5 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -21,7 +21,7 @@ if(!opened) // if closed, any item at the crate's loc is put in the contents for(var/obj/item/I in src.loc) if(I.density || I.anchored || I == src) continue - I.setloc(src) + I.loc = src // Fix for #383 - C4 deleting fridges with corpses /obj/structure/closet/Destroy() @@ -49,13 +49,13 @@ /obj/structure/closet/proc/dump_contents() //Cham Projector Exception for(var/obj/effect/dummy/chameleon/AD in src) - AD.setloc(src.loc) + AD.loc = src.loc for(var/obj/I in src) - I.setloc(src.loc) + I.loc = src.loc for(var/mob/M in src) - M.setloc(src.loc) + M.loc = src.loc if(M.client) M.client.eye = M.client.mob M.client.perspective = MOB_PERSPECTIVE @@ -92,14 +92,14 @@ for(var/obj/effect/dummy/chameleon/AD in src.loc) if(itemcount >= storage_capacity) break - AD.setloc(src) + AD.loc = src itemcount++ for(var/obj/item/I in src.loc) if(itemcount >= storage_capacity) break if(!I.anchored) - I.setloc(src) + I.loc = src itemcount++ for(var/mob/M in src.loc) @@ -114,7 +114,7 @@ M.client.perspective = EYE_PERSPECTIVE M.client.eye = src - M.setloc(src) + M.loc = src itemcount++ src.icon_state = src.icon_closed @@ -139,19 +139,19 @@ switch(severity) if(1) for(var/atom/movable/A as mob|obj in src)//pulls everything out of the locker and hits it with an explosion - A.setloc(src.loc) + A.loc = src.loc A.ex_act(severity++) qdel(src) if(2) if(prob(50)) for (var/atom/movable/A as mob|obj in src) - A.setloc(src.loc) + A.loc = src.loc A.ex_act(severity++) qdel(src) if(3) if(prob(5)) for(var/atom/movable/A as mob|obj in src) - A.setloc(src.loc) + A.loc = src.loc A.ex_act(severity++) qdel(src) @@ -160,7 +160,7 @@ ..() if(health <= 0) for(var/atom/movable/A as mob|obj in src) - A.setloc(src.loc) + A.loc = src.loc del(src) return @@ -169,14 +169,14 @@ if(user.environment_smash) visible_message("\red [user] destroys the [src]. ") for(var/atom/movable/A as mob|obj in src) - A.setloc(src.loc) + A.loc = src.loc del(src) // this should probably use dump_contents() /obj/structure/closet/blob_act() if(prob(75)) for(var/atom/movable/A as mob|obj in src) - A.setloc(src.loc) + A.loc = src.loc del(src) /obj/structure/closet/meteorhit(obj/O as obj) @@ -268,7 +268,7 @@ return usr.drop_item() if(W) - W.setloc(src.loc) + W.loc = src.loc else if(istype(W, /obj/item/weapon/packageWrap)) return else if(istype(W, /obj/item/weapon/weldingtool)) diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 73b06da6a87..8170bfae2ab 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -33,7 +33,7 @@ playsound(src.loc, 'sound/machines/click.ogg', 15, 1, -3) for(var/obj/O in src) - O.setloc(get_turf(src)) + O.loc = get_turf(src) icon_state = icon_opened src.opened = 1 return 1 @@ -55,7 +55,7 @@ var/obj/structure/stool/bed/B = O if(B.buckled_mob) continue - O.setloc(src) + O.loc = src itemcount++ icon_state = icon_closed @@ -68,7 +68,7 @@ return user.drop_item() if(W) - W.setloc(src.loc) + W.loc = src.loc else if(istype(W, /obj/item/weapon/packageWrap)) return else if(istype(W, /obj/item/stack/cable_coil)) @@ -84,7 +84,7 @@ if(rigged) user << "You attach [W] to [src]." user.drop_item() - W.setloc(src) + W.loc = src return else if(istype(W, /obj/item/weapon/wirecutters)) if(rigged) @@ -385,12 +385,12 @@ continue if(!S.anchored) found = 1 - S.setloc(src) + S.loc = src break if(!found) for(var/obj/machinery/M in src.loc) if(!M.anchored) - M.setloc(src) + M.loc = src break return @@ -413,12 +413,12 @@ continue if(!S.anchored) found = 1 - S.setloc(src) + S.loc = src break if(!found) for(var/obj/machinery/M in src.loc) if(!M.anchored) - M.setloc(src) + M.loc = src break return diff --git a/code/game/objects/structures/crates_lockers/largecrate.dm b/code/game/objects/structures/crates_lockers/largecrate.dm index 0fac1f53035..96ed8ef9169 100644 --- a/code/game/objects/structures/crates_lockers/largecrate.dm +++ b/code/game/objects/structures/crates_lockers/largecrate.dm @@ -15,7 +15,7 @@ new /obj/item/stack/sheet/wood(src) var/turf/T = get_turf(src) for(var/obj/O in contents) - O.setloc(T) + O.loc = T user.visible_message("[user] pries \the [src] open.", \ "You pry open \the [src].", \ "You hear splitting wood.") @@ -84,4 +84,4 @@ /obj/structure/largecrate/cat/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W, /obj/item/weapon/crowbar)) new /mob/living/simple_animal/cat(loc) - ..() + ..() \ No newline at end of file diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 999315b9053..991c4bb873f 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -46,21 +46,21 @@ switch(severity) if(1.0) for(var/atom/movable/A as mob|obj in src) - A.setloc(src.loc) + A.loc = src.loc ex_act(severity) qdel(src) return if(2.0) if (prob(50)) for(var/atom/movable/A as mob|obj in src) - A.setloc(src.loc) + A.loc = src.loc ex_act(severity) qdel(src) return if(3.0) if (prob(5)) for(var/atom/movable/A as mob|obj in src) - A.setloc(src.loc) + A.loc = src.loc ex_act(severity) qdel(src) return @@ -76,7 +76,7 @@ if (src.connected) for(var/atom/movable/A as mob|obj in src.connected.loc) if (!( A.anchored )) - A.setloc(src) + A.loc = src playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) //src.connected = null del(src.connected) @@ -90,7 +90,7 @@ src.connected.connected = src src.icon_state = "morgue0" for(var/atom/movable/A as mob|obj in src) - A.setloc(src.connected.loc) + A.loc = src.connected.loc src.connected.icon_state = "morguet" src.connected.dir = src.dir else @@ -126,7 +126,7 @@ src.connected.connected = src src.icon_state = "morgue0" for(var/atom/movable/A as mob|obj in src) - A.setloc(src.connected.loc) + A.loc = src.connected.loc //Foreach goto(106) src.connected.icon_state = "morguet" else @@ -156,7 +156,7 @@ if (src.connected) for(var/atom/movable/A as mob|obj in src.loc) if (!( A.anchored )) - A.setloc(src.connected) + A.loc = src.connected //Foreach goto(26) src.connected.connected = null src.connected.update() @@ -173,7 +173,7 @@ return if (!ismob(user) || user.stat || user.lying || user.stunned) return - O.setloc(src.loc) + O.loc = src.loc if (user != O) for(var/mob/B in viewers(user, 3)) if ((B.client && !( B.blinded ))) @@ -211,21 +211,21 @@ switch(severity) if(1.0) for(var/atom/movable/A as mob|obj in src) - A.setloc(src.loc) + A.loc = src.loc ex_act(severity) qdel(src) return if(2.0) if (prob(50)) for(var/atom/movable/A as mob|obj in src) - A.setloc(src.loc) + A.loc = src.loc ex_act(severity) qdel(src) return if(3.0) if (prob(5)) for(var/atom/movable/A as mob|obj in src) - A.setloc(src.loc) + A.loc = src.loc ex_act(severity) qdel(src) return @@ -250,7 +250,7 @@ if ((src.connected) && (src.locked == 0)) for(var/atom/movable/A as mob|obj in src.connected.loc) if (!( A.anchored )) - A.setloc(src) + A.loc = src playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) //src.connected = null del(src.connected) @@ -264,7 +264,7 @@ src.connected.connected = src src.icon_state = "crema0" for(var/atom/movable/A as mob|obj in src) - A.setloc(src.connected.loc) + A.loc = src.connected.loc src.connected.icon_state = "cremat" else //src.connected = null @@ -298,7 +298,7 @@ src.connected.connected = src src.icon_state = "crema0" for(var/atom/movable/A as mob|obj in src) - A.setloc(src.connected.loc) + A.loc = src.connected.loc //Foreach goto(106) src.connected.icon_state = "cremat" else @@ -374,7 +374,7 @@ if (src.connected) for(var/atom/movable/A as mob|obj in src.loc) if (!( A.anchored )) - A.setloc(src.connected) + A.loc = src.connected //Foreach goto(26) src.connected.connected = null src.connected.update() @@ -391,7 +391,7 @@ return if (!ismob(user) || user.stat || user.lying || user.stunned) return - O.setloc(src.loc) + O.loc = src.loc if (user != O) for(var/mob/B in viewers(user, 3)) if ((B.client && !( B.blinded ))) diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm index cdab10c884b..00946b8678c 100644 --- a/code/game/objects/structures/safe.dm +++ b/code/game/objects/structures/safe.dm @@ -36,7 +36,7 @@ FLOOR SAFES return if(I.w_class + space <= maxspace) space += I.w_class - I.setloc(src) + I.loc = src /obj/structure/safe/proc/check_unlocked(mob/user as mob, canhear) @@ -147,7 +147,7 @@ FLOOR SAFES if(I.w_class + space <= maxspace) space += I.w_class user.drop_item() - I.setloc(src) + I.loc = src user << "You put [I] in [src]." updateUsrDialog() return diff --git a/code/game/objects/structures/transit_tubes.dm b/code/game/objects/structures/transit_tubes.dm index cb1780afa5c..df52dd0995c 100644 --- a/code/game/objects/structures/transit_tubes.dm +++ b/code/game/objects/structures/transit_tubes.dm @@ -49,7 +49,7 @@ /obj/structure/transit_tube_pod/Destroy() for(var/atom/movable/AM in contents) - AM.setloc(loc) + AM.loc = loc ..() @@ -60,7 +60,8 @@ obj/structure/ex_act(severity) switch(severity) if(1.0) for(var/atom/movable/AM in contents) - AM.setloc(loc) + AM.loc = loc + // TODO: What the fuck are you doing AM.ex_act(severity++) qdel(src) @@ -68,7 +69,7 @@ obj/structure/ex_act(severity) if(2.0) if(prob(50)) for(var/atom/movable/AM in contents) - AM.setloc(loc) + AM.loc = loc AM.ex_act(severity++) qdel(src) @@ -103,7 +104,7 @@ obj/structure/ex_act(severity) AM << "The tube's support pylons block your way." return ..() else - AM.setloc(src.loc) + AM.loc = src.loc AM << "You slip under the tube." /obj/structure/transit_tube/station/New(loc) @@ -115,7 +116,7 @@ obj/structure/ex_act(severity) if(!pod_moving && icon_state == "open" && istype(AM, /mob)) for(var/obj/structure/transit_tube_pod/pod in loc) if(!pod.moving && pod.dir in directions()) - AM.setloc(pod) + AM.loc = pod return @@ -435,7 +436,7 @@ obj/structure/ex_act(severity) if(istype(mob, /mob) && mob.client) // If the pod is not in a tube at all, you can get out at any time. if(!(locate(/obj/structure/transit_tube) in loc)) - mob.setloc(loc) + mob.loc = loc mob.client.Move(get_step(loc, direction), direction) //if(moving && istype(loc, /turf/space)) @@ -448,7 +449,7 @@ obj/structure/ex_act(severity) if(!station.pod_moving) if(direction == station.dir) if(station.icon_state == "open") - mob.setloc(loc) + mob.loc = loc mob.client.Move(get_step(loc, direction), direction) else diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 8a81e93d1a9..8bdaad4672a 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -31,7 +31,7 @@ if(ishuman(user)) user.put_in_hands(I) else - I.setloc(get_turf(src)) + I.loc = get_turf(src) user << "You find \an [I] in the cistern." w_items -= I.w_class return @@ -84,7 +84,7 @@ user << "The cistern is full." return user.drop_item() - I.setloc(src) + I.loc = src w_items += I.w_class user << "You carefully place \the [I] into the cistern." return diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index c1548257c26..86e306ac1d8 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -1,8 +1,8 @@ //Config stuff #define SUPPLY_DOCKZ 2 //Z-level of the Dock. #define SUPPLY_STATIONZ 1 //Z-level of the Station. -#define SUPPLY_STATION_AREATYPE /area/supply/station //Type of the supply shuttle area for station -#define SUPPLY_DOCK_AREATYPE /area/supply/dock //Type of the supply shuttle area for dock +#define SUPPLY_STATION_AREATYPE "/area/supply/station" //Type of the supply shuttle area for station +#define SUPPLY_DOCK_AREATYPE "/area/supply/dock" //Type of the supply shuttle area for dock var/global/datum/controller/supply_shuttle/supply_shuttle //var/datum/controller/supply_shuttle/supply_shuttle = new() diff --git a/code/game/turfs/simulated/floor_types.dm b/code/game/turfs/simulated/floor_types.dm index 2f04b2f0684..5c8b5d8cc5d 100644 --- a/code/game/turfs/simulated/floor_types.dm +++ b/code/game/turfs/simulated/floor_types.dm @@ -246,7 +246,7 @@ thermal_conductivity = OPEN_HEAT_TRANSFER_COEFFICIENT heat_capacity = 700000 - lit_value = 4 //starlight + lighting_lumcount = 4 //starlight // accepts_lighting=0 // Don't apply overlays New() diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index c125f9e0269..356214dd9a2 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -209,19 +209,15 @@ if(L) del L -var/turf_light_data/old_lights = new - //Creates a new turf /turf/proc/ChangeTurf(var/turf/N) if (!N) return + var/old_lumcount = lighting_lumcount - initial(lighting_lumcount) + //world << "Replacing [src.type] with [N]" - var/old_opacity = opacity - - old_lights.copy_from(src) - if(connections) connections.erase_all() if(istype(src,/turf/simulated)) @@ -242,12 +238,10 @@ var/turf_light_data/old_lights = new var/turf/simulated/W = new N( locate(src.x, src.y, src.z) ) //W.Assimilate_Air() - old_lights.copy_to(W) - W.ResetAllLights() - - if(old_opacity) - W.opacity = 1 - W.SetOpacity(0) + W.lighting_lumcount += old_lumcount + if(old_lumcount != W.lighting_lumcount) + W.lighting_changed = 1 + lighting_controller.changed_turfs += W if (istype(W,/turf/simulated/floor)) W.RemoveLattice() @@ -265,9 +259,10 @@ var/turf_light_data/old_lights = new // zone.SetStatus(ZONE_ACTIVE) var/turf/W = new N( locate(src.x, src.y, src.z) ) - - old_lights.copy_to(W) - W.ResetAllLights() + W.lighting_lumcount += old_lumcount + if(old_lumcount != W.lighting_lumcount) + W.lighting_changed = 1 + lighting_controller.changed_turfs += W if(air_master) air_master.mark_for_update(src) diff --git a/code/modules/DetectiveWork/detective_work.dm b/code/modules/DetectiveWork/detective_work.dm index b9ecfdc3e68..047fa29e506 100644 --- a/code/modules/DetectiveWork/detective_work.dm +++ b/code/modules/DetectiveWork/detective_work.dm @@ -142,7 +142,7 @@ obj/machinery/computer/forensic_scanning temp = null if("eject") if(scanning) - scanning.setloc(loc) + scanning.loc = loc scanning = null else temp = "Eject Failed: No Object" @@ -152,13 +152,13 @@ obj/machinery/computer/forensic_scanning if(I && istype(I)) if(istype(I, /obj/item/weapon/evidencebag)) scanning = I.contents[1] - scanning.setloc(src) + scanning.loc = src I.overlays -= scanning I.icon_state = "evidenceobj" else scanning = I M.drop_item() - I.setloc(src) + I.loc = src else usr << "Invalid Object Rejected." if("card") //Processing a fingerprint card. @@ -173,11 +173,11 @@ obj/machinery/computer/forensic_scanning if(card.amount > 1 || !card.fingerprints.len) usr << "\red ERROR: No prints/too many cards." if(card.loc == src) - card.setloc(src.loc) + card.loc = src.loc card = null return M.drop_item() - I.setloc(src) + I.loc = src process_card() else usr << "\red Invalid Object Rejected." @@ -607,7 +607,7 @@ obj/machinery/computer/forensic_scanning else usr << "\red ERROR: No prints/too many cards." if(card.loc == src) - card.setloc(src.loc) + card.loc = src.loc card = null return return diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 7f43646b963..ba67b8a706a 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -768,11 +768,8 @@ It can still be worn/put on as normal. if(item && target.has_organ_for_slot(slot_to_process)) //Placing an item on the mob if(item.mob_can_equip(target, slot_to_process, 0)) source.u_equip(item) - item.dropped(source) - target.equip_to_slot_if_possible(item, slot_to_process, 0, 1, 1) - item.pickup(target) - + item.dropped(source) source.update_icons() target.update_icons() diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index e0c51ca6390..6d56ae5e02c 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -953,7 +953,7 @@ var/turf/T = loc var/area/A = T.loc if(A) - if(A.lighting_use_dynamic) light_amount = min(10,T.lit_value) - 5 //hardcapped so it's not abused by having a ton of flashlights + if(A.lighting_use_dynamic) light_amount = min(10,T.lighting_lumcount) - 5 //hardcapped so it's not abused by having a ton of flashlights else light_amount = 5 nutrition += light_amount traumatic_shock -= light_amount @@ -972,7 +972,7 @@ var/turf/T = loc var/area/A = T.loc if(A) - if(A.lighting_use_dynamic) light_amount = T.lit_value + if(A.lighting_use_dynamic) light_amount = T.lighting_lumcount else light_amount = 10 if(light_amount > 2) //if there's enough light, start dying take_overall_damage(1,1) @@ -1550,7 +1550,7 @@ //0.1% chance of playing a scary sound to someone who's in complete darkness if(isturf(loc) && rand(1,1000) == 1) var/turf/currentTurf = loc - if(!currentTurf.lit_value) + if(!currentTurf.lighting_lumcount) playsound_local(src,pick(scarySounds),50, 1, -1) // Separate proc so we can jump out of it when we've succeeded in spreading disease. diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index 6bb646771b0..ccdab077e65 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -452,7 +452,7 @@ var/turf/T = loc var/area/A = T.loc if(A) - if(A.lighting_use_dynamic) light_amount = min(10,T.lit_value) - 5 //hardcapped so it's not abused by having a ton of flashlights + if(A.lighting_use_dynamic) light_amount = min(10,T.lighting_lumcount) - 5 //hardcapped so it's not abused by having a ton of flashlights else light_amount = 5 nutrition += light_amount diff --git a/code/modules/mob/living/silicon/robot/inventory.dm b/code/modules/mob/living/silicon/robot/inventory.dm index 6eb7b7ac384..d22976509b1 100644 --- a/code/modules/mob/living/silicon/robot/inventory.dm +++ b/code/modules/mob/living/silicon/robot/inventory.dm @@ -12,7 +12,6 @@ if(!O) return 0 - if(istype(O,/obj/item/borg/sight)) var/obj/item/borg/sight/S = O sight_mode &= ~S.sight_mode @@ -78,7 +77,6 @@ uneq_module(module_state_2) uneq_module(module_state_3) - /mob/living/silicon/robot/proc/activated(obj/item/O) if(module_state_1 == O) return 1 diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index a9207280470..98173429f06 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -142,7 +142,7 @@ var/datum/robot_component/cell_component = components["power cell"] cell_component.wrapped = cell cell_component.installed = 1 - + hud_list[HEALTH_HUD] = image('icons/mob/hud.dmi', src, "hudblank") hud_list[STATUS_HUD] = image('icons/mob/hud.dmi', src, "hudhealth100") hud_list[ID_HUD] = image('icons/mob/hud.dmi', src, "hudblank") @@ -151,9 +151,9 @@ hud_list[IMPCHEM_HUD] = image('icons/mob/hud.dmi', src, "hudblank") hud_list[IMPTRACK_HUD] = image('icons/mob/hud.dmi', src, "hudblank") hud_list[SPECIALROLE_HUD] = image('icons/mob/hud.dmi', src, "hudblank") + - - + playsound(loc, 'sound/voice/liveagain.ogg', 75, 1) @@ -1153,26 +1153,20 @@ if (href_list["deact"]) var/obj/item/O = locate(href_list["deact"]) - if(activated(O)) if(module_state_1 == O) module_state_1 = null + contents -= O else if(module_state_2 == O) module_state_2 = null + contents -= O else if(module_state_3 == O) module_state_3 = null + contents -= O else src << "Module isn't activated." - return else src << "Module isn't activated" - return - - O.dropped(src) - contents -= O - - src << "[O.name] deactivated." - installed_modules() return diff --git a/code/modules/mob/living/simple_animal/hostile/statue.dm b/code/modules/mob/living/simple_animal/hostile/statue.dm index 6732eeb3180..f5fa6677b4e 100644 --- a/code/modules/mob/living/simple_animal/hostile/statue.dm +++ b/code/modules/mob/living/simple_animal/hostile/statue.dm @@ -111,7 +111,7 @@ // Don't check it twice if our destination is the tile we are on or we can't even get to our destination if(T == destination) destination = null - else if(!T.lit_value && !destination.lit_value) // No one can see us in the darkness, right? + else if(!T.lighting_lumcount && !destination.lighting_lumcount) // No one can see us in the darkness, right? return null // We aren't in darkness, loop for viewers. diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index d3db4150f2f..2f5d6dbd220 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -4,7 +4,6 @@ var/global/list/uneatable = list( /turf/space, /obj/effect/overlay, - /atom/movable/lighting_overlay, /mob/dead, /mob/camera, /mob/new_player diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 5ce114f8114..c0e2d00165d 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -208,7 +208,7 @@ if(istype(B, /obj/item/weapon/reagent_containers/glass) || istype(B,/obj/item/weapon/reagent_containers/food)) src.beaker = B user.drop_item() - B.setloc(src) + B.loc = src user << "You set [B] on the machine." nanomanager.update_uis(src) // update all UIs attached to src icon_state = "[icon_state]2" @@ -325,7 +325,7 @@ return src.beaker = B user.drop_item() - B.setloc(src) + B.loc = src user << "You add the beaker to the machine!" src.updateUsrDialog() icon_state = "mixer1" @@ -338,7 +338,7 @@ src.loaded_pill_bottle = B user.drop_item() - B.setloc(src) + B.loc = src user << "You add the pill bottle into the dispenser slot!" src.updateUsrDialog() return @@ -354,7 +354,7 @@ if (href_list["ejectp"]) if(loaded_pill_bottle) - loaded_pill_bottle.setloc(src.loc) + loaded_pill_bottle.loc = src.loc loaded_pill_bottle = null else if(href_list["close"]) usr << browse(null, "window=chemmaster") @@ -966,7 +966,7 @@ else src.beaker = O user.drop_item() - O.setloc(src) + O.loc = src update_icon() src.updateUsrDialog() return 0 @@ -980,7 +980,7 @@ for (var/obj/item/weapon/reagent_containers/food/snacks/grown/G in O.contents) O.contents -= G - G.setloc(src) + G.loc = src holdingitems += G if(holdingitems && holdingitems.len >= limit) //Sanity checking so the blender doesn't overfill user << "You fill the All-In-One grinder to the brim." @@ -1003,7 +1003,7 @@ return 1 user.before_take_item(O) - O.setloc(src) + O.loc = src holdingitems += O src.updateUsrDialog() return 0 @@ -1086,7 +1086,7 @@ return if (!beaker) return - beaker.setloc(src.loc) + beaker.loc = src.loc beaker = null update_icon() @@ -1098,7 +1098,7 @@ return for(var/obj/item/O in holdingitems) - O.setloc(src.loc) + O.loc = src.loc holdingitems -= O holdingitems = list() diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 3bbcd394262..4b1ad0470e4 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -112,7 +112,7 @@ if (GM.client) GM.client.perspective = EYE_PERSPECTIVE GM.client.eye = src - GM.setloc(src) + GM.loc = src for (var/mob/C in viewers(src)) C.show_message("\red [GM.name] has been placed in the [src] by [user].", 3) del(G) @@ -125,7 +125,7 @@ user.drop_item() if(I) - I.setloc(src) + I.loc = src user << "You place \the [I] into the [src]." for(var/mob/M in viewers(src)) @@ -170,7 +170,7 @@ if (target.client) target.client.perspective = EYE_PERSPECTIVE target.client.eye = src - target.setloc(src) + target.loc = src for (var/mob/C in viewers(src)) if(C == user) @@ -197,7 +197,7 @@ if (user.client) user.client.eye = user.client.mob user.client.perspective = MOB_PERSPECTIVE - user.setloc(src.loc) + user.loc = src.loc update() return @@ -308,7 +308,7 @@ // eject the contents of the disposal unit proc/eject() for(var/atom/movable/AM in src) - AM.setloc(src.loc) + AM.loc = src.loc AM.pipe_eject(0) update() @@ -367,7 +367,7 @@ return use_power = 1 - + if(mode != 1) // if off or ready, no need to charge return @@ -447,7 +447,7 @@ for(var/atom/movable/AM in H) target = get_offset_target_turf(src.loc, rand(5)-rand(5), rand(5)-rand(5)) - AM.setloc(src.loc) + AM.loc = src.loc AM.pipe_eject(0) spawn(1) if(AM) @@ -462,7 +462,7 @@ if(istype(I, /obj/item/projectile)) return if(prob(75)) - I.setloc(src) + I.loc = src for(var/mob/M in viewers(src)) M.show_message("\the [I] lands in \the [src].", 3) else @@ -510,7 +510,7 @@ // now everything inside the disposal gets put into the holder // note AM since can contain mobs or objs for(var/atom/movable/AM in D) - AM.setloc(src) + AM.loc = src if(istype(AM, /mob/living/carbon/human)) var/mob/living/carbon/human/H = AM if(M_FAT in H.mutations) // is a human and fat? @@ -587,7 +587,7 @@ // used when a a holder meets a stuck holder proc/merge(var/obj/structure/disposalholder/other) for(var/atom/movable/AM in other) - AM.setloc(src) // move everything in other holder to this one + AM.loc = src // move everything in other holder to this one if(ismob(AM)) var/mob/M = AM if(M.client) // if a client mob, update eye to follow this holder @@ -649,7 +649,7 @@ // this is unlikely, but just dump out everything into the turf in case for(var/atom/movable/AM in H) - AM.setloc(T) + AM.loc = T AM.pipe_eject(0) del(H) ..() @@ -680,9 +680,9 @@ if(H2 && !H2.active) H.merge(H2) - H.setloc(P) + H.loc = P else // if wasn't a pipe, then set loc to turf - H.setloc(T) + H.loc = T return null return P @@ -721,7 +721,7 @@ if(T.density) // dense ouput turf, so stop holder H.active = 0 - H.setloc(src) + H.loc = src return if(T.intact && istype(T,/turf/simulated/floor)) //intact floor, pop the tile var/turf/simulated/floor/F = T @@ -741,7 +741,7 @@ playsound(src, 'sound/machines/hiss.ogg', 50, 0, 0) if(H) for(var/atom/movable/AM in H) - AM.setloc(T) + AM.loc = T AM.pipe_eject(direction) spawn(1) if(AM) @@ -756,7 +756,7 @@ for(var/atom/movable/AM in H) target = get_offset_target_turf(T, rand(5)-rand(5), rand(5)-rand(5)) - AM.setloc(T) + AM.loc = T AM.pipe_eject(0) spawn(1) if(AM) @@ -789,7 +789,7 @@ // this is unlikely, but just dump out everything into the turf in case for(var/atom/movable/AM in H) - AM.setloc(T) + AM.loc = T AM.pipe_eject(0) del(H) return @@ -903,6 +903,9 @@ update() return + + + //a three-way junction with dir being the dominant direction /obj/structure/disposalpipe/junction icon_state = "pipe-j1" @@ -1025,9 +1028,9 @@ if(H2 && !H2.active) H.merge(H2) - H.setloc(P) + H.loc = P else // if wasn't a pipe, then set loc to turf - H.setloc(T) + H.loc = T return null return P @@ -1087,9 +1090,9 @@ if(H2 && !H2.active) H.merge(H2) - H.setloc(P) + H.loc = P else // if wasn't a pipe, then set loc to turf - H.setloc(T) + H.loc = T return null return P @@ -1256,7 +1259,7 @@ if(H) for(var/atom/movable/AM in H) - AM.setloc(src.loc) + AM.loc = src.loc AM.pipe_eject(dir) spawn(5) AM.throw_at(target, 3, 1) diff --git a/code/modules/research/xenoarchaeology/machinery/geosample_scanner.dm b/code/modules/research/xenoarchaeology/machinery/geosample_scanner.dm index 10080549788..eaf92181b23 100644 --- a/code/modules/research/xenoarchaeology/machinery/geosample_scanner.dm +++ b/code/modules/research/xenoarchaeology/machinery/geosample_scanner.dm @@ -92,7 +92,7 @@ update_coolant() return user.drop_item() - I.setloc(src) + I.loc = src scanned_item = I /obj/machinery/radiocarbon_spectrometer/proc/update_coolant() @@ -144,15 +144,15 @@ data["radiation"] = round(radiation) data["t_left_radspike"] = round(t_left_radspike) data["rad_shield_on"] = rad_shield - + // update the ui if it exists, returns null if no ui is passed/found - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) if (!ui) // the ui does not exist, so we'll create a new() one // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm ui = new(user, src, ui_key, "geoscanner.tmpl", "High Res Radiocarbon Spectrometer", 900, 825) // when the ui is first opened this is the data it will use - ui.set_initial_data(data) + ui.set_initial_data(data) // open the new ui window ui.open() // auto update every Master Controller tick @@ -319,7 +319,7 @@ last_scan_data = P.info P.loc = src.loc - scanned_item.setloc(src.loc) + scanned_item.loc = src.loc scanned_item = null /obj/machinery/radiocarbon_spectrometer/Topic(href, href_list) @@ -355,7 +355,7 @@ if(href_list["ejectItem"]) if(scanned_item) - scanned_item.setloc(src.loc) + scanned_item.loc = src.loc scanned_item = null add_fingerprint(usr) diff --git a/icons/effects/lights/lighting1.dmi b/icons/effects/lights/lighting1.dmi deleted file mode 100644 index 66787a12857..00000000000 Binary files a/icons/effects/lights/lighting1.dmi and /dev/null differ diff --git a/icons/effects/lights/lighting2.dmi b/icons/effects/lights/lighting2.dmi deleted file mode 100644 index a80e436c18b..00000000000 Binary files a/icons/effects/lights/lighting2.dmi and /dev/null differ diff --git a/icons/effects/lights/lighting3.dmi b/icons/effects/lights/lighting3.dmi deleted file mode 100644 index 023d4252896..00000000000 Binary files a/icons/effects/lights/lighting3.dmi and /dev/null differ diff --git a/icons/effects/lights/lighting5-1.dmi b/icons/effects/lights/lighting5-1.dmi deleted file mode 100644 index 3e8057a3d9c..00000000000 Binary files a/icons/effects/lights/lighting5-1.dmi and /dev/null differ diff --git a/icons/effects/lights/lighting5-2.dmi b/icons/effects/lights/lighting5-2.dmi deleted file mode 100644 index 0f843d0d024..00000000000 Binary files a/icons/effects/lights/lighting5-2.dmi and /dev/null differ