/tg/ pref datums (part 1) (#16219)

* TG Prefs (Step 1: JSON savefiles)

* TG Prefs (Step 2: Preference Datum Code)

* TG Prefs (Step 3: Convert /datum/client_preferences)

* TG Prefs (Step 4: Clean up and finishing touches)

* Fix some weird compile errors from the rebase
This commit is contained in:
ShadowLarkens
2024-08-31 07:09:05 +10:00
committed by GitHub
parent 0cfc6e9e94
commit faac97e352
184 changed files with 4968 additions and 2198 deletions
+1 -1
View File
@@ -6,7 +6,7 @@
if(!reciever.client) //No one is home, don't bother
return
if(!override) //Did the person push the verb? Ignore the pref
if(!reciever.client.is_preference_enabled(/datum/client_preference/vore_health_bars))
if(!reciever.client.prefs?.read_preference(/datum/preference/toggle/vore_health_bars))
return
var/ourpercent = 0
+7 -7
View File
@@ -443,7 +443,7 @@
else
soundfile = fancy_vore_sounds[vore_sound]
if(soundfile)
playsound(src, soundfile, vol = 100, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/eating_noises, volume_channel = VOLUME_CHANNEL_VORE)
playsound(src, soundfile, vol = 100, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/preference/toggle/eating_noises, volume_channel = VOLUME_CHANNEL_VORE)
recent_sound = TRUE
//Messages if it's a mob
@@ -631,7 +631,7 @@
else
soundfile = fancy_release_sounds[release_sound]
if(soundfile)
playsound(src, soundfile, vol = privacy_volume, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/eating_noises, volume_channel = VOLUME_CHANNEL_VORE)
playsound(src, soundfile, vol = privacy_volume, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/preference/toggle/eating_noises, volume_channel = VOLUME_CHANNEL_VORE)
return count
@@ -717,7 +717,7 @@
else
soundfile = fancy_release_sounds[release_sound]
if(soundfile)
playsound(src, soundfile, vol = privacy_volume, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/eating_noises, volume_channel = VOLUME_CHANNEL_VORE)
playsound(src, soundfile, vol = privacy_volume, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/preference/toggle/eating_noises, volume_channel = VOLUME_CHANNEL_VORE)
//Should fix your view not following you out of mobs sometimes!
if(ismob(M))
var/mob/ourmob = M
@@ -1372,9 +1372,9 @@
struggle_snuggle = sound(get_sfx("classic_struggle_sounds"))
else
struggle_snuggle = sound(get_sfx("fancy_prey_struggle"))
playsound(src, struggle_snuggle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE)
playsound(src, struggle_snuggle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/preference/toggle/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE)
else
playsound(src, struggle_rustle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE)
playsound(src, struggle_rustle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/preference/toggle/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE)
if(escapable) //If the stomach has escapable enabled.
if(prob(escapechance)) //Let's have it check to see if the prey escapes first.
@@ -1651,9 +1651,9 @@
struggle_snuggle = sound(get_sfx("classic_struggle_sounds"))
else
struggle_snuggle = sound(get_sfx("fancy_prey_struggle"))
playsound(src, struggle_snuggle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE)
playsound(src, struggle_snuggle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/preference/toggle/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE)
else
playsound(src, struggle_rustle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE)
playsound(src, struggle_rustle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/preference/toggle/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE)
//absorb resists
if(escapable || owner.stat) //If the stomach has escapable enabled or the owner is dead/unconscious
@@ -29,7 +29,7 @@ GLOBAL_LIST_INIT(digest_modes, list())
//Person just died in guts!
if(L.stat == DEAD)
if(L.is_preference_enabled(/datum/client_preference/digestion_noises))
if(L.check_sound_preference(/datum/preference/toggle/digestion_noises))
if(!B.fancy_vore)
SEND_SOUND(L, sound(get_sfx("classic_death_sounds")))
else
+4 -4
View File
@@ -59,7 +59,7 @@
/////////////////////////// Make any noise ///////////////////////////
if(digestion_noise_chance && prob(digestion_noise_chance))
for(var/mob/M in contents)
if(M && M.is_preference_enabled(/datum/client_preference/digestion_noises))
if(M && M.check_sound_preference(/datum/preference/toggle/digestion_noises))
SEND_SOUND(M, prey_digest)
play_sound = pred_digest
@@ -68,7 +68,7 @@
updateVRPanels()
if(play_sound)
for(var/mob/M in hearers(VORE_SOUND_RANGE, get_turf(owner))) //so we don't fill the whole room with the sound effect
if(!M.is_preference_enabled(/datum/client_preference/digestion_noises))
if(!M.check_sound_preference(/datum/preference/toggle/digestion_noises))
continue
if(isturf(M.loc) || (M.loc != src)) //to avoid people on the inside getting the outside sounds and their direct sounds + built in sound pref check
if(fancy_vore)
@@ -95,7 +95,7 @@
if(play_sound)
for(var/mob/M in hearers(VORE_SOUND_RANGE, get_turf(owner))) //so we don't fill the whole room with the sound effect
if(!M.is_preference_enabled(/datum/client_preference/digestion_noises))
if(!M.check_sound_preference(/datum/preference/toggle/digestion_noises))
continue
if(isturf(M.loc) || (M.loc != src)) //to avoid people on the inside getting the outside sounds and their direct sounds + built in sound pref check
if(fancy_vore)
@@ -224,7 +224,7 @@
/obj/belly/proc/prey_loop()
for(var/mob/living/M in contents)
//We don't bother executing any other code if the prey doesn't want to hear the noises.
if(!M.is_preference_enabled(/datum/client_preference/digestion_noises))
if(!M.check_sound_preference(/datum/preference/toggle/digestion_noises))
M.stop_sound_channel(CHANNEL_PREYLOOP) // sanity just in case, because byond is whack and you can't trust it
continue
+4 -5
View File
@@ -1187,11 +1187,10 @@
if(!user)
CRASH("display_voreprefs() was called without an associated user.")
var/dispvoreprefs = "<b>[src]'s vore preferences</b><br><br><br>"
if(client && client.prefs)
if("CHAT_OOC" in client.prefs.preferences_disabled)
dispvoreprefs += "<font color='red'><b>OOC DISABLED</b></font><br>"
if("CHAT_LOOC" in client.prefs.preferences_disabled)
dispvoreprefs += "<font color='red'><b>LOOC DISABLED</b></font><br>"
if(!client?.prefs?.read_preference(/datum/preference/toggle/show_ooc))
dispvoreprefs += "<font color='red'><b>OOC DISABLED</b></font><br>"
if(!client?.prefs?.read_preference(/datum/preference/toggle/show_looc))
dispvoreprefs += "<font color='red'><b>LOOC DISABLED</b></font><br>"
dispvoreprefs += "<b>Digestable:</b> [digestable ? "Enabled" : "Disabled"]<br>"
dispvoreprefs += "<b>Devourable:</b> [devourable ? "Enabled" : "Disabled"]<br>"
dispvoreprefs += "<b>Feedable:</b> [feeding ? "Enabled" : "Disabled"]<br>"
+1 -1
View File
@@ -920,7 +920,7 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
l.adjust_nutrition(thismuch)
ourtarget.death() // To make sure all on-death procs get properly called
if(ourtarget)
if(ourtarget.is_preference_enabled(/datum/client_preference/digestion_noises))
if(ourtarget.check_sound_preference(/datum/preference/toggle/digestion_noises))
if(!b.fancy_vore)
SEND_SOUND(ourtarget, sound(get_sfx("classic_death_sounds")))
else