That's in fact the biggest part of the problem. Once you've found why the girl will be reluctant on the cleaned version, it will be easier to found what will be the best way to make the patch. I mean that you'll know if you'll really need to change whole sentences or if you can deal with just small changes.
In the first case, it's probably better to use something like what
@bossapplesauce use for his incest mods, like
You must be registered to see the links
by example.
You can even extend it if there's really many strings to change. Something like this :
patch.rpy
Code:
init python:
tabooLabelStrings = {}
tabooLabelsList = []
# Here's the list of all the labels that need a special change.
tabooLabelsList.extend( [ "intro_presentation", "another_label", "yet_another_one" ] )
# You can extend it in more than one line for a better readability
tabooLabelsList.extend( [ "oh_look_a_label", "guess_what" ] )
# Here you'll temporarily hijkack the labels defined above.
for l in tabooLabelsList:
config.label_overrides[l] = "taboo_" + l
config.label_overrides["return_" + l ] = l
# You can combine this with the function used by bossapplesauce or another
# method for generic changes like "mom" Vs "Landlady"
def tabooFilter( txt ):
if txt in tabooLabelStrings:
return tabooLabelStrings[txt]
return txt
config.say_menu_text_filter = tabooFilter
label taboo_intro_presentation:
# Here you define the dialog lines to change in THIS label.
$ tabooLabelStrings = {
"A full dialog line that need to be changed": "The incest version of this line",
"Another full dialog line to changed": "The related incest version" }
# Then you return to the normal flow of the game.
jump return_intro_presentation
It need a little more works, but this way you have a dialogs that really feel right in regard of the relation between the characters.
Like the list of lines to change is defined at the start of each label where a change is needed, it will stay with an acceptable size. And like the "official" labels are just hijacked, the patch can be added/removed at any time without conflict or problem.
In the second case, if you achieved to have small changes in the dialog, you can use a variable (the string patcher I linked above or another method) and do regular substitution :
Code:
"You are [string] at me like that !"
[taboo] "You are
my brother, so stop looking at me like that !"
[cleaned] "You are
just my roommate, but it's not a reason to look at me like that !"
Anyway, whatever the solution used, it's necessary to always think about the dialog lines with the two cases in mind. You write it in its taboo version, then immediately think about what will be the cleaned version ; or the opposite.
This way, you'll immediately know what need to be changed and what's the best way to do it. You'll also detect if in fact it can't be changed and that you need to rethink what will be said.