ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/tod.h
Revision: 1.7
Committed: Mon Jan 15 21:06:19 2007 UTC (17 years, 5 months ago) by pippijn
Content type: text/plain
Branch: MAIN
CVS Tags: rel-2_0
Changes since 1.6: +23 -23 lines
Log Message:
comments

File Contents

# Content
1 /*
2 * CrossFire, A Multiplayer game for X-windows
3 *
4 * Copyright (C) 2006, 2007 Marc Lehmann & Crossfire+ Development Team
5 * Copyright (C) 2003-2006 Mark Wedel & Crossfire Development Team
6 * Copyright (C) 2000 Tim Rightnour
7 * Copyright (C) 1992 Frank Tore Johansen
8 *
9 * This program 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 2 of the License, or
12 * (at your option) any later version.
13 *
14 * 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 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22 *
23 * The authors can be reached via e-mail at crossfire@schmorp.de
24 */
25
26 #ifndef _TOD_H_
27 #define _TOD_H_
28
29 #define PTICKS_PER_CLOCK 1500
30
31 /* game time */
32 #define HOURS_PER_DAY 28
33 #define DAYS_PER_WEEK 7
34 #define WEEKS_PER_MONTH 5
35 #define MONTHS_PER_YEAR 17
36
37 /* convenience */
38 #define WEEKS_PER_YEAR (WEEKS_PER_MONTH*MONTHS_PER_YEAR)
39 #define DAYS_PER_MONTH (DAYS_PER_WEEK*WEEKS_PER_MONTH)
40 #define DAYS_PER_YEAR (DAYS_PER_MONTH*MONTHS_PER_YEAR)
41 #define HOURS_PER_WEEK (HOURS_PER_DAY*DAYS_PER_WEEK)
42 #define HOURS_PER_MONTH (HOURS_PER_WEEK*WEEKS_PER_MONTH)
43 #define HOURS_PER_YEAR (HOURS_PER_MONTH*MONTHS_PER_YEAR)
44
45 #define LUNAR_DAYS DAYS_PER_MONTH
46
47 typedef struct _timeofday {
48 int year;
49 int month;
50 int day;
51 int dayofweek;
52 int hour;
53 int minute;
54 int weekofmonth;
55 int season;
56 } timeofday_t;
57
58 /* from common/time.c */
59 extern void get_tod(timeofday_t *tod);
60
61 /* weather stuff */
62
63 #define POLAR_BASE_TEMP 0 /* C */
64 #define EQUATOR_BASE_TEMP 30 /* C */
65 #define SEASONAL_ADJUST 10 /* polar distance */
66 #define GULF_STREAM_WIDTH 3 /* width of gulf stream */
67 #define GULF_STREAM_BASE_SPEED 40 /* base speed of gulf stream */
68
69 /* don't muck with these unless you are sure you know what they do */
70 #define PRESSURE_ITERATIONS 30
71 #define PRESSURE_AREA 180
72 #define PRESSURE_ROUNDING_FACTOR 2
73 #define PRESSURE_ROUNDING_ITER 1
74 #define PRESSURE_SPIKES 3
75 #define PRESSURE_MAX 1040
76 #define PRESSURE_MIN 960
77
78 /* This is a multiplier for the wind caused by pressure differences.
79 * The type of overal climate you get depends on this.
80 * Too little wind, and the rain hugs the coast.
81 * Too much wind, and there are hurricanes and blizzards everywhere.
82 * 1 is too little.
83 */
84 #define WIND_FACTOR 4.0
85
86 /* editing the below might require actual changes to code */
87 #define WEATHERMAPTILESX 100
88 #define WEATHERMAPTILESY 100
89
90 /* sky conditions */
91 #define SKY_CLEAR 0
92 #define SKY_LIGHTCLOUD 1
93 #define SKY_OVERCAST 2
94 #define SKY_LIGHT_RAIN 3
95 #define SKY_RAIN 4 /* rain -> storm has lightning */
96 #define SKY_HEAVY_RAIN 5
97 #define SKY_HURRICANE 6
98 /* wierd weather 7-12 */
99 #define SKY_FOG 7
100 #define SKY_HAIL 8
101 /* snow */
102 #define SKY_LIGHT_SNOW 13 /* add 10 to rain to get snow */
103 #define SKY_SNOW 14
104 #define SKY_HEAVY_SNOW 15
105 #define SKY_BLIZZARD 16
106
107 typedef struct _weather_avoids {
108 const char *name;
109 int snow;
110 archetype *what; /*inited from name, faste to compare arch pointers than strings*/
111 } weather_avoids_t;
112
113 typedef struct _weather_replace {
114 const char *tile;
115 const char *special_snow;
116 const char *doublestack_arch;
117 int arch_or_name;
118 } weather_replace_t;
119
120 typedef struct _weather_grow {
121 const char *herb; /* arch name of item to grow */
122 const char *tile; /* arch tile to grow on, NULL if anything */
123 int random; /* random factor. min 1, higher = lower chance of
124 * appearance */
125 float rfmin;
126 float rfmax; /* rainfall min/max (inches/day) */
127 int humin;
128 int humax; /* humidity min/max */
129 int tempmin;
130 int tempmax; /* temp min/max */
131 int elevmin;
132 int elevmax; /* elevation min/max */
133 int season; /* 0=any or 1-5 */
134 } weather_grow_t;
135
136 #endif /* _TOD_H_ */