ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/tod.h
Revision: 1.1.1.1 (vendor branch)
Committed: Fri Feb 3 07:12:51 2006 UTC (18 years, 3 months ago) by root
Content type: text/plain
Branch: UPSTREAM
CVS Tags: UPSTREAM_2006_02_22, UPSTREAM_2006_02_03
Changes since 1.1: +0 -0 lines
Log Message:
initial import

File Contents

# Content
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_ */