From 42e843d20df13857e531057d597b50ee79e924b3 Mon Sep 17 00:00:00 2001 From: Erki Date: Sun, 22 Oct 2017 02:37:30 +0300 Subject: [PATCH] Fixes #3096 and #3461 (#3728) Fixes #3096 which exists because T != U. Fixes #3461 which exists because I should read the code I'm refactoring instead of getting carried away by RANGE_TURFS being faster. --- code/modules/shieldgen/shield_gen.dm | 21 ++++++++++++++++++- code/modules/shieldgen/shield_gen_external.dm | 2 +- .../skull132_shields_2_re-shieldening.yml | 5 +++++ 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 html/changelogs/skull132_shields_2_re-shieldening.yml diff --git a/code/modules/shieldgen/shield_gen.dm b/code/modules/shieldgen/shield_gen.dm index 908438d586a..09541f33eea 100644 --- a/code/modules/shieldgen/shield_gen.dm +++ b/code/modules/shieldgen/shield_gen.dm @@ -238,8 +238,27 @@ //grab the border tiles in a circle around this machine /obj/machinery/shield_gen/proc/get_shielded_turfs() var/turf/gen_turf = get_turf(src) + . = list() if (!gen_turf) return - . = RANGE_TURFS(field_radius, gen_turf) + var/turf/T + + for (var/x_offset = -field_radius; x_offset <= field_radius; x_offset++) + T = locate(gen_turf.x + x_offset, gen_turf.y - field_radius, gen_turf.z) + if (T) + . += T + + T = locate(gen_turf.x + x_offset, gen_turf.y + field_radius, gen_turf.z) + if (T) + . += T + + for (var/y_offset = -field_radius+1; y_offset < field_radius; y_offset++) + T = locate(gen_turf.x - field_radius, gen_turf.y + y_offset, gen_turf.z) + if (T) + . += T + + T = locate(gen_turf.x + field_radius, gen_turf.y + y_offset, gen_turf.z) + if (T) + . += T diff --git a/code/modules/shieldgen/shield_gen_external.dm b/code/modules/shieldgen/shield_gen_external.dm index 31acacaf5c9..78e5a88fd40 100644 --- a/code/modules/shieldgen/shield_gen_external.dm +++ b/code/modules/shieldgen/shield_gen_external.dm @@ -28,7 +28,7 @@ continue if (the_station_areas[U.loc]) - out += U + out += T break return out diff --git a/html/changelogs/skull132_shields_2_re-shieldening.yml b/html/changelogs/skull132_shields_2_re-shieldening.yml new file mode 100644 index 00000000000..d1298b12210 --- /dev/null +++ b/html/changelogs/skull132_shields_2_re-shieldening.yml @@ -0,0 +1,5 @@ +author: Skull132 +delete-after: true + +changes: + - bugfix: "Hull and bubble shields now work as expected once more."