ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/tod.h
Revision: 1.1.1.2 (vendor branch)
Committed: Wed Mar 15 14:04:54 2006 UTC (18 years, 2 months ago) by elmex
Content type: text/plain
Branch: UPSTREAM
CVS Tags: LAST_C_VERSION, UPSTREAM_2006_03_15, difficulty_fix_merge_060810_2300
Branch point for: difficulty_fix
Changes since 1.1.1.1: +28 -1 lines
Log Message:
cvs -z9 -d:ext:elmex@cvs.schmorp.de:/schmorpforge import cf.schmorp.de UPSTREAM UPSTREAM_2006_03_15

File Contents

# User Rev Content
1 elmex 1.1.1.2 /*
2     * static char *rcsid_tod_h =
3     * "$Id: tod.h,v 1.11 2006/03/08 06:58:19 mwedel Exp $";
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     int year;
53     int month;
54     int day;
55     int dayofweek;
56     int hour;
57     int minute;
58     int weekofmonth;
59     int season;
60     } 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     const char *name;
113     int snow;
114     archetype *what; /*inited from name, faste to compare arch pointers than strings*/
115     } weather_avoids_t;
116    
117     typedef struct _weather_replace {
118     const char *tile;
119     const char *special_snow;
120     const char *doublestack_arch;
121     int arch_or_name;
122     } weather_replace_t;
123    
124     typedef struct _weather_grow {
125     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     } weather_grow_t;
139    
140     #endif /* _TOD_H_ */