diff --git a/baystation12.dme b/baystation12.dme index 45911ead56..ddbd5a3e5b 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1338,6 +1338,7 @@ #include "code\WorkInProgress\computer3\computer3_notes.dm" #include "code\WorkInProgress\computer3\file.dm" #include "code\WorkInProgress\computer3\laptop.dm" +#include "code\WorkInProgress\computer3\lapvend.dm" #include "code\WorkInProgress\computer3\networking.dm" #include "code\WorkInProgress\computer3\NTOS.dm" #include "code\WorkInProgress\computer3\program.dm" @@ -1350,10 +1351,16 @@ #include "code\WorkInProgress\computer3\computers\card.dm" #include "code\WorkInProgress\computer3\computers\communications.dm" #include "code\WorkInProgress\computer3\computers\crew.dm" +#include "code\WorkInProgress\computer3\computers\customs.dm" #include "code\WorkInProgress\computer3\computers\HolodeckControl.dm" #include "code\WorkInProgress\computer3\computers\law.dm" #include "code\WorkInProgress\computer3\computers\medical.dm" +#include "code\WorkInProgress\computer3\computers\Operating.dm" +#include "code\WorkInProgress\computer3\computers\power.dm" +#include "code\WorkInProgress\computer3\computers\prisoner.dm" +#include "code\WorkInProgress\computer3\computers\robot.dm" #include "code\WorkInProgress\computer3\computers\security.dm" +#include "code\WorkInProgress\computer3\computers\welcome.dm" #include "code\WorkInProgress\kilakk\fax.dm" #include "code\WorkInProgress\Mini\atmos_control.dm" #include "code\WorkInProgress\Ported\policetape.dm" diff --git a/code/WorkInProgress/computer3/NTOS.dm b/code/WorkInProgress/computer3/NTOS.dm index ee68971083..8b779d9077 100644 --- a/code/WorkInProgress/computer3/NTOS.dm +++ b/code/WorkInProgress/computer3/NTOS.dm @@ -5,7 +5,7 @@ /datum/file/program/ntos name = "Nanotrasen Operating System" extension = "prog" - active_state = "NTOS" + active_state = "ntos" var/obj/item/part/computer/storage/current // the drive being viewed, null for desktop/computer var/fileop = "runfile" diff --git a/code/WorkInProgress/computer3/computer.dm b/code/WorkInProgress/computer3/computer.dm index 48869571d1..95824e555e 100644 --- a/code/WorkInProgress/computer3/computer.dm +++ b/code/WorkInProgress/computer3/computer.dm @@ -127,6 +127,9 @@ update_icon() + proc/update_spawn_files() + for(var/typekey in spawn_files) + hdd.addfile(new typekey,1) proc/spawn_parts() for(var/typekey in spawn_parts) diff --git a/code/WorkInProgress/computer3/computers/card.dm b/code/WorkInProgress/computer3/computers/card.dm index 660e25a67c..6080b59643 100644 --- a/code/WorkInProgress/computer3/computers/card.dm +++ b/code/WorkInProgress/computer3/computers/card.dm @@ -31,28 +31,85 @@ // the list of jobs won't change after all... proc/scriptblock() var/global/dat = null - if(!dat) - var/jobs_all = "" - for(var/job in list_jobs()) - jobs_all += topic_link(src,"assign=[job]",replacetext(job," "," ")) + " "//make sure there isn't a line break in the middle of a job + var/counter = 0 + var jobs_all = "" + jobs_all += "" + + jobs_all += ""//Captain in special because he is head of heads ~Intercross21 + jobs_all += "" + jobs_all += "" + + counter = 0 + jobs_all += ""//Red + for(var/job in security_positions) + counter++ + if(counter >= 6) + jobs_all += "" + counter = 0 + jobs_all += "" + + counter = 0 + jobs_all += ""//Orange + for(var/job in engineering_positions) + counter++ + if(counter >= 6) + jobs_all += "" + counter = 0 + jobs_all += "" + + counter = 0 + jobs_all += ""//Green + for(var/job in medical_positions) + counter++ + if(counter >= 6) + jobs_all += "" + counter = 0 + jobs_all += "" + + counter = 0 + jobs_all += ""//Purple + for(var/job in science_positions) + counter++ + if(counter >= 6) + jobs_all += "" + counter = 0 + jobs_all += "" + + counter = 0 + jobs_all += ""//Grey + for(var/job in civilian_positions) + counter++ + if(counter >= 6) + jobs_all += "" + counter = 0 + jobs_all += "" + dat = {""} + function markRed(){ + var nameField = document.getElementById('namefield'); + nameField.style.backgroundColor = "#FFDDDD"; + } + function markGreen(){ + var nameField = document.getElementById('namefield'); + nameField.style.backgroundColor = "#DDFFDD"; + } + function markAccountGreen(){ + var nameField = document.getElementById('accountfield'); + nameField.style.backgroundColor = "#DDFFDD"; + } + function markAccountRed(){ + var nameField = document.getElementById('accountfield'); + nameField.style.backgroundColor = "#FFDDDD"; + } + function showAll(){ + var allJobsSlot = document.getElementById('alljobsslot'); + allJobsSlot.innerHTML = "hide
"+ "[jobs_all]"; + } + function hideAll(){ + var allJobsSlot = document.getElementById('alljobsslot'); + allJobsSlot.innerHTML = "[(writer.assignment) ? writer.assignment : "Unassgied"]"; + } + "} return dat // creates the list of access rights on the card diff --git a/code/WorkInProgress/computer3/computers/medical.dm b/code/WorkInProgress/computer3/computers/medical.dm index e370182744..8e6b7cb7fc 100644 --- a/code/WorkInProgress/computer3/computers/medical.dm +++ b/code/WorkInProgress/computer3/computers/medical.dm @@ -11,6 +11,11 @@ default_prog = /datum/file/program/med_data spawn_parts = list(/obj/item/part/computer/storage/hdd,/obj/item/part/computer/cardslot,/obj/item/part/computer/networking/radio) + +/obj/machinery/computer3/laptop/medical + spawn_parts = list(/obj/item/part/computer/storage/hdd,/obj/item/part/computer/cardslot,/obj/item/part/computer/networking/radio) + spawn_files = list(/datum/file/program/arcade,/datum/file/program/crew,/datum/file/program/med_data) + /datum/file/program/med_data name = "Medical Records" desc = "This can be used to check medical records." diff --git a/code/WorkInProgress/computer3/computers/message.dm b/code/WorkInProgress/computer3/computers/message.dm index d03f4a4753..3bbb580f5e 100644 --- a/code/WorkInProgress/computer3/computers/message.dm +++ b/code/WorkInProgress/computer3/computers/message.dm @@ -2,6 +2,9 @@ default_prog = /datum/file/program/message_mon spawn_parts = list(/obj/item/part/computer/storage/hdd,/obj/item/part/computer/networking/prox) + +//BROKEN AS HELL, DON'T USE UNTIL FIXED + /datum/file/program/message_mon name = "Message Monitor Console" desc = "Used to Monitor the crew's messages, that are sent via PDA. Can also be used to view Request Console messages." @@ -35,6 +38,13 @@ var/custommessage = "This is a test, please ignore." + procinitialize() + if(!linkedServer) + if(message_servers && message_servers.len > 0) + linkedServer = message_servers[1] + return + + update_icon() if(emag || hacking) overlay.icon_state = hack_icon @@ -45,12 +55,12 @@ interact() if(!interactable()) return - //If the computer is being hacked or is emagged, display the reboot message. if(hacking || emag) message = rebootmsg - - var/dat = "
/
" + var/dat = "Message Monitor Console" + dat += "

