TG: Fixes for a bunch of other lingering bugs with my optimization stuff.

Revision: r3379
Author: 	 vageyenaman
This commit is contained in:
Ren Erthilo
2012-05-01 13:59:48 +01:00
parent a278c7cc52
commit f27537a5c1
6 changed files with 238 additions and 230 deletions

View File

@@ -71,32 +71,6 @@
var/h_b = 245.0 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 /obj/machinery/computer/secure_data
name = "Security Records" name = "Security Records"
desc = "Used to view and edit personnel's security records" desc = "Used to view and edit personnel's security records"

View File

@@ -290,193 +290,11 @@ Pod/Blast Doors computer
locked += L 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 = "<HTML><BODY><TT><B>Mass Driver Controls</B>"
user.machine = src
var/d2
if (timing)
d2 = text("<A href='?src=\ref[];time=0'>Stop Time Launch</A>", src)
else
d2 = text("<A href='?src=\ref[];time=1'>Initiate Time Launch</A>", src)
var/second = time % 60
var/minute = (time - second) / 60
dat += text("<HR>\nTimer System: []\nTime Left: [][] <A href='?src=\ref[];tp=-30'>-</A> <A href='?src=\ref[];tp=-1'>-</A> <A href='?src=\ref[];tp=1'>+</A> <A href='?src=\ref[];tp=30'>+</A>", 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("<A href = '?src=\ref[];power=[]'>[]</A> ", src, t, t)
//Foreach goto(172)
dat += text("<HR>\nPower Level: []<BR>\n<A href = '?src=\ref[];alarm=1'>Firing Sequence</A><BR>\n<A href = '?src=\ref[];drive=1'>Test Fire Driver</A><BR>\n<A href = '?src=\ref[];door=1'>Toggle Outer Door</A><BR>", temp, src, src, src)
//*****RM from 40.93.3S
else
dat += text("<BR>\n<A href = '?src=\ref[];door=1'>Toggle Outer Door</A><BR>", src)
//*****
dat += text("<BR><BR><A href='?src=\ref[];mach_close=computer'>Close</A></TT></BODY></HTML>", 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) /obj/machinery/mass_driver/proc/drive(amount)
if(stat & (BROKEN|NOPOWER)) if(stat & (BROKEN|NOPOWER))

View File

@@ -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 = "<HTML><BODY><TT><B>Mass Driver Controls</B>"
user.machine = src
var/d2
if (timing)
d2 = text("<A href='?src=\ref[];time=0'>Stop Time Launch</A>", src)
else
d2 = text("<A href='?src=\ref[];time=1'>Initiate Time Launch</A>", src)
var/second = time % 60
var/minute = (time - second) / 60
dat += text("<HR>\nTimer System: []\nTime Left: [][] <A href='?src=\ref[];tp=-30'>-</A> <A href='?src=\ref[];tp=-1'>-</A> <A href='?src=\ref[];tp=1'>+</A> <A href='?src=\ref[];tp=30'>+</A>", 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("<A href = '?src=\ref[];power=[]'>[]</A> ", src, t, t)
//Foreach goto(172)
dat += text("<HR>\nPower Level: []<BR>\n<A href = '?src=\ref[];alarm=1'>Firing Sequence</A><BR>\n<A href = '?src=\ref[];drive=1'>Test Fire Driver</A><BR>\n<A href = '?src=\ref[];door=1'>Toggle Outer Door</A><BR>", temp, src, src, src)
//*****RM from 40.93.3S
else
dat += text("<BR>\n<A href = '?src=\ref[];door=1'>Toggle Outer Door</A><BR>", src)
//*****
dat += text("<BR><BR><A href='?src=\ref[];mach_close=computer'>Close</A></TT></BODY></HTML>", 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"

View File

@@ -264,7 +264,7 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }.
..() ..()
if (src.closeOtherId != null) if (src.closeOtherId != null)
spawn (5) 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) if (A.closeOtherId == src.closeOtherId && A != src)
src.closeOther = A src.closeOther = A
break break

View File

@@ -89,7 +89,6 @@
flick("[base_state]-spark", src) flick("[base_state]-spark", src)
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(2, 1, src) s.set_up(2, 1, src)
s.start() s.start()
src.last_spark = world.time src.last_spark = world.time
@@ -124,12 +123,12 @@
active = 1 active = 1
icon_state = "launcheract" icon_state = "launcheract"
for(var/obj/machinery/sparker/M in machines) for(var/obj/machinery/sparker/M in world)
if (M.id == src.id) if (M.id == src.id)
spawn( 0 ) spawn( 0 )
M.ignite() M.ignite()
for(var/obj/machinery/igniter/M in machines) for(var/obj/machinery/igniter/M in world)
if(M.id == src.id) if(M.id == src.id)
use_power(50) use_power(50)
M.on = !( M.on ) M.on = !( M.on )

View File

@@ -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. --> should be listed in the changelog upon commit though. Thanks. -->
<!-- To take advantage of the pretty new format (well it was new when I wrote this anyway), open the "add-to-changelog.html" file in any browser and add the stuff and then generate the html code and paste it here --> <!-- To take advantage of the pretty new format (well it was new when I wrote this anyway), open the "add-to-changelog.html" file in any browser and add the stuff and then generate the html code and paste it here -->
<div class="commit sansserif">
<h2 class="date">1st March 2012</h2>
<h3 class="author">TG updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Added Antimov module. Very dangerous.</li>
<li class="rscadd">Pill bottles now work like ore satchels, click a tile full of pills to pick them all up.</li>
<li class="rscadd">Tower caps can now grow randomly as weeds</li>
<li class="tweak">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.</li>
<li class="tweak">You can no longer take photos of photos.</li>
<li class="tweak">Malf AI's hopping between APCs no longer become longer and longer.</li>
<li class="tweak">Secborgs now have modified tasers, it holds 6 shots and recharges one shot every 10 seconds automatically.</li>
<li class="tweak">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.</li>
<li class="tweak">You now click on AI modules in-hand to set them, instead of just picking them up.</li>
<li class="bugfix">Fixes the way the safeguard module is written.</li>
</ul>
</div>
<div class="commit sansserif"> <div class="commit sansserif">
<h2 class="date">1st May 2012</h2> <h2 class="date">1st May 2012</h2>
<h3 class="author">Erthilo updated:</h3> <h3 class="author">Erthilo updated:</h3>
@@ -84,6 +66,19 @@ should be listed in the changelog upon commit though. Thanks. -->
<li class="imageadd">New ATM sprites.</li> <li class="imageadd">New ATM sprites.</li>
<li class="tweak">Changes year to 2556 on medical/security records.</li> <li class="tweak">Changes year to 2556 on medical/security records.</li>
</ul> </ul>
<h3 class="author">TG updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Added Antimov module. Very dangerous.</li>
<li class="rscadd">Pill bottles now work like ore satchels, click a tile full of pills to pick them all up.</li>
<li class="rscadd">Tower caps can now grow randomly as weeds</li>
<li class="tweak">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.</li>
<li class="tweak">You can no longer take photos of photos.</li>
<li class="tweak">Malf AI's hopping between APCs no longer become longer and longer.</li>
<li class="tweak">Secborgs now have modified tasers, it holds 6 shots and recharges one shot every 10 seconds automatically.</li>
<li class="tweak">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.</li>
<li class="tweak">You now click on AI modules in-hand to set them, instead of just picking them up.</li>
<li class="bugfix">Fixes the way the safeguard module is written.</li>
</ul>
</div> </div>
<!-- <!--