1 /* app_data.hh 1.6 95/12/23 03:11:20 */
2 
3 
4 // xspacewarp by Greg Walker (gow@math.orst.edu)
5 
6 // This is free software. Non-profit redistribution and/or modification
7 // is allowed and welcome.
8 
9 
10 // define the application data struct. the app resource array is
11 // defined in xprep.hh
12 
13 
14 #ifndef _APPDATA_
15 #define _APPDATA_
16 
17 #include <X11/StringDefs.h>
18 
19 typedef struct
20 {
21   Boolean nomouse;		// whether to use mouse pointer
22   int rows;   // number rows of 9x15 blocks in a sector of the universe
23   int columns;  // number columns of 9x15 blocks in a sector of the universe
24 
25   // average numbers of bases, jovians, stars, and blackholes in universe.
26   // "min" average refers to the lowest skill level and "max" refers to
27   // the highest skill level.
28 
29   int min_average_base_pop;
30   int max_average_base_pop;
31   int min_average_jovian_pop;
32   int max_average_jovian_pop;
33   int min_average_star_pop;
34   int max_average_star_pop;
35   int min_average_blackhole_pop;
36   int max_average_blackhole_pop;
37 
38   // variation in the number of bases, jovians, stars, and
39   // blackholes in universe. "min" average refers to the lowest
40   // skill level and "max" refers to the highest skill level.
41 
42   int min_variation_base_pop;
43   int max_variation_base_pop;
44   int min_variation_jovian_pop;
45   int max_variation_jovian_pop;
46   int min_variation_star_pop;
47   int max_variation_star_pop;
48   int min_variation_blackhole_pop;
49   int max_variation_blackhole_pop;
50 
51   Pixel foreground;		// color for text and graphical borders
52   Pixel background;		// background color for everything
53 
54   Pixel endever_color;
55   String endever_icon;		// visual symbol for the endever
56 
57   Pixel jovian_color;
58   String jovian_icon;		// visual symbol for the jovians
59 
60   Pixel base_color;
61   String base_icon;		// visual symbol for the bases
62 
63   Pixel star_color;
64   String star_icon;		// visual symbol for the stars
65 
66   Pixel blackhole_color;
67   String blackhole_icon;	// visual symbol for the blackholes
68 
69   Pixel faser_color;
70   int faser_width;		// width in pixels
71   int faser_dash_offset; // dash pattern, in pixels, of faser dashes
72   char *faser_dash_list; // dash pattern, in pixels, of faser dashes
73   long faser_speed;	    // millisec interval for faser movement
74 
75   Pixel torpedo_color;
76   int torpedo_width;		// width in pixels
77   int torpedo_length;		// length of torpedo in pixels
78   long torpedo_speed;	    // millisec interval for torpedo movement
79 
80   Pixel explosion_color;
81   long explosion_speed;  // millisec interval for rate of explosion growth
82   int explosion_radius_small; // radius to use for most ship explosions
83   int explosion_radius_big;   // radius to use for self-destruct explosion
84 
85   long endever_thrust_speed;  // millisec interval for endever movement
86   long ship_energize_speed; // millisec interval for ship re-energizing
87   long jovian_action_speed; // millisec interval between jovian actions
88 
89   char *self_destruct_code;	// endever self-destruct
90   float default_firing_angle;	// endever default faser/torpedo angle (radians)
91   int max_torpedoes;		// starting number of torpedoes for endever
92 
93   int max_jovians_per_sector;
94   int max_stars_per_sector;
95   int mask_probability;	// probability a sector is masked (percent)
96 
97   int min_jovian_distance; // min dist to place endv/bases to jovs in sector
98 
99   int endever_min_faser_energy;  // min percent energy needed for faser to work
100   int endever_min_warp_energy; // min percent energy for warpdrive to work
101   int endever_min_thrust_energy; // min percent energy for thrusters to work
102   int jovian_min_faser_energy;  // min percent energy needed for faser to work
103   int jovian_min_warp_energy; // min percent energy for warpdrive to work
104   int jovian_min_thrust_energy; // min percent energy for thrusters to work
105 
106   // If the thrust, warp, faser and shield percent-energies (ie,
107   // percent of max energy) of a jovian are
108   // less than the respective "retreat" percent-energies, then the
109   // jovian exits the battle scene with probability (ie, percent)
110   // jovian_retreat_probability. jovian_retreat_speed is the
111   // rate at which the jovian flees toward the sector edge.
112 
113   int jovian_thrust_retreat_energy;
114   int jovian_warp_retreat_energy;
115   int jovian_faser_retreat_energy;
116   int jovian_shield_retreat_energy;
117   int jovian_retreat_probability;
118   float jovian_retreat_speed;
119 
120   float jovian_min_fight_frequency; // rate at which jovians fight back
121   float jovian_max_fight_frequency; // max rate is for highest skill level
122   float jovian_min_raid_frequency; // rate at which jovians raid bases
123   float jovian_max_raid_frequency; // max rate is for highest skill level
124   float jovian_min_leap_frequency; // rate at which jovians leap to new sectors
125   float jovian_max_leap_frequency; // max rate is for highest skill level
126 } AppData;
127 
128 
129 // string constant definitions
130 
131 #define XtNnomouse "nomouse"
132 #define XtCNomouse "Nomouse"
133 #define XtNrows "rows"
134 #define XtCRows "Rows"
135 #define XtNcolumns "columns"
136 #define XtCColumns "Columns"
137 
138 #define XtNminAverageBasePop "minAverageBasePop"
139 #define XtCMinAverageBasePop "MinAverageBasePop"
140 
141 #define XtNmaxAverageBasePop "maxAverageBasePop"
142 #define XtCMaxAverageBasePop "MaxAverageBasePop"
143 
144 #define XtNminAverageJovianPop "minAverageJovianPop"
145 #define XtCMinAverageJovianPop "MinAverageJovianPop"
146 
147 #define XtNmaxAverageJovianPop "maxAverageJovianPop"
148 #define XtCMaxAverageJovianPop "MaxAverageJovianPop"
149 
150 #define XtNminAverageStarPop "minAverageStarPop"
151 #define XtCMinAverageStarPop "MinAverageStarPop"
152 
153 #define XtNmaxAverageStarPop "maxAverageStarPop"
154 #define XtCMaxAverageStarPop "MaxAverageStarPop"
155 
156 #define XtNminAverageBlackholePop "minAverageBlackholePop"
157 #define XtCMinAverageBlackholePop "MinAverageBlackholePop"
158 
159 #define XtNmaxAverageBlackholePop "maxAverageBlackholePop"
160 #define XtCMaxAverageBlackholePop "MaxAverageBlackholePop"
161 
162 #define XtNminVariationBasePop "minVariationBasePop"
163 #define XtCMinVariationBasePop "MinVariationBasePop"
164 
165 #define XtNmaxVariationBasePop "maxVariationBasePop"
166 #define XtCMaxVariationBasePop "MaxVariationBasePop"
167 
168 #define XtNminVariationJovianPop "minVariationJovianPop"
169 #define XtCMinVariationJovianPop "MinVariationJovianPop"
170 
171 #define XtNmaxVariationJovianPop "maxVariationJovianPop"
172 #define XtCMaxVariationJovianPop "MaxVariationJovianPop"
173 
174 #define XtNminVariationStarPop "minVariationStarPop"
175 #define XtCMinVariationStarPop "MinVariationStarPop"
176 
177 #define XtNmaxVariationStarPop "maxVariationStarPop"
178 #define XtCMaxVariationStarPop "MaxVariationStarPop"
179 
180 #define XtNminVariationBlackholePop "minVariationBlackholePop"
181 #define XtCMinVariationBlackholePop "MinVariationBlackholePop"
182 
183 #define XtNmaxVariationBlackholePop "maxVariationBlackholePop"
184 #define XtCMaxVariationBlackholePop "MaxVariationBlackholePop"
185 
186 #define XtNendeverColor "endeverColor"
187 #define XtCEndeverColor "EndeverColor"
188 #define XtNendeverIcon "endeverIcon"
189 #define XtCEndeverIcon "EndeverIcon"
190 
191 #define XtNjovianColor "jovianColor"
192 #define XtCJovianColor "JovianColor"
193 #define XtNjovianIcon "jovianIcon"
194 #define XtCJovianIcon "JovianIcon"
195 
196 #define XtNbaseColor "baseColor"
197 #define XtCBaseColor "BaseColor"
198 #define XtNbaseIcon "baseIcon"
199 #define XtCBaseIcon "BaseIcon"
200 
201 #define XtNstarColor "starColor"
202 #define XtCStarColor "StarColor"
203 #define XtNstarIcon "starIcon"
204 #define XtCStarIcon "StarIcon"
205 
206 #define XtNblackholeColor "blackholeColor"
207 #define XtCBlackholeColor "BlackholeColor"
208 #define XtNblackholeIcon "blackholeIcon"
209 #define XtCBlackholeIcon "BlackholeIcon"
210 
211 #define XtNfaserColor "faserColor"
212 #define XtCFaserColor "FaserColor"
213 #define XtNfaserWidth "faserWidth"
214 #define XtCFaserWidth "FaserWidth"
215 #define XtNfaserDashOffset "faserDashOffset"
216 #define XtCFaserDashOffset "FaserDashOffset"
217 #define XtNfaserDashList "faserDashList"
218 #define XtCFaserDashList "FaserDashList"
219 #define XtNfaserSpeed "faserSpeed"
220 #define XtCFaserSpeed "FaserSpeed"
221 
222 #define XtNtorpedoColor "torpedoColor"
223 #define XtCTorpedoColor "TorpedoColor"
224 #define XtNtorpedoWidth "torpedoWidth"
225 #define XtCTorpedoWidth "TorpedoWidth"
226 #define XtNtorpedoSpeed "torpedoSpeed"
227 #define XtCTorpedoSpeed "TorpedoSpeed"
228 #define XtNtorpedoLength "torpedoLength"
229 #define XtCTorpedoLength "TorpedoLength"
230 
231 #define XtNexplosionColor "explosionColor"
232 #define XtCExplosionColor "ExplosionColor"
233 #define XtNexplosionSpeed "explosionSpeed"
234 #define XtCExplosionSpeed "ExplosionSpeed"
235 #define XtNexplosionRadiusSmall "explosionRadiusSmall"
236 #define XtCExplosionRadiusSmall "ExplosionRadiusSmall"
237 #define XtNexplosionRadiusBig "explosionRadiusBig"
238 #define XtCExplosionRadiusBig "ExplosionRadiusBig"
239 
240 #define XtNendeverThrustSpeed "endeverThrustSpeed"
241 #define XtCEndeverThrustSpeed "EndeverThrustSpeed"
242 #define XtNshipEnergizeSpeed "shipEnergizeSpeed"
243 #define XtCShipEnergizeSpeed "ShipEnergizeSpeed"
244 #define XtNjovianActionSpeed "jovianActionSpeed"
245 #define XtCJovianActionSpeed "JovianActionSpeed"
246 
247 #define XtNselfDestructCode "selfDestructCode"
248 #define XtCSelfDestructCode "SelfDestructCode"
249 #define XtNdefaultFiringAngle "defaultFiringAngle"
250 #define XtCDefaultFiringAngle "DefaultFiringAngle"
251 #define XtNmaxTorpedoes "maxTorpedoes"
252 #define XtCMaxTorpedoes "MaxTorpedoes"
253 
254 #define XtNmaxJoviansPerSector "maxJoviansPerSector"
255 #define XtCMaxJoviansPerSector "MaxJoviansPerSector"
256 #define XtNmaxStarsPerSector "maxStarsPerSector"
257 #define XtCMaxStarsPerSector "MaxStarsPerSector"
258 #define XtNmaskProbability "maskProbability"
259 #define XtCMaskProbability "MaskProbability"
260 #define XtNminJovianDistance "minJovianDistance"
261 #define XtCMinJovianDistance "MinJovianDistance"
262 
263 #define XtNendeverMinFaserEnergy "endeverMinFaserEnergy"
264 #define XtCEndeverMinFaserEnergy "EndeverMinFaserEnergy"
265 #define XtNendeverMinWarpEnergy "endeverMinWarpEnergy"
266 #define XtCEndeverMinWarpEnergy "EndeverMinWarpEnergy"
267 #define XtNendeverMinThrustEnergy "endeverMinThrustEnergy"
268 #define XtCEndeverMinThrustEnergy "EndeverMinThrustEnergy"
269 #define XtNjovianMinFaserEnergy "jovianMinFaserEnergy"
270 #define XtCJovianMinFaserEnergy "JovianMinFaserEnergy"
271 #define XtNjovianMinWarpEnergy "jovianMinWarpEnergy"
272 #define XtCJovianMinWarpEnergy "JovianMinWarpEnergy"
273 #define XtNjovianMinThrustEnergy "jovianMinThrustEnergy"
274 #define XtCJovianMinThrustEnergy "JovianMinThrustEnergy"
275 
276 #define XtNjovianThrustRetreatEnergy "jovianThrustRetreatEnergy"
277 #define XtCJovianThrustRetreatEnergy "JovianThrustRetreatEnergy"
278 #define XtNjovianWarpRetreatEnergy "jovianWarpRetreatEnergy"
279 #define XtCJovianWarpRetreatEnergy "JovianWarpRetreatEnergy"
280 #define XtNjovianFaserRetreatEnergy "jovianFaserRetreatEnergy"
281 #define XtCJovianFaserRetreatEnergy "JovianFaserRetreatEnergy"
282 #define XtNjovianShieldRetreatEnergy "jovianShieldRetreatEnergy"
283 #define XtCJovianShieldRetreatEnergy "JovianShieldRetreatEnergy"
284 #define XtNjovianRetreatProbability "jovianRetreatProbability"
285 #define XtCJovianRetreatProbability "JovianRetreatProbability"
286 #define XtNjovianRetreatSpeed "jovianRetreatSpeed"
287 #define XtCJovianRetreatSpeed "JovianRetreatSpeed"
288 
289 
290 #define XtNjovianMinFightFrequency "jovianMinFightFrequency"
291 #define XtCJovianMinFightFrequency "JovianMinFightFrequency"
292 #define XtNjovianMaxFightFrequency "jovianMaxFightFrequency"
293 #define XtCJovianMaxFightFrequency "JovianMaxFightFrequency"
294 #define XtNjovianMinRaidFrequency "jovianMinRaidFrequency"
295 #define XtCJovianMinRaidFrequency "JovianMinRaidFrequency"
296 #define XtNjovianMaxRaidFrequency "jovianMaxRaidFrequency"
297 #define XtCJovianMaxRaidFrequency "JovianMaxRaidFrequency"
298 #define XtNjovianMinLeapFrequency "jovianMinLeapFrequency"
299 #define XtCJovianMinLeapFrequency "JovianMinLeapFrequency"
300 #define XtNjovianMaxLeapFrequency "jovianMaxLeapFrequency"
301 #define XtCJovianMaxLeapFrequency "JovianMaxLeapFrequency"
302 
303 
304 #endif				// _APPDATA_
305 
306 // end
307