Message Monitor Console


" + dat += "

" if(auth) dat += "

\[Authenticated\] /" @@ -61,12 +71,9 @@ if(hacking || emag) screen = 2 - else - if(!auth) - screen = 0 - if( !linkedServer || (linkedServer.stat & (NOPOWER|BROKEN)) ) - message = noserver - screen = 0 + else if(!auth || !linkedServer || (linkedServer.stat & (NOPOWER|BROKEN))) + if(!linkedServer || (linkedServer.stat & (NOPOWER|BROKEN))) message = noserver + screen = 0 switch(screen) //Main menu @@ -202,9 +209,11 @@

"} dat += "
Command
SpecialCaptainCustom
Security
[replacetext(job, " ", " ")]
Engineering
[replacetext(job, " ", " ")]
Medical
[replacetext(job, " ", " ")]
Science
[replacetext(job, " ", " ")]
Civilian
[replacetext(job, " ", " ")][rc.rec_dpt][rc.message][rc.stamp][rc.id_auth][rc.priority]
" - message = defaultmsg + popup.width = 700 + popup.height = 700 popup.set_content(dat) + popup.set_title_image(usr.browse_rsc_icon(computer.icon, computer.icon_state)) popup.open() return diff --git a/code/WorkInProgress/computer3/computers/pod.dm b/code/WorkInProgress/computer3/computers/pod.dm deleted file mode 100644 index 47f45b1c91..0000000000 --- a/code/WorkInProgress/computer3/computers/pod.dm +++ /dev/null @@ -1,218 +0,0 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 - -/obj/machinery/computer3/pod - name = "Pod Launch Control" - desc = "A controll for launching pods. Some people prefer firing Mechas." - icon_state = "computer_generic" - var/id = 1.0 - var/obj/machinery/mass_driver/connected = null - var/timing = 0.0 - var/time = 30.0 - var/title = "Mass Driver Controls" - - -/obj/machinery/computer3/pod/New() - ..() - spawn( 5 ) - for(var/obj/machinery/mass_driver/M in world) - if(M.id == id) - connected = M - else - return - return - - -/obj/machinery/computer3/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) - M.open() - return - sleep(20) - - 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) - M.close() - return - return - - -/obj/machinery/computer3/pod/attackby(I as obj, user as mob) - if(istype(I, /obj/item/tool/screwdriver)) - playsound(loc, 'sound/items/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/trash/shard( loc ) - - //generate appropriate circuitboard. Accounts for /pod/old computer types - var/obj/item/part/board/circuit/pod/M = null - if(istype(src, /obj/machinery/computer/pod/old)) - M = new /obj/item/part/board/circuit/olddoor( A ) - if(istype(src, /obj/machinery/computer/pod/old/syndicate)) - M = new /obj/item/part/board/circuit/syndicatedoor( A ) - if(istype(src, /obj/machinery/computer/pod/old/swf)) - M = new /obj/item/part/board/circuit/swfdoor( A ) - else //it's not an old computer. Generate standard pod circuitboard. - M = new /obj/item/part/board/circuit/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/part/board/circuit/pod/M = null - if(istype(src, /obj/machinery/computer/pod/old)) - M = new /obj/item/part/board/circuit/olddoor( A ) - if(istype(src, /obj/machinery/computer/pod/old/syndicate)) - M = new /obj/item/part/board/circuit/syndicatedoor( A ) - if(istype(src, /obj/machinery/computer/pod/old/swf)) - M = new /obj/item/part/board/circuit/swfdoor( A ) - else //it's not an old computer. Generate standard pod circuitboard. - M = new /obj/item/part/board/circuit/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/computer3/pod/attack_ai(var/mob/user as mob) - return attack_hand(user) - - -/obj/machinery/computer3/pod/attack_paw(var/mob/user as mob) - return attack_hand(user) - - -/obj/machinery/computer3/pod/attack_hand(var/mob/user as mob) - if(..()) - return - - var/dat = "" - user.set_machine(src) - if(connected) - var/d2 - if(timing) //door controls do not need timers. - d2 = "Stop Time Launch" - else - d2 = "Initiate Time Launch" - var/second = time % 60 - var/minute = (time - second) / 60 - dat += "
\nTimer System: [d2]\nTime Left: [minute ? "[minute]:" : null][second] - - + +" - 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 += "[t] " - else - temp += "[t] " - dat += "
\nPower Level: [temp]
\nFiring Sequence
\nTest Fire Driver
\nToggle Outer Door
" - else - dat += "
\nToggle Outer Door
" - dat += "

