// /adm/simul_efun/time.c
// from the Nightmare mudlib
// simul_efuns for the Nightmare mudlib time setup
// created by Descartes of Borg 04 April 1993
#include <daemons.h>
int query_night() {
return ((string)EVENTS_D->query_time_of_day() == "night");
}
string day(int x) { return (string)EVENTS_D->query_day_name(x); }
int date(int x) {
int week, datum;
week = (int)EVENTS_D->query_week(x);
datum = (int)EVENTS_D->query_day(x);
return (5*(week-1)+datum);
}
string month(int x) { return (string)EVENTS_D->query_month_name(x); }
int year(int x) { return (int)EVENTS_D->query_year(x); }
int minutes(int x) { return (int)EVENTS_D->query_minutes(x); }
string season(int x) {
int mon;
mon = (int)EVENTS_D->query_month(x);
switch(mon) {
case 1: return "winter";
case 2: if(date(x) < 16) return "winter"; else return "spring";
case 3:
case 4: return "spring";
case 5: if(date(x) < 6) return "spring"; else return "summer";
case 6: return "summer";
case 7: if(date(x) < 16) return "summer"; else return "autumn";
case 8:
case 9: return "autumn";
case 10: return (date(x) < 6 ? "autumn" : "winter");
default: return "error";
}
}
int hour(int x) { return (int)EVENTS_D->query_hour(x); }
void add_sky_event(function f) {
if(!functionp(f)) error("Bad argument 1 to add_sky_event().\n");
EVENTS_D->sky_event(f, 0);
}
void remove_sky_event(function f) {
if(!functionp(f)) error("Bad argument 1 to remove_sky_event().\n");
EVENTS_D->sky_event(f, 1);
}