well, its fixed.. but im still a bit worried as the 'fix' doesn't make any sense what so ever.
basically on startup i was setting:
conversation_loaded = -1;
whenever this variable was -1, collision detection wouldn't work (it'd always say you've hit something), but when the variable was changed to any other number collision detection worked again.. which is why when a dialog was loaded during a cutscene i never spotted the problem.
weird thing is tho, even when i take all use of that variable out of my program (so no functions use it), it'd still make a difference when set to -1.
had sorta similar problems, where if i set one variable another gets lost (which is caused by buffer overflows), but this isnt even an array, and its an signed int so it should allow minus's.
anyway, all i did was - changed it so when the variable is created its defaulted to -1, that way i dont have to set it to -1 manually.. and everything works again now.
just very very strange, as i still see no reason at all why it happens... for now i'll just assume its a compiler bug and be happy it's working again
i have identical variables with a different names, and one is set to -1 right before that variable is - and they dont give me any problems
.... maybe i found a glitch in "the matrix"
*black cat walks past*
hmmm...