diff --git a/code/defines/obj/computer.dm b/code/defines/obj/computer.dm
index 9e86cf158b..b49a1f36e7 100644
--- a/code/defines/obj/computer.dm
+++ b/code/defines/obj/computer.dm
@@ -71,32 +71,6 @@
var/h_b = 245.0
-
-/obj/machinery/computer/pod
- name = "Pod Launch Control"
- desc = "A control for launching pods."
- icon_state = "computer_generic"
- var/id = 1.0
- var/obj/machinery/mass_driver/connected = null
- var/timing = 0.0
- var/time = 30.0
-
-
-/obj/machinery/computer/pod/old
- icon_state = "old"
- name = "DoorMex Control Computer"
-
-
-/obj/machinery/computer/pod/old/syndicate
- name = "ProComp Executive IIc"
- desc = "The Syndicate operate on a tight budget. Operates external airlocks."
-
-
-/obj/machinery/computer/pod/old/swf
- name = "Magix System IV"
- desc = "An arcane artifact that holds much magic. Running E-Knock 2.2: Sorceror's Edition"
-
-
/obj/machinery/computer/secure_data
name = "Security Records"
desc = "Used to view and edit personnel's security records"
diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm
index 4db4bb8280..e78c65031b 100644
--- a/code/game/machinery/computer/computer.dm
+++ b/code/game/machinery/computer/computer.dm
@@ -290,193 +290,11 @@ Pod/Blast Doors computer
locked += L
-/obj/machinery/computer/pod/proc/alarm()
- if(stat & (NOPOWER|BROKEN))
- return
- if (!( connected ))
- viewers(null, null) << "Cannot locate mass driver connector. Cancelling firing sequence!"
- return
- for(var/obj/machinery/door/poddoor/M in machines)
- if (M.id == id)
- spawn( 0 )
- M.open()
- return
- sleep(20)
- //connected.drive() *****RM from 40.93.3S
- for(var/obj/machinery/mass_driver/M in machines)
- if(M.id == id)
- M.power = connected.power
- M.drive()
- sleep(50)
- for(var/obj/machinery/door/poddoor/M in machines)
- if (M.id == id)
- spawn( 0 )
- M.close()
- return
- return
-/obj/machinery/computer/pod/New()
- ..()
- spawn( 5 )
- for(var/obj/machinery/mass_driver/M in machines)
- if (M.id == id)
- connected = M
- else
- return
- return
-
-/obj/machinery/computer/pod/attackby(I as obj, user as mob)
- if(istype(I, /obj/item/weapon/screwdriver))
- playsound(loc, 'Screwdriver.ogg', 50, 1)
- if(do_after(user, 20))
- if (stat & BROKEN)
- user << "\blue The broken glass falls out."
- var/obj/structure/computerframe/A = new /obj/structure/computerframe( loc )
- new /obj/item/weapon/shard( loc )
-
- //generate appropriate circuitboard. Accounts for /pod/old computer types
- var/obj/item/weapon/circuitboard/pod/M = null
- if(istype(src, /obj/machinery/computer/pod/old))
- M = new /obj/item/weapon/circuitboard/olddoor( A )
- if(istype(src, /obj/machinery/computer/pod/old/syndicate))
- M = new /obj/item/weapon/circuitboard/syndicatedoor( A )
- if(istype(src, /obj/machinery/computer/pod/old/swf))
- M = new /obj/item/weapon/circuitboard/swfdoor( A )
- else //it's not an old computer. Generate standard pod circuitboard.
- M = new /obj/item/weapon/circuitboard/pod( A )
-
- for (var/obj/C in src)
- C.loc = loc
- M.id = id
- A.circuit = M
- A.state = 3
- A.icon_state = "3"
- A.anchored = 1
- del(src)
- else
- user << "\blue You disconnect the monitor."
- var/obj/structure/computerframe/A = new /obj/structure/computerframe( loc )
-
- //generate appropriate circuitboard. Accounts for /pod/old computer types
- var/obj/item/weapon/circuitboard/pod/M = null
- if(istype(src, /obj/machinery/computer/pod/old))
- M = new /obj/item/weapon/circuitboard/olddoor( A )
- if(istype(src, /obj/machinery/computer/pod/old/syndicate))
- M = new /obj/item/weapon/circuitboard/syndicatedoor( A )
- if(istype(src, /obj/machinery/computer/pod/old/swf))
- M = new /obj/item/weapon/circuitboard/swfdoor( A )
- else //it's not an old computer. Generate standard pod circuitboard.
- M = new /obj/item/weapon/circuitboard/pod( A )
-
- for (var/obj/C in src)
- C.loc = loc
- M.id = id
- A.circuit = M
- A.state = 4
- A.icon_state = "4"
- A.anchored = 1
- del(src)
- else
- attack_hand(user)
- return
-
-/obj/machinery/computer/pod/attack_ai(var/mob/user as mob)
- return attack_hand(user)
-
-/obj/machinery/computer/pod/attack_paw(var/mob/user as mob)
- return attack_hand(user)
-
-/obj/machinery/computer/pod/attack_hand(var/mob/user as mob)
- if(..())
- return
-
- var/dat = "
Mass Driver Controls"
- user.machine = src
- var/d2
- if (timing)
- d2 = text("Stop Time Launch", src)
- else
- d2 = text("Initiate Time Launch", src)
- var/second = time % 60
- var/minute = (time - second) / 60
- dat += text("
\nTimer System: []\nTime Left: [][] - - + +", d2, (minute ? text("[]:", minute) : null), second, src, src, src, src)
- if (connected)
- var/temp = ""
- var/list/L = list( 0.25, 0.5, 1, 2, 4, 8, 16 )
- for(var/t in L)
- if (t == connected.power)
- temp += text("[] ", t)
- else
- temp += text("[] ", src, t, t)
- //Foreach goto(172)
- dat += text("
\nPower Level: []
\nFiring Sequence
\nTest Fire Driver
\nToggle Outer Door
", temp, src, src, src)
- //*****RM from 40.93.3S
- else
- dat += text("
\nToggle Outer Door
", src)
- //*****
- dat += text("
Close", user)
- user << browse(dat, "window=computer;size=400x500")
- onclose(user, "computer")
- return
-
-/obj/machinery/computer/pod/process()
- ..()
- if (timing)
- if (time > 0)
- time = round(time) - 1
- else
- alarm()
- time = 0
- timing = 0
- updateDialog()
- return
-
-/obj/machinery/computer/pod/Topic(href, href_list)
- if(..())
- return
- if ((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (istype(usr, /mob/living/silicon)))
- usr.machine = src
- if (href_list["power"])
- var/t = text2num(href_list["power"])
- t = min(max(0.25, t), 16)
- if (connected)
- connected.power = t
- else
- if (href_list["alarm"])
- alarm()
- else
- if (href_list["time"])
- timing = text2num(href_list["time"])
- else
- if (href_list["tp"])
- var/tp = text2num(href_list["tp"])
- time += tp
- time = min(max(round(time), 0), 120)
- else
- if (href_list["door"])
- if(istype(src, /obj/machinery/computer/pod/old/syndicate))//Added here so Nuke ops don't go running naked into space before moving the shuttle.
- if(syndicate_station_at_station == 0)
- usr << "\red You need to launch the Syndicate Shuttle via the computer terminal at the head of the ship before departing."
- return
- for(var/obj/machinery/door/poddoor/M in machines)
- if (M.id == id)
- if (M.density)
- spawn( 0 )
- M.open()
- return
- else
- spawn( 0 )
- M.close()
- return
- //Foreach goto(298)
- add_fingerprint(usr)
- updateUsrDialog()
-
- return
/obj/machinery/mass_driver/proc/drive(amount)
if(stat & (BROKEN|NOPOWER))
diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm
new file mode 100644
index 0000000000..51f00e6115
--- /dev/null
+++ b/code/game/machinery/computer/pod.dm
@@ -0,0 +1,222 @@
+/obj/machinery/computer/pod
+ name = "Pod Launch Control"
+ desc = "A control for launching pods."
+ icon_state = "computer_generic"
+ var
+ id = 1.0
+ obj/machinery/mass_driver/connected = null
+ timing = 0.0
+ time = 30.0
+
+
+/obj/machinery/computer/pod/New()
+ ..()
+ spawn( 5 )
+ for(var/obj/machinery/mass_driver/M in world)
+ if (M.id == id)
+ connected = M
+ else
+ return
+ return
+
+
+/obj/machinery/computer/pod/proc/alarm()
+ if(stat & (NOPOWER|BROKEN))
+ return
+
+ if (!( connected ))
+ viewers(null, null) << "Cannot locate mass driver connector. Cancelling firing sequence!"
+ return
+
+ for(var/obj/machinery/door/poddoor/M in world)
+ if (M.id == id)
+ spawn( 0 )
+ M.open()
+ return
+ sleep(20)
+
+ //connected.drive() *****RM from 40.93.3S
+ for(var/obj/machinery/mass_driver/M in world)
+ if(M.id == id)
+ M.power = connected.power
+ M.drive()
+
+ sleep(50)
+ for(var/obj/machinery/door/poddoor/M in world)
+ if (M.id == id)
+ spawn( 0 )
+ M.close()
+ return
+ return
+
+
+/obj/machinery/computer/pod/attackby(I as obj, user as mob)
+ if(istype(I, /obj/item/weapon/screwdriver))
+ playsound(loc, 'Screwdriver.ogg', 50, 1)
+ if(do_after(user, 20))
+ if (stat & BROKEN)
+ user << "\blue The broken glass falls out."
+ var/obj/structure/computerframe/A = new /obj/structure/computerframe( loc )
+ new /obj/item/weapon/shard( loc )
+
+ //generate appropriate circuitboard. Accounts for /pod/old computer types
+ var/obj/item/weapon/circuitboard/pod/M = null
+ if(istype(src, /obj/machinery/computer/pod/old))
+ M = new /obj/item/weapon/circuitboard/olddoor( A )
+ if(istype(src, /obj/machinery/computer/pod/old/syndicate))
+ M = new /obj/item/weapon/circuitboard/syndicatedoor( A )
+ if(istype(src, /obj/machinery/computer/pod/old/swf))
+ M = new /obj/item/weapon/circuitboard/swfdoor( A )
+ else //it's not an old computer. Generate standard pod circuitboard.
+ M = new /obj/item/weapon/circuitboard/pod( A )
+
+ for (var/obj/C in src)
+ C.loc = loc
+ M.id = id
+ A.circuit = M
+ A.state = 3
+ A.icon_state = "3"
+ A.anchored = 1
+ del(src)
+ else
+ user << "\blue You disconnect the monitor."
+ var/obj/structure/computerframe/A = new /obj/structure/computerframe( loc )
+
+ //generate appropriate circuitboard. Accounts for /pod/old computer types
+ var/obj/item/weapon/circuitboard/pod/M = null
+ if(istype(src, /obj/machinery/computer/pod/old))
+ M = new /obj/item/weapon/circuitboard/olddoor( A )
+ if(istype(src, /obj/machinery/computer/pod/old/syndicate))
+ M = new /obj/item/weapon/circuitboard/syndicatedoor( A )
+ if(istype(src, /obj/machinery/computer/pod/old/swf))
+ M = new /obj/item/weapon/circuitboard/swfdoor( A )
+ else //it's not an old computer. Generate standard pod circuitboard.
+ M = new /obj/item/weapon/circuitboard/pod( A )
+
+ for (var/obj/C in src)
+ C.loc = loc
+ M.id = id
+ A.circuit = M
+ A.state = 4
+ A.icon_state = "4"
+ A.anchored = 1
+ del(src)
+ else
+ attack_hand(user)
+ return
+
+
+/obj/machinery/computer/pod/attack_ai(var/mob/user as mob)
+ return attack_hand(user)
+
+
+/obj/machinery/computer/pod/attack_paw(var/mob/user as mob)
+ return attack_hand(user)
+
+
+/obj/machinery/computer/pod/attack_hand(var/mob/user as mob)
+ if(..())
+ return
+
+ var/dat = "Mass Driver Controls"
+ user.machine = src
+ var/d2
+ if (timing)
+ d2 = text("Stop Time Launch", src)
+ else
+ d2 = text("Initiate Time Launch", src)
+ var/second = time % 60
+ var/minute = (time - second) / 60
+ dat += text("
\nTimer System: []\nTime Left: [][] - - + +", d2, (minute ? text("[]:", minute) : null), second, src, src, src, src)
+ if (connected)
+ var/temp = ""
+ var/list/L = list( 0.25, 0.5, 1, 2, 4, 8, 16 )
+ for(var/t in L)
+ if (t == connected.power)
+ temp += text("[] ", t)
+ else
+ temp += text("[] ", src, t, t)
+ //Foreach goto(172)
+ dat += text("
\nPower Level: []
\nFiring Sequence
\nTest Fire Driver
\nToggle Outer Door
", temp, src, src, src)
+ //*****RM from 40.93.3S
+ else
+ dat += text("
\nToggle Outer Door
", src)
+ //*****
+ dat += text("
Close", user)
+ user << browse(dat, "window=computer;size=400x500")
+ onclose(user, "computer")
+ return
+
+
+/obj/machinery/computer/pod/process()
+ ..()
+ if (timing)
+ if (time > 0)
+ time = round(time) - 1
+ else
+ alarm()
+ time = 0
+ timing = 0
+ updateDialog()
+ return
+
+
+/obj/machinery/computer/pod/Topic(href, href_list)
+ if(..())
+ return
+ if ((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (istype(usr, /mob/living/silicon)))
+ usr.machine = src
+ if (href_list["power"])
+ var/t = text2num(href_list["power"])
+ t = min(max(0.25, t), 16)
+ if (connected)
+ connected.power = t
+ else
+ if (href_list["alarm"])
+ alarm()
+ else
+ if (href_list["time"])
+ timing = text2num(href_list["time"])
+ else
+ if (href_list["tp"])
+ var/tp = text2num(href_list["tp"])
+ time += tp
+ time = min(max(round(time), 0), 120)
+ else
+ if (href_list["door"])
+ if(istype(src, /obj/machinery/computer/pod/old/syndicate))//Added here so Nuke ops don't go running naked into space before moving the shuttle.
+ if(syndicate_station_at_station == 0)
+ usr << "\red You need to launch the Syndicate Shuttle via the computer terminal at the head of the ship before departing."
+ return
+ for(var/obj/machinery/door/poddoor/M in world)
+ if (M.id == id)
+ if (M.density)
+ spawn( 0 )
+ M.open()
+ return
+ else
+ spawn( 0 )
+ M.close()
+ return
+ //Foreach goto(298)
+ add_fingerprint(usr)
+ updateUsrDialog()
+ return
+
+
+
+/obj/machinery/computer/pod/old
+ icon_state = "old"
+ name = "DoorMex Control Computer"
+
+
+
+/obj/machinery/computer/pod/old/syndicate
+ name = "ProComp Executive IIc"
+ desc = "The Syndicate operate on a tight budget. Operates external airlocks."
+
+
+
+/obj/machinery/computer/pod/old/swf
+ name = "Magix System IV"
+ desc = "An arcane artifact that holds much magic. Running E-Knock 2.2: Sorceror's Edition"
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index f30c1c14f1..cf99493deb 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -264,7 +264,7 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }.
..()
if (src.closeOtherId != null)
spawn (5)
- for (var/obj/machinery/door/airlock/A in machines)
+ for (var/obj/machinery/door/airlock/A in world)
if (A.closeOtherId == src.closeOtherId && A != src)
src.closeOther = A
break
diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm
index 2bb6477e82..9c4852d16a 100755
--- a/code/game/machinery/igniter.dm
+++ b/code/game/machinery/igniter.dm
@@ -89,7 +89,6 @@
flick("[base_state]-spark", src)
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
-
s.set_up(2, 1, src)
s.start()
src.last_spark = world.time
@@ -124,12 +123,12 @@
active = 1
icon_state = "launcheract"
- for(var/obj/machinery/sparker/M in machines)
+ for(var/obj/machinery/sparker/M in world)
if (M.id == src.id)
spawn( 0 )
M.ignite()
- for(var/obj/machinery/igniter/M in machines)
+ for(var/obj/machinery/igniter/M in world)
if(M.id == src.id)
use_power(50)
M.on = !( M.on )
diff --git a/html/changelog.html b/html/changelog.html
index 0f83dae897..a6d5f93bbf 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -47,24 +47,6 @@ Stuff which is in development and not yet visible to players or just code relate
should be listed in the changelog upon commit though. Thanks. -->
-
-
-
1st March 2012
-
TG updated:
-
- - Added Antimov module. Very dangerous.
- - Pill bottles now work like ore satchels, click a tile full of pills to pick them all up.
- - Tower caps can now grow randomly as weeds
- - Using a minihoe on a Hydroponics tray removes all the weeds in the tray at once. Using a bucket on a sink now fills it entirely with water, instead of 10 units at a time.
- - You can no longer take photos of photos.
- - Malf AI's hopping between APCs no longer become longer and longer.
- - Secborgs now have modified tasers, it holds 6 shots and recharges one shot every 10 seconds automatically.
- - Turning off PANIC SYPHON now sets scrubbers to scrubbing (default) instead of off. Vents will not appear in the list instead of a timeout message. They also have a link with sets them back to one atmosphere kPa.
- - You now click on AI modules in-hand to set them, instead of just picking them up.
- - Fixes the way the safeguard module is written.
-
-
-
1st May 2012
Erthilo updated:
@@ -84,6 +66,19 @@ should be listed in the changelog upon commit though. Thanks. -->
New ATM sprites.
Changes year to 2556 on medical/security records.
+
TG updated:
+
+ - Added Antimov module. Very dangerous.
+ - Pill bottles now work like ore satchels, click a tile full of pills to pick them all up.
+ - Tower caps can now grow randomly as weeds
+ - Using a minihoe on a Hydroponics tray removes all the weeds in the tray at once. Using a bucket on a sink now fills it entirely with water, instead of 10 units at a time.
+ - You can no longer take photos of photos.
+ - Malf AI's hopping between APCs no longer become longer and longer.
+ - Secborgs now have modified tasers, it holds 6 shots and recharges one shot every 10 seconds automatically.
+ - Turning off PANIC SYPHON now sets scrubbers to scrubbing (default) instead of off. Vents will not appear in the list instead of a timeout message. They also have a link with sets them back to one atmosphere kPa.
+ - You now click on AI modules in-hand to set them, instead of just picking them up.
+ - Fixes the way the safeguard module is written.
+