From b0db2ba3470456cf47df3a7e1fdabee63e35ca82 Mon Sep 17 00:00:00 2001 From: JimTheCactus Date: Fri, 25 Jul 2014 19:36:58 -0600 Subject: [PATCH 01/10] Added check for blank on name entry Since cancel just returns a blank this checks for that and doesn't raise an error. --- code/modules/client/preferences.dm | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 9a14b8fbff5..ab89dccd5d7 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -943,11 +943,13 @@ datum/preferences if("input") switch(href_list["preference"]) if("name") - var/new_name = reject_bad_name( input(user, "Choose your character's name:", "Character Preference") as text|null ) - if(new_name) - real_name = new_name - else - user << "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and ." + var/raw_name = input(user, "Choose your character's name:", "Character Preference") as text|null + if (raw_name) // Check to ensure that the user entered text (rather than cancel.) + var/new_name = reject_bad_name(raw_name) + if(new_name) + real_name = new_name + else + user << "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and ." if("age") var/new_age = input(user, "Choose your character's age:\n([AGE_MIN]-[AGE_MAX])", "Character Preference") as num|null From 99f755b986a04bbaa62412c423a86eeb3c765626 Mon Sep 17 00:00:00 2001 From: Loganbacca Date: Sat, 26 Jul 2014 17:55:30 +1200 Subject: [PATCH 02/10] Cargo train fixes - Adds overlay for cargo tug sprite - Fixes failure feedback when successfully loading items on the train - Stopped unnecessary loading failure feedback (like loading floors on trains, which will always fail) - Stopped "hit" message when relabeling with the hand labeler --- code/modules/vehicles/cargo_train.dm | 9 +++++++-- code/modules/vehicles/train.dm | 2 +- code/modules/vehicles/vehicle.dm | 2 ++ icons/obj/vehicles.dmi | Bin 10289 -> 10594 bytes 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/code/modules/vehicles/cargo_train.dm b/code/modules/vehicles/cargo_train.dm index d38830e5e82..b6f91feec79 100644 --- a/code/modules/vehicles/cargo_train.dm +++ b/code/modules/vehicles/cargo_train.dm @@ -10,7 +10,7 @@ standing_mob = 1 load_item_visible = 1 load_offset_x = 0 - load_offset_y = 8 + load_offset_y = 7 var/car_limit = 3 //how many cars an engine can pull before performance degrades active_engines = 1 @@ -34,7 +34,7 @@ standing_mob = 1 load_item_visible = 1 load_offset_x = 0 - load_offset_y = 5 + load_offset_y = 4 //------------------------------------------- // Standard procs @@ -44,6 +44,8 @@ cell = new /obj/item/weapon/cell/high verbs -= /atom/movable/verb/pull key = new() + var/image/I = new(icon = 'icons/obj/vehicles.dmi', icon_state = "cargo_engine_overlay", layer = src.layer + 0.2) //over mobs + overlays += I /obj/vehicle/train/cargo/engine/Move() if(on && cell.charge < power_use) @@ -248,6 +250,9 @@ if(istype(load, /mob/living/carbon/human)) load.pixel_y += 4 + + if(load) + return 1 /obj/vehicle/train/cargo/engine/load(var/atom/movable/C) if(!ismob(C)) diff --git a/code/modules/vehicles/train.dm b/code/modules/vehicles/train.dm index b7a6706deae..deaed1130c2 100644 --- a/code/modules/vehicles/train.dm +++ b/code/modules/vehicles/train.dm @@ -80,7 +80,7 @@ return 1 /obj/vehicle/train/MouseDrop_T(var/atom/movable/C, mob/user as mob) - if(user.buckled || user.stat || user.restrained() || !Adjacent(user) || !user.Adjacent(C)) + if(user.buckled || user.stat || user.restrained() || !Adjacent(user) || !user.Adjacent(C) || !istype(C)) return if(istype(C,/obj/vehicle/train)) latch(C, user) diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm index b44f38122eb..5e5affac99a 100644 --- a/code/modules/vehicles/vehicle.dm +++ b/code/modules/vehicles/vehicle.dm @@ -58,6 +58,8 @@ return 0 /obj/vehicle/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W, /obj/item/weapon/hand_labeler)) + return if(istype(W, /obj/item/weapon/screwdriver)) if(!locked) open = !open diff --git a/icons/obj/vehicles.dmi b/icons/obj/vehicles.dmi index de24172c3a92762c17da8ab9a134c5fa2a056ef2..e70275591fc4ea810bbdf564cc1ad63db9bbad72 100644 GIT binary patch literal 10594 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 bpsMmHsSvRVSf+W literal 10289 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 From 23811e7e5cd72c6120cd8d9321de17ec5a084a6c Mon Sep 17 00:00:00 2001 From: Walter0o Date: Sat, 26 Jul 2014 11:54:32 +0200 Subject: [PATCH 03/10] fixes nullpointer caused by broken organ list the mysterious broken list bug has struck again --- code/modules/organs/organ_internal.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/organs/organ_internal.dm b/code/modules/organs/organ_internal.dm index 4ad6e328afa..4ed10047564 100644 --- a/code/modules/organs/organ_internal.dm +++ b/code/modules/organs/organ_internal.dm @@ -159,9 +159,9 @@ src.damage += 0.2 * process_accuracy //Damaged one shares the fun else - var/victim = pick(owner.internal_organs) - var/datum/organ/internal/O = owner.internal_organs[victim] - O.damage += 0.2 * process_accuracy + var/datum/organ/internal/O = pick(owner.internal_organs) + if(O) + O.damage += 0.2 * process_accuracy //Detox can heal small amounts of damage if (src.damage && src.damage < src.min_bruised_damage && owner.reagents.has_reagent("anti_toxin")) From df6ac58d840ed5aaa8846a0e93d526cbaeb5d495 Mon Sep 17 00:00:00 2001 From: Walter0o Date: Sat, 26 Jul 2014 13:08:25 +0200 Subject: [PATCH 04/10] fixes nullpointer caused by broken organ list pt 2 more a prevention than a fix, but meh --- code/game/objects/items.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 935760efdb1..5a78b702d04 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -552,6 +552,8 @@ ) if(istype(M, /mob/living/carbon/human)) var/datum/organ/internal/eyes/eyes = H.internal_organs_by_name["eyes"] + if(!eyes) + return eyes.damage += rand(3,4) if(eyes.damage >= eyes.min_bruised_damage) if(M.stat != 2) @@ -631,4 +633,3 @@ var/obj/item/I = get_active_hand() if(I && !I.abstract) I.showoff(src) - From 0b7e858000ef95e3ac6246233365dfc1be5b500a Mon Sep 17 00:00:00 2001 From: JimTheCactus Date: Sat, 26 Jul 2014 16:19:14 -0600 Subject: [PATCH 05/10] Changes check to an isnull rather than a truth test This allows the client to detect the difference between a blank and someone pressing cancel. --- code/modules/client/preferences.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index ab89dccd5d7..9fb9c1dc6cc 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -944,7 +944,7 @@ datum/preferences switch(href_list["preference"]) if("name") var/raw_name = input(user, "Choose your character's name:", "Character Preference") as text|null - if (raw_name) // Check to ensure that the user entered text (rather than cancel.) + if (!isnull(raw_name)) // Check to ensure that the user entered text (rather than cancel.) var/new_name = reject_bad_name(raw_name) if(new_name) real_name = new_name From fbc9b03e739b18f6f4b1b367aca42e300a9bc8fe Mon Sep 17 00:00:00 2001 From: Loganbacca Date: Sun, 27 Jul 2014 20:04:45 +1200 Subject: [PATCH 06/10] Cup fix - Grammar fix for drinking from cups - Changed "Glass of Tomato juf" to "Glass of Tomato juice" (I'm assuming this was a typo) --- code/modules/reagents/reagent_containers/food/drinks.dm | 2 +- .../reagents/reagent_containers/food/drinks/drinkingglass.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm index 1a0fba64268..e92214b2624 100644 --- a/code/modules/reagents/reagent_containers/food/drinks.dm +++ b/code/modules/reagents/reagent_containers/food/drinks.dm @@ -34,7 +34,7 @@ H << "\red You have a monitor for a head, where do you think you're going to put that?" return - M << "\blue You swallow a gulp of [src]." + M << "\blue You swallow a gulp from your [src]." if(reagents.total_volume) reagents.trans_to_ingest(M, gulp_size) diff --git a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm index c2bb90ddb80..454badcf195 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm @@ -71,7 +71,7 @@ center_of_mass = list("x"=16, "y"=10) if("tomatojuice") icon_state = "glass_red" - name = "Glass of Tomato juf" + name = "Glass of Tomato juice" desc = "Are you sure this is tomato juice?" center_of_mass = list("x"=16, "y"=10) if("blood") From 4861c5a5d48da9cd553a7813cd6facef090ac56e Mon Sep 17 00:00:00 2001 From: Loganbacca Date: Mon, 28 Jul 2014 07:38:24 +1200 Subject: [PATCH 07/10] Grammar tweak --- code/modules/reagents/reagent_containers/food/drinks.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm index e92214b2624..8f1f68698e3 100644 --- a/code/modules/reagents/reagent_containers/food/drinks.dm +++ b/code/modules/reagents/reagent_containers/food/drinks.dm @@ -34,7 +34,7 @@ H << "\red You have a monitor for a head, where do you think you're going to put that?" return - M << "\blue You swallow a gulp from your [src]." + M << "\blue You swallow a gulp from \the [src]." if(reagents.total_volume) reagents.trans_to_ingest(M, gulp_size) From fc5d33917b70e1ea49488e8d7746008ff6fd843c Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Sun, 27 Jul 2014 23:32:36 +0200 Subject: [PATCH 08/10] Attempts to ensure that the captain (or the head loyalist to be precise, whomever he might be) is not a candidate for the directives. --- code/game/gamemodes/mutiny/directives/alien_fraud_directive.dm | 2 +- .../mutiny/directives/bluespace_contagion_directive.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/gamemodes/mutiny/directives/alien_fraud_directive.dm b/code/game/gamemodes/mutiny/directives/alien_fraud_directive.dm index 55a61a6f591..6df5a22050c 100644 --- a/code/game/gamemodes/mutiny/directives/alien_fraud_directive.dm +++ b/code/game/gamemodes/mutiny/directives/alien_fraud_directive.dm @@ -11,7 +11,7 @@ datum/directive/terminations/alien_fraud datum/directive/terminations/alien_fraud/get_crew_to_terminate() var/list/aliens[0] for(var/mob/M in player_list) - if (M.is_ready() && is_alien(M)) + if (M.is_ready() && is_alien(M) && M != mode.head_loyalist.current) aliens.Add(M) return aliens diff --git a/code/game/gamemodes/mutiny/directives/bluespace_contagion_directive.dm b/code/game/gamemodes/mutiny/directives/bluespace_contagion_directive.dm index 1e31eca7b6f..1ea28852fdc 100644 --- a/code/game/gamemodes/mutiny/directives/bluespace_contagion_directive.dm +++ b/code/game/gamemodes/mutiny/directives/bluespace_contagion_directive.dm @@ -6,7 +6,7 @@ datum/directive/bluespace_contagion proc/get_infection_candidates() var/list/candidates[0] for(var/mob/M in player_list) - if (M.is_ready() && !M.is_mechanical()) + if (M.is_ready() && !M.is_mechanical() && M != mode.head_loyalist.current) candidates.Add(M) return candidates From 3b5d40c470520cea1e6d5175c378555e2f86af1c Mon Sep 17 00:00:00 2001 From: DJSnapshot Date: Sun, 27 Jul 2014 21:27:41 -0700 Subject: [PATCH 09/10] Big nerf and cleanup of 3D sound. should fix most of #5789 --- code/game/sound.dm | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/code/game/sound.dm b/code/game/sound.dm index 3f89ea4d18d..422670c2da7 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -9,7 +9,7 @@ var/list/hiss_sound = list('sound/voice/hiss1.ogg','sound/voice/hiss2.ogg','soun var/list/page_sound = list('sound/effects/pageturn1.ogg', 'sound/effects/pageturn2.ogg','sound/effects/pageturn3.ogg') //var/list/gun_sound = list('sound/weapons/Gunshot.ogg', 'sound/weapons/Gunshot2.ogg','sound/weapons/Gunshot3.ogg','sound/weapons/Gunshot4.ogg') -/proc/playsound(var/atom/source, soundin, vol as num, vary, extrarange as num, falloff) +/proc/playsound(var/atom/source, soundin, vol as num, vary, extrarange as num, falloff, var/is_global) soundin = get_sfx(soundin) // same sound for everyone @@ -25,28 +25,27 @@ var/list/page_sound = list('sound/effects/pageturn1.ogg', 'sound/effects/pagetur var/mob/M = P if(!M || !M.client) continue - + var/distance = get_dist(M, turf_source) if(distance <= (world.view + extrarange) * 3) var/turf/T = get_turf(M) - + if(T && T.z == turf_source.z) //check that the air can transmit sound var/datum/gas_mixture/environment = T.return_air() if (!environment || environment.return_pressure() < SOUND_MINIMUM_PRESSURE) - if (distance > 1) + if (distance > 1) continue - + var/new_frequency = 32000 + (frequency - 32000)*0.125 //lower the frequency. very rudimentary var/new_volume = vol*0.15 //muffle the sound, like we're hearing through contact - M.playsound_local(turf_source, soundin, new_volume, vary, new_frequency, falloff) + M.playsound_local(turf_source, soundin, new_volume, vary, new_frequency, falloff, is_global) else - M.playsound_local(turf_source, soundin, vol, vary, frequency, falloff) + M.playsound_local(turf_source, soundin, vol, vary, frequency, falloff, is_global) -var/const/FALLOFF_SOUNDS = 2 -var/const/SURROUND_CAP = 255 +var/const/FALLOFF_SOUNDS = 0.5 -/mob/proc/playsound_local(var/turf/turf_source, soundin, vol as num, vary, frequency, falloff) +/mob/proc/playsound_local(var/turf/turf_source, soundin, vol as num, vary, frequency, falloff, is_global) if(!src.client || ear_deaf > 0) return soundin = get_sfx(soundin) @@ -54,8 +53,7 @@ var/const/SURROUND_CAP = 255 S.wait = 0 //No queue S.channel = 0 //Any channel S.volume = vol - S.environment = 2 - + S.environment = -1 if (vary) if(frequency) S.frequency = frequency @@ -65,20 +63,20 @@ var/const/SURROUND_CAP = 255 if(isturf(turf_source)) // 3D sounds, the technology is here! var/turf/T = get_turf(src) - S.volume -= get_dist(T, turf_source) * 0.75 + S.volume -= get_dist(T, turf_source) * 2 //multiplicative falloff to add on top of natural audio falloff. + var/datum/gas_mixture/environment = T.return_air() + S.volume -= environment.return_pressure()/100 + 1 if (S.volume < 0) S.volume = 0 var/dx = turf_source.x - T.x // Hearing from the right/left - - S.x = round(max(-SURROUND_CAP, min(SURROUND_CAP, dx)), 1) - + S.x = dx var/dz = turf_source.y - T.y // Hearing from infront/behind - S.z = round(max(-SURROUND_CAP, min(SURROUND_CAP, dz)), 1) - + S.z = dz // The y value is for above your head, but there is no ceiling in 2d spessmens. S.y = 1 S.falloff = (falloff ? falloff : FALLOFF_SOUNDS) - + if(!is_global) + S.environment = 2 src << S /client/proc/playtitlemusic() From f6b75d833c8eed5b1c870cf97c7b9ca9a60e02bd Mon Sep 17 00:00:00 2001 From: DJSnapshot Date: Sun, 27 Jul 2014 23:10:57 -0700 Subject: [PATCH 10/10] now you can hear next to you in space! --- code/game/sound.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/sound.dm b/code/game/sound.dm index 422670c2da7..25e693a91c2 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -65,7 +65,8 @@ var/const/FALLOFF_SOUNDS = 0.5 var/turf/T = get_turf(src) S.volume -= get_dist(T, turf_source) * 2 //multiplicative falloff to add on top of natural audio falloff. var/datum/gas_mixture/environment = T.return_air() - S.volume -= environment.return_pressure()/100 + 1 + if(get_dist(T, turf_source) > 2) + S.volume -= environment.return_pressure()/100 + 1 if (S.volume < 0) S.volume = 0 var/dx = turf_source.x - T.x // Hearing from the right/left