We added a -1 check for INNATE. Instead of using a flag, if a perma spell gets introduced we make the duration -1 and as it checks for spell wear off, it skips those with -1.
I have read through this a few times and I guess I am being either my normal blind ass or I am just not getting it.
I understand the concept of AFF_XXX | AFF_INNATE even if I am not visualizing how it would work/be set as a check etc.
Not really seeing how it would be added.
BUT first, can someone at least point to the specific functions that govern the Affects system.
What causes an affect to end, what causes it to attach, and such.
Added races and have them working fine but I am trying to add for example infravision for a dwarf and make it stick between logins, copyovers and crashes in general.
Any info would be useful as to what to check.
affect_to_character and what else will take away those affects?
I am really not looking for someone to hold my hand but I need a little bit more to go on.
github.com/tbamud/tbamud/blob/f6339b495e...3/src/handler.c#L230
is the affect_total() function which will reset a character to default stats, then cycle through the equipment and affections and add them again. This makes sure some sanity checks are performed as well.
github.com/tbamud/tbamud/blob/f6339b495e...3/src/handler.c#L299
is the affect_from_char() function that will remove the affect from the character and then call affect_total().
I figure this is the place to check if the INNATE flag is set in the input, and if so, just not remove it.