ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/tod.h
Revision: 1.27
Committed: Sat Nov 17 23:40:01 2018 UTC (5 years, 5 months ago) by root
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Changes since 1.26: +1 -0 lines
Log Message:
copyright update 2018

File Contents

# Content
1 /*
2 * This file is part of Deliantra, the Roguelike Realtime MMORPG.
3 *
4 * Copyright (©) 2017,2018 Marc Alexander Lehmann / the Deliantra team
5 * Copyright (©) 2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
6 * Copyright (©) 2003-2006 Mark Wedel & Crossfire Development Team
7 * Copyright (©) 2000 Tim Rightnour
8 * Copyright (©) 1992 Frank Tore Johansen
9 *
10 * Deliantra is free software: you can redistribute it and/or modify it under
11 * the terms of the Affero GNU General Public License as published by the
12 * Free Software Foundation, either version 3 of the License, or (at your
13 * option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the Affero GNU General Public License
21 * and the GNU General Public License along with this program. If not, see
22 * <http://www.gnu.org/licenses/>.
23 *
24 * The authors can be reached via e-mail to <support@deliantra.net>
25 */
26
27 #ifndef TOD_H_
28 #define TOD_H_
29
30 #define TICK (MAX_TIME * 1e-6)
31
32 #define TICK2TIME(tick) (tstamp (tick) * TICK)
33 #define TIME2TICK(time) tstamp ((time) / TICK)
34
35 #define RUNTIME_PER_MINUTE 3.
36 #define RUNTIME_PER_HOUR (RUNTIME_PER_MINUTE * 60.)
37 #define TICKS_PER_HOUR int (RUNTIME_PER_HOUR / MAX_TIME * 1e6)
38
39 // the first year in the game
40 #define EPOCH 8437
41
42 /* game time */
43 #define HOURS_PER_DAY 28
44 #define DAYS_PER_WEEK 7
45 #define WEEKS_PER_MONTH 5
46 #define MONTHS_PER_YEAR 17
47
48 // one game minute is 3s
49 // one game hour is 3m
50 // one game day is 1h24s
51 // one game week is 9h48s
52 // one game month is 2d1h
53 // one game year is 34d17h
54
55 /* convenience */
56 #define WEEKS_PER_YEAR (WEEKS_PER_MONTH * MONTHS_PER_YEAR)
57 #define DAYS_PER_MONTH (DAYS_PER_WEEK * WEEKS_PER_MONTH)
58 #define DAYS_PER_YEAR (DAYS_PER_MONTH * MONTHS_PER_YEAR)
59 #define HOURS_PER_WEEK (HOURS_PER_DAY * DAYS_PER_WEEK)
60 #define HOURS_PER_MONTH (HOURS_PER_WEEK * WEEKS_PER_MONTH)
61 #define HOURS_PER_YEAR (HOURS_PER_MONTH * MONTHS_PER_YEAR)
62
63 #define LUNAR_DAYS DAYS_PER_MONTH
64
65 struct timeofday_t
66 {
67 int year;
68 int month;
69 int day;
70 int dayofweek;
71 int hour;
72 int minute;
73 int weekofmonth;
74 int season;
75 };
76
77 /* from common/time.c */
78 void get_tod (timeofday_t *tod);
79 char *format_tod (char *buf, int len, timeofday_t *tod);
80 void print_tod (object *op);
81
82 #endif
83