diff --git a/COPYING b/COPYING index 5005fcd90f..77e1d829ff 100644 --- a/COPYING +++ b/COPYING @@ -1,5 +1,5 @@ Baystation12 -Copyright (C) 2010-2013 Baystation12 and tgstation13. +Copyright (C) 2010-2014 Baystation12 and tgstation13. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/code/game/machinery/bots/cleanbot.dm b/code/game/machinery/bots/cleanbot.dm index c66842d592..e8ab7b6efb 100644 --- a/code/game/machinery/bots/cleanbot.dm +++ b/code/game/machinery/bots/cleanbot.dm @@ -54,6 +54,8 @@ src.botcard = new /obj/item/weapon/card/id(src) var/datum/job/janitor/J = new/datum/job/janitor src.botcard.access = J.get_access() + + src.locked = 0 // Start unlocked so roboticist can set them to patrol. if(radio_controller) radio_controller.add_object(src, beacon_freq, filter = RADIO_NAVBEACONS) diff --git a/code/game/objects/effects/decals/Cleanable/misc.dm b/code/game/objects/effects/decals/Cleanable/misc.dm index d94d4670be..0b999cb0bb 100644 --- a/code/game/objects/effects/decals/Cleanable/misc.dm +++ b/code/game/objects/effects/decals/Cleanable/misc.dm @@ -41,7 +41,7 @@ icon_state = "dirt" /obj/effect/decal/cleanable/attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W,/obj/item/weapon/crowbar)) + if(!istype(W,/obj/item/weapon/mop) && !istype(W,/obj/item/weapon/soap)) var/turf/T = get_turf(src) if(T) T.attackby(W,user) diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 213702f3c8..5a250982d2 100755 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -951,10 +951,9 @@ var/global/list/obj/item/device/pda/PDAs = list() else //Basic safety check. If either both objects are held by user or PDA is on ground and card is in hand. if(((src in user.contents) && (C in user.contents)) || (istype(loc, /turf) && in_range(src, user) && (C in user.contents)) ) - if( can_use(user) )//If they can still act. - id_check(user, 2) - user << "You put the ID into \the [src]'s slot." - updateSelfDialog()//Update self dialog on success. + id_check(user, 2) + user << "You put the ID into \the [src]'s slot." + updateSelfDialog()//Update self dialog on success. return //Return in case of failed check or when successful. updateSelfDialog()//For the non-input related code. else if(istype(C, /obj/item/device/paicard) && !src.pai) diff --git a/code/modules/mob/dead/observer/say.dm b/code/modules/mob/dead/observer/say.dm index db9cd2129c..acf6c887d7 100644 --- a/code/modules/mob/dead/observer/say.dm +++ b/code/modules/mob/dead/observer/say.dm @@ -1,5 +1,5 @@ /mob/dead/observer/say(var/message) - message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) + message = trim(copytext(message, 1, MAX_MESSAGE_LEN)) if (!message) return @@ -18,7 +18,7 @@ /mob/dead/observer/emote(var/act, var/type, var/message) - message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) + message = trim(copytext(message, 1, MAX_MESSAGE_LEN)) if(!message) return @@ -62,4 +62,4 @@ M.show_message("You hear muffled speech... you can almost make out some words...", 2) // M.show_message("[stutter(message)]", 2) playsound(src.loc, pick('sound/effects/ghost.ogg','sound/effects/ghost2.ogg'), 10, 1) -*/ \ No newline at end of file +*/ diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm index 416528d3fc..8a9f2a3b90 100644 --- a/code/modules/mob/emote.dm +++ b/code/modules/mob/emote.dm @@ -36,11 +36,15 @@ M.show_message(message) + // Type 1 (Visual) emotes are sent to anyone in view of the item if (m_type & 1) for (var/mob/O in viewers(src, null)) O.show_message(message, m_type) + + // Type 2 (Audible) emotes are sent to anyone in hear range + // of the *LOCATION* -- this is important for pAIs to be heard else if (m_type & 2) - for (var/mob/O in hearers(src.loc, null)) + for (var/mob/O in hearers(get_turf(src), null)) O.show_message(message, m_type) /mob/proc/emote_dead(var/message) diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 863708d18c..02c8ea0422 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -4,6 +4,7 @@ icon_state = "shadow" robot_talk_understand = 0 + emote_type = 2 // pAIs emotes are heard, not seen, so they can be seen through a container (eg. person) var/network = "SS13" var/obj/machinery/camera/current = null @@ -268,4 +269,4 @@ pai.key = src.key card.setPersonality(pai) -*/ \ No newline at end of file +*/ diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index ab6d621487..612b2c6a06 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -89,6 +89,7 @@ var/list/languages = list() // For speaking/listening. var/list/abilities = list() // For species-derived or admin-given powers. var/list/speak_emote = list("says") // Verbs used when speaking. Defaults to 'say' if speak_emote is null. + var/emote_type = 1 // Define emote default type, 1 for seen emotes, 2 for heard emotes var/name_archive //For admin things like possession diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 040c1615c5..1f2d5c2845 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -25,7 +25,7 @@ message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) if(use_me) - usr.emote("me",1,message) + usr.emote("me",usr.emote_type,message) else usr.emote(message)