ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/tod.h
Revision: 1.2
Committed: Tue Aug 29 08:01:36 2006 UTC (17 years, 8 months ago) by root
Content type: text/plain
Branch: MAIN
Changes since 1.1: +56 -29 lines
Log Message:
expand initial tabs to spaces

File Contents

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