- Walls are now smooth! That is, their icon changes depending on adjacent walls and false walls.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@397 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
uporotiy
2010-11-10 20:47:25 +00:00
parent c38ba98498
commit a620df895c
4 changed files with 75 additions and 1 deletions
+2 -1
View File
@@ -178,13 +178,14 @@
else
icon_state = ""
icon_state = "wall"
flick("fwall_closing", src)
sleep(15)
src.density = 1
src.sd_SetOpacity(1)
var/turf/T = src.loc
T.sd_LumUpdate()
src.relativewall()
attackby(obj/item/weapon/W as obj, mob/user as mob)
+72
View File
@@ -0,0 +1,72 @@
//Separate dm because it relates to two types of atoms + ease of removal in case it's needed.
//Also assemblies.dm for falsewall checking for this when used.
/atom/proc/relativewall() //atom because it should be useable both for walls and false walls
var/junction = 0 //will be used to determine from which side the wall is connected to other walls
for(var/turf/simulated/wall/W in orange(src,1))
if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls
junction |= get_dir(src,W)
for(var/obj/falsewall/W in orange(src,1))
if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls
junction |= get_dir(src,W)
if(istype(src,/turf/simulated/wall/r_wall))
src.icon_state = "rwall[junction]"
else
src.icon_state = "wall[junction]"
/* When we have animations for different directions of falsewalls, then it'd be needed. Not now.
if(istype(src,/obj/falsewall)) //saving the junctions for the falsewall because it changes icon_state often instead of once
var/obj/falsewall/F = src
F.junctions = junction
*/
return
/turf/simulated/wall/New()
for(var/turf/simulated/wall/W in range(src,1))
W.relativewall()
for(var/obj/falsewall/W in range(src,1))
W.relativewall()
..()
/obj/falsewall/New()
for(var/turf/simulated/wall/W in range(src,1))
W.relativewall()
for(var/obj/falsewall/W in range(src,1))
W.relativewall()
..()
/turf/simulated/wall/Del()
var/temploc = src.loc
spawn(10)
for(var/turf/simulated/wall/W in range(temploc,1))
W.relativewall()
for(var/obj/falsewall/W in range(temploc,1))
W.relativewall()
..()
/turf/falsewall/Del()
var/temploc = src.loc
spawn(10)
for(var/turf/simulated/wall/W in range(temploc,1))
W.relativewall()
for(var/obj/falsewall/W in range(temploc,1))
W.relativewall()
..()