08-20-2013, 06:10 AM
I now believe I know the cause of this. On Windows, the clock() function returns some kind of a measure of real time elapsed, which is what we want. But on Linux, it returns the CPU time elapsed, which counts each thread's time separately (so you can have 2 seconds when the program is running 2 threads for 1 second each) and doesn't include the time spent in syscalls (so it can report 0.01 seconds if all the threads are sleeping in a syscall for a minute).
This is probably the cause of both the eating issues and the pickup collection issues, because they both rely on world age, instead of number of ticks; and world age depends on the clock() function. I'll try fixing it now.
This is probably the cause of both the eating issues and the pickup collection issues, because they both rely on world age, instead of number of ticks; and world age depends on the clock() function. I'll try fixing it now.