Close" - add_fingerprint(usr) - //user << browse(dat, "window=computer;size=400x500") - //onclose(user, "computer") - var/datum/browser/popup = new(user, "computer", title, 400, 500) - popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) - popup.open() - return - - -/obj/machinery/computer3/pod/process() - if(!..()) - return - if(timing) - if(time > 0) - time = round(time) - 1 - else - alarm() - time = 0 - timing = 0 - updateDialog() - return - - -/obj/machinery/computer3/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.set_machine(src) - if(href_list["power"]) - var/t = text2num(href_list["power"]) - t = min(max(0.25, t), 16) - if(connected) - connected.power = t - if(href_list["alarm"]) - alarm() - if(href_list["time"]) - timing = text2num(href_list["time"]) - if(href_list["tp"]) - var/tp = text2num(href_list["tp"]) - time += tp - time = min(max(round(time), 0), 120) - if(href_list["door"]) - for(var/obj/machinery/door/poddoor/M in world) - if(M.id == id) - if(M.density) - M.open() - else - M.close() - updateUsrDialog() - return - - - -/obj/machinery/computer3/pod/old - icon_state = "old" - name = "DoorMex Control Console" - title = "Door Controls" - - - -/obj/machinery/computer3/pod/old/syndicate - name = "ProComp Executive IIc" - desc = "The Syndicate operate on a tight budget. Operates external airlocks." - title = "External Airlock Controls" - req_access = list(access_syndicate) - -/obj/machinery/computer3/pod/old/syndicate/attack_hand(var/mob/user as mob) - if(!allowed(user)) - user << "\red Access Denied" - return - else - ..() - -/obj/machinery/computer3/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/WorkInProgress/computer3/computers/power.dm b/code/WorkInProgress/computer3/computers/power.dm index 4bd838a207..6e27da0568 100644 --- a/code/WorkInProgress/computer3/computers/power.dm +++ b/code/WorkInProgress/computer3/computers/power.dm @@ -11,7 +11,8 @@ proc/format(var/obj/machinery/power/apc/A) var/static/list/S = list(" Off","AOff"," On", " AOn") var/static/list/chg = list("N","C","F") - return "[copytext(add_tspace("\The [A.area]", 30), 1, 30)] [S[A.equipment+1]] [S[A.lighting+1]] [S[A.environ+1]] [add_lspace(A.lastused_total, 6)] [A.cell ? "[add_lspace(round(A.cell.percent()), 3)]% [chg[A.charging+1]]" : " N/C"]
" + return "[copytext(add_tspace("\The [A.area]", 30), 1, 30)] [S[A.equipment+1]] [S[A.lighting+1]] [S[A.environ+1]] \ + [add_lspace(A.lastused_total, 6)] [A.cell ? "[add_lspace(round(A.cell.percent()), 3)]% [chg[A.charging+1]]" : " N/C"]
" interact() if(!interactable()) @@ -23,7 +24,7 @@ var/t = "" t += "Refresh

