I get the "Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention. "

The problem seems to be around the level::update function where the (*Iter) -> idleUpdate() function is!