--- deliantra/server/include/tod.h 2006/02/03 07:12:51 1.1
+++ deliantra/server/include/tod.h 2007/11/08 19:43:25 1.13
@@ -1,40 +1,70 @@
-/* Copyright 2000 Tim Rightnour */
+/*
+ * This file is part of Deliantra, the Roguelike Realtime MMORPG.
+ *
+ * Copyright (©) 2006,2007 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
+ * Copyright (©) 2003-2006,2007 Mark Wedel & Crossfire Development Team
+ * Copyright (©) 2000,2007 Tim Rightnour
+ * Copyright (©) 1992,2007 Frank Tore Johansen
+ *
+ * Deliantra 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_ */