diff --git a/src/neonucleus.h b/src/neonucleus.h index b24e757..5160b2e 100644 --- a/src/neonucleus.h +++ b/src/neonucleus.h @@ -145,6 +145,7 @@ void nn_unsafeDeleteUniverse(nn_universe *universe); void *nn_queryUserdata(nn_universe *universe, const char *name); void nn_storeUserdata(nn_universe *universe, const char *name, void *data); void nn_setClock(nn_universe *universe, nn_clock_t *clock, void *userdata); +double nn_getTime(nn_universe *universe); nn_computer *nn_newComputer(nn_universe *universe, nn_address address, nn_architecture *arch, void *userdata, size_t memoryLimit, size_t componentLimit); void nn_tickComputer(nn_computer *computer); diff --git a/src/universe.c b/src/universe.c index 512f852..17d91fd 100644 --- a/src/universe.c +++ b/src/universe.c @@ -7,6 +7,8 @@ nn_universe *nn_newUniverse() { if(u == NULL) return u; // we leave udata uninitialized because it does not matter u->udataLen = 0; + u->clockUserdata = NULL; + u->currentClock = nn_realTimeClock; return u; } @@ -36,3 +38,7 @@ void nn_storeUserdata(nn_universe *universe, const char *name, void *data) { universe->udata[idx].userdata = data; universe->udataLen++; } + +double nn_getTime(nn_universe *universe) { + return universe->currentClock(universe->clockUserdata); +}