ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/tod.h
Revision: 1.1
Committed: Fri Feb 3 07:12:51 2006 UTC (18 years, 3 months ago) by root
Content type: text/plain
Branch: MAIN
Branch point for: UPSTREAM
Log Message:
Initial revision

File Contents

# User Rev Content
1 root 1.1 /* Copyright 2000 Tim Rightnour */
2    
3     #ifndef _TOD_H_
4     #define _TOD_H_
5    
6     #define PTICKS_PER_CLOCK 1500
7    
8     /* game time */
9     #define HOURS_PER_DAY 28
10     #define DAYS_PER_WEEK 7
11     #define WEEKS_PER_MONTH 5
12     #define MONTHS_PER_YEAR 17
13    
14     /* convenience */
15     #define WEEKS_PER_YEAR (WEEKS_PER_MONTH*MONTHS_PER_YEAR)
16     #define DAYS_PER_MONTH (DAYS_PER_WEEK*WEEKS_PER_MONTH)
17     #define DAYS_PER_YEAR (DAYS_PER_MONTH*MONTHS_PER_YEAR)
18     #define HOURS_PER_WEEK (HOURS_PER_DAY*DAYS_PER_WEEK)
19     #define HOURS_PER_MONTH (HOURS_PER_WEEK*WEEKS_PER_MONTH)
20     #define HOURS_PER_YEAR (HOURS_PER_MONTH*MONTHS_PER_YEAR)
21    
22     #define LUNAR_DAYS DAYS_PER_MONTH
23    
24     typedef struct _timeofday {
25     int year;
26     int month;
27     int day;
28     int dayofweek;
29     int hour;
30     int minute;
31     int weekofmonth;
32     int season;
33     } timeofday_t;
34    
35     /* from common/time.c */
36     extern void get_tod(timeofday_t *tod);
37    
38     /* weather stuff */
39    
40     #define POLAR_BASE_TEMP 0 /* C */
41     #define EQUATOR_BASE_TEMP 30 /* C */
42     #define SEASONAL_ADJUST 10 /* polar distance */
43     #define GULF_STREAM_WIDTH 3 /* width of gulf stream */
44     #define GULF_STREAM_BASE_SPEED 40 /* base speed of gulf stream */
45    
46     /* don't muck with these unless you are sure you know what they do */
47     #define PRESSURE_ITERATIONS 30
48     #define PRESSURE_AREA 180
49     #define PRESSURE_ROUNDING_FACTOR 2
50     #define PRESSURE_ROUNDING_ITER 1
51     #define PRESSURE_SPIKES 3
52     #define PRESSURE_MAX 1040
53     #define PRESSURE_MIN 960
54    
55     /* This is a multiplier for the wind caused by pressure differences.
56     * The type of overal climate you get depends on this.
57     * Too little wind, and the rain hugs the coast.
58     * Too much wind, and there are hurricanes and blizzards everywhere.
59     * 1 is too little.
60     */
61     #define WIND_FACTOR 4.0
62    
63     /* editing the below might require actual changes to code */
64     #define WEATHERMAPTILESX 100
65     #define WEATHERMAPTILESY 100
66    
67     /* sky conditions */
68     #define SKY_CLEAR 0
69     #define SKY_LIGHTCLOUD 1
70     #define SKY_OVERCAST 2
71     #define SKY_LIGHT_RAIN 3
72     #define SKY_RAIN 4 /* rain -> storm has lightning */
73     #define SKY_HEAVY_RAIN 5
74     #define SKY_HURRICANE 6
75     /* wierd weather 7-12 */
76     #define SKY_FOG 7
77     #define SKY_HAIL 8
78     /* snow */
79     #define SKY_LIGHT_SNOW 13 /* add 10 to rain to get snow */
80     #define SKY_SNOW 14
81     #define SKY_HEAVY_SNOW 15
82     #define SKY_BLIZZARD 16
83    
84     typedef struct _weather_avoids {
85     const char *name;
86     int snow;
87     archetype *what; /*inited from name, faste to compare arch pointers than strings*/
88     } weather_avoids_t;
89    
90     typedef struct _weather_replace {
91     const char *tile;
92     const char *special_snow;
93     const char *doublestack_arch;
94     int arch_or_name;
95     } weather_replace_t;
96    
97     typedef struct _weather_grow {
98     const char *herb; /* arch name of item to grow */
99     const char *tile; /* arch tile to grow on, NULL if anything */
100     int random; /* random factor. min 1, higher = lower chance of
101     * appearance */
102     float rfmin;
103     float rfmax; /* rainfall min/max (inches/day) */
104     int humin;
105     int humax; /* humidity min/max */
106     int tempmin;
107     int tempmax; /* temp min/max */
108     int elevmin;
109     int elevmax; /* elevation min/max */
110     int season; /* 0=any or 1-5 */
111     } weather_grow_t;
112    
113     #endif /* _TOD_H_ */