/*
 *  Plik includowany przez standardowa
 *  lokacje, zawierajacy kilka przydatnych funkcji. 
 *  /d/Imperium/std/room/events.c
 *
 */

#pragma strict_types

#include <filter_funs.h>
#include <mudtime.h>

private int events_on = 0,
            events_running = 0;

private float start_time = 0.0,
              repeat_time = 0.0;

private static string *event_listd = ({});
private static *event_listn = ({});



static nomask void
set_event_time(float start, float repeat)
{
    start_time = start;
    repeat_time = repeat;
}

static void
run_events()
{
    string *event_list= 
        (((this_object()->pora_dnia())=="noc") ? event_listn : event_listd);
    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;
        }
    }
}

static void
set_events_on(int i)
{
    events_on = i;
}


varargs static int
add_event(string event,int pora)
{
    switch(pora)
    {
        case 0: event_listd += ({event});
                event_listn += ({event});
                break;
        case 1: event_listd += ({event});
                break;
        case 2: event_listn += ({event});
    }
    return 1;
}

static nomask void
clear_events()
{
  event_listd = ({});
  event_listn = ({});
  events_running = 0;
  events_on = 0;
}
