I'm curious, what were the compatibility issues?
In the version 1.0, the Guest Adder
patch checks specific flags in the items. If the item is used and the flags are set, the guest character is added to the party. To work correctly, the flags must be set or unset accordingly to every item. If the item is a guest adder item, the correct flag must be set in the item. If the item is a common one, the flag must be unset in the item. It must be correct to all items in the game.
In the item database, I wrongly assumed all the flags for the patch activation were unset, for all items. Unfortunately, it wasn't the case. The Paladin Shield
item has the flag set by default and wrongly activates the patch when used as a item. It may be possible another items unexpectedly have the activation flag set by default.
To avoid unexpected activation of the patch for unexpected flags which wrongfully are set, I choose to use only the start-up actor database. The activation of the patch (in version 2.0) is based only in two fields of the guest characters. It is better than check every item to discovery if the flags are correctly set or unset.
And are you saying that in version 1.0 of this patch the extra HP and MP fields have been dropped also?
Yes. The calculation of HP, MP and Exp for the guest character is different from the official ones.
In the traditional HP calculation, a list of additional HP by level is used. Every level is associated with a HP value. The base HP (without equipments or special effects) is calculated by the sum of all designated HP for every level lower than the actual character level. As example, suppose the list is:
100 Level 1
200 Level 2
300 Level 3
400 Level 4
500 Level 5
The HP for level 5 is the sum of the levels 4 (400), 3 (300), 2 (200) and 1 (100). It is 1000.
The extra HP field is added to the sum. If the value of the extra HP field is 100, the base HP value will be 1100.
The same procedure is used for MP and Exp calculation, with different lists with different values. The HP and MP list are 16-bits values and the Exp list is 24-bits values.
The Guest Adder
patch finds the average level of all encountered official characters. After it is calculated, a official character near the average level is selected. The HP, MP and Exp values are copied from the selected character to the guest character.
This may look a lazy approach. However, the lists of HP, MP and Exp are fixed. All characters gains the same amount of HP by level. Unless I am mistaken, without the interference of Espers
boosts and the extra HP field, two characters with the same level have the same HP value.
The extra HP field is only one byte and can only add the maximum value of 255. The maximum value of HP is 9999 and the extra HP value is too low to be significant in the HP calculation. The maximum value of MP is 999 and the extra MP (maximum of 255) may be significant. However, guest characters can't use magic and it renders the MP value almost useless. I used the extra HP and extra MP fields as data storage for the patch configurations. I believe it is more useful than its original purpose.
I'd really, really love to use this patch, but as it is I just can't bare to sacrifice the extra HP and MP fields for my hack Unless there's another way to give characters extra HP and MP upon startup...? (not by equipment)
Official characters use the original calculation of HP/MP values. The extra HP and extra MP fields are used. Only the characters created with the guest adder items use different HP/MP calculations.
I am open to suggestions of HP, MP or Exp calculations for the guest characters. If it has valid points, I can change the actual approach and eventually update the Guest Adder
If you are comfortable with the actual approach for HP/MP calculation, it shouldn't be difficult to add a fixed value for HP or MP after it is calculated. If it is the case, I can implement it in the next update of the Guest Adder