diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index c47fa3a190..881eb95abb 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -426,43 +426,6 @@ log_and_message_admins("has opened [S]'s law manager.") feedback_add_details("admin_verb","MSL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/client/proc/change_human_appearance_admin() - set name = "Change Mob Appearance - Admin" - set desc = "Allows you to change the mob appearance" - set category = "Admin" - - if(!check_rights(R_FUN)) return - - var/mob/living/carbon/human/H = input("Select mob.", "Change Mob Appearance - Admin") as null|anything in human_mob_list - if(!H) return - - log_and_message_admins("is altering the appearance of [H].") - H.change_appearance(APPEARANCE_ALL, usr, usr, check_species_whitelist = 0, state = admin_state) - feedback_add_details("admin_verb","CHAA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/proc/change_human_appearance_self() - set name = "Change Mob Appearance - Self" - set desc = "Allows the mob to change its appearance" - set category = "Admin" - - if(!check_rights(R_FUN)) return - - var/mob/living/carbon/human/H = input("Select mob.", "Change Mob Appearance - Self") as null|anything in human_mob_list - if(!H) return - - if(!H.client) - to_chat(usr, " Only mobs with clients can alter their own appearance.") - return - var/datum/gender/T = gender_datums[H.get_visible_gender()] - switch(alert("Do you wish for [H] to be allowed to select non-whitelisted races?","Alter Mob Appearance","Yes","No","Cancel")) - if("Yes") - log_and_message_admins("has allowed [H] to change [T.his] appearance, without whitelisting of races.") - H.change_appearance(APPEARANCE_ALL, H.loc, check_species_whitelist = 0) - if("No") - log_and_message_admins("has allowed [H] to change [T.his] appearance, with whitelisting of races.") - H.change_appearance(APPEARANCE_ALL, H.loc, check_species_whitelist = 1) - feedback_add_details("admin_verb","CMAS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - /client/proc/change_security_level() set name = "Set security level" set desc = "Sets the station security level" @@ -485,74 +448,6 @@ // feedback_add_details("admin_verb","MP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return -/client/proc/editappear() - set name = "Edit Appearance" - set category = "Fun" - - if(!check_rights(R_FUN)) return - - var/mob/living/carbon/human/M = input("Select mob.", "Edit Appearance") as null|anything in human_mob_list - - if(!istype(M, /mob/living/carbon/human)) - to_chat(usr, "You can only do this to humans!") - return - switch(alert("Are you sure you wish to edit this mob's appearance? Skrell, Unathi, Tajaran can result in unintended consequences.",,"Yes","No")) - if("No") - return - var/new_facial = input("Please select facial hair color.", "Character Generation") as color - if(new_facial) - M.r_facial = hex2num(copytext(new_facial, 2, 4)) - M.g_facial = hex2num(copytext(new_facial, 4, 6)) - M.b_facial = hex2num(copytext(new_facial, 6, 8)) - - var/new_hair = input("Please select hair color.", "Character Generation") as color - if(new_facial) - M.r_hair = hex2num(copytext(new_hair, 2, 4)) - M.g_hair = hex2num(copytext(new_hair, 4, 6)) - M.b_hair = hex2num(copytext(new_hair, 6, 8)) - - var/new_eyes = input("Please select eye color.", "Character Generation") as color - if(new_eyes) - M.r_eyes = hex2num(copytext(new_eyes, 2, 4)) - M.g_eyes = hex2num(copytext(new_eyes, 4, 6)) - M.b_eyes = hex2num(copytext(new_eyes, 6, 8)) - M.update_eyes() - - var/new_skin = input("Please select body color. This is for Tajaran, Unathi, and Skrell only!", "Character Generation") as color - if(new_skin) - M.r_skin = hex2num(copytext(new_skin, 2, 4)) - M.g_skin = hex2num(copytext(new_skin, 4, 6)) - M.b_skin = hex2num(copytext(new_skin, 6, 8)) - - var/new_tone = input("Please select skin tone level: 1-220 (1=albino, 35=caucasian, 150=black, 220='very' black)", "Character Generation") as text - - if (new_tone) - M.s_tone = max(min(round(text2num(new_tone)), 220), 1) - M.s_tone = -M.s_tone + 35 - - // hair - var/new_hstyle = input(usr, "Select a hair style", "Grooming") as null|anything in hair_styles_list - if(new_hstyle) - M.h_style = new_hstyle - - // facial hair - var/new_fstyle = input(usr, "Select a facial hair style", "Grooming") as null|anything in facial_hair_styles_list - if(new_fstyle) - M.f_style = new_fstyle - - var/new_gender = alert(usr, "Please select gender.", "Character Generation", "Male", "Female", "Neuter") - if (new_gender) - if(new_gender == "Male") - M.gender = MALE - else if (new_gender == "Female") - M.gender = FEMALE - else - M.gender = NEUTER - - M.update_hair(FALSE) - M.update_icons_body() - M.check_dna(M) - /client/proc/playernotes() set name = "Show Player Info" set category = "Admin" diff --git a/code/modules/admin/verbs/change_appearance.dm b/code/modules/admin/verbs/change_appearance.dm new file mode 100644 index 0000000000..e547d03f84 --- /dev/null +++ b/code/modules/admin/verbs/change_appearance.dm @@ -0,0 +1,107 @@ +/client/proc/change_human_appearance_admin() + set name = "Change Mob Appearance - Admin" + set desc = "Allows you to change the mob appearance" + set category = "Admin" + + if(!check_rights(R_FUN)) return + + var/mob/living/carbon/human/H = input("Select mob.", "Change Mob Appearance - Admin") as null|anything in human_mob_list + if(!H) return + + log_and_message_admins("is altering the appearance of [H].") + H.change_appearance(APPEARANCE_ALL, usr, usr, check_species_whitelist = 0, state = admin_state) + feedback_add_details("admin_verb","CHAA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/change_human_appearance_self() + set name = "Change Mob Appearance - Self" + set desc = "Allows the mob to change its appearance" + set category = "Admin" + + if(!check_rights(R_FUN)) return + + var/mob/living/carbon/human/H = input("Select mob.", "Change Mob Appearance - Self") as null|anything in human_mob_list + if(!H) return + + if(!H.client) + to_chat(usr, " Only mobs with clients can alter their own appearance.") + return + var/datum/gender/T = gender_datums[H.get_visible_gender()] + switch(alert("Do you wish for [H] to be allowed to select non-whitelisted races?","Alter Mob Appearance","Yes","No","Cancel")) + if("Yes") + log_and_message_admins("has allowed [H] to change [T.his] appearance, without whitelisting of races.") + H.change_appearance(APPEARANCE_ALL, H.loc, check_species_whitelist = 0) + if("No") + log_and_message_admins("has allowed [H] to change [T.his] appearance, with whitelisting of races.") + H.change_appearance(APPEARANCE_ALL, H.loc, check_species_whitelist = 1) + feedback_add_details("admin_verb","CMAS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/editappear() + set name = "Edit Appearance" + set category = "Fun" + + if(!check_rights(R_FUN)) return + + var/mob/living/carbon/human/M = input("Select mob.", "Edit Appearance") as null|anything in human_mob_list + + if(!istype(M, /mob/living/carbon/human)) + to_chat(usr, "You can only do this to humans!") + return + switch(alert("Are you sure you wish to edit this mob's appearance? Skrell, Unathi, Tajaran can result in unintended consequences.",,"Yes","No")) + if("No") + return + var/new_facial = input("Please select facial hair color.", "Character Generation") as color + if(new_facial) + M.r_facial = hex2num(copytext(new_facial, 2, 4)) + M.g_facial = hex2num(copytext(new_facial, 4, 6)) + M.b_facial = hex2num(copytext(new_facial, 6, 8)) + + var/new_hair = input("Please select hair color.", "Character Generation") as color + if(new_facial) + M.r_hair = hex2num(copytext(new_hair, 2, 4)) + M.g_hair = hex2num(copytext(new_hair, 4, 6)) + M.b_hair = hex2num(copytext(new_hair, 6, 8)) + + var/new_eyes = input("Please select eye color.", "Character Generation") as color + if(new_eyes) + M.r_eyes = hex2num(copytext(new_eyes, 2, 4)) + M.g_eyes = hex2num(copytext(new_eyes, 4, 6)) + M.b_eyes = hex2num(copytext(new_eyes, 6, 8)) + M.update_eyes() + + var/new_skin = input("Please select body color. This is for Tajaran, Unathi, and Skrell only!", "Character Generation") as color + if(new_skin) + M.r_skin = hex2num(copytext(new_skin, 2, 4)) + M.g_skin = hex2num(copytext(new_skin, 4, 6)) + M.b_skin = hex2num(copytext(new_skin, 6, 8)) + + var/new_tone = input("Please select skin tone level: 1-220 (1=albino, 35=caucasian, 150=black, 220='very' black)", "Character Generation") as text + + if (new_tone) + M.s_tone = max(min(round(text2num(new_tone)), 220), 1) + M.s_tone = -M.s_tone + 35 + + // hair + var/new_hstyle = input(usr, "Select a hair style", "Grooming") as null|anything in hair_styles_list + if(new_hstyle) + M.h_style = new_hstyle + + // facial hair + var/new_fstyle = input(usr, "Select a facial hair style", "Grooming") as null|anything in facial_hair_styles_list + if(new_fstyle) + M.f_style = new_fstyle + + var/new_gender = alert(usr, "Please select gender.", "Character Generation", "Male", "Female", "Neuter") + if (new_gender) + if(new_gender == "Male") + M.gender = MALE + M.dna.SetUIState(DNA_UI_GENDER, FALSE) + else if (new_gender == "Female") + M.gender = FEMALE + M.dna.SetUIState(DNA_UI_GENDER, TRUE) + else + M.gender = NEUTER + M.dna.SetUIState(DNA_UI_GENDER, FALSE) + + M.update_dna(M) + M.update_hair(FALSE) + M.update_icons_body() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/appearance.dm b/code/modules/mob/living/carbon/human/appearance.dm index afc9e704a2..239c42c982 100644 --- a/code/modules/mob/living/carbon/human/appearance.dm +++ b/code/modules/mob/living/carbon/human/appearance.dm @@ -22,9 +22,14 @@ return src.gender = gender +<<<<<<< HEAD //reset_hair() //VOREStation Remove - Don't just randomize hair on gender swaps for prometheans. update_icons_body() +======= + reset_hair() +>>>>>>> 46b6bd1... Edit Appearance and Change Appearance update icon sex (#7193) update_dna() + update_icons_body() return 1 /mob/living/carbon/human/proc/change_gender_identity(var/identifying_gender) @@ -141,6 +146,8 @@ /mob/living/carbon/human/proc/update_dna() check_dna() dna.ready_dna(src) + for(var/obj/item/organ/O in organs) + O.dna = dna // Update all of those because apparently they're separate, and icons won't update properly /mob/living/carbon/human/proc/generate_valid_species(var/check_whitelist = 1, var/list/whitelist = list(), var/list/blacklist = list()) var/list/valid_species = new() diff --git a/code/modules/organs/organ_icon.dm b/code/modules/organs/organ_icon.dm index 1a79b2b14a..221767b15b 100644 --- a/code/modules/organs/organ_icon.dm +++ b/code/modules/organs/organ_icon.dm @@ -131,9 +131,9 @@ var/global/list/limb_icon_cache = list() /obj/item/organ/external/proc/get_icon(var/skeletal) - var/gender = "f" - if(owner && owner.gender == MALE) - gender = "m" + var/gender = "m" + if(owner && owner.gender == FEMALE) + gender = "f" icon_cache_key = "[icon_name]_[species ? species.get_bodytype() : SPECIES_HUMAN]" //VOREStation Edit diff --git a/vorestation.dme b/vorestation.dme index 0d4628499f..c8e238816a 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1588,6 +1588,7 @@ #include "code\modules\admin\verbs\atmosdebug.dm" #include "code\modules\admin\verbs\BrokenInhands.dm" #include "code\modules\admin\verbs\buildmode.dm" +#include "code\modules\admin\verbs\change_appearance.dm" #include "code\modules\admin\verbs\check_customitem_activity.dm" #include "code\modules\admin\verbs\cinematic.dm" #include "code\modules\admin\verbs\custom_event.dm"