diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm
index 3f40be01df..a29fc1dfec 100644
--- a/code/modules/research/rdconsole.dm
+++ b/code/modules/research/rdconsole.dm
@@ -122,6 +122,8 @@ won't update every console in existence) but it's more of a hassle to do. Also,
C.files.AddDesign2Known(D)
C.files.RefreshResearch()
+
+
/obj/machinery/computer/rdconsole/New()
..()
files = new /datum/research(src) //Setup the research data holder.
@@ -523,9 +525,52 @@ won't update every console in existence) but it's more of a hassle to do. Also,
spawn(20)
screen = 1.6
updateUsrDialog()
+
+ else if (href_list["print"]) //Print research information
+ screen = 0.5
+ spawn(20)
+ var/obj/item/weapon/paper/PR = new/obj/item/weapon/paper
+ if( text2num(href_list["print"]) == 2)
+ PR.name = "research list"
+ PR.info = GetResearchListInfo()
+ else
+ PR.name = "research levels"
+ PR.info = GetResearchLevelsInfo()
+ PR.info_links = PR.info
+ PR.icon_state = "paper_words"
+ PR.loc = src.loc
+ spawn(10)
+ screen = ((text2num(href_list["print"]) == 2) ? 5.0 : 1.1)
+ updateUsrDialog()
+
updateUsrDialog()
return
+/obj/machinery/computer/rdconsole/proc/GetResearchLevelsInfo()
+ var/dat
+ dat += "Current Research Levels:
"
+ dat += "
"
+ for(var/datum/tech/T in files.known_tech)
+ dat += "- "
+ dat += "[T.name]"
+ dat += "
"
+ dat += "- Level: [T.level]"
+ dat += "
- Summary: [T.desc]"
+ dat += "
"
+ return dat
+
+/obj/machinery/computer/rdconsole/proc/GetResearchListInfo()
+ var/dat
+ dat += "List of Researched Technologies and Designs:"
+ dat += ""
+ for(var/datum/design/D in files.known_designs)
+ if(D.build_path)
+ dat += "- [D.name]: [D.desc]"
+ dat += "
"
+ return dat
+
+
+
/obj/machinery/computer/rdconsole/attack_hand(mob/user as mob)
if(stat & (BROKEN|NOPOWER))
return
@@ -570,6 +615,9 @@ won't update every console in existence) but it's more of a hassle to do. Also,
if(0.4)
dat += "Imprinting Circuit. Please Wait..."
+ if(0.5)
+ dat += "Printing Research Information. Please Wait..."
+
if(1.0) //Main Menu
dat += "Main Menu:
"
dat += "Loaded disk: "
@@ -593,16 +641,9 @@ won't update every console in existence) but it's more of a hassle to do. Also,
dat += "
"
if(1.1) //Research viewer
- dat += "Main Menu
"
- dat += "Current Research Levels:
"
- dat += ""
- for(var/datum/tech/T in files.known_tech)
- dat += "- "
- dat += "[T.name]"
- dat += "
"
- dat += "- Level: [T.level]"
- dat += "
- Summary: [T.desc]"
- dat += "
"
+ dat += "Main Menu || "
+ dat += "Print This Page
"
+ dat += GetResearchLevelsInfo()
dat += "
"
if(1.2) //Technology Disk Menu
@@ -897,18 +938,15 @@ won't update every console in existence) but it's more of a hassle to do. Also,
///////////////////Research Information Browser////////////////////
if(5.0)
- dat += "Main Menu
"
- dat += "List of Researched Technologies and Designs:"
- dat += ""
- for(var/datum/design/D in files.known_designs)
- if(D.build_path)
- dat += "- [D.name]: [D.desc]"
- dat += "
"
-
+ dat += "Main Menu || "
+ dat += "Print This Page
"
+ dat += GetResearchListInfo()
user << browse("Research and Development Console
[dat]", "window=rdconsole;size=850x600")
onclose(user, "rdconsole")
+
+
/obj/machinery/computer/rdconsole/robotics
name = "Robotics R&D Console"
id = 2