ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/tod.h
Revision: 1.12
Committed: Sun Jul 1 05:00:18 2007 UTC (16 years, 10 months ago) by root
Content type: text/plain
Branch: MAIN
CVS Tags: rel-2_2, rel-2_3
Changes since 1.11: +11 -12 lines
Log Message:
- upgrade crossfire trt to the GPL version 3 (hopefully correctly).
- add a single file covered by the GNU Affero General Public License
  (which is not yet released, so I used the current draft, which is
  legally a bit wavy, but its likely better than nothing as it expresses
  direct intent by the authors, and we can upgrade as soon as it has been
  released).
  * this should ensure availability of source code for the server at least
    and hopefully also archetypes and maps even when modified versions
    are not being distributed, in accordance of section 13 of the agplv3.

File Contents

# User Rev Content
1 root 1.2 /*
2 root 1.12 * This file is part of Crossfire TRT, the Roguelike Realtime MORPG.
3 pippijn 1.7 *
4 root 1.11 * Copyright (©) 2006,2007 Marc Alexander Lehmann / Robin Redeker / the Crossfire TRT team
5     * Copyright (©) 2003-2006,2007 Mark Wedel & Crossfire Development Team
6     * Copyright (©) 2000,2007 Tim Rightnour
7     * Copyright (©) 1992,2007 Frank Tore Johansen
8 pippijn 1.7 *
9 root 1.12 * Crossfire TRT is free software: you can redistribute it and/or modify
10     * it under the terms of the GNU General Public License as published by
11     * the Free Software Foundation, either version 3 of the License, or
12     * (at your option) any later version.
13 pippijn 1.7 *
14 root 1.12 * This program is distributed in the hope that it will be useful,
15     * but WITHOUT ANY WARRANTY; without even the implied warranty of
16     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17     * GNU General Public License for more details.
18 pippijn 1.7 *
19 root 1.12 * You should have received a copy of the GNU General Public License
20     * along with this program. If not, see <http://www.gnu.org/licenses/>.
21 root 1.11 *
22     * The authors can be reached via e-mail to <crossfire@schmorp.de>
23 pippijn 1.7 */
24 root 1.1
25 root 1.8 #ifndef TOD_H_
26     #define TOD_H_
27 root 1.1
28 root 1.9 #define TICK (MAX_TIME * 1e-6)
29    
30 root 1.10 #define TICK2TIME(tick) (tstamp (tick) * TICK)
31     #define TIME2TICK(time) tstamp ((time) / TICK)
32    
33 root 1.8 #define RUNTIME_PER_HOUR 180.
34     #define TICKS_PER_HOUR int (RUNTIME_PER_HOUR / MAX_TIME * 1e6)
35 root 1.1
36     /* game time */
37     #define HOURS_PER_DAY 28
38 root 1.8 #define DAYS_PER_WEEK 7
39     #define WEEKS_PER_MONTH 5
40 root 1.1 #define MONTHS_PER_YEAR 17
41    
42     /* convenience */
43 root 1.8 #define WEEKS_PER_YEAR (WEEKS_PER_MONTH * MONTHS_PER_YEAR)
44     #define DAYS_PER_MONTH (DAYS_PER_WEEK * WEEKS_PER_MONTH)
45     #define DAYS_PER_YEAR (DAYS_PER_MONTH * MONTHS_PER_YEAR)
46     #define HOURS_PER_WEEK (HOURS_PER_DAY * DAYS_PER_WEEK)
47     #define HOURS_PER_MONTH (HOURS_PER_WEEK * WEEKS_PER_MONTH)
48     #define HOURS_PER_YEAR (HOURS_PER_MONTH * MONTHS_PER_YEAR)
49 root 1.1
50     #define LUNAR_DAYS DAYS_PER_MONTH
51    
52 root 1.8 struct timeofday_t
53     {
54     int year;
55     int month;
56     int day;
57     int dayofweek;
58     int hour;
59     int minute;
60     int weekofmonth;
61     int season;
62     };
63 root 1.1
64     /* from common/time.c */
65 root 1.8 extern void get_tod (timeofday_t *tod);
66 root 1.1
67 root 1.8 #if 0
68 root 1.1 /* weather stuff */
69    
70     #define POLAR_BASE_TEMP 0 /* C */
71     #define EQUATOR_BASE_TEMP 30 /* C */
72     #define SEASONAL_ADJUST 10 /* polar distance */
73     #define GULF_STREAM_WIDTH 3 /* width of gulf stream */
74     #define GULF_STREAM_BASE_SPEED 40 /* base speed of gulf stream */
75    
76     /* don't muck with these unless you are sure you know what they do */
77     #define PRESSURE_ITERATIONS 30
78     #define PRESSURE_AREA 180
79     #define PRESSURE_ROUNDING_FACTOR 2
80     #define PRESSURE_ROUNDING_ITER 1
81     #define PRESSURE_SPIKES 3
82     #define PRESSURE_MAX 1040
83     #define PRESSURE_MIN 960
84    
85     /* This is a multiplier for the wind caused by pressure differences.
86     * The type of overal climate you get depends on this.
87     * Too little wind, and the rain hugs the coast.
88     * Too much wind, and there are hurricanes and blizzards everywhere.
89     * 1 is too little.
90     */
91     #define WIND_FACTOR 4.0
92    
93     /* editing the below might require actual changes to code */
94     #define WEATHERMAPTILESX 100
95     #define WEATHERMAPTILESY 100
96    
97     /* sky conditions */
98     #define SKY_CLEAR 0
99     #define SKY_LIGHTCLOUD 1
100     #define SKY_OVERCAST 2
101     #define SKY_LIGHT_RAIN 3
102     #define SKY_RAIN 4 /* rain -> storm has lightning */
103     #define SKY_HEAVY_RAIN 5
104     #define SKY_HURRICANE 6
105     /* wierd weather 7-12 */
106     #define SKY_FOG 7
107     #define SKY_HAIL 8
108     /* snow */
109     #define SKY_LIGHT_SNOW 13 /* add 10 to rain to get snow */
110     #define SKY_SNOW 14
111     #define SKY_HEAVY_SNOW 15
112     #define SKY_BLIZZARD 16
113    
114     typedef struct _weather_avoids {
115 root 1.2 const char *name;
116     int snow;
117     archetype *what; /*inited from name, faste to compare arch pointers than strings*/
118 root 1.1 } weather_avoids_t;
119    
120     typedef struct _weather_replace {
121 root 1.2 const char *tile;
122     const char *special_snow;
123     const char *doublestack_arch;
124     int arch_or_name;
125 root 1.1 } weather_replace_t;
126    
127     typedef struct _weather_grow {
128 root 1.2 const char *herb; /* arch name of item to grow */
129     const char *tile; /* arch tile to grow on, NULL if anything */
130     int random; /* random factor. min 1, higher = lower chance of
131     * appearance */
132     float rfmin;
133     float rfmax; /* rainfall min/max (inches/day) */
134     int humin;
135     int humax; /* humidity min/max */
136     int tempmin;
137     int tempmax; /* temp min/max */
138     int elevmin;
139     int elevmax; /* elevation min/max */
140     int season; /* 0=any or 1-5 */
141 root 1.1 } weather_grow_t;
142 root 1.8 #endif
143    
144     #endif
145 root 1.1