mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-21 15:42:35 +00:00
Inline some lighting stuff (#2929)
Inlines some really frequently called lighting procs, maybe will speed up lighting updates a bit.
This commit is contained in:
@@ -328,6 +328,7 @@
|
|||||||
var/thing
|
var/thing
|
||||||
var/datum/lighting_corner/C
|
var/datum/lighting_corner/C
|
||||||
var/turf/T
|
var/turf/T
|
||||||
|
var/list/Tcorners
|
||||||
var/Sx = source_turf.x
|
var/Sx = source_turf.x
|
||||||
var/Sy = source_turf.y
|
var/Sy = source_turf.y
|
||||||
|
|
||||||
@@ -336,7 +337,23 @@
|
|||||||
if (light_angle && check_light_cone(T.x, T.y))
|
if (light_angle && check_light_cone(T.x, T.y))
|
||||||
continue
|
continue
|
||||||
|
|
||||||
for (thing in T.get_corners())
|
if (T.dynamic_lighting || T.light_sources)
|
||||||
|
Tcorners = T.corners
|
||||||
|
if (!T.lighting_corners_initialised)
|
||||||
|
T.lighting_corners_initialised = TRUE
|
||||||
|
|
||||||
|
if (!Tcorners)
|
||||||
|
T.corners = list(null, null, null, null)
|
||||||
|
Tcorners = T.corners
|
||||||
|
|
||||||
|
for (var/i = 1 to 4)
|
||||||
|
if (Tcorners[i])
|
||||||
|
continue
|
||||||
|
|
||||||
|
Tcorners[i] = new /datum/lighting_corner(T, LIGHTING_CORNER_DIAGONAL[i])
|
||||||
|
|
||||||
|
if (!T.has_opaque_atom)
|
||||||
|
for (thing in Tcorners)
|
||||||
C = thing
|
C = thing
|
||||||
corners[C] = 0
|
corners[C] = 0
|
||||||
|
|
||||||
|
|||||||
@@ -61,6 +61,7 @@
|
|||||||
var/datum/lighting_corner/C
|
var/datum/lighting_corner/C
|
||||||
var/turf/T
|
var/turf/T
|
||||||
var/Tthing
|
var/Tthing
|
||||||
|
var/list/Tcorners
|
||||||
var/Sx = source_turf.x
|
var/Sx = source_turf.x
|
||||||
var/Sy = source_turf.y
|
var/Sy = source_turf.y
|
||||||
|
|
||||||
@@ -68,7 +69,24 @@
|
|||||||
for (Tthing in RANGE_TURFS(Ceiling(light_range), source_turf))
|
for (Tthing in RANGE_TURFS(Ceiling(light_range), source_turf))
|
||||||
T = Tthing
|
T = Tthing
|
||||||
check_t:
|
check_t:
|
||||||
for (thing in T.get_corners())
|
|
||||||
|
if (T.dynamic_lighting || T.light_sources)
|
||||||
|
Tcorners = T.corners
|
||||||
|
if (!T.lighting_corners_initialised)
|
||||||
|
T.lighting_corners_initialised = TRUE
|
||||||
|
|
||||||
|
if (!Tcorners)
|
||||||
|
T.corners = list(null, null, null, null)
|
||||||
|
Tcorners = T.corners
|
||||||
|
|
||||||
|
for (var/i = 1 to 4)
|
||||||
|
if (Tcorners[i])
|
||||||
|
continue
|
||||||
|
|
||||||
|
Tcorners[i] = new /datum/lighting_corner(T, LIGHTING_CORNER_DIAGONAL[i])
|
||||||
|
|
||||||
|
if (!T.has_opaque_atom)
|
||||||
|
for (thing in Tcorners)
|
||||||
C = thing
|
C = thing
|
||||||
corners[C] = 0
|
corners[C] = 0
|
||||||
|
|
||||||
|
|||||||
@@ -148,6 +148,8 @@
|
|||||||
else
|
else
|
||||||
lighting_clear_overlay()
|
lighting_clear_overlay()
|
||||||
|
|
||||||
|
// This is inlined in lighting_source.dm and lighting_source_novis.dm.
|
||||||
|
// Update them too if you change this.
|
||||||
/turf/proc/get_corners()
|
/turf/proc/get_corners()
|
||||||
if (!dynamic_lighting && !light_sources)
|
if (!dynamic_lighting && !light_sources)
|
||||||
return null
|
return null
|
||||||
@@ -160,6 +162,8 @@
|
|||||||
|
|
||||||
return corners
|
return corners
|
||||||
|
|
||||||
|
// This is inlined in lighting_source.dm and lighting_source_novis.dm.
|
||||||
|
// Update them too if you change this.
|
||||||
/turf/proc/generate_missing_corners()
|
/turf/proc/generate_missing_corners()
|
||||||
if (!dynamic_lighting && !light_sources)
|
if (!dynamic_lighting && !light_sources)
|
||||||
return
|
return
|
||||||
|
|||||||
Reference in New Issue
Block a user