Hi, I'm new here and this is my first attempt to solve something by changing/looking at the code.
My problem was that I had too much trouble raising some stats - I just made it to Oree level with 11 agility and 17 dex and just couldn't dodge enough critical strikes from the knights. I wanted to see the code and figure out what was I doing wrong so I could finally get more jumpy in the future runs.
I edited ivan sc to print out changes in experience, and what I found out is that every turn of moving I get the normal ammount of agility, and then lose just a little bit because I'm burdened or satiated... except I was gaining exp once per turn and losing it 10 times!. Then I traced the problem back a bit and figured out that my character actually exists around 10 times each turn(this varies a bit). This is the edit I did on char.cpp:989:
void character::Be()
{
if (IsPlayer()) ADD_MESSAGE("Ping!");
...rest is unchanged
Ping! would print at least 10 times every time I moved. This is a problem because every time the character happens, it loses a bit of experience which is at the end of the game so high that just being burdened, without any other modifiers, makes you lose AGI when moving.
Is this a bug, or is it intended to happen this way? I guess this is the way characters attack multiple times in one turn, but it don't match the agility gain.