The task for today concerns the resolution of our numeric variables. We need to keep all variables in the 2-digit range for the convenience of the storybuilder, but we need additional resolution for the relationship calculations. I had intended to take the relationship variables &emdash; and only the relationship variables &emdash; up to 4 digits, but I inadvertently pushed all the variables up to 4 digits. This is a mistake.
My plan is as follows: I shall revert all Personality and Factors values to 2 digits. Relationship variables will be used at 4 digits, but will be presented to the storybuilder in 2 digits. The rule for doing this will be simple. First, when the storybuilder defines a character's relationships, those values will be multiplied by 100 before being stored. Second, whenever the interpreter executes a push of a relationship variable, it will divide it by 100 just before the push. There are no pops of relationship variables allowed, so no activity is required for that case.
In the AdjustXXX procedures, the basic equation in the old regime was:
Relationship += (zDelta * (100 + OldRelationship) * zAcceder) / 10000;
This equation must be modified as follows for the new system:
Relationship += (zDelta * (10000 + OldRelationship) * zAcceder) / 10000;
Believe it or not, there is only the one change to make. Why? Because we are increasing the middle multiplicative term by a factor of 100, thereby increasing the overall result by a factor of 100; but we require that the final result that goes into Relationship be increased by the same factor of 100. So it all comes out fine.
That's all there is to it.