--- deliantra/server/include/tod.h 2006/02/03 07:12:51 1.1 +++ deliantra/server/include/tod.h 2007/07/01 05:00:18 1.12 @@ -1,40 +1,70 @@ -/* Copyright 2000 Tim Rightnour */ +/* + * This file is part of Crossfire TRT, the Roguelike Realtime MORPG. + * + * Copyright (©) 2006,2007 Marc Alexander Lehmann / Robin Redeker / the Crossfire TRT team + * Copyright (©) 2003-2006,2007 Mark Wedel & Crossfire Development Team + * Copyright (©) 2000,2007 Tim Rightnour + * Copyright (©) 1992,2007 Frank Tore Johansen + * + * Crossfire TRT is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * The authors can be reached via e-mail to + */ + +#ifndef TOD_H_ +#define TOD_H_ -#ifndef _TOD_H_ -#define _TOD_H_ +#define TICK (MAX_TIME * 1e-6) -#define PTICKS_PER_CLOCK 1500 +#define TICK2TIME(tick) (tstamp (tick) * TICK) +#define TIME2TICK(time) tstamp ((time) / TICK) + +#define RUNTIME_PER_HOUR 180. +#define TICKS_PER_HOUR int (RUNTIME_PER_HOUR / MAX_TIME * 1e6) /* game time */ #define HOURS_PER_DAY 28 -#define DAYS_PER_WEEK 7 -#define WEEKS_PER_MONTH 5 +#define DAYS_PER_WEEK 7 +#define WEEKS_PER_MONTH 5 #define MONTHS_PER_YEAR 17 /* convenience */ -#define WEEKS_PER_YEAR (WEEKS_PER_MONTH*MONTHS_PER_YEAR) -#define DAYS_PER_MONTH (DAYS_PER_WEEK*WEEKS_PER_MONTH) -#define DAYS_PER_YEAR (DAYS_PER_MONTH*MONTHS_PER_YEAR) -#define HOURS_PER_WEEK (HOURS_PER_DAY*DAYS_PER_WEEK) -#define HOURS_PER_MONTH (HOURS_PER_WEEK*WEEKS_PER_MONTH) -#define HOURS_PER_YEAR (HOURS_PER_MONTH*MONTHS_PER_YEAR) +#define WEEKS_PER_YEAR (WEEKS_PER_MONTH * MONTHS_PER_YEAR) +#define DAYS_PER_MONTH (DAYS_PER_WEEK * WEEKS_PER_MONTH) +#define DAYS_PER_YEAR (DAYS_PER_MONTH * MONTHS_PER_YEAR) +#define HOURS_PER_WEEK (HOURS_PER_DAY * DAYS_PER_WEEK) +#define HOURS_PER_MONTH (HOURS_PER_WEEK * WEEKS_PER_MONTH) +#define HOURS_PER_YEAR (HOURS_PER_MONTH * MONTHS_PER_YEAR) #define LUNAR_DAYS DAYS_PER_MONTH -typedef struct _timeofday { - int year; - int month; - int day; - int dayofweek; - int hour; - int minute; - int weekofmonth; - int season; -} timeofday_t; +struct timeofday_t +{ + int year; + int month; + int day; + int dayofweek; + int hour; + int minute; + int weekofmonth; + int season; +}; /* from common/time.c */ -extern void get_tod(timeofday_t *tod); +extern void get_tod (timeofday_t *tod); +#if 0 /* weather stuff */ #define POLAR_BASE_TEMP 0 /* C */ @@ -82,32 +112,34 @@ #define SKY_BLIZZARD 16 typedef struct _weather_avoids { - const char *name; - int snow; - archetype *what; /*inited from name, faste to compare arch pointers than strings*/ + const char *name; + int snow; + archetype *what; /*inited from name, faste to compare arch pointers than strings*/ } weather_avoids_t; typedef struct _weather_replace { - const char *tile; - const char *special_snow; - const char *doublestack_arch; - int arch_or_name; + const char *tile; + const char *special_snow; + const char *doublestack_arch; + int arch_or_name; } weather_replace_t; typedef struct _weather_grow { - const char *herb; /* arch name of item to grow */ - const char *tile; /* arch tile to grow on, NULL if anything */ - int random; /* random factor. min 1, higher = lower chance of - * appearance */ - float rfmin; - float rfmax; /* rainfall min/max (inches/day) */ - int humin; - int humax; /* humidity min/max */ - int tempmin; - int tempmax; /* temp min/max */ - int elevmin; - int elevmax; /* elevation min/max */ - int season; /* 0=any or 1-5 */ + const char *herb; /* arch name of item to grow */ + const char *tile; /* arch tile to grow on, NULL if anything */ + int random; /* random factor. min 1, higher = lower chance of + * appearance */ + float rfmin; + float rfmax; /* rainfall min/max (inches/day) */ + int humin; + int humax; /* humidity min/max */ + int tempmin; + int tempmax; /* temp min/max */ + int elevmin; + int elevmax; /* elevation min/max */ + int season; /* 0=any or 1-5 */ } weather_grow_t; +#endif + +#endif -#endif /* _TOD_H_ */