diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index 66cf3d1c128..5e5f044ac24 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -515,7 +515,7 @@
if("Show Crew Manifest")
if(isAI(usr))
var/mob/living/silicon/ai/AI = usr
- AI.ai_roster()
+ AI.subsystem_crew_manifest()
if("Show Alerts")
if(isAI(usr))
@@ -540,12 +540,14 @@
if("PDA - Send Message")
if(isAI(usr))
var/mob/living/silicon/ai/AI = usr
- AI.aiPDA.cmd_send_pdamesg(usr)
+ AI.aiPDA.start_program(AI.aiPDA.find_program(/datum/data/pda/app/messenger))
+ AI.aiPDA.cmd_pda_open_ui(usr)
if("PDA - Show Message Log")
if(isAI(usr))
var/mob/living/silicon/ai/AI = usr
- AI.aiPDA.cmd_show_message_log(usr)
+ AI.aiPDA.start_program(AI.aiPDA.find_program(/datum/data/pda/app/messenger))
+ AI.aiPDA.cmd_pda_open_ui(usr)
if("Take Image")
if(isAI(usr))
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 4ee1d8935c5..c81d7ddb0d2 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -20,7 +20,6 @@ var/list/ai_verbs_default = list(
/mob/living/silicon/ai/proc/ai_call_shuttle,
/mob/living/silicon/ai/proc/ai_camera_track,
/mob/living/silicon/ai/proc/ai_camera_list,
- /mob/living/silicon/ai/proc/ai_roster,
/mob/living/silicon/ai/proc/ai_checklaws,
/mob/living/silicon/ai/proc/toggle_camera_light,
/mob/living/silicon/ai/proc/take_image,
@@ -355,12 +354,6 @@ var/list/ai_verbs_default = list(
if(new_sprite) selected_sprite = new_sprite
updateicon()
-// this verb lets the ai see the stations manifest
-/mob/living/silicon/ai/proc/ai_roster()
- set category = "AI Commands"
- set name = "Show Crew Manifest"
- show_station_manifest()
-
/mob/living/silicon/ai/var/message_cooldown = 0
/mob/living/silicon/ai/proc/ai_announcement()
set category = "AI Commands"
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index ad1e767acab..7d67ca3cc32 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -349,12 +349,6 @@
updatename()
updateicon()
-// this verb lets cyborgs see the stations manifest
-/mob/living/silicon/robot/verb/cmd_station_manifest()
- set category = "Robot Commands"
- set name = "Show Crew Manifest"
- show_station_manifest()
-
/mob/living/silicon/robot/proc/self_diagnosis()
if(!is_component_functioning("diagnosis unit"))
return null
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index b6cf748fb82..b9c2c60c471 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -153,18 +153,6 @@
show_malf_ai()
..()
-// this function displays the stations manifest in a separate window
-/mob/living/silicon/proc/show_station_manifest()
- var/dat = "
"
- if(!data_core)
- to_chat(src, "
There is no data to form a manifest with. Contact your Nanotrasen administrator.")
- return
- dat += data_core.get_manifest(1) //The 1 makes it monochrome.
-
- var/datum/browser/popup = new(src, "Crew Manifest", "Crew Manifest", 370, 420, src)
- popup.set_content(dat)
- popup.open()
-
//can't inject synths
/mob/living/silicon/can_inject(var/mob/user, var/error_msg)
if(error_msg)
diff --git a/code/modules/mob/living/silicon/subystems.dm b/code/modules/mob/living/silicon/subystems.dm
index be6a68591d8..890f1a8b370 100644
--- a/code/modules/mob/living/silicon/subystems.dm
+++ b/code/modules/mob/living/silicon/subystems.dm
@@ -2,6 +2,7 @@
var/register_alarms = 1
var/datum/tgui_module/alarm_monitor/all/robot/alarm_monitor
var/datum/tgui_module/atmos_control/robot/atmos_control
+ var/datum/tgui_module/crew_manifest/robot/crew_manifest
var/datum/tgui_module/crew_monitor/robot/crew_monitor
var/datum/tgui_module/law_manager/robot/law_manager
var/datum/tgui_module/power_monitor/robot/power_monitor
@@ -10,6 +11,7 @@
/mob/living/silicon
var/list/silicon_subsystems = list(
/mob/living/silicon/proc/subsystem_alarm_monitor,
+ /mob/living/silicon/proc/subsystem_crew_manifest,
/mob/living/silicon/proc/subsystem_law_manager
)
@@ -17,6 +19,7 @@
silicon_subsystems = list(
/mob/living/silicon/proc/subsystem_alarm_monitor,
/mob/living/silicon/proc/subsystem_atmos_control,
+ /mob/living/silicon/proc/subsystem_crew_manifest,
/mob/living/silicon/proc/subsystem_crew_monitor,
/mob/living/silicon/proc/subsystem_law_manager,
/mob/living/silicon/proc/subsystem_power_monitor,
@@ -30,6 +33,7 @@
/mob/living/silicon/proc/init_subsystems()
alarm_monitor = new(src)
atmos_control = new(src)
+ crew_manifest = new(src)
crew_monitor = new(src)
law_manager = new(src)
power_monitor = new(src)
@@ -60,6 +64,15 @@
atmos_control.tgui_interact(usr)
+/********************
+* Crew Manifest *
+********************/
+/mob/living/silicon/proc/subsystem_crew_manifest()
+ set category = "Subystems"
+ set name = "Crew Manifest"
+
+ crew_manifest.tgui_interact(usr)
+
/********************
* Crew Monitor *
********************/
diff --git a/code/modules/pda/ai.dm b/code/modules/pda/ai.dm
index b8a0d99a390..9072eef96ee 100644
--- a/code/modules/pda/ai.dm
+++ b/code/modules/pda/ai.dm
@@ -4,7 +4,12 @@
icon_state = "NONE"
ttone = "data"
detonate = 0
-
+ touch_silent = TRUE
+ programs = list(
+ new/datum/data/pda/app/main_menu,
+ new/datum/data/pda/app/notekeeper,
+ new/datum/data/pda/app/news,
+ new/datum/data/pda/app/messenger)
/obj/item/device/pda/ai/proc/set_name_and_job(newname as text, newjob as text, newrank as null|text)
owner = newname
@@ -16,70 +21,18 @@
name = newname + " (" + ownjob + ")"
//AI verb and proc for sending PDA messages.
-/obj/item/device/pda/ai/verb/cmd_send_pdamesg()
+/obj/item/device/pda/ai/verb/cmd_pda_open_ui()
set category = "AI IM"
- set name = "Send PDA Message"
+ set name = "Use PDA"
set src in usr
if(!can_use())
return
- var/datum/data/pda/app/messenger/M = find_program(/datum/data/pda/app/messenger)
- if(!M)
- to_chat(usr, "
Cannot use messenger!")
- var/list/plist = M.available_pdas()
- if(plist)
- var/c = input(usr, "Please select a PDA") as null|anything in sortList(plist)
- if(!c) // if the user hasn't selected a PDA file we can't send a message
- return
- var/selected = plist[c]
- M.create_message(usr, selected)
-
-/obj/item/device/pda/ai/verb/cmd_toggle_pda_receiver()
- set category = "AI IM"
- set name = "Toggle Sender/Receiver"
- set src in usr
-
- if(!can_use())
- return
- var/datum/data/pda/app/messenger/M = find_program(/datum/data/pda/app/messenger)
- M.toff = !M.toff
- to_chat(usr, "
PDA sender/receiver toggled [(M.toff ? "Off" : "On")]!")
-
-/obj/item/device/pda/ai/verb/cmd_toggle_pda_silent()
- set category = "AI IM"
- set name = "Toggle Ringer"
- set src in usr
-
- if(!can_use())
- return
- var/datum/data/pda/app/messenger/M = find_program(/datum/data/pda/app/messenger)
- M.notify_silent = !M.notify_silent
- to_chat(usr, "
PDA ringer toggled [(M.notify_silent ? "Off" : "On")]!")
-
-/obj/item/device/pda/ai/verb/cmd_show_message_log()
- set category = "AI IM"
- set name = "Show Message Log"
- set src in usr
-
- if(!can_use())
- return
- var/datum/data/pda/app/messenger/M = find_program(/datum/data/pda/app/messenger)
- if(!M)
- to_chat(usr, "
Cannot use messenger!")
- var/HTML = "
AI PDA Message Log"
- for(var/index in M.tnote)
- if(index["sent"])
- HTML += addtext("
→ To ", index["owner"],":", index["message"], "
")
- else
- HTML += addtext("
← From ", index["owner"],":", index["message"], "
")
- HTML +=""
- usr << browse(HTML, "window=log;size=400x444;border=1;can_resize=1;can_close=1;can_minimize=0")
-
+ tgui_interact(usr)
/obj/item/device/pda/ai/can_use()
return 1
-
/obj/item/device/pda/ai/attack_self(mob/user as mob)
if ((honkamt > 0) && (prob(60)))//For clown virus.
honkamt--
@@ -90,11 +43,6 @@
/obj/item/device/pda/ai/pai
ttone = "assist"
var/our_owner = null // Ref to a pAI
- touch_silent = TRUE
- programs = list(
- new/datum/data/pda/app/main_menu,
- new/datum/data/pda/app/notekeeper,
- new/datum/data/pda/app/messenger)
/obj/item/device/pda/ai/pai/New(mob/living/silicon/pai/P)
if(istype(P))
diff --git a/code/modules/tgui/modules/crew_manifest.dm b/code/modules/tgui/modules/crew_manifest.dm
new file mode 100644
index 00000000000..7c4daf7f2a5
--- /dev/null
+++ b/code/modules/tgui/modules/crew_manifest.dm
@@ -0,0 +1,14 @@
+/datum/tgui_module/crew_manifest
+ name = "Crew Manifest"
+ tgui_id = "CrewManifest"
+
+/datum/tgui_module/crew_manifest/tgui_data(mob/user, datum/tgui/ui, datum/tgui_state/state)
+ var/list/data = ..()
+ if(data_core)
+ data_core.get_manifest_list()
+ data["manifest"] = PDA_Manifest
+ return data
+
+/datum/tgui_module/crew_manifest/robot
+/datum/tgui_module/crew_manifest/robot/tgui_state(mob/user)
+ return GLOB.tgui_self_state
\ No newline at end of file
diff --git a/nano/templates/manifest.tmpl b/nano/templates/manifest.tmpl
deleted file mode 100644
index 00c45a1d5ff..00000000000
--- a/nano/templates/manifest.tmpl
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
Crew Manifest
-
-
-
{{:helper.link('Home', 'home', {'switch_tab' : 1})}}
-
-
-
- {{for data.manifest}}
- {{if value.elems.length}}
- | {{:value.cat}} |
- {{for value.elems :itemValue:itemIndex}}
-
- | {{:itemValue.name}} |
- {{:itemValue.rank}} |
- {{:itemValue.active}} |
-
- {{/for}}
- {{/if}}
- {{/for}}
-
-
diff --git a/vorestation.dme b/vorestation.dme
index 9ef30323bc8..a767b836288 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -3535,6 +3535,7 @@
#include "code\modules\tgui\modules\atmos_control.dm"
#include "code\modules\tgui\modules\camera.dm"
#include "code\modules\tgui\modules\communications.dm"
+#include "code\modules\tgui\modules\crew_manifest.dm"
#include "code\modules\tgui\modules\crew_monitor.dm"
#include "code\modules\tgui\modules\law_manager.dm"
#include "code\modules\tgui\modules\overmap.dm"