diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm
index d2cd41a940..4b4b129278 100644
--- a/code/_helpers/global_lists.dm
+++ b/code/_helpers/global_lists.dm
@@ -57,7 +57,7 @@ var/global/list/undershirt_t = list(
"White tank top" = "u1", "Black tank top" = "u2", "Black shirt" = "u3",
"White shirt" = "u4", "White shirt 2" = "shirt_white_s", "White tank top 2" = "tank_white_s",
"Black shirt 2" = "shirt_black_s", "Grey shirt" = "shirt_grey_s", "Heart shirt" = "lover_s",
- "I love NT shirt" = "ilovent_s", "White shortsleeve shirt" = "whiteshortsleeve_s", "Purple shirtsleeve shirt" = "purpleshortsleeve_s",
+ "I love NT shirt" = "ilovent_s", "White shortsleeve shirt" = "whiteshortsleeve_s", "Purple shortsleeve shirt" = "purpleshortsleeve_s",
"Blue shortsleeve shirt" = "blueshortsleeve_s", "Green shortsleeve shirt" = "greenshortsleeve_s", "Black shortsleeve shirt" = "blackshortsleeve_s",
"Blue shirt" = "blueshirt_s", "Red shirt" = "redshirt_s", "Yellow shirt" = "yellowshirt_s", "Green shirt" = "greenshirt_s",
"Blue polo shirt" = "bluepolo_s", "Red polo shirt" = "redpolo_s", "White polo shirt" = "whitepolo_s",
@@ -76,6 +76,7 @@ var/global/list/socks_t = list(
//Backpacks
var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel", "Satchel Alt")
+var/global/list/pdachoicelist = list("Default", "Slim", "Old")
var/global/list/exclude_jobs = list(/datum/job/ai,/datum/job/cyborg)
// Visual nets
diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm
index 1935455f94..98d64f5efd 100644
--- a/code/game/objects/items/devices/PDA/PDA.dm
+++ b/code/game/objects/items/devices/PDA/PDA.dm
@@ -13,6 +13,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
slot_flags = SLOT_ID | SLOT_BELT
//Main variables
+ var/pdachoice = 1
var/owner = null
var/default_cartridge = 0 // Access level defined by cartridge
var/obj/item/weapon/cartridge/cartridge = null //current cartridge
@@ -309,13 +310,18 @@ var/global/list/obj/item/device/pda/PDAs = list()
* The Actual PDA
*/
-/obj/item/device/pda/New()
+/obj/item/device/pda/New(var/mob/living/carbon/human/H)
..()
PDAs += src
PDAs = sortAtom(PDAs)
if(default_cartridge)
cartridge = new default_cartridge(src)
new /obj/item/weapon/pen(src)
+ pdachoice = isnull(H) ? 1 : (ishuman(H) ? H.pdachoice : 1)
+ switch(pdachoice)
+ if(2) icon = 'icons/obj/pda_slim.dmi'
+ if(3) icon = 'icons/obj/pda_old.dmi'
+ else icon = 'icons/obj/pda.dmi'
/obj/item/device/pda/proc/can_use()
@@ -869,7 +875,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
overlays.Cut()
if(new_message || new_news)
- overlays += image('icons/obj/pda.dmi', "pda-r")
+ overlays += image(icon, "pda-r")
/obj/item/device/pda/proc/detonate_act(var/obj/item/device/pda/P)
//TODO: sometimes these attacks show up on the message server
diff --git a/code/modules/client/preference_setup/general/04_equipment.dm b/code/modules/client/preference_setup/general/04_equipment.dm
index 6139f30a1b..e4a0eba8e1 100644
--- a/code/modules/client/preference_setup/general/04_equipment.dm
+++ b/code/modules/client/preference_setup/general/04_equipment.dm
@@ -7,6 +7,7 @@
S["undershirt"] >> pref.undershirt
S["socks"] >> pref.socks
S["backbag"] >> pref.backbag
+ S["pdachoice"] >> pref.pdachoice
S["gear"] >> pref.gear
/datum/category_item/player_setup_item/general/equipment/save_character(var/savefile/S)
@@ -14,10 +15,12 @@
S["undershirt"] << pref.undershirt
S["socks"] << pref.socks
S["backbag"] << pref.backbag
+ S["pdachoice"] << pref.pdachoice
S["gear"] << pref.gear
/datum/category_item/player_setup_item/general/equipment/sanitize_character()
pref.backbag = sanitize_integer(pref.backbag, 1, backbaglist.len, initial(pref.backbag))
+ pref.pdachoice = sanitize_integer(pref.pdachoice, 1, pdachoicelist.len, initial(pref.pdachoice))
if(!islist(pref.gear)) pref.gear = list()
@@ -48,6 +51,7 @@
. += "Undershirt: [get_key_by_value(undershirt_t,pref.undershirt)]
"
. += "Socks: [get_key_by_value(socks_t,pref.socks)]
"
. += "Backpack Type: [backbaglist[pref.backbag]]
"
+ . += "PDA Type: [pdachoicelist[pref.pdachoice]]
"
. += "
Custom Loadout:
"
var/total_cost = 0
@@ -109,6 +113,12 @@
pref.backbag = backbaglist.Find(new_backbag)
return TOPIC_REFRESH
+ else if(href_list["change_pda"])
+ var/new_pdachoice = input(user, "Choose your character's style of PDA:", "Character Preference", pdachoicelist[pref.pdachoice]) as null|anything in pdachoicelist
+ if(!isnull(new_pdachoice) && CanUseTopic(user))
+ pref.pdachoice = pdachoicelist.Find(new_pdachoice)
+ return TOPIC_REFRESH
+
else if(href_list["add_loadout"])
var/total_cost = 0
for(var/gear_name in pref.gear)
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index ab3778b828..31a9b4ab6f 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -34,6 +34,7 @@ datum/preferences
var/undershirt //undershirt type
var/socks //socks type
var/backbag = 2 //backpack type
+ var/pdachoice = 1 //PDA type
var/h_style = "Bald" //Hair type
var/r_hair = 0 //Hair color
var/g_hair = 0 //Hair color
@@ -340,6 +341,10 @@ datum/preferences
backbag = 1 //Same as above
character.backbag = backbag
+ if(pdachoice > 3 || pdachoice < 1)
+ pdachoice = 1
+ character.pdachoice = pdachoice
+
character.update_body()
/datum/preferences/proc/open_load_dialog(mob/user)
diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm
index 78dbee0552..22acad9445 100644
--- a/code/modules/mob/living/carbon/human/human_defines.dm
+++ b/code/modules/mob/living/carbon/human/human_defines.dm
@@ -36,6 +36,7 @@
var/undershirt = 0 //Which undershirt the player wants.
var/socks = 0 //Which socks the player wants.
var/backbag = 2 //Which backpack type the player has chosen. Nothing, Satchel or Backpack.
+ var/pdachoice = 1 //Which PDA type the player has chosen. Default, Slim, or Old.
// General information
var/home_system = ""
diff --git a/icons/obj/pda.dmi b/icons/obj/pda.dmi
index f4fa84dec7..3ec38b8a79 100644
Binary files a/icons/obj/pda.dmi and b/icons/obj/pda.dmi differ
diff --git a/icons/obj/pda_old.dmi b/icons/obj/pda_old.dmi
new file mode 100644
index 0000000000..1799aeab52
Binary files /dev/null and b/icons/obj/pda_old.dmi differ
diff --git a/icons/obj/pda_slim.dmi b/icons/obj/pda_slim.dmi
new file mode 100644
index 0000000000..1e26655175
Binary files /dev/null and b/icons/obj/pda_slim.dmi differ