/*
 *  call-seq:
 *    wait( time )  ->  Integer
 *
 *  time:: how many milliseconds to wait.
 *
 *  Wait approximately the given time (the accuracy depends upon processor 
 *  scheduling, but 10ms is common). Returns the actual delay time, in 
 *  milliseconds. This method is less CPU-intensive than #delay, but is
 *  slightly less accurate.
 *
 *  The Rubygame timer system will be initialized when you call this function,
 *  if it has not been already.
 *
 */
VALUE rbgm_time_wait(VALUE module, VALUE milliseconds)
{
  Uint32 start, delay;

  if(!SDL_WasInit(SDL_INIT_TIMER))
    if(SDL_InitSubSystem(SDL_INIT_TIMER))
      rb_raise(eSDLError,"Could not initialize timer system: %s",\
               SDL_GetError());

  delay = NUM2UINT(milliseconds);
  start = SDL_GetTicks();
  SDL_Delay(delay);
  return INT2NUM(SDL_GetTicks() - start);
}