Короче, пофиксил. Поменял AssumeDistance(). Хз почему проблемы были, в с++ такого нет))
Юзай отладку чтобы смотреть какие переменные какое значение на каждом шаге принимают. Иначе это гадание на кофейной гуще. Выбор яп не причем.
Я по запаре забыл проинициализировать int в итоге такая хрень началась, потому что в той области памяти куда выделили переменную оказалось число. А нужно было просто присвоить 0 в начале манипуляций.