[MIRROR] OOC notes panel (#6767)

Co-authored-by: Casey <a.roaming.shadow@gmail.com>
Co-authored-by: Raeschen <rycoop29@gmail.com>
This commit is contained in:
CHOMPStation2
2023-08-11 05:25:41 -07:00
committed by GitHub
parent 66bcbe724c
commit d658d29346
26 changed files with 298 additions and 11 deletions

View File

@@ -40,7 +40,11 @@
var/datum/mind/user_mind = user.mind
var/datum/mind/prey_mind = M.mind
var/target_ooc_notes = M.ooc_notes
var/target_likes = M.ooc_notes_likes
var/target_dislikes = M.ooc_notes_dislikes
var/user_ooc_notes = user.ooc_notes
var/user_likes = user.ooc_notes_likes
var/user_dislikes = user.ooc_notes_dislikes
M.ghostize()
usr.ghostize()
usr.mind = null
@@ -52,7 +56,11 @@
prey_mind.active = TRUE
prey_mind.transfer_to(user)
M.ooc_notes = user_ooc_notes //Let's keep their OOC notes over to their new body.
M.ooc_notes_likes = user_likes
M.ooc_notes_dislikes = user_dislikes
user.ooc_notes = target_ooc_notes
user.ooc_notes_likes = target_likes
user.ooc_notes_dislikes = target_dislikes
usr.sleeping = 10 //Device knocks out both the user and the target.
usr.eye_blurry = 30 //Blurry vision while they both get used to their new body's vision
usr.slurring = 50 //And let's also have them slurring while they attempt to get used to using their new body.

View File

@@ -18,6 +18,8 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
var/datum/mind/stored_mind
var/ooc_notes = null //For holding prefs
var/ooc_notes_likes = null
var/ooc_notes_dislikes = null
// Resleeving database this machine interacts with. Blank for default database
// Needs a matching /datum/transcore_db with key defined in code
@@ -32,11 +34,15 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
/obj/item/device/sleevemate/proc/clear_mind()
stored_mind = null
ooc_notes = null
ooc_notes_likes = null
ooc_notes_dislikes = null
update_icon()
/obj/item/device/sleevemate/proc/get_mind(mob/living/M)
ASSERT(M.mind)
ooc_notes = M.ooc_notes
ooc_notes_likes = M.ooc_notes_likes
ooc_notes_dislikes = M.ooc_notes_dislikes
stored_mind = M.mind
M.ghostize()
stored_mind.current = null
@@ -46,6 +52,8 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
stored_mind.active = TRUE
stored_mind.transfer_to(M)
M.ooc_notes = ooc_notes
M.ooc_notes_likes = ooc_notes_likes
M.ooc_notes_dislikes = ooc_notes_dislikes
clear_mind()

View File

@@ -23,6 +23,8 @@
S["bday_announce"] >> pref.bday_announce
S["spawnpoint"] >> pref.spawnpoint
S["OOC_Notes"] >> pref.metadata
S["OOC_Notes_Likes"] >> pref.metadata_likes
S["OOC_Notes_Disikes"] >> pref.metadata_dislikes
/datum/category_item/player_setup_item/general/basic/save_character(var/savefile/S)
S["real_name"] << pref.real_name
@@ -37,6 +39,8 @@
S["bday_announce"] << pref.bday_announce
S["spawnpoint"] << pref.spawnpoint
S["OOC_Notes"] << pref.metadata
S["OOC_Notes_Likes"] << pref.metadata_likes
S["OOC_Notes_Disikes"] << pref.metadata_dislikes
/datum/category_item/player_setup_item/general/basic/sanitize_character()
pref.age = sanitize_integer(pref.age, get_min_age(), get_max_age(), initial(pref.age))

View File

@@ -48,6 +48,8 @@
character.flavor_texts["legs"] = pref.flavor_texts["legs"]
character.flavor_texts["feet"] = pref.flavor_texts["feet"]
character.ooc_notes = pref.metadata //VOREStation Add
character.ooc_notes_likes = pref.metadata_likes
character.ooc_notes_dislikes = pref.metadata_dislikes
/datum/category_item/player_setup_item/general/flavor/content(var/mob/user)
. += "<b>Flavor:</b><br>"

View File

@@ -144,6 +144,8 @@ var/list/preferences_datums = list()
// OOC Metadata:
var/metadata = ""
var/metadata_likes = ""
var/metadata_dislikes = ""
var/list/ignored_players = list()
var/client/client = null

View File

@@ -94,14 +94,16 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
name = strangername
species = "[H.custom_species ? H.custom_species : H.species.name]"
ooc_notes = H.ooc_notes
if(LAZYLEN(H.flavor_texts))
flavor_text = H.flavor_texts["general"]
ooc_notes += "\n\n LIKES\n\n[H.ooc_notes_likes]\n\nDISLIKES\n\n[H.ooc_notes_dislikes]"
if(LAZYLEN(H.flavor_texts)) //ChompEDIT
flavor_text = H.flavor_texts["general"] //ChompEDIT
if(isAI(C.mob))
var/mob/living/silicon/ai/A = C.mob
name = A.name
species = "Artificial Intelligence"
ooc_notes = A.ooc_notes
ooc_notes += "\n\nLIKES\n\n[A.ooc_notes_likes]\n\nDISLIKES\n\n[A.ooc_notes_dislikes]"
flavor_text = null // No flavor text for AIs :c
if(isrobot(C.mob))
@@ -111,6 +113,7 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
name = R.name
species = "[R.modtype] [R.braintype]"
ooc_notes = R.ooc_notes
ooc_notes += "\n\nLIKES\n\n[R.ooc_notes_likes]\n\nDISLIKES\n\n[R.ooc_notes_dislikes]"
flavor_text = R.flavor_text
if(istype(C.mob, /mob/living/silicon/pai))

View File

@@ -534,6 +534,8 @@
src.ckey = AI.ckey
name = AI.name
ooc_notes = AI.ooc_notes
ooc_notes_likes = AI.ooc_notes_likes
ooc_notes_dislikes = AI.ooc_notes_dislikes
to_chat(src, span_notice("You feel a tingle in your circuits as your systems interface with \the [initial(src.name)]."))
if(AI.idcard.access)
botcard.access |= AI.idcard.access
@@ -543,6 +545,8 @@
var/mob/living/silicon/pai/AI = paicard.pai
AI.ckey = src.ckey
AI.ooc_notes = ooc_notes
AI.ooc_notes_likes = ooc_notes_likes
AI.ooc_notes_dislikes = ooc_notes_dislikes
paicard.forceMove(src.loc)
paicard = null
name = initial(name)

View File

@@ -410,6 +410,8 @@
blob.transforming = TRUE
blob.ckey = ckey
blob.ooc_notes = ooc_notes
blob.ooc_notes_likes = ooc_notes_likes
blob.ooc_notes_dislikes = ooc_notes_dislikes
blob.transforming = FALSE
blob.name = name
blob.real_name = real_name //CHOMPEdit
@@ -497,6 +499,8 @@
transforming = TRUE
ckey = blob.ckey
ooc_notes = blob.ooc_notes // Updating notes incase they change them in blob form.
ooc_notes_likes = blob.ooc_notes_likes
ooc_notes_dislikes = blob.ooc_notes_dislikes
transforming = FALSE
blob.name = "Promethean Blob"
var/obj/item/hat = blob.hat

View File

@@ -381,6 +381,8 @@ var/global/list/disallowed_protean_accessories = list(
//Put our owner in it (don't transfer var/mind)
blob.ckey = ckey
blob.ooc_notes = ooc_notes
blob.ooc_notes_likes = ooc_notes_likes
blob.ooc_notes_dislikes = ooc_notes_dislikes
temporary_form = blob
//Mail them to nullspace
@@ -463,6 +465,8 @@ var/global/list/disallowed_protean_accessories = list(
//Put our owner in it (don't transfer var/mind)
ckey = blob.ckey
ooc_notes = blob.ooc_notes // Lets give the protean any updated notes from blob form.
ooc_notes_likes = blob.ooc_notes_likes
ooc_notes_dislikes = blob.ooc_notes_dislikes
temporary_form = null
//Transfer vore organs

View File

@@ -717,7 +717,8 @@
//VOREStation Edit Start - Making it so SSD people have prefs with fallback to original style.
if(config.allow_Metadata)
if(ooc_notes)
to_chat(usr, "<span class='filter_notice'>[src]'s Metainfo:<br>[ooc_notes]</span>")
ooc_notes_window(usr)
// to_chat(usr, "<span class='filter_notice'>[src]'s Metainfo:<br>[ooc_notes]</span>")
else if(client)
to_chat(usr, "<span class='filter_notice'>[src]'s Metainfo:<br>[client.prefs.metadata]</span>")
else

View File

@@ -5,6 +5,8 @@
var/autowhisper_mode = null // Mode to use with autowhisper
/mob/living
var/ooc_notes = null
var/ooc_notes_likes = null
var/ooc_notes_dislikes = null
appearance_flags = TILE_BOUND|PIXEL_SCALE|KEEP_TOGETHER|LONG_GLIDE
var/hunger_rate = DEFAULT_HUNGER_FACTOR
//custom say verbs

View File

@@ -27,11 +27,46 @@
set desc = "Sets OOC notes about yourself or your RP preferences or status."
set category = "OOC"
var/new_metadata = strip_html_simple(tgui_input_text(usr, "Enter any information you'd like others to see, such as Roleplay-preferences. This will not be saved permanently, only for this round.", "Game Preference" , html_decode(ooc_notes), multiline = TRUE, prevent_enter = TRUE))
if(usr != src)
return
var/new_metadata = strip_html_simple(tgui_input_text(usr, "Enter any information you'd like others to see, such as Roleplay-preferences. This will not be saved permanently unless you click save in the OOC panel!", "Game Preference" , html_decode(ooc_notes), multiline = TRUE, prevent_enter = TRUE))
if(new_metadata && CanUseTopic(usr))
ooc_notes = new_metadata
to_chat(usr, "<span class='filter_notice'>OOC notes updated.</span>")
client.prefs.metadata = new_metadata
to_chat(usr, "<span class='filter_notice'>OOC notes updated. Don't forget to save!</span>")
log_admin("[key_name(usr)] updated their OOC notes mid-round.")
ooc_notes_window(usr)
/mob/living/proc/set_metainfo_likes()
if(usr != src)
return
var/new_metadata = strip_html_simple(tgui_input_text(usr, "Enter any information you'd like others to see relating to your LIKED roleplay preferences. This will not be saved permanently unless you click save in the OOC panel!", "Game Preference" , html_decode(ooc_notes_likes), multiline = TRUE, prevent_enter = TRUE))
if(new_metadata && CanUseTopic(usr))
ooc_notes_likes = new_metadata
client.prefs.metadata_likes = new_metadata
to_chat(usr, "<span class='filter_notice'>OOC note likes have been updated. Don't forget to save!</span>")
log_admin("[key_name(usr)] updated their OOC note likes mid-round.")
ooc_notes_window(usr)
/mob/living/proc/set_metainfo_dislikes()
if(usr != src)
return
var/new_metadata = strip_html_simple(tgui_input_text(usr, "Enter any information you'd like others to see relating to your DISLIKED roleplay preferences. This will not be saved permanently unless you click save in the OOC panel!", "Game Preference" , html_decode(ooc_notes_dislikes), multiline = TRUE, prevent_enter = TRUE))
if(new_metadata && CanUseTopic(usr))
ooc_notes_dislikes = new_metadata
client.prefs.metadata_dislikes = new_metadata
to_chat(usr, "<span class='filter_notice'>OOC note dislikes have been updated. Don't forget to save!</span>")
log_admin("[key_name(usr)] updated their OOC note dislikes mid-round.")
ooc_notes_window(usr)
/mob/living/proc/save_ooc_panel()
if(usr != src)
return
if(client.prefs.real_name != real_name)
to_chat(usr, "<span class='danger'>Your selected character slot name is not the same as your character's name. Aborting save. Please select [real_name]'s character slot in character setup before saving.</span>")
return
if(client.prefs.save_character())
to_chat(usr, "<span class='filter_notice'>Character preferences saved.</span>")
/mob/living/verb/set_voice_freq()
set name = "Set Voice Frequency"

View File

@@ -0,0 +1,139 @@
/mob/living/proc/ooc_notes_window(mob/user)
if(!ooc_notes)
return
//I tried to get it to accept things like emojis and all that, but, it wouldn't do! It would be cool if it did.
var/notes = replacetext(html_decode(src.ooc_notes), "\n", "<BR>")
var/likes = replacetext(html_decode(src.ooc_notes_likes), "\n", "<BR>")
var/dislikes = replacetext(html_decode(src.ooc_notes_dislikes), "\n", "<BR>")
var/dat = {"
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">
<html>
<head>
<style>
body {
margin-top:5px;
font-family:Verdana;
color:white;
font-size:13px;
background-image:url('ooc_notes.png');
background-repeat:repeat-x;
background-color:#272727;
background-position:center top;
}
table {
font-size:13px;
margin-left:-2px;
}
h2 {
font-size:15px;
}
.collapsible {
background-color: #263d20;
color: white;
padding: 5px;
width: 100%;
border: none;
text-align: left;
outline: none;
font-size: 20px;
}
.collapsible_b {
background-color: #3f1a1a;
color: white;
padding: 5px;
width: 100%;
border: none;
text-align: left;
outline: none;
font-size: 20px;
}
.content {
padding: 5;
width: 100%;
background-color: #363636;
}
.button {
background-color: #40628a;
text-align: center;
}
td.button {
border: 1px solid #161616;
background-color: #40628a;
text-align: center;
}
a.button {
color:white;
text-decoration: none;
}
</style>
</head>"}
dat += {"<body>
<b><font size='3px'>[src.name]'s OOC notes</font></b><br>"}
if(user == src)
dat += {"
<table>
<td class="button">
<a href='byond://?src=\ref[src];save_ooc_panel=1' class='button'>Save Character Preferences</a>
</td>
</table>
"}
if(user == src)
dat += {"
<br>
<table>
<td class="button">
<a href='byond://?src=\ref[src];edit_ooc_notes=1' class='button'>Edit</a>
</td>
</table>
"}
dat += {"
<br>
<p>[notes]</p>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<body>
<div class="collapsible"><b>Likes</b></div>"}
if(user == src)
dat += {"
<table>
<td class="button">
<a href='byond://?src=\ref[src];edit_ooc_note_likes=1' class='button'>Edit</a>
</td>
</table>
"}
if(likes)
dat += {"
<div class="content">
<p>[likes]</p>
</div>"}
dat += {"
<br>
<div class="collapsible_b"><b>Dislikes</b></div>"}
if(user == src)
dat += {"
<table>
<td class="button">
<a href='byond://?src=\ref[src];edit_ooc_note_dislikes=1' class='button'>Edit</a>
</td>
</table>
"}
if(dislikes)
dat += {"
<div class="content">
<p>[dislikes]</p>
</div>
</body>
</html>
"}
user << browse("<html><head><title>OOC Notes: [src]</title></head>[dat]</html>", "window=[src.name]mvp;size=500x600;can_resize=1;can_minimize=1")
onclose(usr, "[src.name]")

View File

@@ -212,6 +212,8 @@ var/list/ai_verbs_default = list(
var/meta_info = client.prefs.metadata
if (meta_info)
ooc_notes = meta_info
ooc_notes_likes = client.prefs.metadata_likes
ooc_notes_dislikes = client.prefs.metadata_dislikes
if (malf && !(mind in malf.current_antagonists))
show_laws()

View File

@@ -149,6 +149,9 @@
// Vorestation Edit: Meta Info for pAI
if (client.prefs)
ooc_notes = client.prefs.metadata
ooc_notes_likes = client.prefs.metadata_likes
ooc_notes_dislikes = client.prefs.metadata_dislikes
src << sound('sound/effects/pai_login.ogg', volume = 75) //VOREStation Add
// this function shows the information about being silenced as a pAI in the Status panel

View File

@@ -368,6 +368,8 @@
var/meta_info = client.prefs.metadata
if (meta_info)
ooc_notes = meta_info
ooc_notes_likes = client.prefs.metadata_likes
ooc_notes_dislikes = client.prefs.metadata_dislikes
/mob/living/silicon/robot/verb/Namepick()
set category = "Robot Commands"

View File

@@ -13,7 +13,11 @@
var/mob/living/pred_body //The body of the person who was dominated
var/pred_ckey //The ckey of the person who was dominated
var/pred_ooc_notes
var/pred_ooc_likes
var/pred_ooc_dislikes
var/prey_ooc_notes
var/prey_ooc_likes
var/prey_ooc_dislikes
/mob/living/dominated_brain/New(loc, var/mob/living/pred, preyname, var/mob/living/prey)
. = ..()
@@ -108,6 +112,8 @@
src.languages -= src.temp_languages
prey_goes_here.languages |= src.prey_langs
prey_goes_here.ooc_notes = prey_ooc_notes
prey_goes_here.ooc_notes_likes = prey_ooc_likes
prey_goes_here.ooc_notes_dislikes = prey_ooc_dislikes
prey_goes_here.verbs |= /mob/living/dominated_brain/proc/cease_this_foolishness
@@ -122,6 +128,8 @@
prey_goes_here.languages |= src.prey_langs
prey_goes_here.real_name = src.prey_name
prey_goes_here.ooc_notes = prey_ooc_notes
prey_goes_here.ooc_notes_likes = prey_ooc_likes
prey_goes_here.ooc_notes_dislikes = prey_ooc_dislikes
///////////////////
@@ -132,6 +140,8 @@
prey_goes_here.ckey = src.prey_ckey
pred_body.ckey = src.pred_ckey
pred_body.ooc_notes = pred_ooc_notes
pred_body.ooc_notes_likes = pred_ooc_likes
pred_body.ooc_notes_dislikes = pred_ooc_dislikes
log_and_message_admins("[pred_body] is now controlled by [pred_body.ckey]. They were restored to control through prey domination, and had been controlled by [prey_ckey].")
pred_body.absorb_langs()
pred_body.prey_controlled = FALSE
@@ -229,7 +239,12 @@
pred_brain = new /mob/living/dominated_brain(pred, pred, name, prey)
pred_brain.prey_ooc_notes = prey.ooc_notes
pred_brain.prey_ooc_likes = prey.ooc_notes_likes
pred_brain.prey_ooc_dislikes = prey.ooc_notes_dislikes
pred_brain.pred_ooc_notes = pred.ooc_notes
pred_brain.pred_ooc_likes = pred.ooc_notes_likes
pred_brain.pred_ooc_dislikes = pred.ooc_notes_dislikes
pred_brain.name = pred.name
var/list/preylangs = list()
preylangs |= prey.languages
@@ -239,6 +254,8 @@
pred_brain.pred_ckey = pred.ckey
pred_brain.pred_body.absorb_langs()
pred.ooc_notes = pred_brain.prey_ooc_notes
pred.ooc_notes_likes = pred_brain.prey_ooc_likes
pred.ooc_notes_dislikes = pred_brain.prey_ooc_dislikes
pred.verbs |= /mob/proc/release_predator
@@ -361,6 +378,10 @@
M.languages -= M.temp_languages
db.languages |= M.languages
db.ooc_notes = M.ooc_notes
db.ooc_notes_likes = M.ooc_notes_likes
db.ooc_notes_dislikes = M.ooc_notes_dislikes
db.prey_ooc_likes = M.ooc_notes_likes
db.prey_ooc_likes = M.ooc_notes_dislikes
db.verbs |= /mob/living/dominated_brain/proc/cease_this_foolishness
absorb_langs()
@@ -466,7 +487,11 @@
pred_brain = new /mob/living/dominated_brain(pred, pred, name, prey)
pred_brain.prey_ooc_notes = prey.ooc_notes
pred_brain.prey_ooc_likes = prey.ooc_notes_likes
pred_brain.prey_ooc_dislikes = prey.ooc_notes_dislikes
pred_brain.pred_ooc_notes = pred.ooc_notes
pred_brain.pred_ooc_likes = pred.ooc_notes_likes
pred_brain.pred_ooc_dislikes = pred.ooc_notes_dislikes
pred_brain.name = pred.name
var/list/preylangs = list()
preylangs |= prey.languages
@@ -476,6 +501,8 @@
pred_brain.pred_ckey = pred.ckey
pred_brain.pred_body.absorb_langs()
pred.ooc_notes = pred_brain.prey_ooc_notes
pred.ooc_notes_likes = pred_brain.prey_ooc_likes
pred.ooc_notes_dislikes = pred_brain.prey_ooc_dislikes
pred.verbs |= /mob/proc/release_predator

View File

@@ -19,6 +19,8 @@
/mob/living/proc/login_prefs()
ooc_notes = client.prefs.metadata
ooc_notes_likes = client.prefs.metadata_likes
ooc_notes_dislikes = client.prefs.metadata_dislikes
digestable = client.prefs_vr.digestable
devourable = client.prefs_vr.devourable
absorbable = client.prefs_vr.absorbable

View File

@@ -228,6 +228,8 @@
var/mob/living/carbon/human/H = M
brainmob.dna = H.dna
brainmob.ooc_notes = H.ooc_notes
brainmob.ooc_notes_likes = H.ooc_notes_likes
brainmob.ooc_notes_dislikes = H.ooc_notes_dislikes
brainmob.timeofhostdeath = H.timeofdeath
SStranscore.m_backup(brainmob.mind,0) //It does ONE, so medical will hear about it.

View File

@@ -104,6 +104,8 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
brainmob.dna = H.dna.Clone()
brainmob.timeofhostdeath = H.timeofdeath
brainmob.ooc_notes = H.ooc_notes //VOREStation Edit
brainmob.ooc_notes_likes = H.ooc_notes_likes
brainmob.ooc_notes_dislikes = H.ooc_notes_dislikes
// Copy modifiers.
for(var/datum/modifier/M in H.modifiers)
@@ -254,6 +256,8 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
R.dna.real_name = "promethean ([rand(0,999)])"
H.real_name = R.dna.real_name
H.ooc_notes = brainmob.ooc_notes // VOREStation Edit
H.ooc_notes_likes = brainmob.ooc_notes_likes
H.ooc_notes_dislikes = brainmob.ooc_notes_dislikes
H.nutrition = 260 //Enough to try to regenerate ONCE.
H.adjustBruteLoss(40)

View File

@@ -24,7 +24,8 @@
var/cryo_at = 0
var/languages = list()
var/mind_oocnotes = ""
var/mind_ooclikes = ""
var/mind_oocdislikes = ""
var/nif_path
var/nif_durability
var/list/nif_software
@@ -83,6 +84,8 @@
var/speciesname
var/bodygender
var/body_oocnotes
var/body_ooclikes
var/body_oocdislikes
var/list/limb_data = list(BP_HEAD, BP_L_HAND, BP_R_HAND, BP_L_ARM, BP_R_ARM, BP_L_FOOT, BP_R_FOOT, BP_L_LEG, BP_R_LEG, BP_GROIN, BP_TORSO)
var/list/organ_data = list(O_HEART, O_EYES, O_LUNGS, O_BRAIN)
var/list/genetic_modifiers = list()

View File

@@ -117,6 +117,8 @@
//Basically all the VORE stuff
H.ooc_notes = current_project.body_oocnotes
H.ooc_notes_likes = current_project.body_ooclikes
H.ooc_notes_dislikes = current_project.body_oocdislikes
H.flavor_texts = current_project.mydna.flavor.Copy()
H.resize(current_project.sizemult, FALSE)
H.appearance_flags = current_project.aflags
@@ -338,6 +340,8 @@
//Basically all the VORE stuff
H.ooc_notes = current_project.body_oocnotes
H.ooc_notes_likes = current_project.body_ooclikes
H.ooc_notes_dislikes = current_project.body_oocdislikes
H.flavor_texts = current_project.mydna.flavor.Copy()
H.resize(current_project.sizemult)
H.appearance_flags = current_project.aflags
@@ -583,6 +587,9 @@
MR.mind_ref.transfer_to(occupant) //Does mind+ckey+client.
occupant.identifying_gender = MR.id_gender
occupant.ooc_notes = MR.mind_oocnotes
occupant.ooc_notes_likes = MR.mind_ooclikes
occupant.ooc_notes_dislikes = MR.mind_oocdislikes
occupant.apply_vore_prefs() //Cheap hack for now to give them SOME bellies.
if(MR.one_time)
var/how_long = round((world.time - MR.last_update)/10/60)

View File

@@ -45,6 +45,8 @@
MR.mind_ref.active = 1 //Well, it's about to be.
MR.mind_ref.transfer_to(infomorph) //Does mind+ckey+client.
infomorph.ooc_notes = MR.mind_oocnotes
infomorph.ooc_notes_likes = MR.mind_ooclikes
infomorph.ooc_notes_dislikes = MR.mind_oocdislikes
infomorph.apply_vore_prefs() //Cheap hack for now to give them SOME bellies.
//Don't set 'real_name' because then we get a nice (as sleevecard) thing.

View File

@@ -1132,6 +1132,20 @@
display_voreprefs(usr)
if(href_list["ooc_notes"])
src.Examine_OOC()
if(href_list["edit_ooc_notes"])
if(usr == src)
set_metainfo()
if(href_list["edit_ooc_note_likes"])
if(usr == src)
set_metainfo_likes()
if(href_list["edit_ooc_note_dislikes"])
if(usr == src)
set_metainfo_dislikes()
if(href_list["save_ooc_panel"])
if(usr == src)
save_ooc_panel()
return ..()
/mob/living/proc/display_voreprefs(mob/user) //Called by Topic() calls on instances of /mob/living (and subtypes) containing vore_prefs as an argument

View File

@@ -223,6 +223,8 @@
//For primarily copying vore preference settings from a carbon mob to a simplemob
//It can be used for other things, but be advised, if you're using it to put a simplemob into a carbon mob, you're gonna be overriding a bunch of prefs
new_mob.ooc_notes = ooc_notes
new_mob.ooc_notes_likes = ooc_notes_likes
new_mob.ooc_notes_dislikes = ooc_notes_dislikes
new_mob.digestable = digestable
new_mob.devourable = devourable
new_mob.absorbable = absorbable

View File

@@ -2965,6 +2965,7 @@
#include "code\modules\mob\living\living_vr.dm"
#include "code\modules\mob\living\login.dm"
#include "code\modules\mob\living\logout.dm"
#include "code\modules\mob\living\ooc_notes.dm"
#include "code\modules\mob\living\organs.dm"
#include "code\modules\mob\living\riding.dm"
#include "code\modules\mob\living\say.dm"