/*
 *  Plik includowany przez standardowa lokacje domeny Imperium, zawierajacy
 *  kilka przydatnych funkcji.
 *
 *  /d/Imperium/std/room/events.c
 *
 *  Udostepnione dzieki uprzejmosci Silviego, 1997.
 */

#pragma strict_types

#include <filter_funs.h>

private int events_on = 0,
            events_running = 0;
private string *event_list = ({});
private float start_time = 0.0,
              repeat_time = 0.0;

static nomask void
set_event_time(float start, float repeat)
{
    start_time = start;
    repeat_time = repeat;
}

static nomask void
run_events()
{
    int num = sizeof(event_list);

    if (events_on && num && 
        sizeof(FILTER_PLAYERS(all_inventory(this_object()))))
    {
        tell_room(this_object(), event_list[random(num)]);
        if (repeat_time != 0.0)
        {
            set_alarm(repeat_time, 0.0, "run_events");
            return;
        }
    }
    events_running = 0;
}

static nomask void
set_events_on(int i)
{
    events_on = i;
}

static nomask int
add_event(string event)
{
    event_list += ({event});
    return 1;
}

static nomask void
clear_events()
{
  event_list = ({});
  events_running = 0;
  events_on = 0;
}
