void TimeManager (sint64 TIME, sint64 OPP_TIME, sint64 INCREMENT, int mtg) { double rat; if (mtg) { if (mtg > 25) mtg = 25; DESIRED_TIME = TIME / mtg + INCREMENT; ABSOLUTE_TIME = (TIME * mtg) / (4 * mtg - 3) - MIN (1000000, TIME / 10); if (mtg == 1) ABSOLUTE_TIME -= MIN (1000000, ABSOLUTE_TIME / 10); if (ABSOLUTE_TIME < 1000) /* porque? */ ABSOLUTE_TIME = 1000; } else { ABSOLUTE_TIME = (TIME * ABSOLUTE_PERCENT) / 100 - 10000; if (ABSOLUTE_TIME < 1000) ABSOLUTE_TIME = 1000; DESIRED_TIME = (TIME * DESIRED_MILLIS) / 1000 + INCREMENT; } if (SINCE_NEW_GAME < BOOK_EXIT_MOVES) DESIRED_TIME += (DESIRED_TIME * (BOOK_EXIT_MOVES - SINCE_NEW_GAME)) / BOOK_EXIT_MOVES; #if 1 if (!BUFFER_TIME && !INCREMENT) BUFFER_TIME = 3000; if (DESIRED_TIME_FLAG) { rat = ((double) (TIME + 1)) / ((double) (OPP_TIME + 1)); if (rat < 0.95) DESIRED_TIME -= (DESIRED_TIME >> 2) + DESIRED_TIME >> 2; else if (rat > 1.25) DESIRED_TIME += (DESIRED_TIME >> 2) + DESIRED_TIME >> 2; DESIRED_TIME_FLAG = 0; } else DESIRED_TIME_FLAG = 1; #endif if (DESIRED_TIME > ABSOLUTE_TIME) DESIRED_TIME = ABSOLUTE_TIME; if (DESIRED_TIME < 1000) DESIRED_TIME = 1000; EASY_TIME = (DESIRED_TIME * EASY_FACTOR) / 100; if (UCI_PONDER) EASY_TIME = (DESIRED_TIME * EASY_FACTOR_PONDER) / 100; BATTLE_TIME = (DESIRED_TIME * BATTLE_FACTOR) / 100; ORDINARY_TIME = (DESIRED_TIME * ORDINARY_FACTOR) / 100; }
Code: Select all
DESIRED_TIME_FLAG = 0;
EASY_FACTOR_PONDER = 30;
ORDINARY_FACTOR = 70;
Code: Select all
int DESIRED_TIME_FLAG;

Edit
Forgot to mention builds using the updated clock was uploaded yesterday with the following md5sum signatures:
d733aa5e23f51e42a98863653da7d001 IvanHoe999946h.7z
Code: Select all
12ed94b63342bec0062c74220dfd121b ./Android/IvanHoe999946h
767887241faec364568e1b0e854dece2 ./Linux/Mode_Game_Play/x86-64/IvanHoe999946h
69ef5166dcf987299c14e755d7efd82f ./Linux/Mode_Game_Play/x86-32/IvanHoe999946h
83f703facb138175eef62e281d690b8a ./Windows/Mode_Game_Play/x86-64/IvanHoe999946h.exe
3754454bb784e180b098f49fef4cff38 ./Windows/Mode_Game_Play/x86-32/IvanHoe999946h.exe
e1fad6e7d42e96d70687c121cf895e6c ./Help.pdf
Regarding Linux builds and glibc incompatibility, it could be built statically linked, but RobboBases will not work for 999946. This is because "Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking." It won't work. The alternative is to build static (.a) RobboBases library, then use "STATIC_LINKERY" option in the source, and finally link it against IvanHoe during compile. There are issues however with multiple re-definitions that needs fixing.