" if(!L || !L.len) - t += "\red No connection" + t += "No connection" else var/datum/powernet/powernet = computer.net.connect_to(/datum/powernet,null) if(powernet) diff --git a/code/WorkInProgress/computer3/computers/prisoner.dm b/code/WorkInProgress/computer3/computers/prisoner.dm index d88a8bffdf..529a210e43 100644 --- a/code/WorkInProgress/computer3/computers/prisoner.dm +++ b/code/WorkInProgress/computer3/computers/prisoner.dm @@ -1,11 +1,14 @@ //This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 - /obj/machinery/computer3/prisoner + default_prog = /datum/file/program/prisoner + spawn_parts = list(/obj/item/part/computer/storage/hdd,/obj/item/part/computer/networking/radio) + icon_state = "frame-sec" + +/datum/file/program/prisoner name = "Prisoner Management Comsole" - icon = 'icons/obj/computer.dmi' - icon_state = "explosive" + active_state = "explosive" req_access = list(access_armory) - circuit = "/obj/item/part/board/circuit/prisoner" + var/id = 0.0 var/temp = null var/status = 0 @@ -14,18 +17,9 @@ var/screen = 0 // 0 - No Access Denied, 1 - Access allowed - attack_ai(var/mob/user as mob) - return src.attack_hand(user) - - - attack_paw(var/mob/user as mob) - return - - - attack_hand(var/mob/user as mob) - if(..()) + interact() + if(!interactable()) return - user.set_machine(src) var/dat dat += "Prisoner Implant Manager System
" if(screen == 0) @@ -35,7 +29,7 @@ var/turf/Tr = null for(var/obj/item/weapon/implant/chem/C in world) Tr = get_turf(C) - if((Tr) && (Tr.z != src.z)) continue//Out of range + if((Tr) && (Tr.z != computer.z)) continue//Out of range if(!C.implanted) continue dat += "[C.imp_in.name] | Remaining Units: [C.reagents.total_volume] | Inject: " dat += "((1))" @@ -45,7 +39,7 @@ dat += "
Tracking Implants
" for(var/obj/item/weapon/implant/tracking/T in world) Tr = get_turf(T) - if((Tr) && (Tr.z != src.z)) continue//Out of range + if((Tr) && (Tr.z != computer.z)) continue//Out of range if(!T.implanted) continue var/loc_display = "Unknown" var/mob/living/carbon/M = T.imp_in @@ -55,55 +49,52 @@ if(T.malfunction) loc_display = pick(teleportlocs) dat += "ID: [T.id] | Location: [loc_display]
" - dat += "(Message Holder) |
" + dat += "(Send Message
) |
" dat += "********************************
" dat += "
Lock Console" - user << browse(dat, "window=computer;size=400x500") - onclose(user, "computer") + popup.width = 400 + popup.height = 500 + popup.set_content(dat) + popup.set_title_image(usr.browse_rsc_icon(computer.icon, computer.icon_state)) + popup.open() return process() if(!..()) - src.updateDialog() + interact() return Topic(href, href_list) - if(..()) + if(!interactable() || ..(href,href_list)) return - if((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) - usr.set_machine(src) - if(href_list["inject1"]) - var/obj/item/weapon/implant/I = locate(href_list["inject1"]) - if(I) I.activate(1) + if(href_list["inject1"]) + var/obj/item/weapon/implant/I = locate(href_list["inject1"]) + if(I) I.activate(1) - else if(href_list["inject5"]) - var/obj/item/weapon/implant/I = locate(href_list["inject5"]) - if(I) I.activate(5) + else if(href_list["inject5"]) + var/obj/item/weapon/implant/I = locate(href_list["inject5"]) + if(I) I.activate(5) - else if(href_list["inject10"]) - var/obj/item/weapon/implant/I = locate(href_list["inject10"]) - if(I) I.activate(10) + else if(href_list["inject10"]) + var/obj/item/weapon/implant/I = locate(href_list["inject10"]) + if(I) I.activate(10) - else if(href_list["lock"]) - if(src.allowed(usr)) - screen = !screen - else - usr << "Unauthorized Access." + else if(href_list["lock"]) + screen = !screen - else if(href_list["warn"]) - var/warning = copytext(sanitize(input(usr,"Message:","Enter your message here!","")),1,MAX_MESSAGE_LEN) - if(!warning) return - var/obj/item/weapon/implant/I = locate(href_list["warn"]) - if((I)&&(I.imp_in)) - var/mob/living/carbon/R = I.imp_in - R << "\green You hear a voice in your head saying: '[warning]'" + else if(href_list["warn"]) + var/warning = copytext(sanitize(input(usr,"Message:","Enter your message here!","")),1,MAX_MESSAGE_LEN) + if(!warning) return + var/obj/item/weapon/implant/I = locate(href_list["warn"]) + if((I)&&(I.imp_in)) + var/mob/living/carbon/R = I.imp_in + R << "\green You hear a voice in your head saying: '[warning]'" - src.add_fingerprint(usr) - src.updateUsrDialog() + interact() return diff --git a/code/WorkInProgress/computer3/computers/robot.dm b/code/WorkInProgress/computer3/computers/robot.dm index e3eca9ace2..98eea82f9c 100644 --- a/code/WorkInProgress/computer3/computers/robot.dm +++ b/code/WorkInProgress/computer3/computers/robot.dm @@ -74,9 +74,9 @@ dat += " Independent from AI |" if (istype(usr, /mob/living/silicon)) if(issilicon(usr) && is_special_character(usr) && !R.emagged) - dat += "(Hack) " - dat += "([R.canmove ? "Lockdown" : "Release"]) " - dat += "(Destroy)" + dat += "(Hack) " + dat += "([R.canmove ? "Lockdown" : "Release"]) " + dat += "(Destroy)" dat += "
" dat += "(Return to Main Menu)
" if(screen == 2) diff --git a/code/WorkInProgress/computer3/computers/security.dm b/code/WorkInProgress/computer3/computers/security.dm index 77161bb247..7d94f892bb 100644 --- a/code/WorkInProgress/computer3/computers/security.dm +++ b/code/WorkInProgress/computer3/computers/security.dm @@ -10,7 +10,7 @@ icon_state = "laptop" -/datum/file/program/secure_data//TODO:SANITY +/datum/file/program/secure_data name = "Security Records" desc = "Used to view and edit personnel's security records" active_state = "security" diff --git a/code/WorkInProgress/computer3/computers/station_alert.dm b/code/WorkInProgress/computer3/computers/station_alert.dm index 2ee767a39a..850bfc83c5 100644 --- a/code/WorkInProgress/computer3/computers/station_alert.dm +++ b/code/WorkInProgress/computer3/computers/station_alert.dm @@ -1,33 +1,23 @@ - /obj/machinery/computer3/station_alert + default_prog = /datum/file/program/station_alert + spawn_parts = list(/obj/item/part/computer/storage/hdd,/obj/item/part/computer/networking/radio) + icon_state = "frame-eng" + + +/datum/file/program/station_alert name = "Station Alert Console" desc = "Used to access the station's automated alert system." - icon_state = "alert:0" - circuit = "/obj/item/part/board/circuit/stationalert" + active_state = "alert:0" var/alarms = list("Fire"=list(), "Atmosphere"=list(), "Power"=list()) - - attack_ai(mob/user) - add_fingerprint(user) - if(stat & (BROKEN|NOPOWER)) - return - interact(user) - return - - - attack_hand(mob/user) - add_fingerprint(user) - if(stat & (BROKEN|NOPOWER)) - return - interact(user) - return - - interact(mob/user) usr.set_machine(src) - var/dat = "" + if(!interactable()) + return + var/dat = "Current Station Alerts\n" + dat += "Close

