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, 6 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

# User Rev Content
1 root 1.2 /*
2 root 1.13 * This file is part of Deliantra, the Roguelike Realtime MMORPG.
3 root 1.24 *
4 root 1.27 * Copyright (©) 2017,2018 Marc Alexander Lehmann / the Deliantra team
5 root 1.26 * Copyright (©) 2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
6 root 1.20 * Copyright (©) 2003-2006 Mark Wedel & Crossfire Development Team
7 root 1.25 * Copyright (©) 2000 Tim Rightnour
8 root 1.20 * Copyright (©) 1992 Frank Tore Johansen
9 root 1.24 *
10 root 1.18 * 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 root 1.24 *
15 root 1.12 * 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 root 1.24 *
20 root 1.18 * 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 root 1.24 *
24 root 1.13 * The authors can be reached via e-mail to <support@deliantra.net>
25 pippijn 1.7 */
26 root 1.1
27 root 1.8 #ifndef TOD_H_
28     #define TOD_H_
29 root 1.1
30 root 1.9 #define TICK (MAX_TIME * 1e-6)
31    
32 root 1.10 #define TICK2TIME(tick) (tstamp (tick) * TICK)
33     #define TIME2TICK(time) tstamp ((time) / TICK)
34    
35 root 1.15 #define RUNTIME_PER_MINUTE 3.
36     #define RUNTIME_PER_HOUR (RUNTIME_PER_MINUTE * 60.)
37 root 1.8 #define TICKS_PER_HOUR int (RUNTIME_PER_HOUR / MAX_TIME * 1e6)
38 root 1.1
39 root 1.16 // the first year in the game
40     #define EPOCH 8437
41    
42 root 1.1 /* game time */
43     #define HOURS_PER_DAY 28
44 root 1.8 #define DAYS_PER_WEEK 7
45     #define WEEKS_PER_MONTH 5
46 root 1.1 #define MONTHS_PER_YEAR 17
47    
48 root 1.15 // 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 root 1.1 /* convenience */
56 root 1.8 #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 root 1.1
63     #define LUNAR_DAYS DAYS_PER_MONTH
64    
65 root 1.8 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 root 1.1
77     /* from common/time.c */
78 root 1.15 void get_tod (timeofday_t *tod);
79     char *format_tod (char *buf, int len, timeofday_t *tod);
80     void print_tod (object *op);
81 root 1.1
82 root 1.8 #endif
83 root 1.1