From 215d01e1cd204ac5dea516fefb43f951c1772aff Mon Sep 17 00:00:00 2001 From: Ren Erthilo Date: Sun, 22 Apr 2012 19:50:34 +0100 Subject: [PATCH] TG: - Removed the 'midis' variable from mobs. This one's supposed to be a client thing, so it's now a client side var instead of being doubled in mobs. - Made ooccolor, be_pai, be_alien, midis and ghost_ears actually properly copy over from the preferences when observing! Incredible, isn't it? Revision: r3087 Author: baloh.matev --- code/game/verbs/sound.dm | 3 +- code/modules/mob/new_player/new_player.dm | 2 + code/modules/mob/new_player/preferences.dm | 60 ++++++++++++++++------ 3 files changed, 47 insertions(+), 18 deletions(-) diff --git a/code/game/verbs/sound.dm b/code/game/verbs/sound.dm index 2e64eabf73b..0ba65de787d 100644 --- a/code/game/verbs/sound.dm +++ b/code/game/verbs/sound.dm @@ -15,6 +15,7 @@ return /* why is something that only is usable in the lobby a mob verb? + /mob/verb/toggletitlemusic() set category = "Special Verbs" set name = "Toggle Pregame Music" @@ -27,4 +28,4 @@ M << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1) // stop the jamsz return -*/ +*/ \ No newline at end of file diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index f4ddf4d83bb..cbbb5505e8d 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -214,6 +214,8 @@ observer.real_name = observer.name observer.original_name = observer.name //Original name is only used in ghost chat! It is not to be edited by anything! + preferences.copy_to_observer(observer) + del(src) return 1 diff --git a/code/modules/mob/new_player/preferences.dm b/code/modules/mob/new_player/preferences.dm index 07c5f9436fa..01ff30befdc 100644 --- a/code/modules/mob/new_player/preferences.dm +++ b/code/modules/mob/new_player/preferences.dm @@ -300,15 +300,21 @@ datum/preferences dat += "[copytext(flavor_text, 1, 37)]..." dat += "
" - if(!jobban_isbanned(user, "Syndicate")) + if(jobban_isbanned(user, "Syndicate")) + dat += "You are banned from antagonist roles." + src.be_special = 0 + else var/n = 0 for (var/i in special_roles) if(special_roles[i]) //if mode is available on the server - dat += "Be [i]: [src.be_special&(1<
" + if(jobban_isbanned(user, i)) + dat += "Be [i]: \[BANNED]
" + else if(i == "pai candidate") + if(jobban_isbanned(user, "pAI")) + dat += "Be [i]: \[BANNED]
" + else + dat += "Be [i]: [src.be_special&(1<
" n++ - else - dat += "You are banned from being Syndicate." - src.be_special = 0 dat += "
" // slot options @@ -599,12 +605,23 @@ datum/preferences switch(link_tags["real_name"]) if("input") new_name = input(user, "Please select a name:", "Character Generation") as text - var/list/bad_characters = list("_", "'", "\"", "<", ">", ";", "[", "]", "{", "}", "|", "\\") + var/list/bad_characters = list("_", "'", "\"", "<", ">", ";", "\[", "\]", "{", "}", "|", "\\","0","1","2","3","4","5","6","7","8","9") for(var/c in bad_characters) new_name = dd_replacetext(new_name, c, "") if(!new_name || (new_name == "Unknown") || (new_name == "floor") || (new_name == "wall") || (new_name == "r-wall")) - alert("Don't do this") + alert("Invalid name. Don't do that!") return + if(length(new_name) >= 26) + alert("That name is too long.") + return + + //Carn: To fix BYOND text-parsing errors caused by people using dumb capitalisation in their names. + var/tempname + for(var/N in dd_text2list(new_name, " ")) + if(N && tempname) //if both aren't null strings + tempname += " " + tempname += capitalize(lowertext(N)) + new_name = tempname if("random") randomize_name() @@ -617,9 +634,9 @@ datum/preferences if(link_tags["age"]) switch(link_tags["age"]) if("input") - var/new_age = input(user, "Please select type in age: 20-45", "Character Generation") as num + var/new_age = input(user, "Please select type in age: 15-45", "Character Generation") as num if(new_age) - age = max(min(round(text2num(new_age)), 45), 20) + age = max(min(round(text2num(new_age)), 45), 15) if("random") age = rand (20, 45) @@ -761,7 +778,8 @@ datum/preferences UI = UI_OLD if(link_tags["midis"]) - midis = (midis+1)%2 + midis = !midis + if(link_tags["ghost_ears"]) ghost_ears = !ghost_ears @@ -947,8 +965,6 @@ datum/preferences backbag = 1 //Same as above character.backbag = backbag - character.underwear = underwear == 1 ? pick(1,2,3,4,5) : 0 - character.used_skillpoints = used_skillpoints character.skill_specialization = skill_specialization character.skills = skills @@ -959,11 +975,21 @@ datum/preferences if(!safety)//To prevent run-time errors due to null datum when using randomize_appearance_for() spawn(10) if(character&&character.client) - character.client.midis = midis - character.client.ooccolor = ooccolor - character.client.be_alien = be_special&BE_ALIEN - character.client.be_pai = be_special&BE_PAI - character.client.be_syndicate = be_special + setup_client(character.client) + + proc/copy_to_observer(mob/dead/observer/character) + spawn(10) + if(character && character.client) + setup_client(character.client) + + proc/setup_client(var/client/C) + if(C) + C.midis = src.midis + C.ooccolor = src.ooccolor + C.be_alien = be_special & BE_ALIEN + C.be_pai = be_special & BE_PAI + if(isnull(src.ghost_ears)) src.ghost_ears = 1 //There were problems where the default was null before someone saved their profile. + C.ghost_ears = src.ghost_ears proc/copydisabilities(mob/living/carbon/human/character) if(disabilities & 1)