" for (var/cat in src.alarms) - dat += text("

[]

", cat) + dat += text("[]
\n", cat) var/list/L = src.alarms[cat] if (L.len) for (var/alarm in L) @@ -36,7 +26,7 @@ var/list/sources = alm[3] dat += "" dat += "• " - dat += "[format_text(A.name)]" + dat += "[A.name]" if (sources.len > 1) dat += text(" - [] sources", sources.len) dat += "
\n" @@ -45,11 +35,10 @@ dat += "
\n" //user << browse(dat, "window=alerts") //onclose(user, "alerts") - var/datum/browser/popup = new(user, "alerts", "Current Station Alerts") - popup.add_head_content("") popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.set_title_image(usr.browse_rsc_icon(computer.icon, computer.icon_state)) popup.open() + return Topic(href, href_list) @@ -59,8 +48,6 @@ proc/triggerAlarm(var/class, area/A, var/O, var/alarmsource) - if(stat & (BROKEN)) - return var/list/L = src.alarms[class] for (var/I in L) if (I == A.name) @@ -82,8 +69,6 @@ proc/cancelAlarm(var/class, area/A as area, obj/origin) - if(stat & (BROKEN)) - return var/list/L = src.alarms[class] var/cleared = 0 for (var/I in L) @@ -98,17 +83,15 @@ return !cleared + process() - if(stat & (BROKEN|NOPOWER)) - icon_state = "atmos0" - return var/active_alarms = 0 for (var/cat in src.alarms) var/list/L = src.alarms[cat] if(L.len) active_alarms = 1 if(active_alarms) - icon_state = "alert:2" + active_state = "alert:2" else - icon_state = "alert:0" + active_state = "alert:0" ..() return diff --git a/code/WorkInProgress/computer3/laptop.dm b/code/WorkInProgress/computer3/laptop.dm index c681ff50a7..4b3368b946 100644 --- a/code/WorkInProgress/computer3/laptop.dm +++ b/code/WorkInProgress/computer3/laptop.dm @@ -25,7 +25,7 @@ item_state = "laptop-inhand" pixel_x = 2 pixel_y = -3 - w_class = 4 + w_class = 3 var/obj/machinery/computer3/laptop/stored_computer = null diff --git a/code/WorkInProgress/computer3/program.dm b/code/WorkInProgress/computer3/program.dm index 985ed74d35..67e1d7b3d3 100644 --- a/code/WorkInProgress/computer3/program.dm +++ b/code/WorkInProgress/computer3/program.dm @@ -281,7 +281,7 @@ Programs are a file that can be executed /datum/file/program/Genetics name = "Genetics Suite" - image = 'icons/nots/genetics.png' + image = 'icons/ntos/genetics.png' desc = "A sophisticated software suite containing read-only genetics hardware specifications and a highly compressed genome databank." active_state = "dna" volume = 8000 diff --git a/icons/obj/computer3.dmi b/icons/obj/computer3.dmi index 4942da6a6b..1fb6ce267e 100644 Binary files a/icons/obj/computer3.dmi and b/icons/obj/computer3.dmi differ