" // Table within a table for alignment, also allows you to easily add more colomns.
+ HTML += ""
+ var/index = -1
+
+ //The job before the current job. I only use this to get the previous jobs color when I'm filling in blank rows.
+ var/datum/job/lastJob
+
for(var/datum/job/job in job_master.occupations)
+
+ index += 1
+ if((index >= limit) || (job.title in splitJobs))
+ if((index < limit) && (lastJob != null))
+ //If the cells were broken up by a job in the splitJob list then it will fill in the rest of the cells with
+ //the last job's selection color. Creating a rather nice effect.
+ for(var/i = 0, i < (limit - index), i += 1)
+ HTML += "|   |   | "
+ HTML += " | "
+ index = 0
+
HTML += "| "
var/rank = job.title
+ lastJob = job
if(jobban_isbanned(user, rank))
HTML += "[rank] | \[BANNED] | "
continue
@@ -483,12 +517,10 @@ datum/preferences
else
HTML += ""
- HTML += " "
- HTML += "\[Done\]"
HTML += ""
user << browse(null, "window=preferences")
- user << browse(HTML, "window=mob_occupation;size=320x600")
+ user << browse(HTML, "window=mob_occupation;size=[width]x[height]")
return
diff --git a/code/modules/mob/screen.dm b/code/modules/mob/screen.dm
index 944ef8122c3..726f141841a 100644
--- a/code/modules/mob/screen.dm
+++ b/code/modules/mob/screen.dm
@@ -303,6 +303,15 @@
usr.hud_used.other_update()
+ if("equip")
+ var/obj/item/I = usr.get_active_hand()
+ if(!I)
+ usr << "\blue You are not holding anything to equip."
+ return
+ if(ishuman(usr))
+ var/mob/living/carbon/human/H = usr
+ H.equip_to_appropriate_slot(I)
+
if("maprefresh")
var/obj/machinery/computer/security/seccomp = usr.machine
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index d83533c369d..05b1c48a284 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -394,29 +394,27 @@
else if (istype(W, /obj/item/weapon/module/power_control) && opened && has_electronics==0 && ((stat & BROKEN) || malfhack))
user << "\red You cannot put the board inside, the frame is damaged."
return
- else if (istype(W, /obj/item/weapon/weldingtool) && W:welding && opened && has_electronics==0 && !terminal)
- if (W:get_fuel() < 3)
- user << "\blue You need more welding fuel to do this."
+ else if (istype(W, /obj/item/weapon/weldingtool) && opened && has_electronics==0 && !terminal)
+ var/obj/item/weapon/weldingtool/WT = W
+ if (WT.get_fuel() < 3)
+ user << "\blue You need more welding fuel to complete this task."
return
user << "You start welding APC frame..."
- if(W:remove_fuel(0,user))
- W:welding = 2
- playsound(src.loc, 'Welder.ogg', 50, 1)
- if(do_after(user, 50))
-
- if (emagged || malfhack || (stat & BROKEN) || opened==2)
- new /obj/item/stack/sheet/metal(loc)
- user.visible_message(\
- "\red \The [src] has been cut apart by [user.name] with the welding tool.",\
- "You disassemble the broken APC frame.",\
- "\red You hear welding.")
- else
- new /obj/item/apc_frame(loc)
- user.visible_message(\
- "\red \The [src] has been cut from the wall by [user.name] with the welding tool.",\
- "You cut APC frame from the wall.",\
- "\red You hear welding.")
- W:welding = 1
+ playsound(src.loc, 'Welder.ogg', 50, 1)
+ if(do_after(user, 50))
+ if(!src || !WT.remove_fuel(3, user)) return
+ if (emagged || malfhack || (stat & BROKEN) || opened==2)
+ new /obj/item/stack/sheet/metal(loc)
+ user.visible_message(\
+ "\red [src] has been cut apart by [user.name] with the weldingtool.",\
+ "You disassembled the broken APC frame.",\
+ "\red You hear welding.")
+ else
+ new /obj/item/apc_frame(loc)
+ user.visible_message(\
+ "\red [src] has been cut from the wall by [user.name] with the weldingtool.",\
+ "You cut APC frame from the wall.",\
+ "\red You hear welding.")
del(src)
return
else if (istype(W, /obj/item/apc_frame) && opened && emagged)
@@ -769,7 +767,7 @@
(istype(robot) && (robot in malfai.connected_robots)) \
) \
)
- user << "\red \The [src] has it's AI control disabled!"
+ user << "\red \The [src] has its AI control disabled!"
user << browse(null, "window=apc")
user.machine = null
return 0
diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm
index be46259e7ff..c421c563040 100644
--- a/code/modules/power/port_gen.dm
+++ b/code/modules/power/port_gen.dm
@@ -1,4 +1,4 @@
-//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
+//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
/* new portable generator - work in progress
@@ -57,15 +57,14 @@ display round(lastgen) and plasmatank amount
var/recent_fault = 0
var/power_output = 1
- proc
- HasFuel() //Placeholder for fuel check.
- return 1
+ proc/HasFuel() //Placeholder for fuel check.
+ return 1
- UseFuel() //Placeholder for fuel use.
- return
+ proc/UseFuel() //Placeholder for fuel use.
+ return
- handleInactive()
- return
+ proc/handleInactive()
+ return
process()
if(active && HasFuel() && !crit_fail && anchored)
diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm
index 6a439efe201..baab68ff9bb 100644
--- a/code/modules/power/singularity/emitter.dm
+++ b/code/modules/power/singularity/emitter.dm
@@ -1,4 +1,4 @@
-//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
+//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
/obj/machinery/emitter
name = "Emitter"
@@ -149,7 +149,8 @@
user << "\red The [src.name] needs to be unwelded from the floor."
return
- if(istype(W, /obj/item/weapon/weldingtool) && W:welding)
+ if(istype(W, /obj/item/weapon/weldingtool))
+ var/obj/item/weapon/weldingtool/WT = W
if(active)
user << "Turn off the [src] first."
return
@@ -157,29 +158,27 @@
if(0)
user << "\red The [src.name] needs to be wrenched to the floor."
if(1)
- if (W:remove_fuel(0,user))
- W:welding = 2
+ if (WT.remove_fuel(0,user))
playsound(src.loc, 'Welder2.ogg', 50, 1)
user.visible_message("[user.name] starts to weld the [src.name] to the floor.", \
"You start to weld the [src] to the floor.", \
"You hear welding")
if (do_after(user,20))
+ if(!src || !WT.isOn()) return
state = 2
user << "You weld the [src] to the floor."
- W:welding = 1
else
user << "\red You need more welding fuel to complete this task."
if(2)
- if (W:remove_fuel(0,user))
- W:welding = 2
+ if (WT.remove_fuel(0,user))
playsound(src.loc, 'Welder2.ogg', 50, 1)
user.visible_message("[user.name] starts to cut the [src.name] free from the floor.", \
"You start to cut the [src] free from the floor.", \
"You hear welding")
if (do_after(user,20))
+ if(!src || !WT.isOn()) return
state = 1
user << "You cut the [src] free from the floor."
- W:welding = 1
else
user << "\red You need more welding fuel to complete this task."
return
diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm
index cbf636bbb76..ab0b3fa862d 100644
--- a/code/modules/power/singularity/field_generator.dm
+++ b/code/modules/power/singularity/field_generator.dm
@@ -1,4 +1,4 @@
-//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
+//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
var/containment_fail_announced = 0
@@ -119,35 +119,34 @@ field_generator power level display
if(2)
user << "\red The [src.name] needs to be unwelded from the floor."
return
- else if(istype(W, /obj/item/weapon/weldingtool) && W:welding)
+ else if(istype(W, /obj/item/weapon/weldingtool))
+ var/obj/item/weapon/weldingtool/WT = W
switch(state)
if(0)
user << "\red The [src.name] needs to be wrenched to the floor."
return
if(1)
- if (W:remove_fuel(0,user))
- W:welding = 2
+ if (WT.remove_fuel(0,user))
playsound(src.loc, 'Welder2.ogg', 50, 1)
user.visible_message("[user.name] starts to weld the [src.name] to the floor.", \
"You start to weld the [src] to the floor.", \
"You hear welding")
if (do_after(user,20))
+ if(!src || !WT.isOn()) return
state = 2
user << "You weld the field generator to the floor."
- W:welding = 1
else
return
if(2)
- if (W:remove_fuel(0,user))
- W:welding = 2
+ if (WT.remove_fuel(0,user))
playsound(src.loc, 'Welder2.ogg', 50, 1)
user.visible_message("[user.name] starts to cut the [src.name] free from the floor.", \
"You start to cut the [src] free from the floor.", \
"You hear welding")
if (do_after(user,20))
+ if(!src || !WT.isOn()) return
state = 1
user << "You cut the [src] free from the floor."
- W:welding = 2
else
return
else
@@ -356,4 +355,5 @@ field_generator power level display
if((world.time - O.last_warning) > 50) //to stop message-spam
temp = 0
message_admins("A singulo exists and a containment field has failed.",1)
+ investigate_log("has failed whilst a singulo exists.","singulo")
O.last_warning = world.time
diff --git a/code/modules/recycling/disposal-construction.dm b/code/modules/recycling/disposal-construction.dm
index f041e96828b..7d8025ff6c1 100644
--- a/code/modules/recycling/disposal-construction.dm
+++ b/code/modules/recycling/disposal-construction.dm
@@ -87,8 +87,11 @@
if(usr.stat)
return
+
if(anchored)
usr << "You must unfasten the pipe before rotating it."
+ return
+
dir = turn(dir, -90)
update()
@@ -100,6 +103,7 @@
if(anchored)
usr << "You must unfasten the pipe before flipping it."
+ return
dir = turn(dir, 180)
if(ptype == 2)
@@ -194,41 +198,44 @@
update()
else if(istype(I, /obj/item/weapon/weldingtool))
- var/obj/item/weapon/weldingtool/W = I
- if(W.remove_fuel(0,user))
- playsound(src.loc, 'Welder2.ogg', 100, 1)
- user << "Welding the [nicetype] in place."
- W:welding = 2
- if(do_after(user, 20))
- user << "The [nicetype] has been welded in place!"
- update() // TODO: Make this neat
- if(ispipe) // Pipe
+ if(anchored)
+ var/obj/item/weapon/weldingtool/W = I
+ if(W.remove_fuel(0,user))
+ playsound(src.loc, 'Welder2.ogg', 100, 1)
+ user << "Welding the [nicetype] in place."
+ if(do_after(user, 20))
+ if(!src || !W.isOn()) return
+ user << "The [nicetype] has been welded in place!"
+ update() // TODO: Make this neat
+ if(ispipe) // Pipe
- var/pipetype = dpipetype()
- var/obj/structure/disposalpipe/P = new pipetype(src.loc)
- P.base_icon_state = base_state
- P.dir = dir
- P.dpdir = dpdir
- P.updateicon()
+ var/pipetype = dpipetype()
+ var/obj/structure/disposalpipe/P = new pipetype(src.loc)
+ P.base_icon_state = base_state
+ P.dir = dir
+ P.dpdir = dpdir
+ P.updateicon()
- else if(ptype==6) // Disposal bin
- var/obj/machinery/disposal/P = new /obj/machinery/disposal(src.loc)
- P.mode = 0 // start with pump off
+ else if(ptype==6) // Disposal bin
+ var/obj/machinery/disposal/P = new /obj/machinery/disposal(src.loc)
+ P.mode = 0 // start with pump off
- else if(ptype==7) // Disposal outlet
+ else if(ptype==7) // Disposal outlet
- var/obj/structure/disposaloutlet/P = new /obj/structure/disposaloutlet(src.loc)
- P.dir = dir
- Trunk.linked = P
+ var/obj/structure/disposaloutlet/P = new /obj/structure/disposaloutlet(src.loc)
+ P.dir = dir
+ Trunk.linked = P
- else if(ptype==8) // Disposal outlet
+ else if(ptype==8) // Disposal outlet
- var/obj/machinery/disposal/deliveryChute/P = new /obj/machinery/disposal/deliveryChute(src.loc)
- P.dir = dir
+ var/obj/machinery/disposal/deliveryChute/P = new /obj/machinery/disposal/deliveryChute(src.loc)
+ P.dir = dir
- del(src)
+ del(src)
+ return
+ else
+ user << "You need more welding fuel to complete this task."
return
- W:welding = 1
else
- user << "You need more welding fuel to complete this task."
+ user << "You need to attach it to the plating first!"
return
diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm
index 5d9c16139a6..3ded32fecf0 100644
--- a/code/modules/recycling/disposal.dm
+++ b/code/modules/recycling/disposal.dm
@@ -48,6 +48,10 @@
if(isrobot(user) && !istype(I, /obj/item/weapon/trashbag))
return
if(mode<=0) // It's off
+ if(contents.len > 0)
+ user << "Eject the items first!"
+ return
+
if(istype(I, /obj/item/weapon/screwdriver))
if(mode==0) // It's off but still not unscrewed
mode=-1 // Set it to doubleoff l0l
@@ -64,8 +68,9 @@
if(W.remove_fuel(0,user))
playsound(src.loc, 'Welder2.ogg', 100, 1)
user << "You start slicing the floorweld off the disposal unit."
- W:welding = 2
+
if(do_after(user,20))
+ if(!src || !W.isOn()) return
user << "You sliced the floorweld off the disposal unit."
var/obj/structure/disposalconstruct/C = new (src.loc)
C.ptype = 6 // 6 = disposal unit
@@ -73,7 +78,6 @@
C.density = 1
C.update()
del(src)
- W:welding = 1
return
else
user << "You need more welding fuel to complete this task."
@@ -896,23 +900,21 @@
if(istype(I, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/W = I
- if(W.welding)
- if(W.remove_fuel(0,user))
- W:welding = 2
- playsound(src.loc, 'Welder2.ogg', 100, 1)
- // check if anything changed over 2 seconds
- var/turf/uloc = user.loc
- var/atom/wloc = W.loc
- user << "Slicing the disposal pipe."
- sleep(30)
- if(user.loc == uloc && wloc == W.loc)
- welded()
- else
- user << "You must stay still while welding the pipe."
- W:welding = 1
+ if(W.remove_fuel(0,user))
+ playsound(src.loc, 'Welder2.ogg', 100, 1)
+ // check if anything changed over 2 seconds
+ var/turf/uloc = user.loc
+ var/atom/wloc = W.loc
+ user << "Slicing the disposal pipe."
+ sleep(30)
+ if(!W.isOn()) return
+ if(user.loc == uloc && wloc == W.loc)
+ welded()
else
- user << "You need more welding fuel to cut the pipe."
- return
+ user << "You must stay still while welding the pipe."
+ else
+ user << "You need more welding fuel to cut the pipe."
+ return
// called when pipe is cut with welder
proc/welded()
@@ -1238,95 +1240,114 @@
return P
+
+
+
+
//a trunk joining to a disposal bin or outlet on the same turf
/obj/structure/disposalpipe/trunk
icon_state = "pipe-t"
var/obj/linked // the linked obj/machinery/disposal or obj/disposaloutlet
- New()
- ..()
- dpdir = dir
- spawn(1)
- getlinked()
+/obj/structure/disposalpipe/trunk/New()
+ ..()
+ dpdir = dir
+ spawn(1)
+ getlinked()
- update()
- return
+ update()
+ return
- proc/getlinked()
- linked = null
- var/obj/machinery/disposal/D = locate() in src.loc
- if(D)
- linked = D
- if (!D.trunk)
- D.trunk = src
+/obj/structure/disposalpipe/trunk/proc/getlinked()
+ linked = null
+ var/obj/machinery/disposal/D = locate() in src.loc
+ if(D)
+ linked = D
+ if (!D.trunk)
+ D.trunk = src
- var/obj/structure/disposaloutlet/O = locate() in src.loc
- if(O)
- linked = O
+ var/obj/structure/disposaloutlet/O = locate() in src.loc
+ if(O)
+ linked = O
- update()
- return
+ update()
+ return
// Override attackby so we disallow trunkremoval when somethings ontop
- attackby(var/obj/item/I, var/mob/user)
+/obj/structure/disposalpipe/trunk/attackby(var/obj/item/I, var/mob/user)
- if(linked != null)
+ //Disposal bins or chutes
+ /*
+ These shouldn't be required
+ var/obj/machinery/disposal/D = locate() in src.loc
+ if(D && D.anchored)
+ return
+
+ //Disposal outlet
+ var/obj/structure/disposaloutlet/O = locate() in src.loc
+ if(O && O.anchored)
+ return
+ */
+
+ //Disposal constructors
+ var/obj/structure/disposalconstruct/C = locate() in src.loc
+ if(C && C.anchored)
+ return
+
+
+
+ var/turf/T = src.loc
+ if(T.intact)
+ return // prevent interaction with T-scanner revealed pipes
+
+ if(istype(I, /obj/item/weapon/weldingtool))
+ var/obj/item/weapon/weldingtool/W = I
+
+ if(W.remove_fuel(0,user))
+ playsound(src.loc, 'Welder2.ogg', 100, 1)
+ // check if anything changed over 2 seconds
+ var/turf/uloc = user.loc
+ var/atom/wloc = W.loc
+ user << "Slicing the disposal pipe."
+ sleep(30)
+ if(!W.isOn()) return
+ if(user.loc == uloc && wloc == W.loc)
+ welded()
+ else
+ user << "You must stay still while welding the pipe."
+ else
+ user << "You need more welding fuel to cut the pipe."
return
- var/turf/T = src.loc
- if(T.intact)
- return // prevent interaction with T-scanner revealed pipes
-
- if(istype(I, /obj/item/weapon/weldingtool))
- var/obj/item/weapon/weldingtool/W = I
-
- if(W.welding)
- if(W.remove_fuel(0,user))
- W:welding = 2
- playsound(src.loc, 'Welder2.ogg', 100, 1)
- // check if anything changed over 2 seconds
- var/turf/uloc = user.loc
- var/atom/wloc = W.loc
- user << "Slicing the disposal pipe."
- sleep(30)
- if(user.loc == uloc && wloc == W.loc)
- welded()
- else
- user << "You must stay still while welding the pipe."
- W:welding = 1
- else
- user << "You need more welding fuel to cut the pipe."
- return
-
// would transfer to next pipe segment, but we are in a trunk
// if not entering from disposal bin,
// transfer to linked object (outlet or bin)
- transfer(var/obj/structure/disposalholder/H)
+/obj/structure/disposalpipe/trunk/transfer(var/obj/structure/disposalholder/H)
- if(H.dir == DOWN) // we just entered from a disposer
- return ..() // so do base transfer proc
- // otherwise, go to the linked object
- if(linked)
- var/obj/structure/disposaloutlet/O = linked
- if(istype(O) && (H))
- O.expel(H) // expel at outlet
- else
- var/obj/machinery/disposal/D = linked
- if(H)
- D.expel(H) // expel at disposal
+ if(H.dir == DOWN) // we just entered from a disposer
+ return ..() // so do base transfer proc
+ // otherwise, go to the linked object
+ if(linked)
+ var/obj/structure/disposaloutlet/O = linked
+ if(istype(O) && (H))
+ O.expel(H) // expel at outlet
else
+ var/obj/machinery/disposal/D = linked
if(H)
- src.expel(H, src.loc, 0) // expel at turf
- return null
+ D.expel(H) // expel at disposal
+ else
+ if(H)
+ src.expel(H, src.loc, 0) // expel at turf
+ return null
// nextdir
- nextdir(var/fromdir)
- if(fromdir == DOWN)
- return dir
- else
- return 0
+/obj/structure/disposalpipe/trunk/nextdir(var/fromdir)
+ if(fromdir == DOWN)
+ return dir
+ else
+ return 0
// a broken pipe
/obj/structure/disposalpipe/broken
@@ -1369,6 +1390,11 @@
spawn(1)
target = get_ranged_target_turf(src, dir, 10)
+
+ var/obj/structure/disposalpipe/trunk/trunk = locate() in src.loc
+ if(trunk)
+ trunk.linked = src // link the pipe trunk to self
+
// expel the contents of the holder object, then delete it
// called when the holder exits the outlet
proc/expel(var/obj/structure/disposalholder/H)
@@ -1419,8 +1445,8 @@
if(W.remove_fuel(0,user))
playsound(src.loc, 'Welder2.ogg', 100, 1)
user << "You start slicing the floorweld off the disposal outlet."
- W:welding = 2
if(do_after(user,20))
+ if(!src || !W.isOn()) return
user << "You sliced the floorweld off the disposal outlet."
var/obj/structure/disposalconstruct/C = new (src.loc)
C.ptype = 7 // 7 = outlet
@@ -1428,7 +1454,6 @@
C.anchored = 1
C.density = 1
del(src)
- W:welding = 1
return
else
user << "You need more welding fuel to complete this task."
diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm
index d47bd60b162..641f2cc7aa6 100755
--- a/code/modules/recycling/sortingmachinery.dm
+++ b/code/modules/recycling/sortingmachinery.dm
@@ -375,6 +375,14 @@
var/defaultDestination = "Disposals"
var/c_mode = 0
+
+ New()
+ ..()
+ spawn(5)
+ trunk = locate() in src.loc
+ if(trunk)
+ trunk.linked = src // link the pipe trunk to self
+
interact()
return
@@ -451,8 +459,8 @@
if(W.remove_fuel(0,user))
playsound(src.loc, 'Welder2.ogg', 100, 1)
user << "You start slicing the floorweld off the delivery chute."
- W:welding = 2
if(do_after(user,20))
+ if(!src || !W.isOn()) return
user << "You sliced the floorweld off the delivery chute."
var/obj/structure/disposalconstruct/C = new (src.loc)
C.ptype = 8 // 8 = Delivery chute
@@ -460,7 +468,6 @@
C.anchored = 1
C.density = 1
del(src)
- W:welding = 1
return
else
user << "You need more welding fuel to complete this task."
diff --git a/icons/mob/eyes.dmi b/icons/mob/eyes.dmi
index df619e1d67f..5aec6ce9a6f 100644
Binary files a/icons/mob/eyes.dmi and b/icons/mob/eyes.dmi differ
diff --git a/icons/mob/screen1_Midnight.dmi b/icons/mob/screen1_Midnight.dmi
index e37b1cce29a..405e653687d 100644
Binary files a/icons/mob/screen1_Midnight.dmi and b/icons/mob/screen1_Midnight.dmi differ
diff --git a/icons/mob/screen1_Orange.dmi b/icons/mob/screen1_Orange.dmi
index fb1136a5347..5ace28041c6 100644
Binary files a/icons/mob/screen1_Orange.dmi and b/icons/mob/screen1_Orange.dmi differ
diff --git a/icons/mob/screen1_old.dmi b/icons/mob/screen1_old.dmi
index 37d67820992..03e76e44cb7 100644
Binary files a/icons/mob/screen1_old.dmi and b/icons/mob/screen1_old.dmi differ
diff --git a/icons/obj/ERP.dmi b/icons/obj/ERP.dmi
deleted file mode 100644
index 972ddab18f6..00000000000
Binary files a/icons/obj/ERP.dmi and /dev/null differ
diff --git a/icons/obj/doors/Dooratmo.dmi b/icons/obj/doors/Dooratmo.dmi
index 787d1483d60..70837f3e501 100644
Binary files a/icons/obj/doors/Dooratmo.dmi and b/icons/obj/doors/Dooratmo.dmi differ
diff --git a/icons/obj/doors/Doorcomglass.dmi b/icons/obj/doors/Doorcomglass.dmi
index a66adcd6741..f622f327681 100644
Binary files a/icons/obj/doors/Doorcomglass.dmi and b/icons/obj/doors/Doorcomglass.dmi differ
diff --git a/icons/obj/doors/Doormining.dmi b/icons/obj/doors/Doormining.dmi
index 6829029b164..f08a4000d1f 100644
Binary files a/icons/obj/doors/Doormining.dmi and b/icons/obj/doors/Doormining.dmi differ
diff --git a/icons/obj/doors/Doorminingglass.dmi b/icons/obj/doors/Doorminingglass.dmi
index 41d1ff24562..c6ec22a142a 100644
Binary files a/icons/obj/doors/Doorminingglass.dmi and b/icons/obj/doors/Doorminingglass.dmi differ
diff --git a/icons/obj/pda.dmi b/icons/obj/pda.dmi
index a3dea0e843d..8418708ddbb 100644
Binary files a/icons/obj/pda.dmi and b/icons/obj/pda.dmi differ
diff --git a/maps/tgstation.2.0.8.dmm b/maps/tgstation.2.0.8.dmm
index 37602531a50..96e74ec4da3 100755
--- a/maps/tgstation.2.0.8.dmm
+++ b/maps/tgstation.2.0.8.dmm
@@ -5943,21 +5943,21 @@
"cko" = (/turf/space,/area/syndicate_station/one)
"ckp" = (/turf/space,/area/syndicate_station/four)
"ckq" = (/turf/unsimulated/wall,/area)
-"ckr" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns15,/area)
-"cks" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns9,/area)
-"ckt" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns5,/area)
-"cku" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns12,/area)
-"ckv" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns8,/area)
-"ckw" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns3,/area)
-"ckx" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns6,/area)
-"cky" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns7,/area)
-"ckz" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns4,/area)
-"ckA" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns14,/area)
-"ckB" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns1,/area)
-"ckC" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns11,/area)
-"ckD" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns13,/area)
-"ckE" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns2,/area)
-"ckF" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns10,/area)
+"ckr" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns15,/area)
+"cks" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns9,/area)
+"ckt" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns5,/area)
+"cku" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns12,/area)
+"ckv" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns8,/area)
+"ckw" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns3,/area)
+"ckx" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns6,/area)
+"cky" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns7,/area)
+"ckz" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns4,/area)
+"ckA" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns14,/area)
+"ckB" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns1,/area)
+"ckC" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns11,/area)
+"ckD" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns13,/area)
+"ckE" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns2,/area)
+"ckF" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns10,/area)
"ckG" = (/turf/space/transit/east/shuttlespace_ew13,/area)
"ckH" = (/turf/space/transit/east/shuttlespace_ew14,/area)
"ckI" = (/turf/space/transit/east/shuttlespace_ew15,/area)
@@ -5965,21 +5965,21 @@
"ckK" = (/turf/space/transit/east/shuttlespace_ew2,/area)
"ckL" = (/turf/space/transit/east/shuttlespace_ew3,/area)
"ckM" = (/turf/space/transit/east/shuttlespace_ew4,/area)
-"ckN" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew5,/area)
-"ckO" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew6,/area)
-"ckP" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew7,/area)
-"ckQ" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew8,/area)
-"ckR" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew9,/area)
-"ckS" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew10,/area)
-"ckT" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew11,/area)
-"ckU" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew12,/area)
-"ckV" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew13,/area)
-"ckW" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew14,/area)
-"ckX" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew15,/area)
-"ckY" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew1,/area)
-"ckZ" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew2,/area)
-"cla" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew3,/area)
-"clb" = (/obj/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew4,/area)
+"ckN" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew5,/area)
+"ckO" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew6,/area)
+"ckP" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew7,/area)
+"ckQ" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew8,/area)
+"ckR" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew9,/area)
+"ckS" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew10,/area)
+"ckT" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew11,/area)
+"ckU" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew12,/area)
+"ckV" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew13,/area)
+"ckW" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew14,/area)
+"ckX" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew15,/area)
+"ckY" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew1,/area)
+"ckZ" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew2,/area)
+"cla" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew3,/area)
+"clb" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew4,/area)
"clc" = (/turf/space{icon_state = "black"},/area)
"cld" = (/turf/unsimulated/wall{icon = 'mineral_walls.dmi'; icon_state = "iron6"},/area)
"cle" = (/obj/structure/window/reinforced,/turf/unsimulated/wall{icon = 'mineral_walls.dmi'; icon_state = "iron12"},/area)
@@ -6026,31 +6026,31 @@
"clT" = (/turf/simulated/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/source_emptycourt)
"clU" = (/turf/simulated/floor/holofloor{dir = 8; icon_state = "blue"},/area/holodeck/source_emptycourt)
"clV" = (/turf/simulated/floor/holofloor{dir = 4; icon_state = "blue"},/area/holodeck/source_emptycourt)
-"clW" = (/obj/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew13,/area)
-"clX" = (/obj/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew14,/area)
-"clY" = (/obj/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew15,/area)
-"clZ" = (/obj/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew1,/area)
-"cma" = (/obj/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew2,/area)
-"cmb" = (/obj/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew3,/area)
-"cmc" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns13,/area)
-"cmd" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area)
-"cme" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area)
-"cmf" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area)
-"cmg" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area)
-"cmh" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area)
-"cmi" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns9,/area)
-"cmj" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns2,/area)
-"cmk" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns13,/area)
-"cml" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area)
-"cmm" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area)
-"cmn" = (/obj/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew8,/area)
+"clW" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew13,/area)
+"clX" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew14,/area)
+"clY" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew15,/area)
+"clZ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew1,/area)
+"cma" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew2,/area)
+"cmb" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew3,/area)
+"cmc" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns13,/area)
+"cmd" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area)
+"cme" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area)
+"cmf" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area)
+"cmg" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area)
+"cmh" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area)
+"cmi" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns9,/area)
+"cmj" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns2,/area)
+"cmk" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns13,/area)
+"cml" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area)
+"cmm" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area)
+"cmn" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew8,/area)
"cmo" = (/turf/space/transit/east/shuttlespace_ew7,/area/shuttle/escape_pod5/transit)
"cmp" = (/turf/space/transit/east/shuttlespace_ew8,/area/shuttle/escape_pod5/transit)
"cmq" = (/turf/space/transit/east/shuttlespace_ew9,/area/shuttle/escape_pod5/transit)
"cmr" = (/turf/space/transit/east/shuttlespace_ew10,/area/shuttle/escape_pod5/transit)
-"cms" = (/obj/step_trigger/thrower{direction = 1; name = "thrower_throwup"; nostop = 0; tiles = 0},/turf/space/transit/east/shuttlespace_ew13,/area)
-"cmt" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns9,/area)
-"cmu" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area)
+"cms" = (/obj/effect/step_trigger/thrower{direction = 1; name = "thrower_throwup"; nostop = 0; tiles = 0},/turf/space/transit/east/shuttlespace_ew13,/area)
+"cmt" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns9,/area)
+"cmu" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area)
"cmv" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape/transit)
"cmw" = (/turf/space/transit/north/shuttlespace_ns14,/area/shuttle/escape/transit)
"cmx" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/escape/transit)
@@ -6062,34 +6062,34 @@
"cmD" = (/turf/space/transit/east/shuttlespace_ew3,/area/shuttle/escape_pod5/transit)
"cmE" = (/turf/space/transit/east/shuttlespace_ew4,/area/shuttle/escape_pod5/transit)
"cmF" = (/turf/space/transit/east/shuttlespace_ew5,/area/shuttle/escape_pod5/transit)
-"cmG" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/space/transit/east/shuttlespace_ew7,/area)
+"cmG" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/space/transit/east/shuttlespace_ew7,/area)
"cmH" = (/turf/simulated/floor/holofloor{icon_state = "bluecorner"},/area/holodeck/source_emptycourt)
"cmI" = (/turf/simulated/floor/holofloor{icon_state = "blue"},/area/holodeck/source_emptycourt)
"cmJ" = (/turf/simulated/floor/holofloor{dir = 8; icon_state = "bluecorner"},/area/holodeck/source_emptycourt)
-"cmK" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area)
+"cmK" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area)
"cmL" = (/turf/space/transit/north/shuttlespace_ns2,/area/shuttle/escape/transit)
"cmM" = (/turf/space/transit/north/shuttlespace_ns13,/area/shuttle/escape/transit)
"cmN" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape/transit)
"cmO" = (/turf/space/transit/north/shuttlespace_ns7,/area/shuttle/escape/transit)
-"cmP" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area)
-"cmQ" = (/obj/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew7,/area)
+"cmP" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area)
+"cmQ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew7,/area)
"cmR" = (/turf/space/transit/east/shuttlespace_ew11,/area/shuttle/escape_pod5/transit)
"cmS" = (/turf/space/transit/east/shuttlespace_ew12,/area/shuttle/escape_pod5/transit)
"cmT" = (/turf/space/transit/east/shuttlespace_ew13,/area/shuttle/escape_pod5/transit)
"cmU" = (/turf/space/transit/east/shuttlespace_ew14,/area/shuttle/escape_pod5/transit)
-"cmV" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/space/transit/east/shuttlespace_ew12,/area)
+"cmV" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/space/transit/east/shuttlespace_ew12,/area)
"cmW" = (/turf/simulated/floor/holofloor{dir = 10; icon_state = "blue"},/area/holodeck/source_emptycourt)
"cmX" = (/turf/simulated/floor/holofloor{dir = 6; icon_state = "blue"},/area/holodeck/source_emptycourt)
"cmY" = (/turf/space/transit/north/shuttlespace_ns1,/area/shuttle/escape/transit)
"cmZ" = (/turf/space/transit/north/shuttlespace_ns6,/area/shuttle/escape/transit)
-"cna" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area)
-"cnb" = (/obj/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew4,/area)
-"cnc" = (/obj/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew5,/area)
+"cna" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area)
+"cnb" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew4,/area)
+"cnc" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew5,/area)
"cnd" = (/turf/unsimulated/wall{icon = 'mineral_walls.dmi'; icon_state = "iron7"},/area)
"cne" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/wall{icon = 'mineral_walls.dmi'; icon_state = "iron12"},/area)
"cnf" = (/turf/unsimulated/wall{icon = 'mineral_walls.dmi'; icon_state = "iron11"},/area)
"cng" = (/turf/space/transit/north/shuttlespace_ns5,/area/shuttle/escape/transit)
-"cnh" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns2,/area)
+"cnh" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns2,/area)
"cni" = (/turf/simulated/floor/holofloor/grass,/area/holodeck/source_beach)
"cnj" = (/obj/structure/table/holotable,/obj/machinery/readybutton,/turf/simulated/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/source_thunderdomecourt)
"cnk" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/under/color/red,/obj/item/weapon/melee/energy/sword/holosword/red,/turf/simulated/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/source_thunderdomecourt)
@@ -6101,7 +6101,7 @@
"cnq" = (/turf/simulated/floor/holofloor,/area/holodeck/source_boxingcourt)
"cnr" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove{icon_state = "boxingyellow"},/turf/simulated/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/source_boxingcourt)
"cns" = (/turf/simulated/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/source_boxingcourt)
-"cnt" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area)
+"cnt" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area)
"cnu" = (/obj/effect/overlay{anchored = 1; icon = 'icons/misc/beach2.dmi'; icon_state = "palm2"; layer = 10; name = "palm tree"},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_beach)
"cnv" = (/obj/effect/overlay{anchored = 1; icon = 'icons/misc/beach2.dmi'; icon_state = "palm1"; layer = 10; name = "palm tree"},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_beach)
"cnw" = (/turf/simulated/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/source_thunderdomecourt)
@@ -6114,34 +6114,34 @@
"cnD" = (/turf/simulated/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/source_boxingcourt)
"cnE" = (/turf/simulated/floor/holofloor{dir = 1; icon_state = "redcorner"},/area/holodeck/source_boxingcourt)
"cnF" = (/turf/simulated/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/source_boxingcourt)
-"cnG" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area)
-"cnH" = (/obj/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew6,/area)
-"cnI" = (/obj/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew9,/area)
+"cnG" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area)
+"cnH" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew6,/area)
+"cnI" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew9,/area)
"cnJ" = (/turf/simulated/floor/holofloor,/area/holodeck/source_thunderdomecourt)
"cnK" = (/turf/space/transit/north/shuttlespace_ns3,/area/shuttle/escape/transit)
-"cnL" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area)
-"cnM" = (/obj/step_trigger/thrower{direction = 1; name = "thrower_throwup"; nostop = 0; tiles = 0},/turf/space/transit/east/shuttlespace_ew14,/area)
-"cnN" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns13,/area)
-"cnO" = (/obj/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew11,/area)
-"cnP" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/space/transit/east/shuttlespace_ew1,/area)
+"cnL" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area)
+"cnM" = (/obj/effect/step_trigger/thrower{direction = 1; name = "thrower_throwup"; nostop = 0; tiles = 0},/turf/space/transit/east/shuttlespace_ew14,/area)
+"cnN" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns13,/area)
+"cnO" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew11,/area)
+"cnP" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/space/transit/east/shuttlespace_ew1,/area)
"cnQ" = (/obj/structure/holowindow,/turf/simulated/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/source_thunderdomecourt)
"cnR" = (/obj/structure/holowindow,/turf/simulated/floor/holofloor,/area/holodeck/source_thunderdomecourt)
"cnS" = (/obj/structure/holowindow,/turf/simulated/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/source_thunderdomecourt)
-"cnT" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area)
-"cnU" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/space/transit/east/shuttlespace_ew10,/area)
+"cnT" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area)
+"cnU" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/space/transit/east/shuttlespace_ew10,/area)
"cnV" = (/obj/structure/holowindow{dir = 1},/turf/simulated/floor/holofloor{dir = 8; icon_state = "blue"},/area/holodeck/source_thunderdomecourt)
"cnW" = (/obj/structure/holowindow{dir = 1},/turf/simulated/floor/holofloor,/area/holodeck/source_thunderdomecourt)
"cnX" = (/obj/structure/holowindow{dir = 1},/turf/simulated/floor/holofloor{dir = 4; icon_state = "blue"},/area/holodeck/source_thunderdomecourt)
"cnY" = (/turf/simulated/floor/holofloor{dir = 8; icon_state = "blue"},/area/holodeck/source_boxingcourt)
"cnZ" = (/turf/simulated/floor/holofloor{dir = 4; icon_state = "blue"},/area/holodeck/source_boxingcourt)
-"coa" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area)
-"cob" = (/obj/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew10,/area)
-"coc" = (/obj/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew12,/area)
+"coa" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area)
+"cob" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew10,/area)
+"coc" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew12,/area)
"cod" = (/turf/simulated/floor/holofloor{icon = 'beach.dmi'; icon_state = "sand"; name = "Soft sand"},/area/holodeck/source_beach)
"coe" = (/turf/simulated/floor/holofloor{dir = 8; icon_state = "blue"},/area/holodeck/source_thunderdomecourt)
"cof" = (/turf/simulated/floor/holofloor{dir = 4; icon_state = "blue"},/area/holodeck/source_thunderdomecourt)
-"cog" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area)
-"coh" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns9,/area)
+"cog" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area)
+"coh" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns9,/area)
"coi" = (/turf/simulated/floor/holofloor{icon = 'icons/misc/beach2.dmi'; icon_state = "sandwater"; name = "Beach Front"},/area/holodeck/source_beach)
"coj" = (/turf/simulated/floor/holofloor{icon_state = "bluecorner"},/area/holodeck/source_thunderdomecourt)
"cok" = (/turf/simulated/floor/holofloor{icon_state = "blue"},/area/holodeck/source_thunderdomecourt)
@@ -6149,7 +6149,7 @@
"com" = (/turf/simulated/floor/holofloor{icon_state = "bluecorner"},/area/holodeck/source_boxingcourt)
"con" = (/turf/simulated/floor/holofloor{icon_state = "blue"},/area/holodeck/source_boxingcourt)
"coo" = (/turf/simulated/floor/holofloor{dir = 8; icon_state = "bluecorner"},/area/holodeck/source_boxingcourt)
-"cop" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area)
+"cop" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area)
"coq" = (/obj/effect/overlay{anchored = 1; icon = 'beach.dmi'; icon_state = "water2"; layer = 10; mouse_opacity = 0; name = "water"},/turf/simulated/floor/holofloor{icon = 'beach.dmi'; icon_plating = "water"; icon_regular_floor = "water"; icon_state = "water"; name = "Water"},/area/holodeck/source_beach)
"cor" = (/turf/simulated/floor/holofloor{dir = 10; icon_state = "blue"},/area/holodeck/source_thunderdomecourt)
"cos" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/under/color/green,/obj/item/weapon/melee/energy/sword/holosword/green,/turf/simulated/floor/holofloor{dir = 6; icon_state = "blue"},/area/holodeck/source_thunderdomecourt)
@@ -6160,12 +6160,12 @@
"cox" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove,/turf/simulated/floor/holofloor{dir = 6; icon_state = "blue"},/area/holodeck/source_boxingcourt)
"coy" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove,/turf/simulated/floor/holofloor{dir = 10; icon_state = "blue"},/area/holodeck/source_boxingcourt)
"coz" = (/turf/simulated/floor/holofloor{dir = 6; icon_state = "blue"},/area/holodeck/source_boxingcourt)
-"coA" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns7,/area)
+"coA" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns7,/area)
"coB" = (/turf/unsimulated/wall{icon = 'mineral_walls.dmi'; icon_state = "iron5"},/area)
"coC" = (/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/wall{icon = 'mineral_walls.dmi'; icon_state = "iron12"},/area)
"coD" = (/turf/unsimulated/wall{icon = 'mineral_walls.dmi'; icon_state = "iron13"},/area)
"coE" = (/turf/unsimulated/wall{icon = 'mineral_walls.dmi'; icon_state = "iron9"},/area)
-"coF" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area)
+"coF" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area)
"coG" = (/turf/space,/area/shuttle/escape_pod1/centcom)
"coH" = (/turf/space,/area/shuttle/escape_pod2/centcom)
"coI" = (/turf/space,/area/shuttle/escape_pod3/centcom)
@@ -6228,14 +6228,14 @@
"cpN" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/centcom/evac)
"cpO" = (/obj/machinery/sleeper,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/centcom/evac)
"cpP" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"; dir = 8},/turf/space,/area/centcom/evac)
-"cpQ" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area)
-"cpR" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area)
-"cpS" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area)
-"cpT" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area)
-"cpU" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area)
-"cpV" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns2,/area)
-"cpW" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area)
-"cpX" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area)
+"cpQ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area)
+"cpR" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area)
+"cpS" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area)
+"cpT" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area)
+"cpU" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area)
+"cpV" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns2,/area)
+"cpW" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area)
+"cpX" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area)
"cpY" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/centcom/evac)
"cpZ" = (/obj/machinery/computer/secure_data,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
"cqa" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/centcom/evac)
@@ -6243,12 +6243,12 @@
"cqc" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/escape_pod1/transit)
"cqd" = (/turf/space/transit/north/shuttlespace_ns4,/area/shuttle/escape_pod1/transit)
"cqe" = (/turf/space/transit/north/shuttlespace_ns6,/area/shuttle/escape_pod1/transit)
-"cqf" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area)
-"cqg" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area)
+"cqf" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area)
+"cqg" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area)
"cqh" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape_pod2/transit)
"cqi" = (/turf/space/transit/north/shuttlespace_ns1,/area/shuttle/escape_pod2/transit)
"cqj" = (/turf/space/transit/north/shuttlespace_ns7,/area/shuttle/escape_pod2/transit)
-"cqk" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns13,/area)
+"cqk" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns13,/area)
"cql" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; req_access_txt = "100"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
"cqm" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/PDAbox{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/id_kit{pixel_x = 2},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
"cqn" = (/obj/structure/table,/obj/item/weapon/book/manual/medical_cloning{pixel_y = 6},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/centcom/evac)
@@ -6258,29 +6258,29 @@
"cqr" = (/turf/space/transit/north/shuttlespace_ns8,/area/shuttle/escape_pod1/transit)
"cqs" = (/turf/space/transit/north/shuttlespace_ns3,/area/shuttle/escape_pod1/transit)
"cqt" = (/turf/space/transit/north/shuttlespace_ns5,/area/shuttle/escape_pod1/transit)
-"cqu" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns9,/area)
+"cqu" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns9,/area)
"cqv" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape_pod2/transit)
"cqw" = (/turf/space/transit/north/shuttlespace_ns15,/area/shuttle/escape_pod2/transit)
"cqx" = (/turf/space/transit/north/shuttlespace_ns6,/area/shuttle/escape_pod2/transit)
-"cqy" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area)
+"cqy" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area)
"cqz" = (/turf/space/transit/north/shuttlespace_ns7,/area/shuttle/escape_pod1/transit)
"cqA" = (/turf/space/transit/north/shuttlespace_ns2,/area/shuttle/escape_pod1/transit)
-"cqB" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area)
+"cqB" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area)
"cqC" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/escape_pod2/transit)
"cqD" = (/turf/space/transit/north/shuttlespace_ns14,/area/shuttle/escape_pod2/transit)
"cqE" = (/turf/space/transit/north/shuttlespace_ns5,/area/shuttle/escape_pod2/transit)
"cqF" = (/turf/space/transit/north/shuttlespace_ns1,/area/shuttle/escape_pod1/transit)
-"cqG" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns7,/area)
+"cqG" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns7,/area)
"cqH" = (/turf/space/transit/north/shuttlespace_ns8,/area/shuttle/escape_pod2/transit)
"cqI" = (/turf/space/transit/north/shuttlespace_ns13,/area/shuttle/escape_pod2/transit)
"cqJ" = (/turf/space/transit/north/shuttlespace_ns4,/area/shuttle/escape_pod2/transit)
-"cqK" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area)
-"cqL" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area)
-"cqM" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area)
+"cqK" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area)
+"cqL" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area)
+"cqM" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area)
"cqN" = (/turf/space/transit/north/shuttlespace_ns13,/area/shuttle/escape_pod3/transit)
"cqO" = (/turf/space/transit/north/shuttlespace_ns5,/area/shuttle/escape_pod3/transit)
"cqP" = (/turf/space/transit/north/shuttlespace_ns15,/area/shuttle/escape_pod3/transit)
-"cqQ" = (/obj/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area)
+"cqQ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area)
"cqR" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape_pod3/transit)
"cqS" = (/turf/space/transit/north/shuttlespace_ns4,/area/shuttle/escape_pod3/transit)
"cqT" = (/turf/space/transit/north/shuttlespace_ns14,/area/shuttle/escape_pod3/transit)
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM.sln b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM.sln
new file mode 100644
index 00000000000..22ed586bbbf
--- /dev/null
+++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnstandardnessTestForDM", "UnstandardnessTestForDM\UnstandardnessTestForDM.csproj", "{A0EEBFC9-41D4-474D-853D-126AFDFB82DE}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x86 = Debug|x86
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {A0EEBFC9-41D4-474D-853D-126AFDFB82DE}.Debug|x86.ActiveCfg = Debug|x86
+ {A0EEBFC9-41D4-474D-853D-126AFDFB82DE}.Debug|x86.Build.0 = Debug|x86
+ {A0EEBFC9-41D4-474D-853D-126AFDFB82DE}.Release|x86.ActiveCfg = Release|x86
+ {A0EEBFC9-41D4-474D-853D-126AFDFB82DE}.Release|x86.Build.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM.suo b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM.suo
new file mode 100644
index 00000000000..e62a5089375
Binary files /dev/null and b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM.suo differ
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Form1.Designer.cs b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Form1.Designer.cs
new file mode 100644
index 00000000000..5ea6e86aa7a
--- /dev/null
+++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Form1.Designer.cs
@@ -0,0 +1,160 @@
+namespace UnstandardnessTestForDM
+{
+ partial class Form1
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.button1 = new System.Windows.Forms.Button();
+ this.listBox1 = new System.Windows.Forms.ListBox();
+ this.panel1 = new System.Windows.Forms.Panel();
+ this.listBox2 = new System.Windows.Forms.ListBox();
+ this.label4 = new System.Windows.Forms.Label();
+ this.label3 = new System.Windows.Forms.Label();
+ this.label2 = new System.Windows.Forms.Label();
+ this.label1 = new System.Windows.Forms.Label();
+ this.label5 = new System.Windows.Forms.Label();
+ this.panel1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // button1
+ //
+ this.button1.Location = new System.Drawing.Point(12, 12);
+ this.button1.Name = "button1";
+ this.button1.Size = new System.Drawing.Size(222, 23);
+ this.button1.TabIndex = 0;
+ this.button1.Text = "Locate all #defines";
+ this.button1.UseVisualStyleBackColor = true;
+ this.button1.Click += new System.EventHandler(this.button1_Click);
+ //
+ // listBox1
+ //
+ this.listBox1.FormattingEnabled = true;
+ this.listBox1.Location = new System.Drawing.Point(12, 82);
+ this.listBox1.Name = "listBox1";
+ this.listBox1.Size = new System.Drawing.Size(696, 160);
+ this.listBox1.TabIndex = 1;
+ this.listBox1.SelectedIndexChanged += new System.EventHandler(this.listBox1_SelectedIndexChanged);
+ //
+ // panel1
+ //
+ this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.panel1.Controls.Add(this.listBox2);
+ this.panel1.Controls.Add(this.label4);
+ this.panel1.Controls.Add(this.label3);
+ this.panel1.Controls.Add(this.label2);
+ this.panel1.Controls.Add(this.label1);
+ this.panel1.Location = new System.Drawing.Point(12, 297);
+ this.panel1.Name = "panel1";
+ this.panel1.Size = new System.Drawing.Size(696, 244);
+ this.panel1.TabIndex = 2;
+ //
+ // listBox2
+ //
+ this.listBox2.FormattingEnabled = true;
+ this.listBox2.Location = new System.Drawing.Point(8, 71);
+ this.listBox2.Name = "listBox2";
+ this.listBox2.Size = new System.Drawing.Size(683, 160);
+ this.listBox2.TabIndex = 4;
+ //
+ // label4
+ //
+ this.label4.AutoSize = true;
+ this.label4.Location = new System.Drawing.Point(5, 55);
+ this.label4.Name = "label4";
+ this.label4.Size = new System.Drawing.Size(69, 13);
+ this.label4.TabIndex = 3;
+ this.label4.Text = "Referenced: ";
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(5, 42);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(40, 13);
+ this.label3.TabIndex = 2;
+ this.label3.Text = "Value: ";
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(5, 29);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(61, 13);
+ this.label2.TabIndex = 1;
+ this.label2.Text = "Defined in: ";
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.label1.Location = new System.Drawing.Point(3, 0);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(79, 29);
+ this.label1.TabIndex = 0;
+ this.label1.Text = "label1";
+ //
+ // label5
+ //
+ this.label5.AutoSize = true;
+ this.label5.Location = new System.Drawing.Point(9, 38);
+ this.label5.Name = "label5";
+ this.label5.Size = new System.Drawing.Size(81, 13);
+ this.label5.TabIndex = 3;
+ this.label5.Text = "Files searched: ";
+ //
+ // Form1
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(720, 553);
+ this.Controls.Add(this.label5);
+ this.Controls.Add(this.panel1);
+ this.Controls.Add(this.listBox1);
+ this.Controls.Add(this.button1);
+ this.Name = "Form1";
+ this.Text = "Unstandardness Test For DM";
+ this.panel1.ResumeLayout(false);
+ this.panel1.PerformLayout();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button button1;
+ private System.Windows.Forms.Panel panel1;
+ private System.Windows.Forms.Label label4;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Label label1;
+ public System.Windows.Forms.ListBox listBox2;
+ public System.Windows.Forms.Label label5;
+ public System.Windows.Forms.ListBox listBox1;
+ }
+}
+
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Form1.cs b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Form1.cs
new file mode 100644
index 00000000000..4966c3f0c18
--- /dev/null
+++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Form1.cs
@@ -0,0 +1,484 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using System.Collections;
+using System.IO;
+
+namespace UnstandardnessTestForDM
+{
+ public partial class Form1 : Form
+ {
+ DMSource source;
+
+ public Form1()
+ {
+ InitializeComponent();
+ source = new DMSource();
+ source.mainform = this;
+ }
+
+ private void button1_Click(object sender, EventArgs e)
+ {
+ source.find_all_defines();
+ generate_define_report();
+ }
+
+ public void generate_define_report()
+ {
+
+ TextWriter tw = new StreamWriter("DEFINES REPORT.txt");
+
+ tw.WriteLine("Unstandardness Test For DM report for DEFINES");
+ tw.WriteLine("Generated on " + DateTime.Now);
+ tw.WriteLine("Total number of defines " + source.defines.Count());
+ tw.WriteLine("Total number of Files " + source.filessearched);
+ tw.WriteLine("Total number of references " + source.totalreferences);
+ tw.WriteLine("Total number of errorous defines " + source.errordefines);
+ tw.WriteLine("------------------------------------------------");
+
+ foreach (Define d in source.defines)
+ {
+ tw.WriteLine(d.name);
+ tw.WriteLine("\tValue: " + d.value);
+ tw.WriteLine("\tComment: " + d.comment);
+ tw.WriteLine("\tDefined in: " + d.location + " : " + d.line);
+ tw.WriteLine("\tNumber of references: " + d.references.Count());
+ foreach (String s in d.references)
+ {
+ tw.WriteLine("\t\t" + s);
+ }
+ }
+
+ tw.WriteLine("------------------------------------------------");
+ tw.WriteLine("SUCCESS");
+
+ tw.Close();
+
+ }
+
+ private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ try
+ {
+ Define d = (Define)listBox1.Items[listBox1.SelectedIndex];
+ label1.Text = d.name;
+ label2.Text = "Defined in: " + d.location + " : " + d.line;
+ label3.Text = "Value: " + d.value;
+ label4.Text = "References: " + d.references.Count();
+ listBox2.Items.Clear();
+ foreach (String s in d.references)
+ {
+ listBox2.Items.Add(s);
+ }
+
+ }
+ catch (Exception ex) { Console.WriteLine("ERROR HERE: " + ex.Message); }
+ }
+
+
+ }
+
+ public class DMSource
+ {
+ public List defines;
+ public const int FLAG_DEFINE = 1;
+ public Form1 mainform;
+
+ public int filessearched = 0;
+ public int totalreferences = 0;
+ public int errordefines = 0;
+
+ public List filenames;
+
+ public DMSource()
+ {
+ defines = new List();
+ filenames = new List();
+ }
+
+ public void find_all_defines()
+ {
+ find_all_files();
+ foreach(String filename in filenames){
+ searchFileForDefines(filename);
+ }
+
+ }
+
+ public void find_all_files()
+ {
+ filenames = new List();
+ String dmefilename = "";
+
+ foreach (string f in Directory.GetFiles("."))
+ {
+ if (f.ToLower().EndsWith(".dme"))
+ {
+ dmefilename = f;
+ break;
+ }
+ }
+
+ if (dmefilename.Equals(""))
+ {
+ MessageBox.Show("dme file not found");
+ return;
+ }
+
+ using (var reader = File.OpenText(dmefilename))
+ {
+ String s;
+ while (true)
+ {
+ s = reader.ReadLine();
+
+ if (!(s is String))
+ break;
+
+ if (s.StartsWith("#include"))
+ {
+ int start = s.IndexOf("\"")+1;
+ s = s.Substring(start, s.Length - 11);
+
+ if (s.EndsWith(".dm"))
+ {
+ filenames.Add(s);
+ }
+ }
+
+ s = s.Trim(' ');
+ if (s == "") { continue; }
+ }
+ reader.Close();
+ }
+ }
+
+
+ public void DirSearch(string sDir, int flag)
+ {
+ try
+ {
+ foreach (string d in Directory.GetDirectories(sDir))
+ {
+ foreach (string f in Directory.GetFiles(d))
+ {
+ if (f.ToLower().EndsWith(".dm"))
+ {
+ if ((flag & FLAG_DEFINE) > 0)
+ {
+ searchFileForDefines(f);
+ }
+ }
+ }
+ DirSearch(d, flag);
+ }
+ }
+ catch (System.Exception excpt)
+ {
+ Console.WriteLine("ERROR IN DIRSEARCH");
+ Console.WriteLine(excpt.Message);
+ Console.WriteLine(excpt.Data);
+ Console.WriteLine(excpt.ToString());
+ Console.WriteLine(excpt.StackTrace);
+ Console.WriteLine("END OF ERROR IN DIRSEARCH");
+ }
+ }
+
+ //DEFINES
+ public void searchFileForDefines(String fileName)
+ {
+ filessearched++;
+ FileInfo f = new FileInfo(fileName);
+ List lines = new List();
+ List lines_without_comments = new List();
+
+ mainform.label5.Text = "Files searched: " + filessearched + "; Defines found: " + defines.Count() + "; References found: " + totalreferences + "; Errorous defines: " + errordefines;
+ mainform.label5.Refresh();
+
+ //This code segment reads the file and stores it into the lines variable.
+ using (var reader = File.OpenText(fileName))
+ {
+ try
+ {
+ String s;
+ while (true)
+ {
+ s = reader.ReadLine();
+ lines.Add(s);
+ s = s.Trim(' ');
+ if (s == "") { continue; }
+ }
+ }
+ catch { }
+ reader.Close();
+ }
+
+ mainform.listBox1.Items.Add("ATTEMPTING: " + fileName);
+ lines_without_comments = remove_comments(lines);
+
+ /*TextWriter tw = new StreamWriter(fileName);
+ foreach (String s in lines_without_comments)
+ {
+ tw.WriteLine(s);
+ }
+ tw.Close();
+ mainform.listBox1.Items.Add("REWRITE: "+fileName);*/
+
+ try
+ {
+ for (int i = 0; i < lines_without_comments.Count; i++)
+ {
+ String line = lines_without_comments[i];
+
+ if (!(line is string))
+ continue;
+
+ //Console.WriteLine("LINE: " + line);
+
+ foreach (Define define in defines)
+ {
+
+ if (line.IndexOf(define.name) >= 0)
+ {
+ define.references.Add(fileName + " : " + i);
+ totalreferences++;
+ }
+ }
+
+ if( line.ToLower().IndexOf("#define") >= 0 )
+ {
+ line = line.Trim();
+ line = line.Replace('\t', ' ');
+ //Console.WriteLine("LINE = "+line);
+ String[] slist = line.Split(' ');
+ if(slist.Length >= 3){
+ //slist[0] has the value of "#define"
+ String name = slist[1];
+ String value = slist[2];
+
+ for (int j = 3; j < slist.Length; j++)
+ {
+ value += " " + slist[j];
+ //Console.WriteLine("LISTITEM["+j+"] = "+slist[j]);
+ }
+
+ value = value.Trim();
+
+ String comment = "";
+
+ if (value.IndexOf("//") >= 0)
+ {
+ comment = value.Substring(value.IndexOf("//"));
+ value = value.Substring(0, value.IndexOf("//"));
+ }
+
+ comment = comment.Trim();
+ value = value.Trim();
+
+ Define d = new Define(fileName,i,name,value,comment);
+ defines.Add(d);
+ mainform.listBox1.Items.Add(d);
+ mainform.listBox1.Refresh();
+ }else{
+ Define d = new Define(fileName, i, "ERROR ERROR", "Something went wrong here", line);
+ errordefines++;
+ defines.Add(d);
+ mainform.listBox1.Items.Add(d);
+ mainform.listBox1.Refresh();
+ }
+ }
+ }
+ }
+ catch (Exception e) {
+ Console.WriteLine(e.Message);
+ Console.WriteLine(e.StackTrace);
+ MessageBox.Show("Exception: " + e.Message + " | " + e.ToString());
+ }
+ }
+
+ bool iscomment = false;
+ int ismultilinecomment = 0;
+ bool isstring = false;
+ bool ismultilinestring = false;
+ int escapesequence = 0;
+ int stringvar = 0;
+
+ public List remove_comments(List lines)
+ {
+ List r = new List();
+
+ iscomment = false;
+ ismultilinecomment = 0;
+ isstring = false;
+ ismultilinestring = false;
+
+ bool skiponechar = false; //Used so the / in */ doesn't get written;
+
+ for (int i = 0; i < lines.Count(); i++)
+ {
+
+ String line = lines[i];
+
+ if (!(line is String))
+ continue;
+
+ iscomment = false;
+ isstring = false;
+ char ca = ' ';
+ escapesequence = 0;
+
+ String newline = "";
+
+ int k = line.Length;
+
+ for (int j = 0; j < k; j++)
+ {
+
+ char c = line.ToCharArray()[j];
+
+ if (escapesequence == 0)
+ if (normalstatus())
+ {
+ if (ca == '/' && c == '/')
+ {
+ c = ' ';
+ iscomment = true;
+
+ newline = newline.Remove(newline.Length - 1);
+ k = line.Length;
+ }
+ if (ca == '/' && c == '*')
+ {
+ c = ' ';
+ ismultilinecomment = 1;
+ newline = newline.Remove(newline.Length - 1);
+ k = line.Length;
+ }
+ if (c == '"')
+ {
+ isstring = true;
+ }
+ if (ca == '{' && c == '"')
+ {
+ ismultilinestring = true;
+ }
+ }
+ else if (isstring)
+ {
+
+ if (c == '\\')
+ {
+ escapesequence = 2;
+ }
+ else if (stringvar > 0)
+ {
+ if (c == ']')
+ {
+ stringvar--;
+ }
+ else if (c == '[')
+ {
+ stringvar++;
+ }
+ }
+ else if (c == '"')
+ {
+ isstring = false;
+ }
+ else if (c == '[')
+ {
+ stringvar++;
+ }
+ }
+ else if (ismultilinestring)
+ {
+ if (ca == '"' && c == '}')
+ {
+ ismultilinestring = false;
+ }
+ }
+ else if (ismultilinecomment > 0)
+ {
+ if (ca == '/' && c == '*')
+ {
+ c = ' '; //These things are here to prevent /*/ from bieng interpreted as the start and end of a comment.
+ skiponechar = true;
+ ismultilinecomment++;
+ }
+ if (ca == '*' && c == '/')
+ {
+ c = ' '; //These things are here to prevent /*/ from bieng interpreted as the start and end of a comment.
+ skiponechar = true;
+ ismultilinecomment--;
+ }
+ }
+
+ if (!iscomment && (ismultilinecomment==0) && !skiponechar)
+ {
+ newline += c;
+ }
+
+ if (skiponechar)
+ {
+ skiponechar = false;
+ }
+ if (escapesequence > 0)
+ {
+ escapesequence--;
+ }
+ else
+ {
+ ca = c;
+ }
+ }
+
+ r.Add(newline.TrimEnd());
+
+ }
+
+ return r;
+ }
+
+ private bool normalstatus()
+ {
+ return !isstring && !ismultilinestring && (ismultilinecomment==0) && !iscomment && (escapesequence == 0);
+ }
+
+
+ }
+
+ public class Define
+ {
+ public String location;
+ public int line;
+ public String name;
+ public String value;
+ public String comment;
+ public List references;
+
+ public Define(String location, int line, String name, String value, String comment)
+ {
+ this.location = location;
+ this.line = line;
+ this.name = name;
+ this.value = value;
+ this.comment = comment;
+ this.references = new List();
+ }
+
+ public override String ToString()
+ {
+ return "DEFINE: \""+name+"\" is defined as \""+value+"\" AT "+location+" : "+line;
+ }
+
+ }
+
+
+
+
+}
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Form1.resx b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Form1.resx
new file mode 100644
index 00000000000..1af7de150c9
--- /dev/null
+++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Form1.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Program.cs b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Program.cs
new file mode 100644
index 00000000000..1e8ac829d9e
--- /dev/null
+++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Program.cs
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Windows.Forms;
+
+namespace UnstandardnessTestForDM
+{
+ static class Program
+ {
+ ///
+ /// The main entry point for the application.
+ ///
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new Form1());
+ }
+ }
+}
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/AssemblyInfo.cs b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000000..99c88721b31
--- /dev/null
+++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("UnstandardnessTestForDM")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("UnstandardnessTestForDM")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2012")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("c0e09000-1840-4416-8bb2-d86a8227adf1")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Resources.Designer.cs b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Resources.Designer.cs
new file mode 100644
index 00000000000..92534f43fed
--- /dev/null
+++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Resources.Designer.cs
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.239
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace UnstandardnessTestForDM.Properties
+{
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("UnstandardnessTestForDM.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Resources.resx b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Resources.resx
new file mode 100644
index 00000000000..af7dbebbace
--- /dev/null
+++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Settings.Designer.cs b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Settings.Designer.cs
new file mode 100644
index 00000000000..ab81379593f
--- /dev/null
+++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.239
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace UnstandardnessTestForDM.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Settings.settings b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Settings.settings
new file mode 100644
index 00000000000..39645652af6
--- /dev/null
+++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/UnstandardnessTestForDM.csproj b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/UnstandardnessTestForDM.csproj
new file mode 100644
index 00000000000..7cafd94f656
--- /dev/null
+++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/UnstandardnessTestForDM.csproj
@@ -0,0 +1,87 @@
+
+
+
+ Debug
+ x86
+ 8.0.30703
+ 2.0
+ {A0EEBFC9-41D4-474D-853D-126AFDFB82DE}
+ WinExe
+ Properties
+ UnstandardnessTestForDM
+ UnstandardnessTestForDM
+ v4.0
+ Client
+ 512
+
+
+ x86
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ x86
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ Form1.cs
+
+
+
+
+ Form1.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
\ No newline at end of file
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin/Debug/UnstandardnessTestForDM.exe b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin/Debug/UnstandardnessTestForDM.exe
new file mode 100644
index 00000000000..bb55cad8fd7
Binary files /dev/null and b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin/Debug/UnstandardnessTestForDM.exe differ
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin/Debug/UnstandardnessTestForDM.pdb b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin/Debug/UnstandardnessTestForDM.pdb
new file mode 100644
index 00000000000..b89e4d53eb7
Binary files /dev/null and b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin/Debug/UnstandardnessTestForDM.pdb differ
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin/Debug/UnstandardnessTestForDM.vshost.exe b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin/Debug/UnstandardnessTestForDM.vshost.exe
new file mode 100644
index 00000000000..bb84a51ac4f
Binary files /dev/null and b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin/Debug/UnstandardnessTestForDM.vshost.exe differ
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin/Debug/UnstandardnessTestForDM.vshost.exe.manifest b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin/Debug/UnstandardnessTestForDM.vshost.exe.manifest
new file mode 100644
index 00000000000..061c9ca950d
--- /dev/null
+++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin/Debug/UnstandardnessTestForDM.vshost.exe.manifest
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 00000000000..f4263115dfb
Binary files /dev/null and b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/GenerateResource.read.1.tlog b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/GenerateResource.read.1.tlog
new file mode 100644
index 00000000000..247c250f975
Binary files /dev/null and b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/GenerateResource.read.1.tlog differ
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/GenerateResource.write.1.tlog b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/GenerateResource.write.1.tlog
new file mode 100644
index 00000000000..d100f54085b
Binary files /dev/null and b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/GenerateResource.write.1.tlog differ
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.Form1.resources b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.Form1.resources
new file mode 100644
index 00000000000..6c05a9776bd
Binary files /dev/null and b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.Form1.resources differ
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.Properties.Resources.resources b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.Properties.Resources.resources
new file mode 100644
index 00000000000..6c05a9776bd
Binary files /dev/null and b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.Properties.Resources.resources differ
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.csproj.FileListAbsolute.txt b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.csproj.FileListAbsolute.txt
new file mode 100644
index 00000000000..1d36d1cd556
--- /dev/null
+++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.csproj.FileListAbsolute.txt
@@ -0,0 +1,18 @@
+c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\bin\Debug\UnstandardnessTestForDM.exe
+c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\bin\Debug\UnstandardnessTestForDM.pdb
+c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\ResolveAssemblyReference.cache
+c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\UnstandardnessTestForDM.Form1.resources
+c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\UnstandardnessTestForDM.Properties.Resources.resources
+c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\GenerateResource.read.1.tlog
+c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\GenerateResource.write.1.tlog
+c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\UnstandardnessTestForDM.exe
+c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\UnstandardnessTestForDM.pdb
+C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\bin\Debug\UnstandardnessTestForDM.exe
+C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\bin\Debug\UnstandardnessTestForDM.pdb
+C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\ResolveAssemblyReference.cache
+C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\UnstandardnessTestForDM.Form1.resources
+C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\UnstandardnessTestForDM.Properties.Resources.resources
+C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\GenerateResource.read.1.tlog
+C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\GenerateResource.write.1.tlog
+C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\UnstandardnessTestForDM.exe
+C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\UnstandardnessTestForDM.pdb
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.exe b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.exe
new file mode 100644
index 00000000000..bb55cad8fd7
Binary files /dev/null and b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.exe differ
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.pdb b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.pdb
new file mode 100644
index 00000000000..b89e4d53eb7
Binary files /dev/null and b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.pdb differ
diff --git a/tools/readme.txt b/tools/readme.txt
new file mode 100644
index 00000000000..a1c1a17c3ba
--- /dev/null
+++ b/tools/readme.txt
@@ -0,0 +1,6 @@
+the compiled exe file for the Unstandardness text for DM program is in:
+UnstandardnessTestForDM\bin\Debug\UnstandardnessTestForDM.exe
+of
+UnstandardnessTestForDM\bin\Release\UnstandardnessTestForDM.exe
+
+You have to move it to the root folder (where the dme file is) and run it from there for it to work.
\ No newline at end of file
|