Now, to fit the purposes of my game, I automate almost all of the animations and have done so successfully. The problem is, this breaks rollback.
First, consider this code of a character class I made.
Code: Select all
init -1 python:
class Char():
def __init__(...): #the parameters listed here aren't particularly important to this question
#...some variables used to denote the character's current image, current mood, its orientation on the screen
self.Character = Character(name, color = "#860114", who_outlines = [(3,'#ffffff',0,0)]) #the actual character class is an internal variable inside the class
Code: Select all
call say(derek, "Hello, officers. How may I help you?") #note that Derek's character is defined earlier
And that way, things are much much easier to do. I can manually change the orientation variable inside the char class with one line of code. Then, when the call say statement is called, it can automatically follow the orientation change procedure (changing xoffset of bg) all by itself. When the mood is changed, the say label will again just change the image by itself. When a different character is speaking, the say label can hide the image of the speaking character, and show the new one.
However, there is a certain drawback to this that is a HUGE pain when testing. So, in the say label, the actual dialogue is done like this:
Code: Select all
label say(who, what): #Character dialogue. Again, only pertinent code is shown
#image modification code here
$ who.Character("{color=#000000}" + what) #this has to be a python statement to support the tags that may be in the what parameter
Anyone have any ideas how to fix this? Is there a way to make Ren'py consider every instance of the "what" parameter to be it's own statement, or if there is a function that can be placed at the say label that basically uses the what parameter to mark the current statement as seen?
If you think it's needed I can post the full code of the Char class and say label but I doubt it's relevant. It's all image stuff.