hey all, hope you're having a good weekend. one of my functions isn't returning what i think should be a proper value, so i was hoping to post it, surf around a bit, and then someone will by magic solve all my problems and i don't have to do the work will that person be you?

here's the function:here's the values acording to the debugger:Code:int Player::mf_playerStats_battingAve(char fv_mgrDirection) { //bunt if (fv_mgrDirection=='b'||'B') {return ((2*bat_aim)+bat_str+(rand() % lck));} //left grounder if (fv_mgrDirection=='l'||'L') {return ((bat_str)+(.75*bat_aim)+(rand() % lck));} //right grounder if (fv_mgrDirection=='r'||'R') {return ((bat_str)+(.75*bat_aim)+(rand() % lck));} //sacrafice fly if (fv_mgrDirection=='s'||'S') {return ((bat_aim)+(bat_str)+(rand() % lck));} //homerun********should run this if************* if (fv_mgrDirection=='h'||'H') {return ((.5*bat_str)+(bat_aim)+(rand() % lck));} //default else {return ((.5*bat_str)+(bat_aim)+(rand() % lck));} }so, as i see it the equation should read:bat_aim 10

bat_str 10

fv_mgrDirection 104 'h'

lck 10

+ this 0x0012ff48

rand returned 29372

(.5*10)+(10)+(2)==19, right?

well, on this occasion it came up with 32. all the returned values tend to be in the low 30's. so what gives? what am i missing? thanks in advance