clean up old changelog a little
[btb/d2x.git] / ChangeLog-old
1 This file contains the per-file change logs written before CVS was used
2
3 ------------------------------------------------------------------------
4 2d/2dsline.c:
5
6  * Revision 1.6  1995/09/14  14:24:03  allender
7  * fixed MW compile error
8  *
9  * Revision 1.5  1995/09/14  13:45:17  allender
10  * quick optimization for scanline
11  *
12  * Revision 1.4  1995/04/27  07:36:05  allender
13  * remove some memsets since all old is here now
14  *
15  * Revision 1.3  1995/04/19  14:35:33  allender
16  * *** empty log message ***
17  *
18  * Revision 1.2  1995/04/18  12:03:40  allender
19  * *** empty log message ***
20  *
21  * Revision 1.1  1995/03/09  09:24:06  allender
22  * Initial revision
23  *
24  *
25  * --- PC RCS information ---
26  * Revision 1.7  1994/11/18  22:50:48  john
27  * Changed a bunch of shorts to ints in calls.
28  *
29  * Revision 1.6  1994/09/02  11:40:32  john
30  * fixed bug with urect scanline drakening still
31  * only using 16 levels of fade.
32  *
33  * Revision 1.5  1994/04/08  16:59:12  john
34  * Add fading poly's; Made palette fade 32 instead of 16.
35  *
36  * Revision 1.4  1994/03/22  18:36:27  john
37  * Added darkening scanlines
38  *
39  * Revision 1.3  1993/10/15  16:22:52  john
40  * y
41  *
42  * Revision 1.2  1993/09/08  11:56:29  john
43  * neatened
44  *
45  * Revision 1.1  1993/09/08  11:44:27  john
46  * Initial revision
47  *
48
49 ------------------------------------------------------------------------
50 2d/bitblt.c:
51
52  * Revision 1.29  1995/03/14  12:14:28  john
53  * Added code to double horz/vert bitblts.
54  *
55  * Revision 1.28  1995/03/13  09:01:48  john
56  * Fixed bug with VFX1 screen not tall enough.
57  *
58  * Revision 1.27  1995/03/01  15:38:10  john
59  * Better ModeX support.
60  *
61  * Revision 1.26  1994/12/15  12:19:00  john
62  * Added gr_bm_bitblt (clipped!) function.
63  *
64  * Revision 1.25  1994/12/09  18:58:42  matt
65  * Took out include of 3d.h
66  *
67  * Revision 1.24  1994/11/28  17:08:32  john
68  * Took out some unused functions in linear.asm, moved
69  * gr_linear_movsd from linear.asm to bitblt.c, made sure that
70  * the code in ibiblt.c sets the direction flags before rep movsing.
71  *
72  * Revision 1.22  1994/11/23  16:04:00  john
73  * Fixed generic rle'ing to use new bit method.
74  *
75  * Revision 1.21  1994/11/18  22:51:03  john
76  * Changed a bunch of shorts to ints in calls.
77  *
78  * Revision 1.20  1994/11/10  15:59:48  john
79  * Fixed bugs with canvas's being created with bogus bm_flags.
80  *
81  * Revision 1.19  1994/11/09  21:03:35  john
82  * Added RLE for svga gr_ubitmap.
83  *
84  * Revision 1.18  1994/11/09  17:41:29  john
85  * Made a slow version of rle bitblt to svga, modex.
86  *
87  * Revision 1.17  1994/11/09  16:35:15  john
88  * First version with working RLE bitmaps.
89  *
90  * Revision 1.16  1994/11/04  10:06:58  john
91  * Added fade table for fading fonts. Made font that partially clips
92  * not print a warning message.
93  *
94  * Revision 1.15  1994/09/22  16:08:38  john
95  * Fixed some palette stuff.
96  *
97  * Revision 1.14  1994/09/19  11:44:27  john
98  * Changed call to allocate selector to the dpmi module.
99  *
100  * Revision 1.13  1994/08/08  13:03:00  john
101  * Fixed bug in gr_bitmap in modex
102  *
103  * Revision 1.12  1994/07/13  19:47:23  john
104  * Fixed bug with modex bitblt to page 2 not working.
105  *
106  * Revision 1.11  1994/05/31  11:10:52  john
107  * *** empty log message ***
108  *
109  * Revision 1.10  1994/03/18  15:24:34  matt
110  * Removed interlace stuff
111  *
112  * Revision 1.9  1994/02/18  15:32:20  john
113  * *** empty log message ***
114  *
115  * Revision 1.8  1994/02/01  13:22:54  john
116  * *** empty log message ***
117  *
118  * Revision 1.7  1994/01/13  08:28:25  mike
119  * Modify rect copy to copy alternate scanlines when in interlaced mode.
120  *
121  * Revision 1.6  1993/12/28  12:09:46  john
122  * added lbitblt.asm
123  *
124  * Revision 1.5  1993/10/26  13:18:09  john
125  * *** empty log message ***
126  *
127  * Revision 1.4  1993/10/15  16:23:30  john
128  * y
129  *
130  * Revision 1.3  1993/09/13  17:52:58  john
131  * Fixed bug in BitBlt linear to SVGA
132  *
133  * Revision 1.2  1993/09/08  14:47:00  john
134  * Made bitmap00 add rowsize instead of bitmap width.
135  * Other routines might have this problem too.
136  *
137  * Revision 1.1  1993/09/08  11:43:01  john
138  * Initial revision
139
140 ------------------------------------------------------------------------
141 2d/bitmap.c:
142
143  * Revision 1.11  1995/08/23  18:46:06  allender
144  * fixed compiler warning
145  *
146  * Revision 1.10  1995/08/14  14:25:45  allender
147  * changed transparency color to 0
148  *
149  * Revision 1.9  1995/07/05  16:04:51  allender
150  * transparency/game kitchen changes
151  *
152  * Revision 1.8  1995/06/15  09:50:48  allender
153  * new malloc to align bitmap on 8 byte bountry
154  *
155  * Revision 1.7  1995/05/12  11:52:19  allender
156  * changed memory stuff again
157  *
158  * Revision 1.6  1995/05/11  12:48:34  allender
159  * nge transparency color
160  *
161  * Revision 1.5  1995/05/04  19:59:21  allender
162  * use NewPtr instead of malloc
163  *
164  * Revision 1.4  1995/04/27  07:33:04  allender
165  * rearrange functions
166  *
167  * Revision 1.3  1995/04/19  14:37:17  allender
168  * removed dead asm code
169  *
170  * Revision 1.2  1995/04/18  12:04:51  allender
171  * *** empty log message ***
172  *
173  * Revision 1.1  1995/03/09  08:48:06  allender
174  * Initial revision
175  *
176  *
177  * -------  PC version RCS information
178  * Revision 1.17  1994/11/18  22:50:25  john
179  * Changed shorts to ints in parameters.
180  *
181  * Revision 1.16  1994/11/10  15:59:46  john
182  * Fixed bugs with canvas's being created with bogus bm_flags.
183  *
184  * Revision 1.15  1994/10/26  23:55:53  john
185  * Took out roller; Took out inverse table.
186  *
187  * Revision 1.14  1994/09/19  14:40:21  john
188  * Changed dpmi stuff.
189  *
190  * Revision 1.13  1994/09/19  11:44:04  john
191  * Changed call to allocate selector to the dpmi module.
192  *
193  * Revision 1.12  1994/06/09  13:14:57  john
194  * Made selectors zero our
195  * out, I meant.
196  *
197  * Revision 1.11  1994/05/06  12:50:07  john
198  * Added supertransparency; neatend things up; took out warnings.
199  *
200  * Revision 1.10  1994/04/08  16:59:39  john
201  * Add fading poly's; Made palette fade 32 instead of 16.
202  *
203  * Revision 1.9  1994/03/16  17:21:09  john
204  * Added slow palette searching options.
205  *
206  * Revision 1.8  1994/03/14  17:59:35  john
207  * Added function to check bitmap's transparency.
208  *
209  * Revision 1.7  1994/03/14  17:16:21  john
210  * fixed bug with counting freq of pixels.
211  *
212  * Revision 1.6  1994/03/14  16:55:47  john
213  * Changed grs_bitmap structure to include bm_flags.
214  *
215  * Revision 1.5  1994/02/18  15:32:22  john
216  * *** empty log message ***
217  *
218  * Revision 1.4  1993/10/15  16:22:49  john
219  * *** empty log message ***
220  *
221  * Revision 1.3  1993/09/08  17:37:11  john
222  * Checking for errors with Yuan...
223  *
224  * Revision 1.2  1993/09/08  14:46:27  john
225  * looking for possible bugs...
226  *
227  * Revision 1.1  1993/09/08  11:43:05  john
228  * Initial revision
229  *
230
231 ------------------------------------------------------------------------
232 2d/clip.h:
233
234  * Revision 1.3  1993/10/15  16:22:28  john
235  * *** empty log message ***
236  *
237  * Revision 1.2  1993/09/29  16:14:31  john
238  * made work with fix point
239  *
240  * Revision 1.1  1993/09/08  11:40:53  john
241  * Initial revision
242  *
243  *
244
245 ------------------------------------------------------------------------
246 2d/ibitblt.c:
247
248  * Revision 1.3  1995/09/13  11:43:22  allender
249  * start on optimizing cockpit copy code
250  *
251  * Revision 1.2  1995/09/07  10:16:57  allender
252  * fixed up cockpit and rearview hole blitting
253  *
254  * Revision 1.1  1995/08/18  15:50:48  allender
255  * Initial revision
256  *
257  * Revision 1.6  1994/11/28  17:07:29  john
258  * Took out some unused functions in linear.asm, moved
259  * gr_linear_movsd from linear.asm to bitblt.c, made sure that
260  * the code in ibiblt.c sets the direction flags before rep movsing.
261  *
262  * Revision 1.5  1994/11/18  22:50:22  john
263  * Changed shorts to ints in parameters.
264  *
265  * Revision 1.4  1994/11/09  16:35:16  john
266  * First version with working RLE bitmaps.
267  *
268  * Revision 1.3  1994/10/03  17:18:05  john
269  * Fixed bug with edi not getting intialized to zero
270  * in create_mask.
271  *
272  * Revision 1.2  1994/05/31  11:10:55  john
273  * *** empty log message ***
274  *
275  * Revision 1.1  1994/05/30  16:08:27  john
276  * Initial revision
277  *
278
279 ------------------------------------------------------------------------
280 2d/linear.asm:
281
282 ; Revision 1.20  1994/11/28  17:08:30  john
283 ; Took out some unused functions in linear.asm, moved
284 ; gr_linear_movsd from linear.asm to bitblt.c, made sure that
285 ; the code in ibiblt.c sets the direction flags before rep movsing.
286
287 ; Revision 1.19  1994/11/27  22:57:56  john
288 ; Took out some code that was never called.
289
290 ; Revision 1.18  1994/09/12  14:40:16  john
291 ; Neatend.
292
293 ; Revision 1.17  1994/07/27  18:30:30  john
294 ; Took away the blending table.
295
296 ; Revision 1.16  1994/04/08  16:59:28  john
297 ; Add fading poly's; Made palette fade 32 instead of 16.
298
299 ; Revision 1.15  1993/12/21  20:10:03  john
300 ; *** empty log message ***
301
302 ; Revision 1.14  1993/12/21  19:58:31  john
303 ; added selector stuff
304
305 ; Revision 1.13  1993/12/21  11:40:51  john
306 ; *** empty log message ***
307
308 ; Revision 1.12  1993/12/09  15:01:52  john
309 ; Changed palette stuff majorly
310
311 ; Revision 1.11  1993/12/08  16:41:02  john
312 ; *** empty log message ***
313
314 ; Revision 1.10  1993/12/08  11:50:17  john
315 ; Fixed bug with gr_init
316
317 ; Revision 1.9  1993/12/07  12:32:12  john
318 ; moved bmd_palette to gr_palette
319
320 ; Revision 1.8  1993/12/03  12:11:25  john
321 ; *** empty log message ***
322
323 ; Revision 1.7  1993/11/16  11:29:08  john
324 ; *** empty log message ***
325
326 ; Revision 1.6  1993/10/15  16:22:13  john
327 ; *** empty log message ***
328
329 ; Revision 1.5  1993/09/29  16:15:28  john
330 ; added assembler linear_line
331
332 ; Revision 1.4  1993/09/26  18:59:27  john
333 ; fade stuff
334
335 ; Revision 1.3  1993/09/21  14:00:59  john
336 ; added code to save 43/50 line text modes.
337
338 ; Revision 1.2  1993/09/16  17:28:06  john
339 ; added code to save/restore video mode
340
341 ; Revision 1.1  1993/09/08  11:41:30  john
342 ; Initial revision
343
344 ------------------------------------------------------------------------
345 2d/palette.c:
346
347  * Revision 1.41  1995/02/02  14:26:31  john
348  * Made palette fades work better with gamma thingy..
349  *
350  * Revision 1.40  1994/12/08  19:03:46  john
351  * Made functions use cfile.
352  *
353  * Revision 1.39  1994/12/01  11:23:27  john
354  * Limited Gamma from 0-8.
355  *
356  * Revision 1.38  1994/11/28  01:31:08  mike
357  * optimize color lookup function, caching recently used colors.
358  *
359  * Revision 1.37  1994/11/18  22:50:18  john
360  * Changed shorts to ints in parameters.
361  *
362  * Revision 1.36  1994/11/15  17:54:59  john
363  * Made text palette fade in when game over.
364  *
365  * Revision 1.35  1994/11/10  19:53:14  matt
366  * Fixed error handling is gr_use_palette_table()
367  *
368  * Revision 1.34  1994/11/07  13:53:48  john
369  * Added better gamma stufff.
370  *
371  * Revision 1.33  1994/11/07  13:37:56  john
372  * Added gamma correction stuff.
373  *
374  * Revision 1.32  1994/11/05  13:20:14  john
375  * Fixed bug with find_closest_color_current not working.
376  *
377  * Revision 1.31  1994/11/05  13:08:09  john
378  * MAde it return 0 when palette already faded out.
379  *
380  * Revision 1.30  1994/11/05  13:05:34  john
381  * Added back in code to allow keys during fade.
382  *
383  * Revision 1.29  1994/11/05  12:49:50  john
384  * Fixed bug with previous comment..
385  *
386  * Revision 1.28  1994/11/05  12:48:46  john
387  * Made palette only fade in / out when its supposed to.
388  *
389  * Revision 1.27  1994/11/05  12:46:43  john
390  * Changed palette stuff a bit.
391  *
392  * Revision 1.26  1994/11/01  12:59:35  john
393  * Reduced palette.256 size.
394  *
395  * Revision 1.25  1994/10/26  23:55:35  john
396  * Took out roller; Took out inverse table.
397  *
398  * Revision 1.24  1994/10/04  22:03:05  matt
399  * Fixed bug: palette wasn't fading all the way out or in
400  *
401  * Revision 1.23  1994/09/22  16:08:40  john
402  * Fixed some palette stuff.
403  *
404  * Revision 1.22  1994/09/19  11:44:31  john
405  * Changed call to allocate selector to the dpmi module.
406  *
407  * Revision 1.21  1994/09/12  19:28:09  john
408  * Fixed bug with unclipped fonts clipping.
409  *
410  * Revision 1.20  1994/09/12  18:18:39  john
411  * Set 254 and 255 to fade to themselves in fadetable
412  *
413  * Revision 1.19  1994/09/12  14:40:10  john
414  * Neatend.
415  *
416  * Revision 1.18  1994/09/09  09:31:55  john
417  * Made find_closest_color not look at superx spot of 254
418  *
419  * Revision 1.17  1994/08/09  11:27:08  john
420  * Add cthru stuff.
421  *
422  * Revision 1.16  1994/08/01  11:03:51  john
423  * MAde it read in old/new palette.256
424  *
425  * Revision 1.15  1994/07/27  18:30:27  john
426  * Took away the blending table.
427  *
428  * Revision 1.14  1994/06/09  10:39:52  john
429  * In fade out.in functions, returned 1 if key was pressed...
430  *
431  * Revision 1.13  1994/05/31  19:04:16  john
432  * Added key to stop fade if desired.
433  *
434  * Revision 1.12  1994/05/06  12:50:20  john
435  * Added supertransparency; neatend things up; took out warnings.
436  *
437  * Revision 1.11  1994/05/03  19:39:02  john
438  * *** empty log message ***
439  *
440  * Revision 1.10  1994/04/22  11:16:07  john
441  * *** empty log message ***
442  *
443  * Revision 1.9  1994/04/08  16:59:40  john
444  * Add fading poly's; Made palette fade 32 instead of 16.
445  *
446  * Revision 1.8  1994/03/16  17:21:17  john
447  * Added slow palette searching options.
448  *
449  * Revision 1.7  1994/01/07  11:47:33  john
450  * made use cflib
451  *
452  * Revision 1.6  1993/12/21  11:41:04  john
453  * *** empty log message ***
454  *
455  * Revision 1.5  1993/12/09  15:02:47  john
456  * Changed palette stuff majorly
457  *
458  * Revision 1.4  1993/12/07  12:31:41  john
459  * moved bmd_palette to gr_palette
460  *
461  * Revision 1.3  1993/10/15  16:22:23  john
462  * *** empty log message ***
463  *
464  * Revision 1.2  1993/09/26  18:59:46  john
465  * fade stuff
466  *
467  * Revision 1.1  1993/09/08  11:44:03  john
468  * Initial revision
469  *
470
471 ------------------------------------------------------------------------
472 2d/pcx.c:
473
474  * Revision 1.6  1995/03/01  15:38:12  john
475  * Better ModeX support.
476  *
477  * Revision 1.5  1995/01/21  17:54:17  john
478  * Added pcx reader for modes other than modex.
479  *
480  * Revision 1.4  1994/12/08  19:03:56  john
481  * Made functions use cfile.
482  *
483  * Revision 1.3  1994/11/29  02:53:24  john
484  * Added error messages; made call be more similiar to iff.
485  *
486  * Revision 1.2  1994/11/28  20:03:50  john
487  * Added PCX functions.
488  *
489  * Revision 1.1  1994/11/28  19:57:56  john
490  * Initial revision
491  *
492
493 ------------------------------------------------------------------------
494 2d/rle.c:
495
496  * Changed shorts to ints in parameters.
497  *
498  *
499  * Old Log:
500  * Revision 1.10  1995/08/14  14:26:34  allender
501  * changed transparency color to 0
502  *
503  * Revision 1.9  1995/07/05  16:07:49  allender
504  * transparency/kitchen chagnes
505  *
506  * Revision 1.8  1995/05/12  11:54:03  allender
507  * changed memory stuff again
508  *
509  * Revision 1.7  1995/05/11  12:49:19  allender
510  * change transparency color
511  *
512  * Revision 1.6  1995/05/04  20:00:30  allender
513  * use NewPtr instead of malloc.  Fix gr_rle_scanline (which caused me
514  * *many* hours of frustration!!!!)
515  *
516  * Revision 1.5  1995/05/01  08:40:32  allender
517  * trying to find memory bug....this stuff works -- it's johns code
518  *
519  * Revision 1.4  1995/04/27  07:38:24  allender
520  * new rle code ala John
521  *
522  * Revision 1.3  1995/04/19  14:36:06  allender
523  * *** empty log message ***
524  *
525  * Revision 1.2  1995/04/18  12:08:30  allender
526  * *** empty log message ***
527  *
528  * Revision 1.1  1995/03/09  09:23:04  allender
529  * Initial revision
530  *
531  *
532  * --- PC RCS information ---
533  * Revision 1.19  1995/01/14  19:18:31  john
534  * Added assert to check for paged out bitmap.
535  *
536  * Revision 1.18  1995/01/14  11:32:07  john
537  * Added rle_cache_flush function.
538  *
539  * Revision 1.17  1994/12/13  10:58:27  john
540  * Fixed bug with 2 consecutive calls to get_expanded_Texture
541  * with 2 different bitmaps, returning the same rle texture,
542  * causing doors to disapper.
543  *
544  * Revision 1.16  1994/11/30  00:55:03  mike
545  * optimization
546  *
547  * Revision 1.15  1994/11/24  13:24:44  john
548  * Made sure that some rep movs had the cld set first.
549  * Took some unused functions out.
550  *
551  * Revision 1.14  1994/11/23  16:03:46  john
552  * Fixed generic rle'ing to use new bit method.
553  *
554  * Revision 1.13  1994/11/23  15:45:51  john
555  * Changed to a 3 bit rle scheme.
556  *
557  * Revision 1.12  1994/11/18  22:50:24  john
558  * Changed shorts to ints in parameters.
559  *
560  * Revision 1.11  1994/11/14  17:06:13  john
561  * Took out Key_f12.
562  *
563  * Revision 1.10  1994/11/14  15:54:09  john
564  * Put code in for maybe checking bogus rle data.
565  *
566  * Revision 1.9  1994/11/14  15:51:58  john
567  * Added rle_disable_caching variable to prove the stability of my rle
568  * caching code to any non-believers.
569  *
570  * Revision 1.8  1994/11/10  10:31:20  john
571  * Reduce cache buffers to 16.
572  *
573  * Revision 1.7  1994/11/09  19:53:43  john
574  * Added texture rle caching.
575  *
576  * Revision 1.6  1994/11/09  17:41:44  john
577  * Made a slow version of rle bitblt to svga, modex.
578  *
579  * Revision 1.5  1994/11/09  17:07:50  john
580  * Fixed bug with bitmap that gets bigger with rle.
581  *
582  * Revision 1.4  1994/11/09  16:35:17  john
583  * First version with working RLE bitmaps.
584  *
585  * Revision 1.3  1994/10/26  12:54:47  john
586  * Fixed bug with decode that used rep movsd instead of
587  * rep stosd.
588  *
589  * Revision 1.2  1994/10/06  17:05:25  john
590  * First version of rle stuff.
591  *
592  * Revision 1.1  1994/10/06  16:53:34  john
593  * Initial revision
594
595 ------------------------------------------------------------------------
596 2d/scale.c:
597
598  * Revision 1.12  1995/03/14  15:14:11  john
599  * Increased max scanline length to 640.
600  * ..
601  * 
602  * Revision 1.11  1994/11/27  12:56:39  matt
603  * Took out unneeded include of 3d.h
604  * 
605  * Revision 1.10  1994/11/18  22:50:25  john
606  * Changed shorts to ints in parameters.
607  * 
608  * Revision 1.9  1994/11/09  16:35:02  john
609  * First version with working RLE bitmaps.
610  * 
611  * Revision 1.8  1994/06/09  13:15:17  john
612  * *** empty log message ***
613  * 
614  * Revision 1.7  1994/06/07  11:47:02  john
615  * Added back in the fast code for scaling up bitmaps.
616  * 
617  * Revision 1.6  1994/02/18  15:32:36  john
618  * *** empty log message ***
619  * 
620  * Revision 1.5  1994/01/22  14:35:01  john
621  * Added transparency as color index 255.
622  * 
623  * Revision 1.4  1994/01/17  16:59:12  john
624  * once again...
625  * 
626  * Revision 1.3  1994/01/17  16:51:17  john
627  * Added check so we don't draw outsibe
628  * the source bitmap's v coordinate... kind
629  * of a hack, but works.
630  * 
631  * Revision 1.2  1994/01/12  18:03:26  john
632  * The first iteration of fast scaler..
633  * 
634  * Revision 1.1  1994/01/11  14:48:42  john
635  * Initial revision
636
637 ------------------------------------------------------------------------
638 2d/scalea.asm:
639
640 ; Revision 1.2  1994/01/12  18:02:52  john
641 ; Asm code for the scaler... first iteration here
642 ; has compiled code that works!!
643
644 ; Revision 1.1  1994/01/12  12:20:11  john
645 ; Initial revision
646
647 ------------------------------------------------------------------------
648 3d/clipper.h:
649
650  * Revision 1.1  1995/05/05  08:50:13  allender
651  * Initial revision
652  *
653  * Revision 1.1  1995/04/17  19:56:58  matt
654  * Initial revision
655  * 
656  * 
657
658 ------------------------------------------------------------------------
659 3d/globvars.c:
660
661  * Revision 1.2  1995/09/13  11:30:47  allender
662  * added fCanv_w2 and vCanv_h2 for PPC implementation
663  *
664  * Revision 1.1  1995/05/05  08:50:48  allender
665  * Initial revision
666  *
667  * Revision 1.1  1995/04/17  04:24:57  matt
668  * Initial revision
669
670 ------------------------------------------------------------------------
671 3d/globvars.h:
672
673  * Revision 1.2  1995/09/13  11:31:19  allender
674  * added fCanv_w2 and vCanv_h2 for PPC implementation
675  *
676  * Revision 1.1  1995/05/05  08:51:02  allender
677  * Initial revision
678  *
679  * Revision 1.1  1995/04/17  04:07:58  matt
680  * Initial revision
681
682 ------------------------------------------------------------------------
683 3d/instance.c:
684
685  * Revision 1.2  1995/06/12  12:36:57  allender
686  * fixed bug where g3_start_instance_angles recursively called itself
687  *
688  * Revision 1.1  1995/05/05  08:51:27  allender
689  * Initial revision
690  *
691  * Revision 1.1  1995/04/17  06:43:29  matt
692  * Initial revision
693
694 ------------------------------------------------------------------------
695 3d/interp.c:
696
697  * Revision 1.4  1995/10/10  22:20:09  allender
698  * new morphing code from Matt
699  *
700  * Revision 1.3  1995/08/31  15:40:24  allender
701  * swap color data correctly
702  *
703  * Revision 1.2  1995/05/11  13:06:38  allender
704  * fix int --> short problem
705  *
706  * Revision 1.1  1995/05/05  08:51:41  allender
707  * Initial revision
708  *
709  * Revision 1.1  1995/04/17  06:44:33  matt
710  * Initial revision
711
712 ------------------------------------------------------------------------
713 3d/matrix.c:
714
715  * Revision 1.1  1995/05/05  08:52:11  allender
716  * Initial revision
717  *
718  * Revision 1.1  1995/04/17  04:14:34  matt
719  * Initial revision
720
721 ------------------------------------------------------------------------
722 3d/points.c:
723
724  * Revision 1.3  1995/09/21  17:29:40  allender
725  * changed project_point to overflow if z <= 0
726  *
727  * Revision 1.2  1995/09/13  11:31:28  allender
728  * removed checkmuldiv from g3_project_point
729  *
730  * Revision 1.1  1995/05/05  08:52:35  allender
731  * Initial revision
732  *
733  * Revision 1.1  1995/04/17  04:32:25  matt
734  * Initial revision
735
736 ------------------------------------------------------------------------
737 3d/rod.c:
738
739  * Revision 1.2  1995/09/13  11:31:46  allender
740  * removed checkmuldiv in PPC implemenation
741  *
742  * Revision 1.1  1995/05/05  08:52:45  allender
743  * Initial revision
744  *
745  * Revision 1.1  1995/04/17  06:42:08  matt
746  * Initial revision
747
748 ------------------------------------------------------------------------
749 3d/setup.c:
750
751  * Revision 1.4  1995/10/11  00:27:04  allender
752  * bash free_num_points to 0
753  *
754  * Revision 1.3  1995/09/13  11:31:58  allender
755  * calc for fCanv_w2 and fCanv_h2
756  *
757  * Revision 1.2  1995/06/25  21:57:57  allender
758  * *** empty log message ***
759  *
760  * Revision 1.1  1995/05/05  08:52:54  allender
761  * Initial revision
762  *
763  * Revision 1.1  1995/04/17  03:59:01  matt
764  * Initial revision
765
766 ------------------------------------------------------------------------
767 arch/dos/bak/ipx.c:
768
769  * Revision 2.10  1995/03/29  17:27:55  john
770  * Added code to not duplicate broadcasts.
771  *
772  * Revision 2.9  1995/03/29  15:32:07  john
773  * NEatened.
774  *
775  * Revision 2.8  1995/03/29  15:07:31  john
776  * Added network support.
777  *
778  * Revision 2.7  1995/03/29  11:22:27  john
779  * Added broadcasting over a net.
780  *
781  * Revision 2.6  1995/03/28  20:05:03  john
782  * Took away alternate server stuff.
783  *
784  * Revision 2.5  1995/03/23  19:14:29  john
785  * Added better MAX_USERS message.
786  *
787  * Revision 2.4  1995/03/23  19:00:02  john
788  * Added user list capabitly.
789  *
790  * Revision 2.3  1995/03/23  12:27:05  john
791  * Move IPX into bios lib.
792  *
793  * Revision 2.2  1995/03/22  19:08:15  john
794  * Added code to fix sending packets over router... now
795  * we just need to make broadcasts go over router!!
796  *
797  * Revision 2.1  1995/03/21  08:40:16  john
798  * Ifdef'd out the NETWORK code.
799  *
800  * Revision 2.0  1995/02/27  11:30:45  john
801  * New version 2.0, which has no anonymous unions, builds with
802  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
803  *
804  * Revision 1.31  1995/02/16  17:35:03  john
805  * Added code to allow dynamic socket changing.
806  *
807  * Revision 1.30  1995/02/01  21:03:45  john
808  * Lintified.
809  *
810  * Revision 1.29  1995/01/22  14:31:05  john
811  * Added key.h
812  *
813  * Revision 1.28  1995/01/22  14:29:26  john
814  * Added code to bypass broadcast messages.
815  *
816  * Revision 1.27  1995/01/03  13:46:16  john
817  * Added code that should make ipx work over different servers,
818  * but ifdef'd it out with SHAREWARE in ipx.c.  I haven't tested
819  * this, and I hope it doesn't introduce net bugs.
820  *
821  * Revision 1.26  1994/12/14  11:54:37  rob
822  * Reduce # of ipx packets.
823  *
824  * Revision 1.25  1994/12/11  00:43:28  john
825  * Locked down DOS ipx buffers... probably not necessary, tho.
826  *
827  * Revision 1.24  1994/12/08  15:49:58  rob
828  * Bumped up the # of ipx packets.
829  *
830  * Revision 1.23  1994/12/04  15:23:54  rob
831  * Reduced packet # constants.
832  *
833  * Revision 1.22  1994/11/27  23:12:39  matt
834  * Made changes for new mprintf calling convention
835  *
836  * Revision 1.21  1994/11/19  15:15:19  mike
837  * remove unused code and data
838  *
839  * Revision 1.20  1994/11/10  11:06:07  rob
840  * Raised number of ipx packets to 64 and buffers to 128 (for 8-way games)
841  * Removed (commented out) all the spx support stuff.
842  *
843  * Revision 1.19  1994/11/07  17:50:12  rob
844  * Bumped up max_packets and ipx_num_packets to double their previous
845  * values.
846  *
847  * Revision 1.18  1994/11/07  15:39:01  rob
848  * Removed temporary hacked ipx_send_object function.
849  * Replaced with a more general thing.
850  *
851  * Revision 1.17  1994/11/05  16:08:40  rob
852  * Made a change necessary for object syncing on rejoin.
853  *
854  * Revision 1.16  1994/11/01  15:57:12  rob
855  * Added support for SPX sockets for critical messages.
856  *
857  * Revision 1.15  1994/10/31  19:21:01  rob
858  * Added a routine for sending objects via ipx.  Its a hack and shoukld
859  * be replaced by something more general time permitting.
860  *
861  * Revision 1.14  1994/10/20  14:57:42  john
862  * Some test stuff.
863  *
864  * Revision 1.13  1994/10/20  11:22:45  john
865  * Tweaked the number of waiting packets. Added code to print
866  * total packets missed, and to limit the packet send rate to
867  * 10 packets per second unless firing.
868  *
869  * Revision 1.12  1994/10/03  20:50:11  john
870  * Started adding sound pause functions.
871  *
872  * Revision 1.11  1994/09/15  08:54:24  mike
873  * comment out a mprintf.
874  *
875  * Revision 1.10  1994/09/12  19:38:20  john
876  * Made some stuff that prints to the DOS screen go to the
877  * mono instead, since it really is debugging info.
878  *
879  * Revision 1.9  1994/09/07  13:32:03  john
880  * Made ipx_close explicitly close the socket we were using,
881  * because it seems that VLM's don't automatically close them
882  * like the older NETX stuff did (Going from Novell 3.11 driver
883  * to 3.12 anyway).
884  *
885  * Revision 1.8  1994/09/06  19:29:20  john
886  * Added trial version of rejoin function.
887  *
888  * Revision 1.7  1994/08/09  19:31:50  john
889  * Networking changes.
890  *
891  * Revision 1.6  1994/08/05  16:11:41  john
892  * Psuedo working version of networking.
893  *
894  * Revision 1.5  1994/08/04  19:17:21  john
895  * Inbetween version of network stuff.
896  *
897  * Revision 1.4  1994/07/29  16:08:57  john
898  * *** empty log message ***
899  *
900  * Revision 1.3  1994/07/25  12:33:31  john
901  * Network "pinging" in.
902  *
903  * Revision 1.2  1994/07/20  15:58:28  john
904  * First installment of ipx stuff.
905  *
906  * Revision 1.1  1994/07/19  15:42:00  john
907  * Initial revision
908
909 ------------------------------------------------------------------------
910 arch/dos/ipx.c:
911
912  * Revision 2.10  1995/03/29  17:27:55  john
913  * Added code to not duplicate broadcasts.
914  *
915  * Revision 2.9  1995/03/29  15:32:07  john
916  * NEatened.
917  *
918  * Revision 2.8  1995/03/29  15:07:31  john
919  * Added network support.
920  *
921  * Revision 2.7  1995/03/29  11:22:27  john
922  * Added broadcasting over a net.
923  *
924  * Revision 2.6  1995/03/28  20:05:03  john
925  * Took away alternate server stuff.
926  *
927  * Revision 2.5  1995/03/23  19:14:29  john
928  * Added better MAX_USERS message.
929  *
930  * Revision 2.4  1995/03/23  19:00:02  john
931  * Added user list capabitly.
932  *
933  * Revision 2.3  1995/03/23  12:27:05  john
934  * Move IPX into bios lib.
935  *
936  * Revision 2.2  1995/03/22  19:08:15  john
937  * Added code to fix sending packets over router... now
938  * we just need to make broadcasts go over router!!
939  *
940  * Revision 2.1  1995/03/21  08:40:16  john
941  * Ifdef'd out the NETWORK code.
942  *
943  * Revision 2.0  1995/02/27  11:30:45  john
944  * New version 2.0, which has no anonymous unions, builds with
945  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
946  *
947  * Revision 1.31  1995/02/16  17:35:03  john
948  * Added code to allow dynamic socket changing.
949  *
950  * Revision 1.30  1995/02/01  21:03:45  john
951  * Lintified.
952  *
953  * Revision 1.29  1995/01/22  14:31:05  john
954  * Added key.h
955  *
956  * Revision 1.28  1995/01/22  14:29:26  john
957  * Added code to bypass broadcast messages.
958  *
959  * Revision 1.27  1995/01/03  13:46:16  john
960  * Added code that should make ipx work over different servers,
961  * but ifdef'd it out with SHAREWARE in ipx.c.  I haven't tested
962  * this, and I hope it doesn't introduce net bugs.
963  *
964  * Revision 1.26  1994/12/14  11:54:37  rob
965  * Reduce # of ipx packets.
966  *
967  * Revision 1.25  1994/12/11  00:43:28  john
968  * Locked down DOS ipx buffers... probably not necessary, tho.
969  *
970  * Revision 1.24  1994/12/08  15:49:58  rob
971  * Bumped up the # of ipx packets.
972  *
973  * Revision 1.23  1994/12/04  15:23:54  rob
974  * Reduced packet # constants.
975  *
976  * Revision 1.22  1994/11/27  23:12:39  matt
977  * Made changes for new mprintf calling convention
978  *
979  * Revision 1.21  1994/11/19  15:15:19  mike
980  * remove unused code and data
981  *
982  * Revision 1.20  1994/11/10  11:06:07  rob
983  * Raised number of ipx packets to 64 and buffers to 128 (for 8-way games)
984  * Removed (commented out) all the spx support stuff.
985  *
986  * Revision 1.19  1994/11/07  17:50:12  rob
987  * Bumped up max_packets and ipx_num_packets to double their previous
988  * values.
989  *
990  * Revision 1.18  1994/11/07  15:39:01  rob
991  * Removed temporary hacked ipx_send_object function.
992  * Replaced with a more general thing.
993  *
994  * Revision 1.17  1994/11/05  16:08:40  rob
995  * Made a change necessary for object syncing on rejoin.
996  *
997  * Revision 1.16  1994/11/01  15:57:12  rob
998  * Added support for SPX sockets for critical messages.
999  *
1000  * Revision 1.15  1994/10/31  19:21:01  rob
1001  * Added a routine for sending objects via ipx.  Its a hack and shoukld
1002  * be replaced by something more general time permitting.
1003  *
1004  * Revision 1.14  1994/10/20  14:57:42  john
1005  * Some test stuff.
1006  *
1007  * Revision 1.13  1994/10/20  11:22:45  john
1008  * Tweaked the number of waiting packets. Added code to print
1009  * total packets missed, and to limit the packet send rate to
1010  * 10 packets per second unless firing.
1011  *
1012  * Revision 1.12  1994/10/03  20:50:11  john
1013  * Started adding sound pause functions.
1014  *
1015  * Revision 1.11  1994/09/15  08:54:24  mike
1016  * comment out a mprintf.
1017  *
1018  * Revision 1.10  1994/09/12  19:38:20  john
1019  * Made some stuff that prints to the DOS screen go to the
1020  * mono instead, since it really is debugging info.
1021  *
1022  * Revision 1.9  1994/09/07  13:32:03  john
1023  * Made ipx_close explicitly close the socket we were using,
1024  * because it seems that VLM's don't automatically close them
1025  * like the older NETX stuff did (Going from Novell 3.11 driver
1026  * to 3.12 anyway).
1027  *
1028  * Revision 1.8  1994/09/06  19:29:20  john
1029  * Added trial version of rejoin function.
1030  *
1031  * Revision 1.7  1994/08/09  19:31:50  john
1032  * Networking changes.
1033  *
1034  * Revision 1.6  1994/08/05  16:11:41  john
1035  * Psuedo working version of networking.
1036  *
1037  * Revision 1.5  1994/08/04  19:17:21  john
1038  * Inbetween version of network stuff.
1039  *
1040  * Revision 1.4  1994/07/29  16:08:57  john
1041  * *** empty log message ***
1042  *
1043  * Revision 1.3  1994/07/25  12:33:31  john
1044  * Network "pinging" in.
1045  *
1046  * Revision 1.2  1994/07/20  15:58:28  john
1047  * First installment of ipx stuff.
1048  *
1049  * Revision 1.1  1994/07/19  15:42:00  john
1050  * Initial revision
1051
1052 ------------------------------------------------------------------------
1053 arch/dos/ipx.h:
1054
1055  * Revision 2.6  1995/03/29  11:19:32  john
1056  * Added broadcasting over a net.
1057  * 
1058  * Revision 2.5  1995/03/28  20:04:43  john
1059  * Took away alternate server stuff.
1060  * 
1061  * Revision 2.4  1995/03/23  19:00:10  john
1062  * Added user list capabitly.
1063  * 
1064  * Revision 2.3  1995/03/23  12:26:57  john
1065  * Move IPX into bios lib.
1066  * 
1067  * Revision 2.2  1995/03/22  19:08:14  john
1068  * Added code to fix sending packets over router... now
1069  * we just need to make broadcasts go over router!!
1070  * 
1071  * Revision 2.1  1995/03/21  08:39:56  john
1072  * Ifdef'd out the NETWORK code.
1073  * 
1074  * Revision 2.0  1995/02/27  11:30:16  john
1075  * New version 2.0, which has no anonymous unions, builds with
1076  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
1077  * 
1078  * Revision 1.16  1995/02/16  17:34:52  john
1079  * Added code to allow dynamic socket changing.
1080  * 
1081  * Revision 1.15  1995/01/04  21:43:27  rob
1082  * Remove SPX size definition.
1083  * 
1084  * Revision 1.14  1995/01/03  13:46:18  john
1085  * Added code that should make ipx work over different servers,
1086  * but ifdef'd it out with SHAREWARE in ipx.c.  I haven't tested
1087  * this, and I hope it doesn't introduce net bugs.
1088  * 
1089  * Revision 1.13  1994/11/02  11:37:16  rob
1090  * Changed default socket number to a higher regions.
1091  * 
1092  * Revision 1.12  1994/11/01  15:56:51  rob
1093  * Added defines for SPX socketsx.
1094  * 
1095  * Revision 1.11  1994/10/31  19:23:31  rob
1096  * Added a prototype for the new object send function.
1097  * 
1098  * Revision 1.10  1994/09/07  13:37:25  john
1099  * Changed default socket to 0x4000, because 
1100  * the ipx/spx book says that we can only use
1101  * sockets 0x4000 - 0x7fff.
1102  * 
1103  * Revision 1.9  1994/08/25  18:14:45  matt
1104  * Changed socket because of packet change
1105  * 
1106  * Revision 1.8  1994/08/12  22:42:24  john
1107  * Took away Player_stats; added Players array.
1108  * 
1109  * Revision 1.7  1994/08/09  19:31:47  john
1110  * Networking changes.
1111  * 
1112  * Revision 1.6  1994/08/05  16:11:46  john
1113  * Psuedo working version of networking.
1114  * 
1115  * Revision 1.5  1994/08/04  19:17:20  john
1116  * Inbetween version of network stuff.
1117  * 
1118  * Revision 1.4  1994/07/29  16:08:59  john
1119  * *** empty log message ***
1120  * 
1121  * Revision 1.3  1994/07/25  12:33:22  john
1122  * Network "pinging" in.
1123  * 
1124  * Revision 1.2  1994/07/20  15:58:29  john
1125  * First installment of ipx stuff.
1126  * 
1127  * Revision 1.1  1994/07/19  15:43:05  john
1128  * Initial revision
1129
1130 ------------------------------------------------------------------------
1131 arch/dos/joy.c:
1132
1133  * Revision 1.37  1995/10/07  13:22:31  john
1134  * Added new method of reading joystick that allows higher-priority
1135  * interrupts to go off.
1136  * 
1137  * Revision 1.36  1995/03/30  11:03:40  john
1138  * Made -JoyBios read buttons using BIOS.
1139  * 
1140  * Revision 1.35  1995/02/14  11:39:25  john
1141  * Added polled/bios joystick readers..
1142  * 
1143  * Revision 1.34  1995/02/10  17:06:12  john
1144  * Fixed bug with plugging in a joystick not getting detected.
1145  * 
1146  * Revision 1.33  1995/01/27  16:39:42  john
1147  * Made so that if no joystick detected, it wont't
1148  * read buttons.
1149  * 
1150  * Revision 1.32  1995/01/12  13:16:40  john
1151  * Made it so that joystick can't lose an axis
1152  * by 1 weird reading. Reading has to occurr during
1153  * calibration for this to happen.
1154  * 
1155  * Revision 1.31  1994/12/28  15:56:03  john
1156  * Fixed bug that refused to read joysticks whose 
1157  * min,cen,max were less than 100 apart.
1158  * 
1159  * Revision 1.30  1994/12/28  15:31:53  john
1160  * Added code to read joystick axis not all at one time.
1161  * 
1162  * Revision 1.29  1994/12/27  15:44:36  john
1163  * Made the joystick timeout be at 1/100th of a second, 
1164  * regardless of CPU speed.
1165  * 
1166  * Revision 1.28  1994/12/04  11:54:54  john
1167  * Made stick read at whatever rate the clock is at, not
1168  * at 18.2 times/second.
1169  * 
1170  * Revision 1.27  1994/11/29  02:25:40  john
1171  * Made it so that the scaled reading returns 0 
1172  * if the calibration factors look funny..
1173  * 
1174  * Revision 1.26  1994/11/22  11:08:07  john
1175  * Commented out the ARCADE joystick.
1176  * 
1177  * Revision 1.25  1994/11/14  19:40:26  john
1178  * Fixed bug with no joystick being detected.
1179  * 
1180  * Revision 1.24  1994/11/14  19:36:40  john
1181  * Took out initial cheapy calibration.
1182  * 
1183  * Revision 1.23  1994/11/14  19:13:27  john
1184  * Took out the calibration in joy_init
1185  * 
1186  * Revision 1.22  1994/10/17  10:09:57  john
1187  * Made the state look at last_State, so that a joy_flush
1188  * doesn't cause a new down state to be added next reading.
1189  * 
1190  * Revision 1.21  1994/10/13  11:36:23  john
1191  * Made joy_down_time be kept track of in fixed seconds,
1192  * not ticks.
1193  * 
1194  * Revision 1.20  1994/10/12  16:58:50  john
1195  * Fixed bug w/ previous comment.
1196  * 
1197  * Revision 1.19  1994/10/12  16:57:44  john
1198  * Added function to set a joystick button's state.
1199  * 
1200  * Revision 1.18  1994/10/11  10:20:13  john
1201  * Fixed Flightstick Pro/
1202  * ..
1203  * 
1204  * Revision 1.17  1994/09/29  18:29:20  john
1205  * *** empty log message ***
1206  * 
1207  * Revision 1.16  1994/09/27  19:17:23  john
1208  * Added code so that is joy_init is never called, joystick is not
1209  * used at all.
1210  * 
1211  * Revision 1.15  1994/09/22  16:09:23  john
1212  * Fixed some virtual memory lockdown problems with timer and
1213  * joystick.
1214  * 
1215  * Revision 1.14  1994/09/16  11:44:42  john
1216  * Fixed bug with slow joystick.
1217  * 
1218  * Revision 1.13  1994/09/16  11:36:15  john
1219  * Fixed bug with reading non-present channels.
1220  * 
1221  * Revision 1.12  1994/09/15  20:52:48  john
1222  * rme john
1223  * Added support for the Arcade style joystick.
1224  * 
1225  * Revision 1.11  1994/09/13  20:04:49  john
1226  * Fixed bug with joystick button down_time.
1227  * 
1228  * Revision 1.10  1994/09/10  13:48:07  john
1229  * Made all 20 buttons read.
1230  * 
1231  * Revision 1.9  1994/08/31  09:55:02  john
1232  * *** empty log message ***
1233  * 
1234  * Revision 1.8  1994/08/29  21:02:14  john
1235  * Added joy_set_cal_values...
1236  * 
1237  * Revision 1.7  1994/08/29  20:52:17  john
1238  * Added better cyberman support; also, joystick calibration
1239  * value return funcctiionn,
1240  * 
1241  * Revision 1.6  1994/08/24  18:53:12  john
1242  * Made Cyberman read like normal mouse; added dpmi module; moved
1243  * mouse from assembly to c. Made mouse buttons return time_down.
1244  * 
1245  * Revision 1.5  1994/07/14  22:12:23  john
1246  * Used intrinsic forms of outp to fix vmm error.
1247  * 
1248  * Revision 1.4  1994/07/07  19:52:59  matt
1249  * Made joy_init() return success/fail flag
1250  * Made joy_init() properly detect a stick if one is plugged in after joy_init()
1251  * was called the first time.
1252  * 
1253  * Revision 1.3  1994/07/01  10:55:55  john
1254  * Fixed some bugs... added support for 4 axis.
1255  * 
1256  * Revision 1.2  1994/06/30  20:36:55  john
1257  * Revamped joystick code.
1258  * 
1259  * Revision 1.1  1994/06/30  15:42:15  john
1260  * Initial revision
1261
1262 ------------------------------------------------------------------------
1263 arch/dos/joydefs.c:
1264
1265  * Revision 2.2  1995/06/30  12:30:22  john
1266  * Added -Xname command line.
1267  * 
1268  * Revision 2.1  1995/04/06  12:13:20  john
1269  * Made so you can calibrate Gravis Gamepad.
1270  * 
1271  * Revision 2.0  1995/02/27  11:30:27  john
1272  * New version 2.0, which has no anonymous unions, builds with
1273  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
1274  * 
1275  * Revision 1.71  1995/02/12  02:06:10  john
1276  * Fixed bug with joystick incorrectly asking for
1277  * calibration.
1278  * 
1279  * Revision 1.70  1995/01/28  15:58:07  john
1280  * Made joystick calibration be only when wrong detected in
1281  * menu or joystick axis changed.
1282  * 
1283  * Revision 1.69  1995/01/25  14:37:55  john
1284  * Made joystick only prompt for calibration once...
1285  * 
1286  * Revision 1.68  1995/01/24  16:34:29  john
1287  * Made so that if you reconfigure joystick and
1288  * add or subtract an axis, it asks for a recalibration
1289  * upon leaving.
1290  * 
1291  * Revision 1.67  1994/12/29  11:08:51  john
1292  * Fixed Thrustmaster and Logitech Wingman extreme
1293  * Hat by reading the y2 axis during the center stage
1294  * of the calibration, and using 75, 50, 27, and 3 %
1295  * as values for the 4 positions.
1296  * 
1297  * Revision 1.66  1994/12/15  18:17:39  john
1298  * Fixed warning with previous.
1299  * 
1300  * Revision 1.65  1994/12/15  18:15:48  john
1301  * Made the joy cal only write the .cfg file, not
1302  * the player file.
1303  * 
1304  * Revision 1.64  1994/12/13  14:43:35  john
1305  * Took out the code in kconfig to build direction array.
1306  * Called kc_set_controls after selecting a new control type.
1307  * 
1308  * Revision 1.63  1994/12/10  12:08:47  john
1309  * Changed some delays to use TICKER instead of timer_get_fixed_seconds.
1310  * 
1311  * Revision 1.62  1994/12/09  11:01:07  mike
1312  * force calibration of joystick on joystick selection from Controls... menu.
1313  * 
1314  * Revision 1.61  1994/12/07  21:50:27  john
1315  * Put stop/start time around joystick delay.
1316  * 
1317  * Revision 1.60  1994/12/07  19:34:39  john
1318  * Added delay.
1319  * 
1320  * Revision 1.59  1994/12/07  18:12:14  john
1321  * NEatened up joy cal.,
1322  * 
1323  * Revision 1.58  1994/12/07  17:07:51  john
1324  * Fixed up joy cal.
1325  * 
1326  * Revision 1.57  1994/12/07  16:48:53  yuan
1327  * localization
1328  * 
1329  * Revision 1.56  1994/12/07  16:05:55  john
1330  * Changed the way joystick calibration works.
1331  * 
1332  * Revision 1.55  1994/12/06  20:15:22  john
1333  * Took out code that unpauses songs that were never paused.
1334  * 
1335  * Revision 1.54  1994/12/06  15:14:09  yuan
1336  * Localization
1337  * 
1338  * Revision 1.53  1994/12/05  16:29:16  john
1339  * Took out music pause around the cheat menu.
1340  * 
1341  * Revision 1.52  1994/12/04  12:39:10  john
1342  * MAde so that FCS calibration doesn't ask for axis #2.
1343  * 
1344  * Revision 1.51  1994/12/03  15:14:59  john
1345  * Took out the delay mentioned previosuly cause it would
1346  * cause bigger problems than it helps, especially with netgames.
1347  * 
1348  * Revision 1.50  1994/12/03  14:16:14  john
1349  * Put a delay between screens in joy cal to keep Yuan from
1350  * double hitting.
1351  * 
1352  * Revision 1.49  1994/12/03  11:04:06  john
1353  * Changed newmenu code a bit to fix bug with bogus
1354  * backgrounds occcasionally.
1355  * 
1356  * Revision 1.48  1994/12/02  11:03:44  yuan
1357  * Localization.
1358  * 
1359  * Revision 1.47  1994/12/02  10:50:33  yuan
1360  * Localization
1361  * 
1362  * Revision 1.46  1994/12/01  12:21:59  john
1363  * Added code to calibrate 2 joysticks separately.
1364  * 
1365  * Revision 1.45  1994/12/01  11:52:31  john
1366  * Added message when you select FCS to say that if
1367  * you have WCS, see manuel.
1368  * 
1369  * Revision 1.44  1994/11/29  02:26:28  john
1370  * Made the prompts for upper-left, lower right for joy
1371  * calibration more obvious.
1372  * 
1373  * Revision 1.43  1994/11/26  13:13:59  matt
1374  * Changed "none" option to "keyboard only"
1375  * 
1376  * Revision 1.42  1994/11/21  19:35:13  john
1377  * Replaced calls to joy_init with if (joy_present)
1378  * 
1379  * Revision 1.41  1994/11/21  19:28:34  john
1380  * Changed warning for no joystick to use nm_messagebox..
1381  * 
1382  * Revision 1.40  1994/11/21  19:06:25  john
1383  * Made it so that it only stops sound when your in game mode. 
1384  * 
1385  * Revision 1.39  1994/11/21  11:47:18  john
1386  * Made sound pause during joystick calibration.
1387  * 
1388  * Revision 1.38  1994/11/10  20:34:18  rob
1389  * Removed menu-specific network mode support in favor in new stuff
1390  * in newmenu.c
1391  * 
1392  * Revision 1.37  1994/11/08  21:21:38  john
1393  * Made Esc exit joystick calibration.
1394  * 
1395  * Revision 1.36  1994/11/08  15:14:42  john
1396  * Added more calls so net doesn't die in net game.
1397  * 
1398  * Revision 1.35  1994/11/08  14:59:12  john
1399  * Added code to respond to network while in menus.
1400  * 
1401  * Revision 1.34  1994/10/24  19:56:32  john
1402  * Made the new user setup prompt for config options.
1403  * 
1404  * Revision 1.33  1994/10/22  14:11:52  mike
1405  * Suppress compiler warning message.
1406  * 
1407  * Revision 1.32  1994/10/19  12:44:24  john
1408  * Added hours field to player structure.
1409  * 
1410  * Revision 1.31  1994/10/17  13:07:13  john
1411  * Moved the descent.cfg info into the player config file.
1412  * 
1413  * Revision 1.30  1994/10/13  21:41:12  john
1414  * MAde Esc exit out of joystick calibration.
1415  * 
1416  * Revision 1.29  1994/10/13  19:22:27  john
1417  * Added separate config saves for different devices.
1418  * Made all the devices work together better, such as mice won't
1419  * get read when you're playing with the joystick.
1420  * 
1421  * Revision 1.28  1994/10/13  11:40:18  john
1422  * Took out warnings.
1423  * 
1424  * Revision 1.27  1994/10/13  11:35:23  john
1425  * Made Thrustmaster FCS Hat work.  Put a background behind the
1426  * keyboard configure.  Took out turn_sensitivity.  Changed sound/config
1427  * menu to new menu. Made F6 be calibrate joystick.
1428  * 
1429  * Revision 1.26  1994/10/11  21:29:03  matt
1430  * Made a bunch of menus have good initial selected values
1431  * 
1432  * Revision 1.25  1994/10/11  17:08:39  john
1433  * Added sliders for volume controls.
1434  * 
1435  * Revision 1.24  1994/10/10  17:59:21  john
1436  * Neatend previous.
1437  * 
1438  * Revision 1.23  1994/10/10  17:57:59  john
1439  * Neatend previous.
1440  * 
1441  * Revision 1.22  1994/10/10  17:56:11  john
1442  * Added messagebox that tells that config has been saved.
1443  * 
1444  * Revision 1.21  1994/09/30  12:37:26  john
1445  * Added midi,digi volume to configuration.
1446  * 
1447  * Revision 1.20  1994/09/22  16:14:14  john
1448  * Redid intro sequecing.
1449  * 
1450  * Revision 1.19  1994/09/19  18:50:15  john
1451  * Added switch to disable joystick.
1452  * 
1453  * Revision 1.18  1994/09/12  11:47:36  john
1454  * Made stupid cruise work better.  Make kconfig values get
1455  * read/written to disk.
1456  * 
1457  * Revision 1.17  1994/09/10  15:46:47  john
1458  * First version of new keyboard configuration.
1459  * 
1460  * Revision 1.16  1994/09/06  19:35:44  john
1461  * Fixed bug that didn';t load new size .cal file.
1462  * 
1463  * Revision 1.15  1994/09/06  14:51:58  john
1464  * Added sensitivity adjustment, fixed bug with joystick button not
1465  * staying down.
1466  * 
1467  * Revision 1.14  1994/09/02  16:13:47  john
1468  * Made keys fill in position.
1469  * 
1470  * Revision 1.13  1994/08/31  17:58:50  john
1471  * Made a bit simpler.
1472  * 
1473  * Revision 1.12  1994/08/31  14:17:54  john
1474  * *** empty log message ***
1475  * 
1476  * Revision 1.11  1994/08/31  14:10:56  john
1477  * Made keys not work when KEY_DELETE pressed.
1478  * 
1479  * Revision 1.10  1994/08/31  13:40:47  mike
1480  * Change constant
1481  * 
1482  * Revision 1.9  1994/08/31  12:56:27  john
1483  * *** empty log message ***
1484  * 
1485  * Revision 1.8  1994/08/30  20:38:29  john
1486  * Add more config stuff..
1487  * 
1488  * Revision 1.7  1994/08/30  16:37:25  john
1489  * Added menu options to set controls.
1490  * 
1491  * Revision 1.6  1994/08/30  09:27:18  john
1492  * *** empty log message ***
1493  * 
1494  * Revision 1.5  1994/08/30  09:12:01  john
1495  * *** empty log message ***
1496  * 
1497  * Revision 1.4  1994/08/29  21:18:32  john
1498  * First version of new keyboard/oystick remapping stuff.
1499  * 
1500  * Revision 1.3  1994/08/24  19:00:29  john
1501  * Changed key_down_time to return fixed seconds instead of
1502  * milliseconds.
1503  * 
1504  * Revision 1.2  1994/08/17  16:50:37  john
1505  * Added damaging fireballs, missiles.
1506  * 
1507  * Revision 1.1  1994/08/17  10:07:12  john
1508  * Initial revision
1509
1510 ------------------------------------------------------------------------
1511 arch/dos/key.c:
1512
1513  * Revision 1.35  1995/01/25  20:13:30  john
1514  * Took out not passing keys to debugger if w10.
1515  * 
1516  * Revision 1.34  1995/01/14  19:19:31  john
1517  * Made so when you press Shift+Baskspace, it release keys autmatically.
1518  * 
1519  * Revision 1.33  1994/12/13  09:21:48  john
1520  * Took out keyd_editor_mode, and KEY_DEBUGGED stuff for NDEBUG versions.
1521  * 
1522  * Revision 1.32  1994/11/12  13:52:01  john
1523  * Fixed bug with code that cleared bios buffer.
1524  * 
1525  * Revision 1.31  1994/10/24  15:16:16  john
1526  * Added code to detect KEY_PAUSE.
1527  * 
1528  * Revision 1.30  1994/10/24  13:57:53  john
1529  * Hacked in support for pause key onto code 0x61.
1530  * 
1531  * Revision 1.29  1994/10/21  15:18:13  john
1532  * *** empty log message ***
1533  * 
1534  * Revision 1.28  1994/10/21  15:17:24  john
1535  * Made LSHIFT+BACKSPACE do what PrtScr used to.
1536  * 
1537  * Revision 1.27  1994/09/22  16:09:18  john
1538  * Fixed some virtual memory lockdown problems with timer and
1539  * joystick.
1540  * 
1541  * Revision 1.26  1994/09/15  21:32:47  john
1542  * Added bounds checking for down_count scancode
1543  * parameter.
1544  * 
1545  * Revision 1.25  1994/08/31  12:22:20  john
1546  * Added KEY_DEBUGGED
1547  * 
1548  * Revision 1.24  1994/08/24  18:53:48  john
1549  * Made Cyberman read like normal mouse; added dpmi module; moved
1550  * mouse from assembly to c. Made mouse buttons return time_down.
1551  * 
1552  * Revision 1.23  1994/08/18  15:17:51  john
1553  * *** empty log message ***
1554  * 
1555  * Revision 1.22  1994/08/18  15:16:38  john
1556  * fixed some bugs with clear_key_times and then
1557  * removed it because i fixed key_flush to do the
1558  * same.
1559  * 
1560  * Revision 1.21  1994/08/17  19:01:25  john
1561  * Attempted to fix a bug with a key being held down
1562  * key_flush called, then the key released having too 
1563  * long of a time.
1564  * 
1565  * Revision 1.20  1994/08/08  10:43:48  john
1566  * Recorded when a key was pressed for key_inkey_time.
1567  * 
1568  * Revision 1.19  1994/06/22  15:00:03  john
1569  * Made keyboard close automatically on exit.
1570  * 
1571  * Revision 1.18  1994/06/21  09:16:29  john
1572  * *** empty log message ***
1573  * 
1574  * Revision 1.17  1994/06/21  09:08:23  john
1575  * *** empty log message ***
1576  * 
1577  * Revision 1.16  1994/06/21  09:05:01  john
1578  * *** empty log message ***
1579  * 
1580  * Revision 1.15  1994/06/21  09:04:24  john
1581  * Made PrtScreen do an int5
1582  * 
1583  * Revision 1.14  1994/06/17  17:17:06  john
1584  * Added keyd_time_last_key_was_pressed or something like that.
1585  * 
1586  * Revision 1.13  1994/05/14  13:55:16  matt
1587  * Added #define to control key passing to bios
1588  * 
1589  * Revision 1.12  1994/05/05  18:09:39  john
1590  * Took out BIOS to prevent stuck keys.
1591  * 
1592  * Revision 1.11  1994/05/03  17:39:12  john
1593  * *** empty log message ***
1594  * 
1595  * Revision 1.10  1994/04/29  12:14:20  john
1596  * Locked all memory used during interrupts so that program
1597  * won't hang when using virtual memory.
1598  * 
1599  * Revision 1.9  1994/04/28  23:49:41  john
1600  * Made key_flush flush more keys and also did something else but i forget what.
1601  * 
1602  * Revision 1.8  1994/04/22  12:52:12  john
1603  * *** empty log message ***
1604  * 
1605  * Revision 1.7  1994/04/01  10:44:59  mike
1606  * Change key_getch() to call getch() if our interrupt hasn't been installed.
1607  * 
1608  * Revision 1.6  1994/03/09  10:45:48  john
1609  * Neatend code a bit.
1610  * 
1611  * Revision 1.5  1994/02/17  17:24:16  john
1612  * Neatened up a bit.
1613  * 
1614  * Revision 1.4  1994/02/17  16:30:29  john
1615  * Put in code to pass keys when in debugger.
1616  * 
1617  * Revision 1.3  1994/02/17  15:57:59  john
1618  * Made handler not chain to BIOS handler.
1619  * 
1620  * Revision 1.2  1994/02/17  15:56:06  john
1621  * Initial version.
1622  * 
1623  * Revision 1.1  1994/02/17  15:54:07  john
1624  * Initial revision
1625
1626 ------------------------------------------------------------------------
1627 arch/dos/mono.c:
1628
1629  * Revision 1.12  1995/02/23  11:59:57  john
1630  * Made the windows smaller so they don't overwrite the debug file menus.
1631  * 
1632  * Revision 1.11  1994/11/27  23:07:50  matt
1633  * Made changes needed to be able to compile out monochrome debugging code
1634  * 
1635  * Revision 1.10  1994/10/26  22:23:43  john
1636  * Limited windows to 2.  Took away saving what was under
1637  * a window.
1638  * 
1639  * Revision 1.9  1994/07/14  23:25:44  matt
1640  * Allow window 0 to be opened; don't allow mono to be initialized twice
1641  * 
1642  * Revision 1.8  1994/03/09  10:45:38  john
1643  * Sped up scroll.
1644  * 
1645  * Revision 1.7  1994/01/26  08:56:55  mike
1646  * Comment out int3 in mputc.
1647  * 
1648  * Revision 1.6  1994/01/12  15:56:34  john
1649  * made backspace do an int3 during mono stuff.
1650  * .,
1651  * 
1652  * Revision 1.5  1993/12/07  12:33:23  john
1653  * *** empty log message ***
1654  * 
1655  * Revision 1.4  1993/10/15  10:10:25  john
1656  * *** empty log message ***
1657  * 
1658  * Revision 1.3  1993/09/14  20:55:13  matt
1659  * Made minit() and mopen() check for presence of mono card in machine.
1660  * 
1661  * Revision 1.2  1993/07/22  13:10:21  john
1662  * *** empty log message ***
1663  * 
1664  * Revision 1.1  1993/07/10  13:10:38  matt
1665  * Initial revision
1666
1667 ------------------------------------------------------------------------
1668 arch/dos/mono.h:
1669
1670  * Revision 1.6  1994/12/03  17:07:37  matt
1671  * Made mono code turn off with either NDEBUG or NMONO
1672  * 
1673  * Revision 1.5  1994/11/27  23:07:28  matt
1674  * Made changes needed to be able to compile out monochrome debugging code
1675  * 
1676  * Revision 1.4  1993/12/07  12:33:28  john
1677  * *** empty log message ***
1678  * 
1679  * Revision 1.3  1993/09/14  20:54:50  matt
1680  * Made minit() check for mono card, return -1 if present, 0 if not
1681  * 
1682  * Revision 1.2  1993/07/22  13:05:40  john
1683  * added macros to print variables
1684  * 
1685  * Revision 1.1  1993/07/10  13:10:40  matt
1686  * Initial revision
1687
1688 ------------------------------------------------------------------------
1689 arch/dos/mouse.c:
1690
1691  * Revision 1.11  1995/02/10  18:52:17  john
1692  * Fixed bug with mouse not getting closed.
1693  *
1694  * Revision 1.10  1995/02/02  11:10:33  john
1695  * Changed a bunch of mouse stuff around to maybe get
1696  * around PS/2 mouse hang.
1697  *
1698  * Revision 1.9  1995/01/14  19:19:52  john
1699  * Fixed signed short error cmp with -1 that caused mouse
1700  * to break under Watcom 10.0
1701  *
1702  * Revision 1.8  1994/12/27  12:38:23  john
1703  * Made mouse use temporary dos buffer instead of
1704  *
1705  * allocating its own.
1706  *
1707  *
1708  * Revision 1.7  1994/12/05  23:54:53  john
1709  * Fixed bug with mouse_get_delta only returning positive numbers..
1710  *
1711  * Revision 1.6  1994/11/18  23:18:18  john
1712  * Changed some shorts to ints.
1713  *
1714  * Revision 1.5  1994/09/13  12:34:02  john
1715  * Added functions to get down count and state.
1716  *
1717  * Revision 1.4  1994/08/29  20:52:19  john
1718  * Added better cyberman support; also, joystick calibration
1719  * value return funcctiionn,
1720  *
1721  * Revision 1.3  1994/08/24  18:54:32  john
1722  * *** empty log message ***
1723  *
1724  * Revision 1.2  1994/08/24  18:53:46  john
1725  * Made Cyberman read like normal mouse; added dpmi module; moved
1726  * mouse from assembly to c. Made mouse buttons return time_down.
1727  *
1728  * Revision 1.1  1994/08/24  13:56:37  john
1729  * Initial revision
1730
1731 ------------------------------------------------------------------------
1732 arch/include/joy.h:
1733
1734  * Revision 1.17  1995/10/07  13:22:30  john
1735  * Added new method of reading joystick that allows higher-priority
1736  * interrupts to go off.
1737  *
1738  * Revision 1.16  1995/02/14  11:17:13  john
1739  * Added BIOS readings for stick.
1740  *
1741  * Revision 1.15  1995/02/14  10:09:58  john
1742  * Added OS2 switch.
1743  *
1744  * Revision 1.14  1994/12/28  13:49:20  john
1745  * Added function to set joystick for slow reading
1746  *
1747  * Revision 1.13  1994/10/13  11:36:06  john
1748  * Made joy_down_time be kept track of in fixed seconds,
1749  * not ticks.
1750  *
1751  * Revision 1.12  1994/10/12  17:03:16  john
1752  * Added prototype for joy_get_scaled_reading.
1753  *
1754  * Revision 1.11  1994/10/12  16:57:55  john
1755  * Added function to set a joystick button's state.
1756  *
1757  * Revision 1.10  1994/09/22  16:09:00  john
1758  * Fixed some virtual memory lockdown problems with timer and
1759  * joystick.
1760  *
1761  * Revision 1.9  1994/08/31  09:54:57  john
1762  * *** empty log message ***
1763  *
1764  * Revision 1.8  1994/08/29  21:02:24  john
1765  * Added joy_set_cal_values...
1766  *
1767  * Revision 1.7  1994/08/29  20:51:52  john
1768  * Added better cyberman support; also, joystick calibration
1769  * value return funcctiionn,
1770  *
1771  * Revision 1.6  1994/07/01  10:55:44  john
1772  * Fixed some bugs... added support for 4 axis.
1773  *
1774  * Revision 1.5  1994/06/30  20:36:51  john
1775  * Revamped joystick code.
1776  *
1777  * Revision 1.4  1994/04/22  12:52:10  john
1778  * *** empty log message ***
1779  *
1780  * Revision 1.3  1994/01/18  13:53:39  john
1781  * Made all joystick functions return int's instead of
1782  * shorts.  Also made the stick reading be CPU speed
1783  * independant by using the timer_get_Stamp_64
1784  * function.
1785  *
1786  * Revision 1.2  1994/01/18  10:58:42  john
1787  * *** empty log message ***
1788  *
1789  * Revision 1.1  1993/07/10  13:10:39  matt
1790  * Initial revision
1791
1792 ------------------------------------------------------------------------
1793 arch/win32/include/key.h:
1794
1795  * Revision 1.19  1994/10/24  13:58:12  john
1796  * Hacked in support for pause key onto code 0x61.
1797  * 
1798  * Revision 1.18  1994/10/21  15:17:10  john
1799  * Added KEY_PRINT_SCREEN
1800  * 
1801  * Revision 1.17  1994/08/31  12:22:13  john
1802  * Added KEY_DEBUGGED
1803  * 
1804  * Revision 1.16  1994/08/24  18:53:50  john
1805  * Made Cyberman read like normal mouse; added dpmi module; moved
1806  * mouse from assembly to c. Made mouse buttons return time_down.
1807  * 
1808  * Revision 1.15  1994/08/18  14:56:16  john
1809  * *** empty log message ***
1810  * 
1811  * Revision 1.14  1994/08/08  10:43:24  john
1812  * Recorded when a key was pressed for key_inkey_time.
1813  * 
1814  * Revision 1.13  1994/06/17  17:17:28  john
1815  * Added keyd_time_last_key_was_pressed or something like that.
1816  * 
1817  * Revision 1.12  1994/04/29  12:14:19  john
1818  * Locked all memory used during interrupts so that program
1819  * won't hang when using virtual memory.
1820  * 
1821  * Revision 1.11  1994/02/17  15:57:14  john
1822  * Changed key libary to C.
1823  * 
1824  * Revision 1.10  1994/01/31  08:34:09  john
1825  * Fixed reversed lshift/rshift keys.
1826  * 
1827  * Revision 1.9  1994/01/18  10:58:17  john
1828  * *** empty log message ***
1829  * 
1830  * Revision 1.8  1993/10/16  19:24:43  matt
1831  * Added new function key_clear_times() & key_clear_counts()
1832  * 
1833  * Revision 1.7  1993/10/15  10:17:09  john
1834  * added keyd_last_key_pressed and released for use with recorder.
1835  * 
1836  * Revision 1.6  1993/10/06  16:20:37  john
1837  * fixed down arrow bug
1838  * 
1839  * Revision 1.5  1993/10/04  13:26:42  john
1840  * changed the #defines for scan codes.
1841  * 
1842  * Revision 1.4  1993/09/28  11:35:20  john
1843  * added key_peekkey
1844  * 
1845  * Revision 1.3  1993/09/20  18:36:43  john
1846  * *** empty log message ***
1847  * 
1848  * Revision 1.1  1993/07/10  13:10:39  matt
1849  * Initial revision
1850
1851 ------------------------------------------------------------------------
1852 arch/win32/include/mouse.h:
1853
1854  * Revision 1.10  1995/02/02  10:22:29  john
1855  * Added cyberman init parameter.
1856  * 
1857  * Revision 1.9  1994/11/18  23:18:09  john
1858  * Changed some shorts to ints.
1859  * 
1860  * Revision 1.8  1994/09/13  12:33:49  john
1861  * Added functions to get down count and state.
1862  * 
1863  * Revision 1.7  1994/08/29  20:52:20  john
1864  * Added better cyberman support; also, joystick calibration
1865  * value return funcctiionn,
1866  * 
1867  * Revision 1.6  1994/08/24  17:54:35  john
1868  * *** empty log message ***
1869  * 
1870  * Revision 1.5  1994/08/24  17:51:43  john
1871  * Added transparent cyberman support
1872  * 
1873  * Revision 1.4  1993/07/27  09:32:22  john
1874  * *** empty log message ***
1875  * 
1876  * Revision 1.3  1993/07/26  10:46:44  john
1877  * added definition for mouse_set_pos
1878  * 
1879  * Revision 1.2  1993/07/22  13:07:59  john
1880  * added header for mousesetlimts
1881  * 
1882  * Revision 1.1  1993/07/10  13:10:40  matt
1883  * Initial revision
1884
1885 ------------------------------------------------------------------------
1886 arch/win32/mouse.c:
1887
1888  * Revision 1.8  1996/02/21  13:57:36  allender
1889  * cursor device manager stuff added here so as not to
1890  * rely on InterfaceLib anymore
1891  *
1892  * Revision 1.7  1995/10/17  15:42:21  allender
1893  * new mouse function to determine single button press
1894  *
1895  * Revision 1.6  1995/10/03  11:27:31  allender
1896  * fixed up hotspot problems with the mouse on multiple monitors
1897  *
1898  * Revision 1.5  1995/07/13  11:27:08  allender
1899  * trap button checks at MAX_MOUSE_BUTTONS
1900  *
1901  * Revision 1.4  1995/06/25  21:56:53  allender
1902  * added events include
1903  *
1904  * Revision 1.3  1995/05/11  17:06:38  allender
1905  * fixed up mouse routines
1906  *
1907  * Revision 1.2  1995/05/11  13:05:53  allender
1908  * of mouse handler code
1909  *
1910  * Revision 1.1  1995/05/05  09:54:45  allender
1911  * Initial revision
1912  *
1913  * Revision 1.9  1995/01/14  19:19:52  john
1914  * Fixed signed short error cmp with -1 that caused mouse
1915  * to break under Watcom 10.0
1916  *
1917  * Revision 1.8  1994/12/27  12:38:23  john
1918  * Made mouse use temporary dos buffer instead of
1919  *
1920  * allocating its own.
1921  *
1922  * Revision 1.7  1994/12/05  23:54:53  john
1923  * Fixed bug with mouse_get_delta only returning positive numbers..
1924  *
1925  * Revision 1.6  1994/11/18  23:18:18  john
1926  * Changed some shorts to ints.
1927  *
1928  * Revision 1.5  1994/09/13  12:34:02  john
1929  * Added functions to get down count and state.
1930  *
1931  * Revision 1.4  1994/08/29  20:52:19  john
1932  * Added better cyberman support; also, joystick calibration
1933  * value return funcctiionn,
1934  *
1935  * Revision 1.3  1994/08/24  18:54:32  john
1936  * *** empty log message ***
1937  *
1938  * Revision 1.2  1994/08/24  18:53:46  john
1939  * Made Cyberman read like normal mouse; added dpmi module; moved
1940  * mouse from assembly to c. Made mouse buttons return time_down.
1941  *
1942  * Revision 1.1  1994/08/24  13:56:37  john
1943  * Initial revision
1944
1945 ------------------------------------------------------------------------
1946 cfile/cfile.c:
1947
1948  * Revision 1.7  1995/10/27  15:18:20  allender
1949  * get back to descent directory before trying to read a hog file
1950  *
1951  * Revision 1.6  1995/10/21  23:48:24  allender
1952  * hogfile(s) are now in :Data: folder
1953  *
1954  * Revision 1.5  1995/08/14  09:27:31  allender
1955  * added byteswap header
1956  *
1957  * Revision 1.4  1995/05/12  11:54:33  allender
1958  * changed memory stuff again
1959  *
1960  * Revision 1.3  1995/05/04  20:03:38  allender
1961  * added code that was missing...use NewPtr instead of malloc
1962  *
1963  * Revision 1.2  1995/04/03  09:59:49  allender
1964  * *** empty log message ***
1965  *
1966  * Revision 1.1  1995/03/30  10:25:02  allender
1967  * Initial revision
1968  *
1969  *
1970  * --- PC RCS Information ---
1971  * Revision 1.24  1995/03/15  14:20:27  john
1972  * Added critical error checker.
1973  *
1974  * Revision 1.23  1995/03/13  15:16:53  john
1975  * Added alternate directory stuff.
1976  *
1977  * Revision 1.22  1995/02/09  23:08:47  matt
1978  * Increased the max number of files in hogfile to 250
1979  *
1980  * Revision 1.21  1995/02/01  20:56:47  john
1981  * Added cfexist function
1982  *
1983  * Revision 1.20  1995/01/21  17:53:48  john
1984  * Added alternate pig file thing.
1985  *
1986  * Revision 1.19  1994/12/29  15:10:02  john
1987  * Increased hogfile max files to 200.
1988  *
1989  * Revision 1.18  1994/12/12  13:20:57  john
1990  * Made cfile work with fiellentth.
1991  *
1992  * Revision 1.17  1994/12/12  13:14:25  john
1993  * Made cfiles prefer non-hog files.
1994  *
1995  * Revision 1.16  1994/12/09  18:53:26  john
1996  * *** empty log message ***
1997  *
1998  * Revision 1.15  1994/12/09  18:52:56  john
1999  * Took out mem, error checking.
2000  *
2001  * Revision 1.14  1994/12/09  18:10:31  john
2002  * Speed up cfgets, which was slowing down the reading of
2003  * bitmaps.tbl, which was making POF loading look slow.
2004  *
2005  * Revision 1.13  1994/12/09  17:53:51  john
2006  * Added error checking to number of hogfiles..
2007  *
2008  * Revision 1.12  1994/12/08  19:02:55  john
2009  * Added cfgets.
2010  *
2011  * Revision 1.11  1994/12/07  21:57:48  john
2012  * Took out data dir.
2013  *
2014  * Revision 1.10  1994/12/07  21:38:02  john
2015  * Made cfile not return error..
2016  *
2017  * Revision 1.9  1994/12/07  21:35:34  john
2018  * Made it read from data directory.
2019  *
2020  * Revision 1.8  1994/12/07  21:33:55  john
2021  * Stripped out compression stuff...
2022  *
2023  * Revision 1.7  1994/04/13  23:44:59  matt
2024  * When file cannot be opened, free up the buffer for that file.
2025  *
2026  * Revision 1.6  1994/02/18  12:38:20  john
2027  * Optimized a bit
2028  *
2029  * Revision 1.5  1994/02/15  18:13:20  john
2030  * Fixed more bugs.
2031  *
2032  * Revision 1.4  1994/02/15  13:27:58  john
2033  * Works ok...
2034  *
2035  * Revision 1.3  1994/02/15  12:51:57  john
2036  * Crappy inbetween version
2037  *
2038  * Revision 1.2  1994/02/14  20:12:29  john
2039  * First version working with new cfile stuff.
2040  *
2041  * Revision 1.1  1994/02/14  15:51:33  john
2042  * Initial revision
2043  *
2044  * Revision 1.1  1994/02/10  15:45:12  john
2045  * Initial revision
2046
2047 ------------------------------------------------------------------------
2048 iff/iff.c:
2049
2050  * Revision 1.2  1995/05/12  11:54:43  allender
2051  * changed memory stuff again
2052  *
2053  * Revision 1.1  1995/05/05  08:59:41  allender
2054  * Initial revision
2055  *
2056  * Revision 1.43  1994/12/08  19:03:17  john
2057  * Added code to use cfile.
2058  *
2059  * Revision 1.42  1994/12/08  17:45:32  john
2060  * Put back in cfile stuff.
2061  *
2062  * Revision 1.41  1994/11/19  16:41:06  matt
2063  * Took out unused code
2064  *
2065  * Revision 1.40  1994/11/07  21:26:39  matt
2066  * Added new function iff_read_into_bitmap()
2067  *
2068  * Revision 1.39  1994/10/27  00:12:03  john
2069  * Used nocfile
2070  *
2071  * Revision 1.38  1994/08/10  19:49:58  matt
2072  * Fixed bitmaps in ILBM format with masking (stencil) on.
2073  *
2074  * Revision 1.37  1994/06/02  18:53:17  matt
2075  * Clear flags & selector in new bitmap structure
2076  *
2077  * Revision 1.36  1994/05/17  14:00:33  matt
2078  * Fixed bug with odd-width deltas & odd-length body chunks
2079  *
2080  * Revision 1.35  1994/05/16  20:38:55  matt
2081  * Made anim brushes work when odd width
2082  *
2083  * Revision 1.34  1994/05/06  19:37:26  matt
2084  * Improved error handling and checking
2085  *
2086  * Revision 1.33  1994/04/27  20:57:07  matt
2087  * Fixed problem with RLE decompression and odd-width bitmap
2088  * Added more error checking
2089  *
2090  * Revision 1.32  1994/04/16  21:44:19  matt
2091  * Fixed bug introduced last version
2092  *
2093  * Revision 1.31  1994/04/16  20:12:40  matt
2094  * Made masked (stenciled) bitmaps work
2095  *
2096  * Revision 1.30  1994/04/13  23:46:16  matt
2097  * Added function, iff_errormsg(), which returns ptr to error message.
2098  *
2099  * Revision 1.29  1994/04/13  23:27:25  matt
2100  * Put in support for anim brushes (.abm files)
2101  *
2102  * Revision 1.28  1994/04/13  16:33:31  matt
2103  * Cleaned up file read code, adding fake_file structure (FFILE), which
2104  * cleanly implements reading the entire file into a buffer and then reading
2105  * out of that buffer.
2106  *
2107  * Revision 1.27  1994/04/06  23:07:43  matt
2108  * Cleaned up code; added prototype (but no new code) for anim brush read
2109  *
2110  * Revision 1.26  1994/03/19  02:51:52  matt
2111  * Really did what I said I did last revision.
2112  *
2113  * Revision 1.25  1994/03/19  02:16:07  matt
2114  * Made work ILBMs which didn't have 8 planes
2115  *
2116  * Revision 1.24  1994/03/15  14:45:26  matt
2117  * When error, only free memory if has been allocated
2118  *
2119  * Revision 1.23  1994/02/18  12:39:05  john
2120  * Made code read from buffer.
2121  *
2122  * Revision 1.22  1994/02/15  18:15:26  john
2123  * Took out cfile attempt (too slow)
2124  *
2125  * Revision 1.21  1994/02/15  13:17:48  john
2126  * added assert to cfseek.
2127  *
2128  * Revision 1.20  1994/02/15  13:13:11  john
2129  * Made iff code work normally.
2130  *
2131  * Revision 1.19  1994/02/15  12:51:07  john
2132  * crappy inbetween version.
2133  *
2134  * Revision 1.18  1994/02/10  18:31:32  matt
2135  * Changed 'if DEBUG_ON' to 'ifndef NDEBUG'
2136  *
2137  * Revision 1.17  1994/01/24  11:51:26  john
2138  * Made write routine write transparency info.
2139  *
2140  * Revision 1.16  1994/01/22  14:41:11  john
2141  * Fixed bug with declareations.
2142  *
2143  * Revision 1.15  1994/01/22  14:23:00  john
2144  * Added global vars to check transparency
2145  *
2146  * Revision 1.14  1993/12/08  19:00:42  matt
2147  * Changed while loop to memset
2148  *
2149  * Revision 1.13  1993/12/08  17:23:51  mike
2150  * Speedup by converting while...getc to fread.
2151  *
2152  * Revision 1.12  1993/12/08  12:37:35  mike
2153  * Optimize parse_body.
2154  *
2155  * Revision 1.11  1993/12/05  17:30:14  matt
2156  * Made bitmaps with width <= 64 not compress
2157  *
2158  * Revision 1.10  1993/12/03  12:24:51  matt
2159  * Fixed TINY chunk when bitmap was part of a larger bitmap
2160  *
2161  * Revision 1.9  1993/11/22  17:26:43  matt
2162  * iff write now writes out a tiny chunk
2163  *
2164  * Revision 1.8  1993/11/21  22:04:13  matt
2165  * Fixed error with non-compressed bitmaps
2166  * Added Yuan's code to free raw data if we get an error parsing the body
2167  *
2168  * Revision 1.7  1993/11/11  12:12:12  yuan
2169  * Changed mallocs to MALLOCs.
2170  *
2171  * Revision 1.6  1993/11/01  19:02:23  matt
2172  * Fixed a couple bugs in rle compression
2173  *
2174  * Revision 1.5  1993/10/27  12:47:39  john
2175  * *** empty log message ***
2176  *
2177  * Revision 1.4  1993/10/27  12:37:31  yuan
2178  * Added mem.h
2179  *
2180  * Revision 1.3  1993/09/22  19:16:57  matt
2181  * Added new error type, IFF_CORRUPT, for internally bad IFF files.
2182  *
2183  * Revision 1.2  1993/09/08  19:24:16  matt
2184  * Fixed bug in RLE compression
2185  * Changed a bunch of unimportant values like aspect and page size when writing
2186  * Added new error condition, IFF_BAD_BM_TYPE
2187  * Make sub-bitmaps work correctly
2188  * Added compile flag to turn compression off (COMPRESS)
2189  *
2190  * Revision 1.1  1993/09/08  14:24:15  matt
2191  * Initial revision
2192
2193 ------------------------------------------------------------------------
2194 include/3d.h:
2195
2196  * Revision 1.2  1995/09/14  14:08:58  allender
2197  * return value for g3_draw_sphere
2198  *
2199  * Revision 1.1  1995/05/05  08:48:41  allender
2200  * Initial revision
2201  *
2202  * Revision 1.34  1994/11/11  19:22:14  matt
2203  * Added new function, g3_calc_point_depth()
2204  *
2205  * Revision 1.33  1994/09/09  14:23:58  matt
2206  * Added support for glowing textures, to add engine glow to Descent.
2207  *
2208  * Revision 1.32  1994/09/01  10:42:27  matt
2209  * Blob routine, renamed g3_draw_bitmap(), now takes seperate 3d width & height.
2210  *
2211  * Revision 1.31  1994/07/29  18:16:14  matt
2212  * Added instance by angles, and corrected parms for g3_init()
2213  *
2214  * Revision 1.30  1994/07/25  00:00:00  matt
2215  * Made 3d no longer deal with point numbers, but only with pointers.
2216  *
2217  * Revision 1.29  1994/07/22  17:57:27  matt
2218  * Changed the name of the rod functions, and took out some debugging code
2219  *
2220  * Revision 1.28  1994/06/07  16:49:12  matt
2221  * Made interpreter take lighting value as parm, rather than in global var
2222  *
2223  * Revision 1.27  1994/05/31  18:35:28  matt
2224  * Added light value to g3_draw_facing_bitmap()
2225  *
2226  * Revision 1.26  1994/05/30  22:48:04  matt
2227  * Added support for morph effect
2228  *
2229  * Revision 1.25  1994/05/30  11:34:57  matt
2230  * Added g3_set_special_render() to allow a user to specify functions to
2231  * call for 2d draws.
2232  *
2233  * Revision 1.24  1994/05/19  21:46:31  matt
2234  * Moved texture lighting out of 3d and into the game
2235  *
2236  * Revision 1.23  1994/05/14  15:26:48  matt
2237  * Added extern for polyobj outline flag
2238  *
2239  * Revision 1.22  1994/04/19  18:26:33  matt
2240  * Added g3_draw_sphere() function.
2241  *
2242  * Revision 1.21  1994/03/25  18:22:28  matt
2243  * g3_draw_polygon_model() now takes ptr to list of angles
2244  *
2245  * Revision 1.20  1994/03/15  21:23:23  matt
2246  * Added interpreter functions
2247  *
2248  * Revision 1.19  1994/02/15  17:37:34  matt
2249  * New function, g3_draw_blob()
2250  *
2251  * Revision 1.18  1994/02/09  11:47:47  matt
2252  * Added rod & delta point functions
2253  *
2254  * Revision 1.17  1994/01/26  12:38:11  matt
2255  * Added function g3_compute_lighting_value()
2256  *
2257  * Revision 1.16  1994/01/25  18:00:02  yuan
2258  * Fixed variable beam_brightness...
2259  *
2260  * Revision 1.15  1994/01/24  14:08:34  matt
2261  * Added instancing functions
2262  *
2263  * Revision 1.14  1994/01/22  18:21:48  matt
2264  * New lighting stuff now done in 3d; g3_draw_tmap() takes lighting parm
2265  *
2266  * Revision 1.13  1994/01/20  17:21:24  matt
2267  * New function g3_compute_sky_polygon()
2268  *
2269  * Revision 1.12  1994/01/14  17:20:25  matt
2270  * Added prototype for new function g3_draw_horizon()
2271  *
2272  * Revision 1.10  1993/12/20  20:21:52  matt
2273  * Added g3_point_2_vec()
2274  *
2275  * Revision 1.9  1993/12/07  23:05:47  matt
2276  * Fixed mistyped function name.
2277  *
2278  * Revision 1.8  1993/12/05  23:47:03  matt
2279  * Added function g3_draw_line_ptrs()
2280  *
2281  * Revision 1.7  1993/12/05  23:13:22  matt
2282  * Added prototypes for g3_rotate_point() and g3_project_point()
2283  *
2284  * Revision 1.6  1993/12/05  23:03:28  matt
2285  * Changed uvl structs to g3s_uvl
2286  *
2287  * Revision 1.5  1993/11/22  10:51:09  matt
2288  * Moved uvl structure here from segment.h, made texture map functions use it
2289  *
2290  * Revision 1.4  1993/11/21  20:08:31  matt
2291  * Added function g3_draw_object()
2292  *
2293  * Revision 1.3  1993/11/04  18:49:19  matt
2294  * Added system to only rotate points once per frame
2295  *
2296  * Revision 1.2  1993/11/04  08:16:06  mike
2297  * Add light field (p3_l) to g3s_point.
2298  *
2299  * Revision 1.1  1993/10/29  22:20:56  matt
2300  * Initial revision
2301
2302 ------------------------------------------------------------------------
2303 include/args.h:
2304
2305  * Revision 1.1  1995/05/16  15:54:24  allender
2306  * Initial revision
2307  *
2308  * Revision 2.0  1995/02/27  11:33:09  john
2309  * New version 2.0, which has no anonymous unions, builds with
2310  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
2311  *
2312  * Revision 1.4  1994/07/11  16:27:28  matt
2313  * Took out prototypes for netipx funcs
2314  *
2315  * Revision 1.3  1994/05/11  19:45:34  john
2316  * *** empty log message ***
2317  *
2318  * Revision 1.2  1994/05/09  17:02:55  john
2319  * Split command line parameters into arg.c and arg.h.
2320  * Also added /dma, /port, /irq to digi.c
2321  *
2322  * Revision 1.1  1994/05/09  16:47:49  john
2323  * Initial revision
2324
2325 ------------------------------------------------------------------------
2326 include/byteswap.h:
2327
2328  * Revision 1.4  1995/08/23  21:28:15  allender
2329  * fix mcc compiler warning
2330  *
2331  * Revision 1.3  1995/08/18  15:51:42  allender
2332  * put back in old byteswapping code
2333  *
2334  * Revision 1.2  1995/05/04  20:10:18  allender
2335  * proper prototypes
2336  *
2337  * Revision 1.1  1995/03/30  15:02:11  allender
2338  * Initial revision
2339
2340 ------------------------------------------------------------------------
2341 include/cfile.h:
2342
2343  * Revision 1.1  1995/03/30  10:25:08  allender
2344  * Initial revision
2345  *
2346  *
2347  * -- PC RCS Information ---
2348  * Revision 1.10  1995/03/13  15:16:47  john
2349  * Added alternate directory stuff.
2350  *
2351  * Revision 1.9  1995/02/01  20:56:40  john
2352  * Added cfexist function
2353  *
2354  * Revision 1.8  1995/01/21  17:53:41  john
2355  * Added alternate pig file thing.
2356  *
2357  * Revision 1.7  1994/12/12  13:19:47  john
2358  * Made cfile work with fiellentth.
2359  *
2360  * Revision 1.6  1994/12/08  19:02:52  john
2361  * Added cfgets.
2362  *
2363  * Revision 1.5  1994/12/07  21:34:07  john
2364  * Stripped out compression stuff...
2365  *
2366  * Revision 1.4  1994/07/13  00:16:53  matt
2367  * Added include
2368  *
2369  * Revision 1.3  1994/02/17  17:36:19  john
2370  * Added CF_READ_MODE and CF_WRITE_MODE constants.
2371  *
2372  * Revision 1.2  1994/02/15  12:52:08  john
2373  * Crappy inbetween version
2374  *
2375  * Revision 1.1  1994/02/15  10:54:23  john
2376  * Initial revision
2377  *
2378  * Revision 1.1  1994/02/10  15:50:54  john
2379  * Initial revision
2380
2381 ------------------------------------------------------------------------
2382 include/error.h:
2383
2384  * Revision 1.12  1994/06/17  15:22:46  matt
2385  * Added pragma for Error() for when NDEBUG
2386  *
2387  * Revision 1.11  1994/03/07  13:22:14  matt
2388  * Since the Error() function has 'aborts' set in pragma, we do a jmp
2389  * to the function rather than call.
2390  *
2391  * Revision 1.10  1994/02/17  12:37:15  matt
2392  * Combined two pragma's for Error(), since second superseded the first
2393  *
2394  * Revision 1.9  1994/02/10  18:02:53  matt
2395  * Changed 'if DEBUG_ON' to 'ifndef NDEBUG'
2396  *
2397  * Revision 1.8  1994/02/09  15:18:29  matt
2398  * Added pragma saying that Error() never returns
2399  *
2400  * Revision 1.7  1993/10/19  12:57:53  matt
2401  * If DEBUG_ON not defined, define it to be 1
2402  *
2403  * Revision 1.6  1993/10/15  21:40:39  matt
2404  * Made error functions generate int3's if debugging on
2405  *
2406  * Revision 1.5  1993/10/14  15:29:22  matt
2407  * Added new function clear_warn_func()
2408  *
2409  * Revision 1.4  1993/10/08  16:16:47  matt
2410  * Made Assert() call function _Assert(), rather to do 'if...' inline.
2411  *
2412  * Revision 1.3  1993/09/29  11:39:07  matt
2413  * Added Assert() macro, like the system one, but calls Error()
2414  *
2415  * Revision 1.2  1993/09/27  11:47:03  matt
2416  * Added function set_warn_func()
2417  *
2418  * Revision 1.1  1993/09/23  20:17:46  matt
2419  * Initial revision
2420
2421 ------------------------------------------------------------------------
2422 include/gr.h:
2423
2424  * Revision 1.7  1995/09/13  08:39:44  allender
2425  * added prototype for gr_bitblt_cockpit
2426  *
2427  * Revision 1.6  1995/08/23  18:47:01  allender
2428  * fixed compiler warnings on mcc
2429  *
2430  * Revision 1.5  1995/08/14  15:51:01  allender
2431  * added #define for transparency color
2432  *
2433  * Revision 1.4  1995/06/13  13:03:55  allender
2434  * added graphics mode
2435  *
2436  * Revision 1.3  1995/04/18  09:50:16  allender
2437  * *** empty log message ***
2438  *
2439  * Revision 1.2  1995/04/07  07:32:33  allender
2440  * *** empty log message ***
2441  *
2442  * Revision 1.1  1995/03/09  09:04:16  allender
2443  * Initial revision
2444  *
2445  *
2446  * --- PC RCS information ---
2447  * Revision 1.45  1994/11/18  22:50:21  john
2448  * Changed shorts to ints in parameters.
2449  *
2450  * Revision 1.44  1994/11/13  13:04:07  john
2451  * Added paged out bit in bitmap structure.  Commented out the
2452  * poly code that is never used.
2453  *
2454  * Revision 1.43  1994/11/09  23:04:56  mike
2455  * Add avg_color field.
2456  *
2457  * Revision 1.42  1994/10/27  00:53:35  john
2458  * Added RLE Flag to bitmap structere.
2459  *
2460  * Revision 1.41  1994/10/26  23:55:52  john
2461  * Took out roller; Took out inverse table.
2462  *
2463  * Revision 1.40  1994/08/11  17:59:12  mike
2464  * Assembler merge functions written for 3 rotations of bitmaps.
2465  *
2466  * Revision 1.39  1994/08/10  12:24:56  matt
2467  * Added support for colors fonts & kerned fonts
2468  * Made our own font file format
2469  *
2470  * Revision 1.38  1994/07/27  18:30:18  john
2471  * Took away the blending table.
2472  *
2473  * Revision 1.37  1994/06/16  15:25:06  mike
2474  * Add flag BM_FLAG_NO_LIGHTING.
2475  *
2476  * Revision 1.36  1994/05/31  10:01:22  john
2477  * *** empty log message ***
2478  *
2479  * Revision 1.35  1994/05/31  07:53:34  john
2480  * *** empty log message ***
2481  *
2482  * Revision 1.34  1994/05/14  17:19:41  matt
2483  * Added externs
2484  *
2485  * Revision 1.33  1994/05/12  17:33:09  john
2486  * Added circle code.
2487  *
2488  * Revision 1.32  1994/05/06  12:50:16  john
2489  * Added supertransparency; neatend things up; took out warnings.
2490  *
2491  * Revision 1.31  1994/05/04  10:06:06  john
2492  * Added flag for bitmap super-transparency.
2493  *
2494  * Revision 1.30  1994/05/03  19:38:56  john
2495  * *** empty log message ***
2496  *
2497  * Revision 1.29  1994/04/22  11:16:05  john
2498  * *** empty log message ***
2499  *
2500  * Revision 1.28  1994/04/08  16:59:32  john
2501  * Add fading poly's; Made palette fade 32 instead of 16.
2502  *
2503  * Revision 1.27  1994/03/16  17:29:52  john
2504  * *** empty log message ***
2505  *
2506  * Revision 1.26  1994/03/16  17:20:51  john
2507  * Added slow palette searching options.
2508  *
2509  * Revision 1.25  1994/03/14  17:59:20  john
2510  * Added function to check bitmap's transparency.
2511  *
2512  * Revision 1.24  1994/03/14  16:56:26  john
2513  * Changed grs_bitmap structure to include bm_flags.
2514  *
2515  * Revision 1.23  1994/02/18  15:32:30  john
2516  * *** empty log message ***
2517  *
2518  * Revision 1.22  1994/01/25  11:40:48  john
2519  * Added gr_check_mode function.
2520  *
2521  * Revision 1.21  1994/01/12  13:45:24  john
2522  * Added scaler.
2523  *
2524  * Revision 1.20  1993/12/21  19:58:24  john
2525  * added selector stuff
2526  *
2527  * Revision 1.19  1993/12/21  11:40:40  john
2528  * *** empty log message ***
2529  *
2530  * Revision 1.18  1993/12/09  15:02:08  john
2531  * Changed palette stuff majorly
2532  *
2533  * Revision 1.17  1993/12/07  12:32:05  john
2534  * moved bmd_palette to gr_palette
2535  *
2536  * Revision 1.16  1993/11/28  12:08:06  mike
2537  * Change prototype for rotate_bitmap.
2538  *
2539  * Revision 1.15  1993/11/18  14:22:51  mike
2540  * Add prototype for rotate_bitmap.
2541  *
2542  * Revision 1.14  1993/11/17  19:00:59  mike
2543  * Add prototype for test_rotate_bitmap
2544  *
2545  * Revision 1.13  1993/11/16  11:28:58  john
2546  * *** empty log message ***
2547  *
2548  * Revision 1.12  1993/10/26  13:17:43  john
2549  * *** empty log message ***
2550  *
2551  * Revision 1.11  1993/10/15  16:23:37  john
2552  * y
2553  *
2554  * Revision 1.10  1993/09/28  15:32:33  john
2555  * added def for save/restore vidmode
2556  *
2557  * Revision 1.9  1993/09/28  12:51:46  matt
2558  * Added aspect ratio to grs_screen structure
2559  *
2560  * Revision 1.8  1993/09/26  22:45:12  matt
2561  * Changed prototypes for line functions to take fixes, not ints.
2562  *
2563  * Revision 1.7  1993/09/26  18:58:16  john
2564  * fadein/out stuff
2565  *
2566  * Revision 1.6  1993/09/14  16:26:44  matt
2567  * Changed gr_change_mode() to be gr_set_mode()
2568  *
2569  * Revision 1.4  1993/09/14  13:08:45  john
2570  * added gr_change_mode
2571  *
2572  * Revision 1.3  1993/09/08  13:56:03  matt
2573  * Put 'if' block around body of file; added bitmap type BM_RGB15
2574  *
2575  * Revision 1.2  1993/09/08  13:02:14  john
2576  * Changed structure definitions a bit.
2577  *
2578  * Revision 1.1  1993/09/08  11:25:15  john
2579  * Initial revision
2580
2581 ------------------------------------------------------------------------
2582 include/grdef.h:
2583
2584  * Revision 1.5  1995/09/14  15:36:33  allender
2585  * added stuff for 68k version
2586  *
2587  * Revision 1.4  1995/07/05  16:10:57  allender
2588  * gr_linear_movsd prototype changes
2589  *
2590  * Revision 1.3  1995/04/19  14:39:28  allender
2591  * changed function prototype
2592  *
2593  * Revision 1.2  1995/04/18  09:49:53  allender
2594  * *** empty log message ***
2595  *
2596  * Revision 1.1  1995/03/09  09:04:56  allender
2597  * Initial revision
2598  *
2599  *
2600  * --- PC RCS information ---
2601  * Revision 1.8  1994/05/06  12:50:09  john
2602  * Added supertransparency; neatend things up; took out warnings.
2603  *
2604  * Revision 1.7  1994/01/25  11:40:29  john
2605  * Added gr_check_mode function.
2606  *
2607  * Revision 1.6  1993/10/15  16:22:53  john
2608  * y
2609  *
2610  * Revision 1.5  1993/09/29  17:31:00  john
2611  * added gr_vesa_pixel
2612  *
2613  * Revision 1.4  1993/09/29  16:14:43  john
2614  * added global canvas descriptors.
2615  *
2616  * Revision 1.3  1993/09/08  17:38:02  john
2617  * Looking for errors
2618  *
2619  * Revision 1.2  1993/09/08  15:54:29  john
2620  * *** empty log message ***
2621  *
2622  * Revision 1.1  1993/09/08  11:37:57  john
2623  * Initial revision
2624
2625 ------------------------------------------------------------------------
2626 include/ibitblt.h:
2627
2628  * Revision 1.1  1995/08/18  15:50:57  allender
2629  * Initial revision
2630  *
2631  * Revision 1.2  1994/05/31  11:10:56  john
2632  * *** empty log message ***
2633  *
2634  * Revision 1.1  1994/05/30  16:08:46  john
2635  * Initial revision
2636
2637 ------------------------------------------------------------------------
2638 include/iff.h:
2639
2640  * Revision 1.2  1995/05/05  16:33:22  allender
2641  * changed types.h to dtypes.h
2642  *
2643  * Revision 1.1  1995/05/05  08:59:45  allender
2644  * Initial revision
2645  *
2646  * Revision 1.12  1994/11/07  21:26:53  matt
2647  * Added new function iff_read_into_bitmap()
2648  *
2649  * Revision 1.11  1994/05/06  19:37:38  matt
2650  * Improved error handling and checking
2651  *
2652  * Revision 1.10  1994/04/16  20:12:54  matt
2653  * Made masked (stenciled) bitmaps work
2654  *
2655  * Revision 1.9  1994/04/13  23:46:00  matt
2656  * Added function, iff_errormsg(), which returns ptr to error message.
2657  *
2658  * Revision 1.8  1994/04/13  23:27:10  matt
2659  * Put in support for anim brushes (.abm files)
2660  *
2661  * Revision 1.7  1994/04/06  23:08:02  matt
2662  * Cleaned up code; added prototype (but no new code) for anim brush read
2663  *
2664  * Revision 1.6  1994/01/22  14:40:59  john
2665  * Fixed bug with declareations.
2666  *
2667  * Revision 1.5  1994/01/22  14:23:13  john
2668  * Added global vars to check transparency
2669  *
2670  * Revision 1.4  1993/10/27  12:47:42  john
2671  * Extended the comments
2672  *
2673  * Revision 1.3  1993/09/22  19:17:20  matt
2674  * Fixed handling of pad byte in ILBM/PPB body - was writing pad byte to
2675  * destination buffer.
2676  *
2677  * Revision 1.2  1993/09/08  19:23:25  matt
2678  * Added additional return code, IFF_BAD_BM_TYPE
2679  *
2680  * Revision 1.1  1993/09/08  14:24:21  matt
2681  * Initial revision
2682
2683 ------------------------------------------------------------------------
2684 include/ipx.h:
2685
2686  * Revision 2.6  1995/03/29  11:19:32  john
2687  * Added broadcasting over a net.
2688  *
2689  * Revision 2.5  1995/03/28  20:04:43  john
2690  * Took away alternate server stuff.
2691  *
2692  * Revision 2.4  1995/03/23  19:00:10  john
2693  * Added user list capabitly.
2694  *
2695  * Revision 2.3  1995/03/23  12:26:57  john
2696  * Move IPX into bios lib.
2697  *
2698  * Revision 2.2  1995/03/22  19:08:14  john
2699  * Added code to fix sending packets over router... now
2700  * we just need to make broadcasts go over router!!
2701  *
2702  * Revision 2.1  1995/03/21  08:39:56  john
2703  * Ifdef'd out the NETWORK code.
2704  *
2705  * Revision 2.0  1995/02/27  11:30:16  john
2706  * New version 2.0, which has no anonymous unions, builds with
2707  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
2708  *
2709  * Revision 1.16  1995/02/16  17:34:52  john
2710  * Added code to allow dynamic socket changing.
2711  *
2712  * Revision 1.15  1995/01/04  21:43:27  rob
2713  * Remove SPX size definition.
2714  *
2715  * Revision 1.14  1995/01/03  13:46:18  john
2716  * Added code that should make ipx work over different servers,
2717  * but ifdef'd it out with SHAREWARE in ipx.c.  I haven't tested
2718  * this, and I hope it doesn't introduce net bugs.
2719  *
2720  * Revision 1.13  1994/11/02  11:37:16  rob
2721  * Changed default socket number to a higher regions.
2722  *
2723  * Revision 1.12  1994/11/01  15:56:51  rob
2724  * Added defines for SPX socketsx.
2725  *
2726  * Revision 1.11  1994/10/31  19:23:31  rob
2727  * Added a prototype for the new object send function.
2728  *
2729  * Revision 1.10  1994/09/07  13:37:25  john
2730  * Changed default socket to 0x4000, because
2731  * the ipx/spx book says that we can only use
2732  * sockets 0x4000 - 0x7fff.
2733  *
2734  * Revision 1.9  1994/08/25  18:14:45  matt
2735  * Changed socket because of packet change
2736  *
2737  * Revision 1.8  1994/08/12  22:42:24  john
2738  * Took away Player_stats; added Players array.
2739  *
2740  * Revision 1.7  1994/08/09  19:31:47  john
2741  * Networking changes.
2742  *
2743  * Revision 1.6  1994/08/05  16:11:46  john
2744  * Psuedo working version of networking.
2745  *
2746  * Revision 1.5  1994/08/04  19:17:20  john
2747  * Inbetween version of network stuff.
2748  *
2749  * Revision 1.4  1994/07/29  16:08:59  john
2750  * *** empty log message ***
2751  *
2752  * Revision 1.3  1994/07/25  12:33:22  john
2753  * Network "pinging" in.
2754  *
2755  * Revision 1.2  1994/07/20  15:58:29  john
2756  * First installment of ipx stuff.
2757  *
2758  * Revision 1.1  1994/07/19  15:43:05  john
2759  * Initial revision
2760
2761 ------------------------------------------------------------------------
2762 include/palette.h:
2763
2764  * Revision 1.11  1994/11/15  17:55:10  john
2765  * Made text palette fade in when game over.
2766  *
2767  * Revision 1.10  1994/11/07  13:53:42  john
2768  * Added better gamma stufff.
2769  *
2770  * Revision 1.9  1994/11/07  13:38:03  john
2771  * Added gamma correction stuff.
2772  *
2773  * Revision 1.8  1994/11/05  13:05:59  john
2774  * Added back in code to allow keys during fade.
2775  *
2776  * Revision 1.7  1994/11/05  12:46:37  john
2777  * Changed palette stuff a bit.
2778  *
2779  * Revision 1.6  1994/09/22  16:08:37  john
2780  * Fixed some palette stuff.
2781  *
2782  * Revision 1.5  1994/08/09  11:27:04  john
2783  * Add cthru stuff.
2784  *
2785  * Revision 1.4  1994/06/09  10:39:33  john
2786  * In fade out.in functions, returned 1 if key was pressed...
2787  *
2788  * Revision 1.3  1994/05/31  19:04:24  john
2789  * Added key to stop fade if desired.
2790  *
2791  * Revision 1.2  1994/05/06  12:50:42  john
2792  * Added supertransparency; neatend things up; took out warnings.
2793  *
2794  * Revision 1.1  1994/05/04  14:59:57  john
2795  * Initial revision
2796
2797 ------------------------------------------------------------------------
2798 include/pcx.h:
2799
2800  * Revision 1.4  1995/01/21  17:07:34  john
2801  * Added out of memory error.
2802  *
2803  * Revision 1.3  1994/11/29  02:53:10  john
2804  * Added error messages; made call be more similiar to iff.
2805  *
2806  * Revision 1.2  1994/11/28  20:03:48  john
2807  * Added PCX functions.
2808  *
2809  * Revision 1.1  1994/11/28  19:57:45  john
2810  * Initial revision
2811
2812 ------------------------------------------------------------------------
2813 include/pstypes.h:
2814
2815  * Revision 1.2  1993/09/14  12:12:30  matt
2816  * Added #define for NULL
2817  *
2818  * Revision 1.1  1993/08/24  12:50:40  matt
2819  * Initial revision
2820
2821 ------------------------------------------------------------------------
2822 include/rle.h:
2823
2824  * Revision 1.5  1995/01/14  11:32:20  john
2825  * Added rle_cache_flush function.
2826  *
2827  * Revision 1.4  1994/11/10  13:16:01  matt
2828  * Added includes
2829  *
2830  * Revision 1.3  1994/11/09  19:53:51  john
2831  * Added texture rle caching.
2832  *
2833  * Revision 1.2  1994/11/09  16:35:18  john
2834  * First version with working RLE bitmaps.
2835  *
2836  * Revision 1.1  1994/11/09  12:40:17  john
2837  * Initial revision
2838
2839 ------------------------------------------------------------------------
2840 include/texmap.h:
2841
2842  * Revision 1.2  1995/09/04  14:22:10  allender
2843  * #defines for fixed point limits on render buffer
2844  *
2845  * Revision 1.1  1995/05/04  20:14:50  allender
2846  * Initial revision
2847  *
2848  * Revision 1.17  1994/11/10  11:09:16  mike
2849  * detail level stuff.
2850  * 
2851  * Revision 1.16  1994/11/09  22:55:32  matt
2852  * Added variable Current_seg_depth for detail level optimization
2853  * 
2854  * Revision 1.15  1994/06/09  16:10:04  mike
2855  * Add prototype for SC2000
2856  * 
2857  * Revision 1.14  1994/05/25  18:46:16  matt
2858  * Added gr_upoly_tmap_ylr(), which generates ylr's for a polygon
2859  * 
2860  * Revision 1.13  1994/05/25  09:47:12  mike
2861  * Added interface support for linear texture mapper (Mike change, Matt commnet)
2862  * 
2863  * Revision 1.12  1994/05/24  17:30:43  mike
2864  * Prototype a bunch of linear, vertical scanning functions.
2865  * 
2866  * Revision 1.11  1994/05/19  23:26:14  mike
2867  * Add constants NUM_LIGHTING_VALUES, MAX_LIGHTING_VALUE, MIN_LIGHTING_VALUE,
2868  * all part of new lighting_values_in_0_to_1 system.
2869  * 
2870  * Revision 1.10  1994/05/14  17:19:21  matt
2871  * Added externs
2872  * 
2873  * Revision 1.9  1994/04/13  23:55:44  matt
2874  * Increased max_tmap_verts from 16 to 25
2875  * 
2876  * Revision 1.8  1994/03/31  08:35:43  mike
2877  * Prototype for gr_upoly_tmap.
2878  * 
2879  * Revision 1.7  1994/02/08  15:17:54  mike
2880  * define label for MAX_TMAP_VERTS
2881  * 
2882  * Revision 1.6  1994/01/31  15:41:51  mike
2883  * Add texture_map_lin_lin_sky_v
2884  * 
2885  * Revision 1.5  1994/01/18  10:49:40  mike
2886  * prototype for texture_map_lin_lin_sky
2887  * 
2888  * Revision 1.4  1993/11/30  17:09:46  mike
2889  * prototype for compute_lighting_value.
2890  * 
2891  * Revision 1.3  1993/11/22  10:50:38  matt
2892  * Add ifndef around body of file
2893  * 
2894  * Revision 1.2  1993/10/06  12:41:25  mike
2895  * Change prototype for draw_tmap.
2896  * 
2897  * Revision 1.1  1993/09/08  17:29:11  mike
2898  * Initial revision
2899
2900 ------------------------------------------------------------------------
2901 include/timer.h:
2902
2903  * Revision 1.8  1994/12/10  12:27:23  john
2904  * Added timer_get_approx_seconds.
2905  *
2906  * Revision 1.7  1994/12/10  12:10:25  john
2907  * Added types.h.
2908  *
2909  * Revision 1.6  1994/12/10  12:07:06  john
2910  * Added tick counter variable.
2911  *
2912  * Revision 1.5  1994/11/15  12:04:15  john
2913  * Cleaned up timer code a bit... took out unused functions
2914  * like timer_get_milliseconds, etc.
2915  *
2916  * Revision 1.4  1994/04/28  23:50:08  john
2917  * Changed calling for init_timer.  Made the function that the
2918  * timer calls be a far function. All of this was done to make
2919  * our timer system compatible with the HMI sound stuff.
2920  *
2921  * Revision 1.3  1994/02/17  15:57:12  john
2922  * Changed key libary to C.
2923  *
2924  * Revision 1.2  1994/01/18  10:58:34  john
2925  * Added timer_get_fixed_seconds
2926  *
2927  * Revision 1.1  1993/07/10  13:10:41  matt
2928  * Initial revision
2929
2930 ------------------------------------------------------------------------
2931 include/u_dpmi.h:
2932
2933  * Revision 1.9  1995/01/14  19:20:14  john
2934  * Added function to set a selector's base address.
2935  *
2936  * Revision 1.8  1994/11/28  20:22:03  john
2937  * Added some variables that return the amount of available
2938  * memory.
2939  *
2940  * Revision 1.7  1994/11/15  18:26:38  john
2941  * Added verbose flag.
2942  *
2943  * Revision 1.6  1994/11/07  11:35:05  john
2944  * Added prototype for real_free
2945  *
2946  * Revision 1.5  1994/10/27  19:54:48  john
2947  * Added unlock region function,.
2948  *
2949  * Revision 1.4  1994/09/27  18:27:56  john
2950  * Added pragma to make inp,outp,enable,disable intrinsic
2951  *
2952  * Revision 1.3  1994/09/27  11:54:45  john
2953  * Added DPMI init function.
2954  *
2955  * Revision 1.2  1994/08/24  18:53:51  john
2956  * Made Cyberman read like normal mouse; added dpmi module; moved
2957  * mouse from assembly to c. Made mouse buttons return time_down.
2958  *
2959  * Revision 1.1  1994/08/24  10:22:48  john
2960  * Initial revision
2961
2962 ------------------------------------------------------------------------
2963 include/vecmat.h:
2964
2965  * Revision 1.1  1995/04/17  16:18:05  allender
2966  * Initial revision
2967  *
2968  *
2969  * --- PC RCS Information ---
2970  * Revision 1.37  1995/02/22  13:23:22  john
2971  * Added the vms_vector_array structure, to access a vms_vector
2972  * with an array.
2973  *
2974  * Revision 1.36  1995/02/22  12:34:33  john
2975  * Took out anonymous unions.
2976  *
2977  * Revision 1.35  1994/12/13  14:44:20  matt
2978  * Added vm_vector_2_matrix_norm()
2979  *
2980  * Revision 1.34  1994/09/11  19:22:55  matt
2981  * Added vm_vec_normalized_dir_quick()
2982  *
2983  * Revision 1.33  1994/08/04  19:45:38  matt
2984  * Added option to make a bunch of functions (add, sub, dotprod) inline
2985  *
2986  * Revision 1.32  1994/07/19  18:52:36  matt
2987  * Added vm_vec_normalize_quick() and vm_vec_copy_normalize_quick()
2988  *
2989  * Revision 1.31  1994/06/16  18:24:30  matt
2990  * Added vm_vec_mag_quick()
2991  *
2992  * Revision 1.30  1994/06/10  23:19:00  matt
2993  * New register usage for vm_vec_ang_2_matrix()
2994  *
2995  * Revision 1.29  1994/06/01  17:32:06  matt
2996  * Fixed modify list for vm_vec_normalized_dir()
2997  *
2998  * Revision 1.28  1994/05/19  12:07:20  matt
2999  * Fixed globals and macros and added a constant
3000  *
3001  * Revision 1.27  1994/05/19  09:19:15  matt
3002  * Made vm_vec_normalized_dir() return mag of vector
3003  *
3004  * Revision 1.26  1994/05/18  22:28:57  matt
3005  * Added function vm_vec_normalized_dir()
3006  * Added C macros IS_ZERO_VEC(), vm_vec_zero(), and vm_set_identity()
3007  * Added C global static vars vmd_zero_vector & vmd_identity_matrix
3008  *
3009  * Revision 1.25  1994/05/18  21:45:06  matt
3010  * Added functions:
3011  *   vm_extract_angles_vector()
3012  *   vm_extract_angles_vector_normalized()
3013  *   vm_vec_copy_normalize()
3014  *
3015  * Revision 1.24  1994/05/13  12:42:16  matt
3016  * Added new function, vm_vec_dist_quick(), which does an approximation.
3017  *
3018  * Revision 1.23  1994/03/30  13:37:34  matt
3019  * Added prototype for vm_vec_scale_add(), and fixed typos
3020  *
3021  * Revision 1.22  1994/03/30  13:29:42  matt
3022  * Header for vm_vec_scale_add2()
3023  *
3024  * Revision 1.21  1994/01/31  19:45:13  matt
3025  * Added function vm_extract_angles_matrix()
3026  *
3027  * Revision 1.20  1993/12/21  19:46:14  matt
3028  * Added function vm_dist_to_plane()
3029  *
3030  * Revision 1.19  1993/12/13  17:26:41  matt
3031  * Added vm_vec_dist()
3032  *
3033  * Revision 1.18  1993/12/02  12:45:11  matt
3034  * New functions: vm_vec_copy_scale(), vm_vec_scale2()
3035  * Aliases: vm_transpose(), vm_vec_dot(), vm_vec_cross(), vm_copy_transpose()
3036  *
3037  * Revision 1.17  1993/10/29  22:38:36  matt
3038  * Changed matrix order, making direction vectors the rows
3039  *
3040  * Revision 1.16  1993/10/25  11:49:57  matt
3041  * Made vm_vec_delta_ang() take optional forward vector to return signed delta
3042  *
3043  * Revision 1.15  1993/10/20  01:10:05  matt
3044  * Added vm_vec_delta_ang(), vm_vec_delta_ang_norm(), and vm_vec_ang_2_matrix()
3045  *
3046  * Revision 1.14  1993/10/17  17:02:52  matt
3047  * vm_vector_2_matrix() now takes optional right vector
3048  *
3049  * Revision 1.13  1993/10/12  19:31:39  matt
3050  * Added IDENTITY_MATRIX constant
3051  *
3052  * Revision 1.12  1993/10/08  18:10:16  matt
3053  * Changed vm_vec_make() and vm_angvec_make() to be inline assembly
3054  * functions, to get rid of compiler warnings.  Did not change vm_mat_make(),
3055  * which could still get warnings if the return value is unused.
3056  *
3057  * Revision 1.11  1993/09/29  12:10:07  matt
3058  * Changed modified regs in pragmas to include return register
3059  *
3060  * Revision 1.10  1993/09/28  12:15:41  matt
3061  * Added func vm_vector_2_matrix()
3062  *
3063  * Revision 1.9  1993/09/24  21:18:38  matt
3064  * Added vm_vec_avg(), vm_vec_avg4(), and vm_angvec_make().
3065  * Documented which functions could have dest==source
3066  *
3067  * Revision 1.8  1993/09/20  14:56:11  matt
3068  * Added new function, vm_vec_perp()
3069  *
3070  * Revision 1.7  1993/09/20  14:27:42  mike
3071  * unfix last fix which introduced a bug
3072  *
3073  * Revision 1.6  1993/09/20  10:11:53  mike
3074  * no changes
3075  *
3076  * Revision 1.5  1993/09/20  09:58:58  mike
3077  * Re-fix vm_vec_make
3078  *
3079  * Revision 1.4  1993/09/20  09:41:21  mike
3080  * Correct vm_vec_make and vm_mat_make macros to return the destination
3081  * as the value of the macro.
3082  *
3083  * Revision 1.3  1993/09/17  11:23:47  matt
3084  * Added row access (via xrow,yrow,zrow) to vms_matrix
3085  * Added macro vm_mat_make(), like vm_vec_make()
3086  *
3087  * Revision 1.2  1993/09/17  11:10:32  matt
3088  * Added vm_vec_add2() and vm_vec_sub2(), which take 2 args (dest==src0)
3089  *
3090  * Revision 1.1  1993/09/16  20:10:01  matt
3091  * Initial revision
3092
3093 ------------------------------------------------------------------------
3094 main/ai.c:
3095
3096  * Revision 1.1  1995/12/05  14:15:37  allender
3097  * Initial revision
3098  *
3099  * Revision 1.10  1995/11/09  09:36:12  allender
3100  * cheats not active during demo playback
3101  *
3102  * Revision 1.9  1995/11/03  12:51:55  allender
3103  * shareware changes
3104  *
3105  * Revision 1.8  1995/10/31  10:25:07  allender
3106  * shareware stuff
3107  *
3108  * Revision 1.7  1995/10/26  14:01:38  allender
3109  * optimization for doing robot stuff only if anim angles done last frame
3110  *
3111  * Revision 1.6  1995/10/25  09:35:43  allender
3112  * prototype some functions causing mcc problems
3113  *
3114  * Revision 1.5  1995/10/17  13:11:40  allender
3115  * fix in ai code that makes bots only look for you every so often
3116  *
3117  * Revision 1.4  1995/10/10  11:48:10  allender
3118  * PC ai code
3119  *
3120  * Revision 2.11  1995/07/09  11:15:48  john
3121  * Put in Mike's code to fix bug where bosses don't gate in bots after
3122  * 32767 seconds of playing.
3123  *
3124  * Revision 2.10  1995/06/15  12:31:08  john
3125  * Fixed bug with cheats getting enabled when you type
3126  * the whole alphabet.
3127  *
3128  * Revision 2.9  1995/05/26  16:16:18  john
3129  * Split SATURN into define's for requiring cd, using cd, etc.
3130  * Also started adding all the Rockwell stuff.
3131  *
3132  * Revision 2.8  1995/04/06  15:12:27  john
3133  * Fixed bug with insane not working.
3134  *
3135  * Revision 2.7  1995/03/30  16:36:44  mike
3136  * text localization.
3137  *
3138  * Revision 2.6  1995/03/28  11:22:24  john
3139  * Added cheats to save file. Changed lunacy text.
3140  *
3141  * Revision 2.5  1995/03/27  16:45:07  john
3142  * Fixed some cheat bugs.  Added astral cheat.
3143  *
3144  * Revision 2.4  1995/03/24  15:29:17  mike
3145  * add new cheats.
3146  *
3147  * Revision 2.3  1995/03/21  14:39:45  john
3148  * Ifdef'd out the NETWORK code.
3149  *
3150  * Revision 2.2  1995/03/14  18:24:39  john
3151  * Force Destination Saturn to use CD-ROM drive.
3152  *
3153  * Revision 2.1  1995/03/06  16:47:14  mike
3154  * destination saturn
3155  *
3156  * Revision 2.0  1995/02/27  11:30:01  john
3157  * New version 2.0, which has no anonymous unions, builds with
3158  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
3159  *
3160  * Revision 1.295  1995/02/22  13:23:04  allender
3161  * remove anonymous unions from object structure
3162  *
3163  * Revision 1.294  1995/02/13  11:00:43  rob
3164  * Make brain guys high enough to get an open slot.
3165  *
3166  * Revision 1.293  1995/02/13  10:31:55  mike
3167  * Make brains understand they can't open locked doors.
3168  *
3169  * Revision 1.292  1995/02/13  10:18:01  rob
3170  * Reduced brain guy's level of awareness to keep him from hogging slots.
3171  *
3172  * Revision 1.291  1995/02/11  12:27:12  mike
3173  * fix path-to-exit cheat.
3174  *
3175  * Revision 1.290  1995/02/11  01:56:30  mike
3176  * robots don't fire cheat.
3177  *
3178  * Revision 1.289  1995/02/10  17:15:09  rob
3179  * Fixed some stuff with 64 awareness stuff.
3180  *
3181  * Revision 1.288  1995/02/10  16:31:32  mike
3182  * oops.
3183  *
3184  * Revision 1.287  1995/02/10  16:24:45  mike
3185  * fix the network follow path fix.
3186  *
3187  * Revision 1.286  1995/02/10  16:11:40  mike
3188  * in serial or modem games, follow path guys don't move if far away and
3189  * can't see player.
3190  *
3191  * Revision 1.285  1995/02/09  13:11:35  mike
3192  * comment out a bunch of mprintfs.
3193  * add toaster (drops prox bombs, runs away) to boss gate list.
3194  *
3195  * Revision 1.284  1995/02/08  22:44:53  rob
3196  * Lowerd anger level for follow path of any sort.
3197  *
3198  * Revision 1.283  1995/02/08  22:30:43  mike
3199  * lower awareness on station guys if they are returning home (multiplayer).
3200  *
3201  * Revision 1.282  1995/02/08  17:01:06  rob
3202  * Fixed problem with toasters dropping of proximity bombs.
3203  *
3204  * Revision 1.281  1995/02/08  11:49:35  rob
3205  * Reduce Green-guy attack awareness level so we don't let him attack us too.
3206  *
3207  * Revision 1.280  1995/02/08  11:37:52  mike
3208  * Check for failures in call to obj_create.
3209  *
3210  * Revision 1.279  1995/02/07  20:38:46  mike
3211  * fix toasters in multiplayer
3212  *
3213  *
3214  * Revision 1.278  1995/02/07  16:51:07  mike
3215  * fix sound time play bug.
3216  *
3217  * Revision 1.277  1995/02/06  22:33:04  mike
3218  * make robots follow path better in cooperative/roboarchy.
3219  *
3220  * Revision 1.276  1995/02/06  18:15:42  rob
3221  * Added forced sends for evasion movemnet.
3222  *
3223  * Revision 1.275  1995/02/06  16:41:22  rob
3224  * Change some positioning calls.
3225  *
3226  * Revision 1.274  1995/02/06  11:40:33  mike
3227  * replace some lint-related hacks with clean, proper code.
3228  *
3229  * Revision 1.273  1995/02/04  17:28:19  mike
3230  * make station guys return better.
3231  *
3232  * Revision 1.272  1995/02/03  17:40:55  mike
3233  * fix problem with robots falling asleep if you sit in game overnight, not in pause...bah.
3234  *
3235  * Revision 1.271  1995/02/02  21:11:25  rob
3236  * Tweaking stuff for multiplayer ai.
3237  *
3238  * Revision 1.270  1995/02/02  17:32:06  john
3239  * Added Hack for Assert that Mike put in after using Lint to find
3240  * uninitialized variables.
3241  *
3242  * Revision 1.269  1995/02/02  16:46:31  mike
3243  * fix boss gating.
3244  *
3245  * Revision 1.268  1995/02/02  16:27:29  mike
3246  * make boss not put out infinite robots.
3247  *
3248  * Revision 1.267  1995/02/01  21:10:02  mike
3249  * lint found bug! player_visibility not initialized!
3250  *
3251  * Revision 1.266  1995/02/01  20:51:27  john
3252  * Lintized
3253  *
3254  * Revision 1.265  1995/02/01  17:14:05  mike
3255  * fix robot sounds.
3256  *
3257  * Revision 1.264  1995/01/31  16:16:40  mike
3258  * Comment out "Darn you, John" Int3().
3259  *
3260  * Revision 1.263  1995/01/30  20:55:04  mike
3261  * fix nonsense in robot firing when a player is cloaked.
3262  *
3263  * Revision 1.262  1995/01/30  17:15:10  rob
3264  * Fixed problems with bigboss eclip messages.
3265  * Tweaked robot position sending for modem purposes.
3266  *
3267  * Revision 1.261  1995/01/30  15:30:31  rob
3268  * Prevent non-master players from gating in robots.
3269  *
3270  * Revision 1.260  1995/01/30  13:30:55  mike
3271  * new cases for firing at other players were bogus, could send position
3272  * without permission.
3273  *
3274  * Revision 1.259  1995/01/30  13:01:17  mike
3275  * Make robots fire at player other than one they are controlled by sometimes.
3276  *
3277  * Revision 1.258  1995/01/29  16:09:17  rob
3278  * Trying to get robots to shoot at non-controlling players.
3279  *
3280  * Revision 1.257  1995/01/29  13:47:05  mike
3281  * Make boss have more fireballs on death, have until end (though silent at end).
3282  * Fix bug which was preventing him from teleporting until hit, so he'd always
3283  * be in the same place when the player enters the room.
3284  *
3285  * Revision 1.256  1995/01/28  17:40:18  mike
3286  * make boss teleport & gate before you see him.
3287  *
3288  * Revision 1.255  1995/01/27  17:02:08  mike
3289  * move code around, was sending one frame (or worse!) old robot information.
3290  *
3291  * Revision 1.254  1995/01/26  17:02:43  mike
3292  * make fusion cannon have more chrome, make fusion, mega rock you!
3293  *
3294  * Revision 1.253  1995/01/26  15:11:17  rob
3295  * Shutup!  I fixed it!
3296  *
3297  * Revision 1.252  1995/01/26  15:08:55  rob
3298  * Changed robot gating to accomodate multiplayer.
3299  *
3300  * Revision 1.251  1995/01/26  14:49:04  rob
3301  * Increase awareness level for firing to 94.
3302  *
3303  * Revision 1.250  1995/01/26  12:41:20  mike
3304  * fix bogus multiplayer code, would send permission without getting permission.
3305  *
3306  * Revision 1.249  1995/01/26  12:23:23  rob
3307  * Removed defines that were moved to ai.h
3308  *
3309  * Revision 1.248  1995/01/25  23:38:48  mike
3310  * modify list of robots gated in by super boss.
3311  *
3312  * Revision 1.247  1995/01/25  21:21:13  rob
3313  * Trying to let robots fire at a player even if they're not in control.
3314  *
3315  * Revision 1.246  1995/01/25  13:50:37  mike
3316  * Robots make angry sounds.
3317  *
3318  * Revision 1.245  1995/01/25  10:53:47  mike
3319  * better handling of robots which poke out of mine and try to recover.
3320  *
3321  * Revision 1.244  1995/01/24  22:03:02  mike
3322  * Tricky code to move a robot to a legal position if he is poking out of
3323  * the mine, even if it means moving him to another segment.
3324  *
3325  * Revision 1.243  1995/01/24  20:12:06  rob
3326  * Changed robot fire awareness level from 74 to 94.
3327  *
3328  * Revision 1.242  1995/01/24  13:22:32  mike
3329  * make robots accelerate faster, and Difficulty_level dependent.
3330  *
3331  * Revision 1.241  1995/01/24  12:09:39  mike
3332  * make robots animate in multiplayer.
3333  *
3334  * Revision 1.240  1995/01/21  21:21:10  mike
3335  * Make boss only gate robots into specified segments.
3336  *
3337  * Revision 1.239  1995/01/20  20:21:26  mike
3338  * prevent unnecessary boss cloaking.
3339
3340 ------------------------------------------------------------------------
3341 main/ai.h:
3342
3343  * Revision 1.3  1995/10/15  16:28:07  allender
3344  * added flag to player_is_visible function
3345  *
3346  * Revision 1.2  1995/10/10  11:48:32  allender
3347  * PC ai header
3348  *
3349  * Revision 1.1  1995/05/16  15:54:00  allender
3350  * Initial revision
3351  *
3352  * Revision 2.0  1995/02/27  11:33:07  john
3353  * New version 2.0, which has no anonymous unions, builds with
3354  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
3355  *
3356  * Revision 1.57  1995/02/04  17:28:31  mike
3357  * make station guys return better.
3358  *
3359  * Revision 1.56  1995/02/04  10:03:23  mike
3360  * Fly to exit cheat.
3361  *
3362  * Revision 1.55  1995/02/01  19:23:52  rob
3363  * Externed a boss var.
3364  *
3365  * Revision 1.54  1995/01/30  13:00:58  mike
3366  * Make robots fire at player other than one they are controlled by sometimes.
3367  *
3368  * Revision 1.53  1995/01/26  15:09:16  rob
3369  * Changed robot gating to accomodate multiplayer.
3370  *
3371  * Revision 1.52  1995/01/26  12:23:12  rob
3372  * Added new externs needed for multiplayer.
3373  *
3374  * Revision 1.51  1995/01/21  21:22:14  mike
3375  * Kill prototype of init_boss_segments, which didn't need to be public
3376  * and had changed.
3377  *
3378  * Revision 1.50  1995/01/16  19:24:29  mike
3379  * Publicize BOSS_GATE_MATCEN_NUM and Boss_been_hit.
3380  *
3381  * Revision 1.49  1995/01/02  16:17:35  mike
3382  * prototype some super boss function for gameseq.
3383  *
3384  * Revision 1.48  1994/12/19  17:08:06  mike
3385  * deal with new ai_multiplayer_awareness which returns a value saying whether this object can be moved by this player.
3386  *
3387  * Revision 1.47  1994/12/12  17:18:04  mike
3388  * make boss cloak/teleport when get hit, make quad laser 3/4 as powerful.
3389  *
3390  * Revision 1.46  1994/12/08  15:46:16  mike
3391  * better robot behavior.
3392  *
3393  * Revision 1.45  1994/11/27  23:16:08  matt
3394  * Made debug code go away when debugging turned off
3395  *
3396  * Revision 1.44  1994/11/16  23:38:41  mike
3397  * new improved boss teleportation behavior.
3398  *
3399  * Revision 1.43  1994/11/10  17:45:11  mike
3400  * debugging.
3401  *
3402  * Revision 1.42  1994/11/07  10:37:42  mike
3403  * hooks for rob's network code.
3404  *
3405  * Revision 1.41  1994/11/06  15:10:50  mike
3406  * prototype a debug function for dumping ai info.
3407  *
3408  * Revision 1.40  1994/11/02  17:57:30  rob
3409  * Added extern of Believe_player_pos needed to get control centers
3410  * locating people.
3411  *
3412  * Revision 1.39  1994/10/28  19:43:39  mike
3413  * Prototype Boss_cloak_start_time, Boss_cloak_end_time.
3414  *
3415  * Revision 1.38  1994/10/22  14:14:42  mike
3416  * Prototype ai_reset_all_paths.
3417  *
3418  * Revision 1.37  1994/10/21  20:42:01  mike
3419  * Define MAX_PATH_LENGTH: maximum allowed length of a path.
3420  *
3421  * Revision 1.36  1994/10/20  09:49:18  mike
3422  * Prototype something.
3423  *
3424  *
3425  * Revision 1.35  1994/10/18  15:37:52  mike
3426  * Define ROBOT_BOSS1.
3427  *
3428  * Revision 1.34  1994/10/13  11:12:25  mike
3429  * Prototype some door functions.
3430  *
3431  * Revision 1.33  1994/10/12  21:28:51  mike
3432  * Prototype create_n_segment_path_to_door
3433  * Prototype ai_open_doors_in_segment
3434  * Prototype ai_door_is_openable.
3435  *
3436  * Revision 1.32  1994/10/11  15:59:41  mike
3437  * Prototype Robot_firing_enabled.
3438  *
3439  * Revision 1.31  1994/10/09  22:02:48  mike
3440  * Adapt create_path_points and create_n_segment_path prototypes to use avoid_seg for player evasion.
3441  *
3442  * Revision 1.30  1994/09/18  18:07:44  mike
3443  * Update prototypes for create_path_points and create_path_to_player.
3444  *
3445  * Revision 1.29  1994/09/15  16:34:08  mike
3446  * Prototype do_ai_robot_hit_attack.
3447  *
3448  * Revision 1.28  1994/09/12  19:12:35  mike
3449  * Prototype attempt_to_resume_path.
3450  *
3451  * Revision 1.27  1994/08/25  21:55:32  mike
3452  * Add some prototypes.
3453  *
3454  * Revision 1.26  1994/08/10  19:53:24  mike
3455  * Prototype create_path_to_player and init_robots_for_level.
3456  *
3457  * Revision 1.25  1994/08/04  16:32:58  mike
3458  * prototype create_path_to_player.
3459  *
3460  * Revision 1.24  1994/08/03  15:17:20  mike
3461  * Prototype make_random_vector.
3462  *
3463  * Revision 1.23  1994/07/31  18:10:34  mike
3464  * Update prototype for create_path_points.
3465  *
3466  * Revision 1.22  1994/07/28  12:36:14  matt
3467  * Cleaned up object bumping code
3468
3469 ------------------------------------------------------------------------
3470 main/ai2.c:
3471
3472  * Revision 1.1  1995/05/25  12:00:31  mike
3473  * Initial revision
3474
3475 ------------------------------------------------------------------------
3476 main/aipath.c:
3477
3478  * Revision 1.5  1995/10/26  14:12:03  allender
3479  * prototype functions for mcc compiler
3480  *
3481  * Revision 1.4  1995/10/25  09:38:22  allender
3482  * prototype some functions causing mcc grief
3483  *
3484  * Revision 1.3  1995/10/10  11:48:43  allender
3485  * PC ai code
3486  *
3487  * Revision 2.0  1995/02/27  11:30:48  john
3488  * New version 2.0, which has no anonymous unions, builds with
3489  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
3490  *
3491  * Revision 1.101  1995/02/22  13:42:44  allender
3492  * remove anonymous unions for object structure
3493  *
3494  * Revision 1.100  1995/02/10  16:20:04  mike
3495  * fix bogosity in create_path_points, assumed all objects were robots.
3496  *
3497  * Revision 1.99  1995/02/07  21:09:30  mike
3498  * make run_from guys have diff level based speed.
3499  *
3500  * Revision 1.98  1995/02/04  17:28:29  mike
3501  * make station guys return better.
3502  *
3503  * Revision 1.97  1995/02/04  10:28:39  mike
3504  * fix compile error!
3505  *
3506  * Revision 1.96  1995/02/04  10:03:37  mike
3507  * Fly to exit cheat.
3508  *
3509  * Revision 1.95  1995/02/01  21:10:36  mike
3510  * Array name was dereferenced.  Not a bug, but unclean.
3511  *
3512  * Revision 1.94  1995/02/01  17:14:12  mike
3513  * comment out some common mprintfs which didn't matter.
3514  *
3515  * Revision 1.93  1995/01/30  13:01:23  mike
3516  * Make robots fire at player other than one they are controlled by sometimes.
3517  *
3518  * Revision 1.92  1995/01/29  22:29:32  mike
3519  * add more debug info for guys that get lost.
3520  *
3521  * Revision 1.91  1995/01/20  16:56:05  mike
3522  * station stuff.
3523  *
3524  * Revision 1.90  1995/01/18  10:59:45  mike
3525  * comment out some mprintfs.
3526  *
3527  * Revision 1.89  1995/01/17  16:58:34  mike
3528  * make path following work for multiplayer.
3529  *
3530  * Revision 1.88  1995/01/17  14:21:44  mike
3531  * make run_from guys run better.
3532  *
3533  * Revision 1.87  1995/01/14  17:09:04  mike
3534  * playing with crazy josh, he's kinda slow and dumb now.
3535  *
3536  * Revision 1.86  1995/01/13  18:52:28  mike
3537  * comment out int3.
3538  *
3539  * Revision 1.85  1995/01/05  09:42:11  mike
3540  * compile out code based on SHAREWARE.
3541  *
3542  * Revision 1.84  1995/01/02  12:38:32  mike
3543  * make crazy josh turn faster, therefore evade player better.
3544  *
3545  * Revision 1.83  1994/12/27  15:59:40  mike
3546  * tweak ai_multiplayer_awareness constants.
3547  *
3548  * Revision 1.82  1994/12/19  17:07:10  mike
3549  * deal with new ai_multiplayer_awareness which returns a value saying whether this object can be moved by this player.
3550  *
3551  * Revision 1.81  1994/12/15  13:04:30  mike
3552  * Replace Players[Player_num].time_total references with GameTime.
3553  *
3554  * Revision 1.80  1994/12/09  16:13:23  mike
3555  * remove debug code.
3556  *
3557  * Revision 1.79  1994/12/07  00:36:54  mike
3558  * make robots get out of matcens better and be aware of player.
3559  *
3560  * Revision 1.78  1994/11/30  00:59:05  mike
3561  * optimizations.
3562  *
3563  * Revision 1.77  1994/11/27  23:13:39  matt
3564  * Made changes for new mprintf calling convention
3565  *
3566  * Revision 1.76  1994/11/23  21:59:34  mike
3567  * comment out some mprintfs.
3568  *
3569  * Revision 1.75  1994/11/21  16:07:14  mike
3570  * flip PARALLAX flag, prevent annoying debug information.
3571  *
3572  * Revision 1.74  1994/11/19  15:13:28  mike
3573  * remove unused code and data.
3574  *
3575  * Revision 1.73  1994/11/17  14:53:15  mike
3576  * segment validation functions moved from editor to main.
3577  *
3578  * Revision 1.72  1994/11/16  23:38:42  mike
3579  * new improved boss teleportation behavior.
3580  *
3581  * Revision 1.71  1994/11/13  17:18:30  mike
3582  * debug code, then comment it out.
3583  *
3584  * Revision 1.70  1994/11/11  16:41:43  mike
3585  * flip the PARALLAX flag.
3586  *
3587  * Revision 1.69  1994/11/11  16:33:45  mike
3588  * twiddle the PARALLAX flag.
3589  *
3590  *
3591  * Revision 1.68  1994/11/10  21:32:29  mike
3592  * debug code.
3593  *
3594  * Revision 1.67  1994/11/10  20:15:07  mike
3595  * fix stupid bug: uninitialized pointer.
3596  *
3597  * Revision 1.66  1994/11/10  17:45:15  mike
3598  * debugging.
3599  *
3600  * Revision 1.65  1994/11/10  17:28:10  mike
3601  * debugging.
3602
3603 ------------------------------------------------------------------------
3604 main/aistruct.h:
3605
3606  * Revision 1.2  1995/10/10  11:49:04  allender
3607  * PC ai code
3608  *
3609  * Revision 1.1  1995/05/16  15:54:08  allender
3610  * Initial revision
3611  *
3612  * Revision 2.0  1995/02/27  11:30:19  john
3613  * New version 2.0, which has no anonymous unions, builds with
3614  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
3615  *
3616  * Revision 1.34  1995/01/25  13:50:46  mike
3617  * Robots make angry sounds.
3618  *
3619  * Revision 1.33  1994/12/29  12:44:56  rob
3620  * Added new coop robot flag.
3621  *
3622  * Revision 1.32  1994/12/20  20:41:54  rob
3623  * Added new ai flag for multiplayer robots.
3624  *
3625  * Revision 1.31  1994/12/19  16:37:39  rob
3626  * Added a new flag for remote controlled objects.
3627  *
3628  * Revision 1.30  1994/12/07  00:36:07  mike
3629  * fix phys_apply_rot for robots -- ai was bashing effect in next frame.
3630  *
3631  * Revision 1.29  1994/12/02  22:06:28  mike
3632  * add fields to allow robots to make awareness sounds every so often, not every damn blasted frame
3633  *
3634  * Revision 1.28  1994/11/04  17:18:35  yuan
3635  * Increased MAX_SEG_POINTS to 2500.
3636  *
3637  * Revision 1.27  1994/10/17  21:19:22  mike
3638  * robot cloaking.
3639  *
3640  * Revision 1.26  1994/10/12  21:28:38  mike
3641  * Add new ai mode: AIM_OPEN_DOOR.
3642  * Add GOALSIDE to aip.
3643  *
3644  * Revision 1.25  1994/09/25  23:41:08  matt
3645  * Changed the object load & save code to read/write the structure fields one
3646  * at a time (rather than the whole structure at once).  This mean that the
3647  * object structure can be changed without breaking the load/save functions.
3648  * As a result of this change, the local_object data can be and has been
3649  * incorporated into the object array.  Also, timeleft is now a property
3650  * of all objects, and the object structure has been otherwise cleaned up.
3651  *
3652  * Revision 1.24  1994/09/21  12:28:11  mike
3653  * Change AI behavior for when player cloaked
3654  *
3655  * Revision 1.23  1994/09/19  21:43:00  mike
3656  * Add follow_path_start_seg and follow_path_end_seg to aistruct.h.
3657  *
3658  * Revision 1.22  1994/09/18  18:06:14  mike
3659  * Add Last_uncloaked_time and Last_uncloaked_position variables.
3660  *
3661  * Revision 1.21  1994/09/15  16:31:38  mike
3662  * Define GREEN_GUY
3663  * Add previous_visibility to ai_local struct.
3664  *
3665  * Revision 1.20  1994/09/12  19:12:45  mike
3666  * Change some bytes to ints in ai_local so I could set watchpoints.
3667  *
3668  * Revision 1.19  1994/08/25  21:53:31  mike
3669  * Add behavior, taking place of what used to be mode.
3670  *
3671  * Revision 1.18  1994/08/23  16:38:09  mike
3672  * rapidfire_count in ai_local.
3673  *
3674  * Revision 1.17  1994/08/19  17:38:23  mike
3675  * *** empty log message ***
3676  *
3677  * Revision 1.16  1994/08/17  22:18:58  mike
3678  * add time_since_processed to ai_local.
3679  *
3680  * Revision 1.15  1994/08/10  19:52:25  mike
3681  * Add Overall_agitation.
3682  *
3683  * Revision 1.14  1994/08/04  16:32:32  mike
3684  * Add time_player_seen.
3685  *
3686  * Revision 1.13  1994/07/28  16:58:11  mike
3687  * Move constants from ai.c
3688  *
3689  * Revision 1.12  1994/07/19  15:26:24  mike
3690  * New ai_static and ai_local structures.
3691  *
3692  * Revision 1.11  1994/07/15  15:17:19  matt
3693  * Changes MAX_AI_FLAGS for better alignment
3694
3695 ------------------------------------------------------------------------
3696 main/automap.c:
3697
3698  * Revision 1.8  1995/10/31  10:24:54  allender
3699  * shareware stuff
3700  *
3701  * Revision 1.7  1995/10/21  16:18:20  allender
3702  * blit pcx background directly to Page canvas instead of creating
3703  * seperate bitmap for it -- hope to solve VM bug on some macs
3704  *
3705  * Revision 1.6  1995/10/20  00:49:16  allender
3706  * added redbook check during automap
3707  *
3708  * Revision 1.5  1995/09/13  08:44:07  allender
3709  * Dave Denhart's changes to speed up the automap
3710  *
3711  * Revision 1.4  1995/08/18  15:46:00  allender
3712  * put text all on upper bar -- and fixed background since
3713  * changing xparency color
3714  *
3715  * Revision 1.3  1995/08/03  15:15:18  allender
3716  * fixed edge hashing problem causing automap to crash
3717  *
3718  * Revision 1.2  1995/07/12  12:49:27  allender
3719  * works in 640x480 mode
3720  *
3721  * Revision 1.1  1995/05/16  15:22:59  allender
3722  * Initial revision
3723  *
3724  * Revision 2.2  1995/03/21  14:41:26  john
3725  * Ifdef'd out the NETWORK code.
3726  *
3727  * Revision 2.1  1995/03/20  18:16:06  john
3728  * Added code to not store the normals in the segment structure.
3729  *
3730  * Revision 2.0  1995/02/27  11:32:55  john
3731  * New version 2.0, which has no anonymous unions, builds with
3732  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
3733  *
3734  * Revision 1.117  1995/02/22  14:11:31  allender
3735  * remove anonymous unions from object structure
3736  *
3737  * Revision 1.116  1995/02/22  13:24:39  john
3738  * Removed the vecmat anonymous unions.
3739  *
3740  * Revision 1.115  1995/02/09  14:57:02  john
3741  * Reduced mem usage. Made automap slide farther.
3742  *
3743  * Revision 1.114  1995/02/07  20:40:44  rob
3744  * Allow for anarchy automap of player pos by option.
3745  *
3746  * Revision 1.113  1995/02/07  15:45:33  john
3747  * Made automap memory be static.
3748  *
3749  * Revision 1.112  1995/02/02  12:24:00  adam
3750  * played with automap labels
3751  *
3752  * Revision 1.111  1995/02/02  01:52:52  john
3753  * Made the automap use small font.
3754  *
3755  * Revision 1.110  1995/02/02  01:34:34  john
3756  * Made Reset in automap not change segmentlimit.
3757  *
3758  * Revision 1.109  1995/02/02  01:23:11  john
3759  * Finalized the new automap partial viewer.
3760  *
3761  * Revision 1.108  1995/02/02  00:49:45  mike
3762  * new automap segment-depth functionality.
3763  *
3764  * Revision 1.107  1995/02/02  00:23:04  john
3765  * Half of the code for new connected distance stuff in automap.
3766  *
3767  * Revision 1.106  1995/02/01  22:54:00  john
3768  * Made colored doors not fade in automap. Made default
3769  * viewing area be maxxed.
3770  *
3771  * Revision 1.105  1995/02/01  13:16:13  john
3772  * Added great grates.
3773  *
3774  * Revision 1.104  1995/01/31  12:47:06  john
3775  * Made Alt+F only work with cheats enabled.
3776  *
3777  * Revision 1.103  1995/01/31  12:41:23  john
3778  * Working with new controls.
3779  *
3780  * Revision 1.102  1995/01/31  12:04:19  john
3781  * Version 2 of new key control.
3782  *
3783  * Revision 1.101  1995/01/31  11:32:00  john
3784  * First version of new automap system.
3785  *
3786  * Revision 1.100  1995/01/28  16:55:48  john
3787  * Made keys draw in automap in the segments that you have
3788  * visited.
3789  *
3790  * Revision 1.99  1995/01/28  14:44:51  john
3791  * Made hostage doors show up on automap.
3792  *
3793  * Revision 1.98  1995/01/22  17:03:49  rob
3794  * Fixed problem drawing playerships in automap coop/team mode
3795  *
3796  * Revision 1.97  1995/01/21  17:23:11  john
3797  * Limited S movement in map. Made map bitmap load from disk
3798  * and then freed it.
3799  *
3800  * Revision 1.96  1995/01/19  18:55:38  john
3801  * Don't draw players in automap if not obj_player.
3802  *
3803  * Revision 1.95  1995/01/19  18:48:13  john
3804  * Made player colors better in automap.
3805  *
3806  * Revision 1.94  1995/01/19  17:34:52  rob
3807  * Added team colorizations in automap.
3808  *
3809  * Revision 1.93  1995/01/19  17:15:36  rob
3810  * Trying to add player ships into map for coop and team mode.
3811  *
3812  * Revision 1.92  1995/01/19  17:11:09  john
3813  * Added code for Rob to draw Multiplayer ships in automap.
3814  *
3815  * Revision 1.91  1995/01/12  13:35:20  john
3816  * Fixed bug with Segment 0 not getting displayed
3817  * in automap if you have EDITOR compiled in.
3818  *
3819  * Revision 1.90  1995/01/08  16:17:14  john
3820  * Added code to draw player's up vector while in automap.
3821  *
3822  * Revision 1.89  1995/01/08  16:09:41  john
3823  * Fixed problems with grate.
3824  *
3825  * Revision 1.88  1994/12/14  22:54:17  john
3826  * Fixed bug that didn't show hostages in automap.
3827  *
3828  * Revision 1.87  1994/12/09  00:41:03  mike
3829  * fix hang in automap print screen
3830  *
3831  * Revision 1.86  1994/12/05  23:37:15  matt
3832  * Took out calls to warning() function
3833  *
3834  * Revision 1.85  1994/12/03  22:35:28  yuan
3835  * Localization 412
3836  *
3837  * Revision 1.84  1994/12/02  15:05:45  matt
3838  * Added new "official" cheats
3839  *
3840  * Revision 1.83  1994/11/30  12:10:49  adam
3841  * added support for PCX titles/brief screens
3842  *
3843  * Revision 1.82  1994/11/27  23:15:12  matt
3844  * Made changes for new mprintf calling convention
3845  *
3846  * Revision 1.81  1994/11/27  15:35:52  matt
3847  * Enable screen shots even when debugging is turned off
3848  *
3849  * Revision 1.80  1994/11/26  22:51:43  matt
3850  * Removed editor-only fields from segment structure when editor is compiled
3851  * out, and padded segment structure to even multiple of 4 bytes.
3852  *
3853  * Revision 1.79  1994/11/26  16:22:48  matt
3854  * Reduced leave_time
3855  *
3856  * Revision 1.78  1994/11/23  22:00:10  mike
3857  * show level number.
3858  *
3859  * Revision 1.77  1994/11/21  11:40:33  rob
3860  * Tweaked the game-loop for automap in multiplayer games.
3861  *
3862  * Revision 1.76  1994/11/18  16:42:06  adam
3863  * removed a font
3864  *
3865  * Revision 1.75  1994/11/17  13:06:48  adam
3866  * changed font
3867  *
3868  * Revision 1.74  1994/11/14  20:47:17  john
3869  * Attempted to strip out all the code in the game
3870  * directory that uses any ui code.
3871
3872 ------------------------------------------------------------------------
3873 main/automap.h:
3874
3875  * Revision 1.2  1995/07/12  12:48:33  allender
3876  * moved edge_list structure into here for mallocing in mglobal
3877  *
3878  * Revision 1.1  1995/05/16  15:54:31  allender
3879  * Initial revision
3880  *
3881  * Revision 2.0  1995/02/27  11:29:35  john
3882  * New version 2.0, which has no anonymous unions, builds with
3883  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
3884  *
3885  * Revision 1.5  1994/12/09  00:41:21  mike
3886  * fix hang in automap print screen
3887  *
3888  * Revision 1.4  1994/07/14  11:25:29  john
3889  * Made control centers destroy better; made automap use Tab key.
3890  *
3891  * Revision 1.3  1994/07/12  15:45:51  john
3892  * Made paritial map.
3893  *
3894  * Revision 1.2  1994/07/07  18:35:05  john
3895  * First version of automap
3896  *
3897  * Revision 1.1  1994/07/07  15:12:13  john
3898  * Initial revision
3899
3900 ------------------------------------------------------------------------
3901 main/bm.c:
3902
3903  * Revision 1.1  1995/05/16  15:23:08  allender
3904  * Initial revision
3905  *
3906  * Revision 2.3  1995/03/14  16:22:04  john
3907  * Added cdrom alternate directory stuff.
3908  *
3909  * Revision 2.2  1995/03/07  16:51:48  john
3910  * Fixed robots not moving without edtiro bug.
3911  *
3912  * Revision 2.1  1995/03/06  15:23:06  john
3913  * New screen techniques.
3914  *
3915  * Revision 2.0  1995/02/27  11:27:05  john
3916  * New version 2.0, which has no anonymous unions, builds with
3917  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
3918
3919 ------------------------------------------------------------------------
3920 main/bm.h:
3921
3922  * Revision 1.1  1995/05/16  15:54:39  allender
3923  * Initial revision
3924  *
3925  * Revision 2.0  1995/02/27  11:32:59  john
3926  * New version 2.0, which has no anonymous unions, builds with
3927  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
3928  *
3929  * Revision 1.60  1994/12/06  13:24:58  matt
3930  * Made exit model come out of bitmaps.tbl
3931  *
3932  * Revision 1.59  1994/11/10  14:02:48  matt
3933  * Hacked in support for player ships with different textures
3934  *
3935  * Revision 1.58  1994/10/27  13:32:17  john
3936  * Made TmapList only be in if editor
3937  *
3938  * Revision 1.57  1994/10/11  12:25:20  matt
3939  * Added "hot rocks" that create badass explosion when hit by weapons
3940  *
3941  * Revision 1.56  1994/09/29  12:38:13  matt
3942  * Took out include of digi.h, saving hours of unneeded compiles
3943  *
3944  * Revision 1.55  1994/09/25  00:39:51  matt
3945  * Added the ability to make eclips (monitors, fans) which can be blown up
3946  *
3947  * Revision 1.54  1994/09/17  01:40:59  matt
3948  * Added status bar/sizable window mode, and in the process revamped the
3949  * whole cockpit mode system.
3950  *
3951  * Revision 1.53  1994/09/08  16:20:48  matt
3952  * Gave textures the ability to cause damage when scraped
3953  *
3954  * Revision 1.52  1994/08/30  22:23:43  matt
3955  * Added cabability for player ship to have alternate model to use to
3956  * create debris.
3957  *
3958  * Revision 1.51  1994/08/26  15:35:57  matt
3959  * Made eclips usable on more than one object at a time
3960  *
3961  * Revision 1.50  1994/08/23  16:59:51  john
3962  * Added 3 cockpuits
3963  *
3964  * Revision 1.49  1994/08/19  20:09:43  matt
3965  * Added end-of-level cut scene with external scene
3966  *
3967  * Revision 1.48  1994/08/12  22:20:45  matt
3968  * Generalized polygon objects (such as control center)
3969  *
3970  * Revision 1.47  1994/08/09  16:04:21  john
3971  * Added network players to editor.
3972  *
3973  * Revision 1.46  1994/08/09  09:01:31  john
3974  * Increase MAX_TEXTURES
3975  *
3976  * Revision 1.45  1994/07/13  00:14:57  matt
3977  * Moved all (or nearly all) of the values that affect player movement to
3978  * bitmaps.tbl
3979  *
3980  * Revision 1.44  1994/06/20  21:33:15  matt
3981  * Made bm.h not include sounds.h, to reduce dependencies
3982  *
3983  * Revision 1.43  1994/06/15  11:55:58  matt
3984  * Added 3d model for player
3985  *
3986  * Revision 1.42  1994/06/13  16:09:11  adam
3987  * increased max textures to 600
3988  *
3989  * Revision 1.41  1994/06/06  15:38:58  john
3990  * Made fullscreen view be just another cockpit, but the "hole"
3991  * in the cockpit is just bigger.
3992  *
3993  * Revision 1.40  1994/05/26  21:08:59  matt
3994  * Moved robot stuff out of polygon model and into robot_info struct
3995  * Made new file, robot.c, to deal with robots
3996  *
3997  * Revision 1.39  1994/05/18  11:00:05  mike
3998  * Add robot_info stuff.
3999  *
4000  * Revision 1.38  1994/05/17  14:44:56  mike
4001  * Get object type and id from ObjType and ObjId.
4002  *
4003  * Revision 1.37  1994/05/17  12:04:45  mike
4004  * Deal with little known fact that polygon object != robot.
4005  *
4006  * Revision 1.36  1994/05/16  16:17:35  john
4007  * Bunch of stuff on my Inferno Task list May16-23
4008  *
4009  * Revision 1.35  1994/04/27  11:43:42  john
4010  * First version of sound! Yay!
4011  *
4012  * Revision 1.34  1994/04/22  10:53:48  john
4013  * Increased MAX_TEXTURES to 500.
4014  *
4015  * Revision 1.33  1994/04/01  11:15:05  yuan
4016  * Added multiple bitmap functionality to all objects...
4017  * (hostages, powerups, lasers, etc.)
4018  * Hostages and powerups are implemented in the object system,
4019  * just need to finish function call to "affect" player.
4020  *
4021  * Revision 1.32  1994/03/25  17:30:37  yuan
4022  * Checking in hostage stuff.
4023  *
4024  * Revision 1.31  1994/03/17  18:07:28  yuan
4025  * Removed switch code... Now we just have Walls, Triggers, and Links...
4026  *
4027  * Revision 1.30  1994/03/15  17:03:51  yuan
4028  * Added Robot/object bitmap capability
4029  *
4030  * Revision 1.29  1994/03/15  16:32:58  yuan
4031  * Cleaned up bm-loading code.
4032  * (Fixed structures too)
4033  *
4034  * Revision 1.28  1994/03/04  17:09:13  yuan
4035  * New door stuff.
4036  *
4037  * Revision 1.27  1994/01/31  14:50:09  yuan
4038  * Added Robotex
4039  *
4040  * Revision 1.26  1994/01/31  12:27:14  yuan
4041  * Added demo stuff (menu, etc.)
4042  *
4043  * Revision 1.25  1994/01/25  17:11:43  john
4044  * New texmaped lasers.
4045  *
4046  * Revision 1.24  1994/01/24  11:48:06  yuan
4047  * Lighting stuff
4048  *
4049  * Revision 1.23  1994/01/22  13:40:15  yuan
4050  * Modified the bmd_bitmap structure a bit.
4051  * (Saves some memory, and added reflection)
4052  *
4053  * Revision 1.22  1994/01/11  10:58:38  yuan
4054  * Added effects system
4055  *
4056  * Revision 1.21  1994/01/06  17:13:12  john
4057  * Added Video clip functionality
4058  *
4059  * Revision 1.20  1993/12/21  20:00:15  john
4060  * moved selector stuff to grs_bitmap
4061  *
4062  * Revision 1.19  1993/12/21  19:33:58  john
4063  * Added selector to bmd_bitmap.
4064  *
4065  * Revision 1.18  1993/12/07  12:28:48  john
4066  * moved bmd_palette to gr_palette
4067  *
4068  * Revision 1.17  1993/12/06  18:40:37  matt
4069  * Changed object loading & handling
4070  *
4071  * Revision 1.16  1993/12/05  23:05:03  matt
4072  * Added include of gr.h
4073  *
4074  * Revision 1.15  1993/12/03  17:38:04  yuan
4075  * Ooops. meant to say:
4076  * Moved MAX variables to bm.c, Arrays left open.
4077  *
4078  * Revision 1.14  1993/12/03  17:37:26  yuan
4079  * Added Asserts.
4080  *
4081  * Revision 1.13  1993/12/02  17:22:54  yuan
4082  * New global var. Num_object_types
4083  *
4084  * Revision 1.12  1993/12/02  16:34:39  yuan
4085  * Added fireball hack stuff.
4086  *
4087  * Revision 1.11  1993/12/02  15:45:14  yuan
4088  * Added a buncha constants, variables, and function prototypes
4089  * for the new bitmaps.tbl format.
4090  *
4091  * Revision 1.10  1993/12/01  11:25:11  yuan
4092  * Changed MALLOC'd buffers for filename and type in
4093  * the bmd_bitmap structure into arrays... Saves time
4094  * at load up.
4095  *
4096  * Revision 1.9  1993/12/01  00:28:09  yuan
4097  * New bitmap system structure.
4098  *
4099  * Revision 1.8  1993/11/03  11:34:08  john
4100  * made it use bitmaps.tbl
4101  *
4102  * Revision 1.7  1993/10/26  18:11:03  john
4103  * made all palette data be statically allocated
4104  *
4105  * Revision 1.6  1993/10/19  12:17:51  john
4106  * *** empty log message ***
4107  *
4108  * Revision 1.5  1993/10/16  20:02:41  matt
4109  * Changed name of backdrop bitmap file
4110  *
4111  * Revision 1.4  1993/10/12  15:08:52  matt
4112  * Added a bunch of new textures
4113  *
4114  * Revision 1.3  1993/10/12  12:30:41  john
4115  * *** empty log message ***
4116  *
4117  * Revision 1.2  1993/10/12  11:27:58  john
4118  * added more bitmaps
4119  *
4120  * Revision 1.1  1993/09/23  13:09:10  john
4121  * Initial revision
4122
4123 ------------------------------------------------------------------------
4124 main/bmread.c:
4125
4126  * Revision 2.4  1995/03/28  18:05:29  john
4127  * Fixed it so you don't have to delete pig after changing bitmaps.tbl
4128  *
4129  * Revision 2.3  1995/03/07  16:52:03  john
4130  * Fixed robots not moving without edtiro bug.
4131  *
4132  * Revision 2.2  1995/03/06  16:10:20  mike
4133  * Fix compile errors if building without editor.
4134  *
4135  * Revision 2.1  1995/03/02  14:55:40  john
4136  * Fixed bug with EDITOR never defined.
4137  *
4138  * Revision 2.0  1995/02/27  11:33:10  john
4139  * New version 2.0, which has no anonymous unions, builds with
4140  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
4141  *
4142  * Revision 1.1  1995/02/25  14:02:36  john
4143  * Initial revision
4144
4145 ------------------------------------------------------------------------
4146 main/ctrlcen.c:
4147
4148  * Revision 1.2  1995/10/17  13:12:13  allender
4149  * added param to ai call
4150  *
4151  * Revision 1.1  1995/05/16  15:23:27  allender
4152  * Initial revision
4153  *
4154  * Revision 2.1  1995/03/21  14:40:25  john
4155  * Ifdef'd out the NETWORK code.
4156  *
4157  * Revision 2.0  1995/02/27  11:31:25  john
4158  * New version 2.0, which has no anonymous unions, builds with
4159  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
4160  *
4161  * Revision 1.22  1995/02/11  01:56:14  mike
4162  * robots don't fire cheat.
4163  *
4164  * Revision 1.21  1995/02/05  13:39:39  mike
4165  * fix stupid bug in control center firing timing.
4166  *
4167  * Revision 1.20  1995/02/03  17:41:21  mike
4168  * fix control cen next fire time in multiplayer.
4169  *
4170  * Revision 1.19  1995/01/29  13:46:41  mike
4171  * adapt to new create_small_fireball_on_object prototype.
4172  *
4173  * Revision 1.18  1995/01/18  16:12:13  mike
4174  * Make control center aware of a cloaked playerr when he fires.
4175  *
4176  * Revision 1.17  1995/01/12  12:53:44  rob
4177  * Trying to fix a bug with having cntrlcen in robotarchy games.
4178  *
4179  * Revision 1.16  1994/12/11  12:37:22  mike
4180  * make control center smarter about firing at cloaked player, don't fire through self, though
4181  * it still looks that way due to prioritization problems.
4182  *
4183  * Revision 1.15  1994/12/01  11:34:33  mike
4184  * fix control center shield strength in multiplayer team games.
4185  *
4186  * Revision 1.14  1994/11/30  15:44:29  mike
4187  * make cntrlcen harder at higher levels.
4188  *
4189  * Revision 1.13  1994/11/29  22:26:23  yuan
4190  * Fixed boss bug.
4191  *
4192  * Revision 1.12  1994/11/27  23:12:31  matt
4193  * Made changes for new mprintf calling convention
4194  *
4195  * Revision 1.11  1994/11/23  17:29:38  mike
4196  * deal with peculiarities going between net and regular game on boss level.
4197  *
4198  * Revision 1.10  1994/11/18  18:27:15  rob
4199  * Fixed some bugs with the last version.
4200  *
4201  * Revision 1.9  1994/11/18  17:13:59  mike
4202  * special case handling for level 8.
4203  *
4204  * Revision 1.8  1994/11/15  12:45:28  mike
4205  * don't let cntrlcen know where a cloaked player is.
4206  *
4207  * Revision 1.7  1994/11/08  12:18:37  mike
4208  * small explosions on control center.
4209  *
4210  * Revision 1.6  1994/11/02  17:59:18  rob
4211  * Changed control centers so they can find people in network games.
4212  * Side effect of this is that control centers can find cloaked players.
4213  * (see in-code comments for explanation).
4214  * Also added network hooks so control center shots 'sync up'.
4215  *
4216  * Revision 1.5  1994/10/22  14:13:21  mike
4217  * Make control center stop firing shortly after player dies.
4218  * Fix bug: If play from editor and die, tries to initialize non-control center object.
4219  *
4220  * Revision 1.4  1994/10/20  15:17:30  mike
4221  * Hack for control center inside boss robot.
4222  *
4223  * Revision 1.3  1994/10/20  09:47:46  mike
4224  * lots stuff.
4225  *
4226  * Revision 1.2  1994/10/17  21:35:09  matt
4227  * Added support for new Control Center/Main Reactor
4228  *
4229  * Revision 1.1  1994/10/17  20:24:01  matt
4230  * Initial revision
4231
4232 ------------------------------------------------------------------------
4233 main/ctrlcen.h:
4234
4235  * Revision 2.0  1995/02/27  11:30:40  john
4236  * New version 2.0, which has no anonymous unions, builds with
4237  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
4238  *
4239  * Revision 1.7  1995/02/01  16:34:14  john
4240  * Linted.
4241  *
4242  * Revision 1.6  1995/01/03  20:19:14  john
4243  * Pretty good working version of game save.
4244  *
4245  * Revision 1.5  1994/11/08  12:18:28  mike
4246  * small explosions on control center.
4247  *
4248  * Revision 1.4  1994/11/02  18:00:12  rob
4249  * Added extern for Gun_pos array for network hooks.
4250  *
4251  * Revision 1.3  1994/10/20  09:47:37  mike
4252  * *** empty log message ***
4253  *
4254  * Revision 1.2  1994/10/17  21:35:10  matt
4255  * Added support for new Control Center/Main Reactor
4256  *
4257  * Revision 1.1  1994/10/17  20:24:28  matt
4258  * Initial revision
4259
4260 ------------------------------------------------------------------------
4261 main/collide.c:
4262
4263  * Revision 1.3  1995/11/08  17:15:21  allender
4264  * make collide_player_and_weapon play player_hit_sound if
4265  * shareware and not my playernum
4266  *
4267  * Revision 1.2  1995/10/31  10:24:37  allender
4268  * shareware stuff
4269  *
4270  * Revision 1.1  1995/05/16  15:23:34  allender
4271  * Initial revision
4272  *
4273  * Revision 2.5  1995/07/26  12:07:46  john
4274  * Made code that pages in weapon_info->robot_hit_vclip not
4275  * page in unless it is a badass weapon.  Took out old functionallity
4276  * of using this if no robot exp1_vclip, since all robots have these.
4277  *
4278  * Revision 2.4  1995/03/30  16:36:09  mike
4279  * text localization.
4280  *
4281  * Revision 2.3  1995/03/24  15:11:13  john
4282  * Added ugly robot cheat.
4283  *
4284  * Revision 2.2  1995/03/21  14:41:04  john
4285  * Ifdef'd out the NETWORK code.
4286  *
4287  * Revision 2.1  1995/03/20  18:16:02  john
4288  * Added code to not store the normals in the segment structure.
4289  *
4290  * Revision 2.0  1995/02/27  11:32:20  john
4291  * New version 2.0, which has no anonymous unions, builds with
4292  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
4293  *
4294  * Revision 1.289  1995/02/22  13:56:06  allender
4295  * remove anonymous unions from object structure
4296  *
4297  * Revision 1.288  1995/02/11  15:52:45  rob
4298  * Included text.h.
4299  *
4300  * Revision 1.287  1995/02/11  15:04:11  rob
4301  * Localized a string.
4302  *
4303  * Revision 1.286  1995/02/11  14:25:41  rob
4304  * Added invul. controlcen option.
4305  *
4306  * Revision 1.285  1995/02/06  15:53:00  mike
4307  * create awareness event for player:wall collision.
4308  *
4309  * Revision 1.284  1995/02/05  23:18:17  matt
4310  * Deal with objects (such as fusion blobs) that get created already
4311  * poking through a wall
4312  *
4313  * Revision 1.283  1995/02/01  17:51:33  mike
4314  * fusion bolt can now toast multiple proximity bombs.
4315  *
4316  * Revision 1.282  1995/02/01  17:29:20  john
4317  * Lintized
4318  *
4319  * Revision 1.281  1995/02/01  15:04:00  rob
4320  * Changed sound of weapons hitting invulnerable players.
4321  *
4322  * Revision 1.280  1995/01/31  16:16:35  mike
4323  * Separate smart blobs for robot and player.
4324  *
4325  * Revision 1.279  1995/01/29  15:57:10  rob
4326  * Fixed another bug with robot_request_change calls.
4327  *
4328  * Revision 1.278  1995/01/28  18:15:06  rob
4329  * Fixed a bug in multi_request_robot_change.
4330  *
4331  * Revision 1.277  1995/01/27  15:15:44  rob
4332  * Fixing problems with controlcen damage.
4333  *
4334  * Revision 1.276  1995/01/27  15:13:10  mike
4335  * comment out mprintf.
4336  *
4337  * Revision 1.275  1995/01/26  22:11:51  mike
4338  * Purple chromo-blaster (ie, fusion cannon) spruce up (chromification)
4339  *
4340  * Revision 1.274  1995/01/26  18:57:55  rob
4341  * Changed two uses of digi_play_sample to digi_link_sound_to_pos which
4342  * made more sense.
4343  *
4344  * Revision 1.273  1995/01/25  23:37:58  mike
4345  * make persistent objects not hit player more than once.
4346  * Also, make them hit player before degrading them, else they often did 0 damage.
4347  *
4348  * Revision 1.272  1995/01/25  18:23:54  rob
4349  * Don't let players pick up powerups in exit tunnel.
4350  *
4351  * Revision 1.271  1995/01/25  13:43:18  rob
4352  * Added robot transfer for player collisions.
4353  * Removed mprintf from collide.c on Mike's request.
4354  *
4355  * Revision 1.270  1995/01/25  10:24:01  mike
4356  * Make sizzle and rock happen in lava even if you're invulnerable.
4357  *
4358  * Revision 1.269  1995/01/22  17:05:33  mike
4359  * Call multi_robot_request_change when a robot gets whacked by a player or
4360  * player weapon, if player_num != Player_num
4361  *
4362  * Revision 1.268  1995/01/21  21:20:28  matt
4363  * Fixed stupid bug
4364  *
4365  * Revision 1.267  1995/01/21  18:47:47  rob
4366  * Fixed a really dumb bug with player keys.
4367  *
4368  * Revision 1.266  1995/01/21  17:39:30  matt
4369  * Cleaned up laser/player hit wall confusions
4370  *
4371  * Revision 1.265  1995/01/19  17:44:42  mike
4372  * damage_force removed, that information coming from strength field.
4373  *
4374  * Revision 1.264  1995/01/18  17:12:56  rob
4375  * Fixed control stuff for multiplayer.
4376  *
4377  * Revision 1.263  1995/01/18  16:12:33  mike
4378  * Make control center aware of a cloaked playerr when he fires.
4379  *
4380  * Revision 1.262  1995/01/17  17:48:42  rob
4381  * Added key syncing for coop players.
4382  *
4383  * Revision 1.261  1995/01/16  19:30:28  rob
4384  * Fixed an assert error in fireball.c
4385  *
4386  * Revision 1.260  1995/01/16  19:23:51  mike
4387  * Say Boss_been_hit if he been hit so he gates appropriately.
4388  *
4389  * Revision 1.259  1995/01/16  11:55:16  mike
4390  * make enemies become aware of player if he damages control center.
4391  *
4392  * Revision 1.258  1995/01/15  16:42:00  rob
4393  * Fixed problem with robot bumping damage.
4394  *
4395  * Revision 1.257  1995/01/14  19:16:36  john
4396  * First version of new bitmap paging code.
4397  *
4398  * Revision 1.256  1995/01/03  17:58:37  rob
4399  * Fixed scoring problems.
4400  *
4401  * Revision 1.255  1994/12/29  12:41:11  rob
4402  * Tweaking robot exploding in coop.
4403  *
4404  * Revision 1.254  1994/12/28  10:37:59  rob
4405  * Fixed ifdef of multibot stuff.
4406  *
4407  * Revision 1.253  1994/12/21  19:03:14  rob
4408  * Fixing score accounting for multiplayer robots
4409  *
4410  * Revision 1.252  1994/12/21  17:36:31  rob
4411  * Fix hostage pickup problem in network.
4412  * tweaking robot powerup drops.
4413  *
4414  * Revision 1.251  1994/12/19  20:32:34  rob
4415  * Remove awareness events from player collisions and lasers that are not the console player.
4416  *
4417  * Revision 1.250  1994/12/19  20:01:22  rob
4418  * Added multibot.h include.
4419  *
4420  * Revision 1.249  1994/12/19  16:36:41  rob
4421  * Patches damaging of multiplayer robots.
4422  *
4423  * Revision 1.248  1994/12/14  21:15:18  rob
4424  * play lava hiss across network.
4425  *
4426  * Revision 1.247  1994/12/14  17:09:09  matt
4427  * Fixed problem with no sound when lasers hit closed walls, like grates.
4428  *
4429  * Revision 1.246  1994/12/14  09:51:49  mike
4430  * make any weapon cause proximity bomb detonation.
4431  *
4432  * Revision 1.245  1994/12/13  12:55:25  mike
4433  * change number of proximity bomb powerups which get dropped.
4434  *
4435  * Revision 1.244  1994/12/12  17:17:53  mike
4436  * make boss cloak/teleport when get hit, make quad laser 3/4 as powerful.
4437  *
4438  * Revision 1.243  1994/12/12  12:07:51  rob
4439  * Don't take damage if we're in endlevel sequence.
4440  *
4441  * Revision 1.242  1994/12/11  23:44:52  mike
4442  * less phys_apply_rot() at higher skill levels.
4443  *
4444  * Revision 1.241  1994/12/11  12:37:02  mike
4445  * remove stupid robot spinning code.  it was really stupid.  (actually, call here, code in ai.c).
4446  *
4447  * Revision 1.240  1994/12/10  16:44:51  matt
4448  * Added debugging code to track down door that turns into rock
4449  *
4450  * Revision 1.239  1994/12/09  14:59:19  matt
4451  * Added system to attach a fireball to another object for rendering purposes,
4452  * so the fireball always renders on top of (after) the object.
4453  *
4454  * Revision 1.238  1994/12/09  09:57:02  mike
4455  * Don't allow robots or their weapons to pass through control center.
4456  *
4457  * Revision 1.237  1994/12/08  15:46:03  mike
4458  * better robot behavior.
4459  *
4460  * Revision 1.236  1994/12/08  12:32:56  mike
4461  * make boss dying more interesting.
4462  *
4463  * Revision 1.235  1994/12/07  22:49:15  mike
4464  * tweak rotation due to collision.
4465  *
4466  * Revision 1.234  1994/12/07  16:44:50  mike
4467  * make bump sound if supposed to, even if not taking damage.
4468  *
4469  * Revision 1.233  1994/12/07  12:55:08  mike
4470  * tweak rotvel applied from collisions.
4471  *
4472  * Revision 1.232  1994/12/05  19:30:48  matt
4473  * Fixed horrible segment over-dereferencing
4474  *
4475  * Revision 1.231  1994/12/05  00:32:15  mike
4476  * do rotvel on badass and bump collisions.
4477  *
4478  * Revision 1.230  1994/12/03  12:49:22  mike
4479  * don't play bonk sound when you collide with a volatile wall (like lava).
4480  *
4481  * Revision 1.229  1994/12/02  16:51:09  mike
4482  * make lava sound only happen at 4 Hz.
4483  *
4484  * Revision 1.228  1994/11/30  23:55:27  rob
4485  * Fixed a bug where a laser hitting a wall was making 2 sounds.
4486  *
4487  * Revision 1.227  1994/11/30  20:11:00  rob
4488  * Fixed # of dropped laser powerups.
4489  *
4490  * Revision 1.226  1994/11/30  19:19:03  rob
4491  * Transmit collission sounds for net games.
4492  *
4493  * Revision 1.225  1994/11/30  16:33:01  mike
4494  * new boss behavior.
4495  *
4496  * Revision 1.224  1994/11/30  15:44:17  mike
4497  * /2 on boss smart children damage.
4498  *
4499  * Revision 1.223  1994/11/30  14:03:03  mike
4500  * hook for claw sounds
4501  *
4502  * Revision 1.222  1994/11/29  20:41:09  matt
4503  * Deleted a bunch of commented-out lines
4504  *
4505  * Revision 1.221  1994/11/27  23:15:08  matt
4506  * Made changes for new mprintf calling convention
4507  *
4508  * Revision 1.220  1994/11/19  16:11:28  rob
4509  * Collision damage with walls or lava is counted as suicides in net games
4510  *
4511  * Revision 1.219  1994/11/19  15:20:41  mike
4512  * rip out unused code and data
4513  *
4514  * Revision 1.218  1994/11/17  18:44:27  rob
4515  * Added OBJ_GHOST to list of valid player types to create eggs.
4516  *
4517  * Revision 1.217  1994/11/17  14:57:59  mike
4518  * moved segment validation functions from editor to main.
4519  *
4520  * Revision 1.216  1994/11/16  23:38:36  mike
4521  * new improved boss teleportation behavior.
4522  *
4523  * Revision 1.215  1994/11/16  12:16:29  mike
4524  * Enable collisions between robots.  A hack in fvi.c only does this for robots which lunge to attack (eg, green guy)
4525  *
4526  * Revision 1.214  1994/11/15  16:51:50  mike
4527  * bump player when he hits a volatile wall.
4528  *
4529  * Revision 1.213  1994/11/12  16:38:44  mike
4530  * allow flares to open doors.
4531  *
4532  * Revision 1.212  1994/11/10  13:09:19  matt
4533  * Added support for new run-length-encoded bitmaps
4534  *
4535  * Revision 1.211  1994/11/09  17:05:43  matt
4536  * Fixed problem with volatile walls
4537  *
4538  * Revision 1.210  1994/11/09  12:11:46  mike
4539  * only award points if ConsoleObject killed robot.
4540  *
4541  * Revision 1.209  1994/11/09  11:11:03  yuan
4542  * Made wall volatile if either tmap_num1 or tmap_num2 is a volatile wall.
4543  *
4544  * Revision 1.208  1994/11/08  12:20:15  mike
4545  * moved do_controlcen_destroyed_stuff from here to cntrlcen.c
4546  *
4547  * Revision 1.207  1994/11/02  23:22:08  mike
4548  * Make ` (backquote, KEY_LAPOSTRO) tell what wall was hit by laser.
4549  *
4550  * Revision 1.206  1994/11/02  18:03:00  rob
4551  * Fix control_center_been_hit logic so it only cares about the local player.
4552  * Other players take care of their own control center 'ai'.
4553  *
4554  * Revision 1.205  1994/11/01  19:37:33  rob
4555  * Changed the max # of consussion missiles to 4.
4556  * (cause they're lame and clutter things up)
4557  *
4558  * Revision 1.204  1994/11/01  18:06:35  john
4559  * Tweaked wall banging sound constant.
4560  *
4561  * Revision 1.203  1994/11/01  18:01:40  john
4562  * Made wall bang less obnoxious, but volume based.
4563  *
4564  * Revision 1.202  1994/11/01  17:11:05  rob
4565  * Changed some stuff in drop_player_eggs.
4566  *
4567  * Revision 1.201  1994/11/01  12:18:23  john
4568  * Added sound volume support. Made wall collisions be louder/softer.
4569  *
4570  * Revision 1.200  1994/10/31  13:48:44  rob
4571  * Fixed bug in opening doors over network/modem.  Added a new message
4572  * type to multi.c that communicates door openings across the net.
4573  * Changed includes in multi.c and wall.c to accomplish this.
4574  *
4575  * Revision 1.199  1994/10/28  14:42:52  john
4576  * Added sound volumes to all sound calls.
4577  *
4578  * Revision 1.198  1994/10/27  16:58:37  allender
4579  * added demo recording of monitors blowing up
4580  *
4581  * Revision 1.197  1994/10/26  23:20:52  matt
4582  * Tone down flash even more
4583  *
4584  * Revision 1.196  1994/10/26  23:01:50  matt
4585  * Toned down red flash when damaged
4586  *
4587  * Revision 1.195  1994/10/26  15:56:29  yuan
4588  * Tweaked some palette flashes.
4589  *
4590  * Revision 1.194  1994/10/25  11:32:26  matt
4591  * Fixed bugs with vulcan powerups in mutliplayer
4592  *
4593  * Revision 1.193  1994/10/25  10:51:18  matt
4594  * Vulcan cannon powerups now contain ammo count
4595  *
4596  * Revision 1.192  1994/10/24  14:14:05  matt
4597  * Fixed bug in bump_two_objects()
4598  *
4599  * Revision 1.191  1994/10/23  19:17:04  matt
4600  * Fixed bug with "no key" messages
4601  *
4602  * Revision 1.190  1994/10/22  00:08:46  matt
4603  * Fixed up problems with bonus & game sequencing
4604  * Player doesn't get credit for hostages unless he gets them out alive
4605  *
4606  * Revision 1.189  1994/10/21  20:42:34  mike
4607  * Clear number of hostages on board between levels.
4608  *
4609  * Revision 1.188  1994/10/20  15:17:43  mike
4610  * control center in boss handling.
4611  *
4612  * Revision 1.187  1994/10/20  10:09:47  mike
4613  * Only ever drop 1 shield powerup in multiplayer (as an egg).
4614  *
4615  * Revision 1.186  1994/10/20  09:47:11  mike
4616  * Fix bug in dropping vulcan ammo in multiplayer.
4617  * Also control center stuff.
4618  *
4619  * Revision 1.185  1994/10/19  15:14:32  john
4620  * Took % hits out of player structure, made %kills work properly.
4621  *
4622  * Revision 1.184  1994/10/19  11:33:16  john
4623  * Fixed hostage rescued percent.
4624  *
4625  * Revision 1.183  1994/10/19  11:16:49  mike
4626  * Don't allow crazy josh to open locked doors.
4627  * Don't allow weapons to harm parent.
4628  *
4629  * Revision 1.182  1994/10/18  18:37:01  mike
4630  * No more hostage killing.  Too much stuff to do to integrate into game.
4631  *
4632  * Revision 1.181  1994/10/18  16:37:35  mike
4633  * Debug function for Yuan: Show seg:side when hit by puny laser if Show_seg_and_side != 0.
4634  *
4635  * Revision 1.180  1994/10/18  10:53:17  mike
4636  * Support attack type as a property of a robot, not of being == GREEN_GUY.
4637  *
4638  * Revision 1.179  1994/10/17  21:18:36  mike
4639  * diminish damage player does to robot due to collision, only took 2-3 hits to kill a josh.
4640  *
4641  * Revision 1.178  1994/10/17  20:30:40  john
4642  * Made player_hostages_rescued or whatever count properly.
4643  *
4644  * Revision 1.177  1994/10/16  12:42:56  mike
4645  * Trap bogus amount of vulcan ammo dropping.
4646  *
4647  * Revision 1.176  1994/10/15  19:06:51  mike
4648  * Drop vulcan ammo if player has it, but no vulcan cannon (when he dies).
4649  *
4650  * Revision 1.175  1994/10/13  15:42:06  mike
4651  * Remove afterburner.
4652  *
4653  * Revision 1.174  1994/10/13  11:12:57  mike
4654  * Apply damage to robots.  I hosed it a couple weeks ago when I made the green guy special.
4655
4656 ------------------------------------------------------------------------
4657 main/collide.h:
4658
4659  * Revision 1.1  1995/05/16  15:55:09  allender
4660  * Initial revision
4661  *
4662  * Revision 2.0  1995/02/27  11:28:59  john
4663  * New version 2.0, which has no anonymous unions, builds with
4664  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
4665  *
4666  * Revision 1.23  1995/01/26  22:11:47  mike
4667  * Purple chromo-blaster (ie, fusion cannon) spruce up (chromification)
4668  *
4669  * Revision 1.22  1994/12/21  19:03:24  rob
4670  * Fixing score accounting for multiplayer robots
4671  *
4672  * Revision 1.21  1994/12/21  11:34:56  mike
4673  * make control center take badass damage.
4674  *
4675  * Revision 1.20  1994/10/29  16:53:16  allender
4676  * added check_effect_blowup for demo recording to record monitor explosions
4677  *
4678  * Revision 1.19  1994/10/09  13:46:48  mike
4679  * Make public collide_player_and_powerup.
4680  *
4681  * Revision 1.18  1994/10/05  14:54:29  rob
4682  * Added serial game support in control center sequence..
4683  *
4684  * Revision 1.17  1994/09/15  16:32:12  mike
4685  * Prototype collide_player_and_nasty_robot.
4686  *
4687  * Revision 1.16  1994/09/11  15:49:04  mike
4688  * Prototype for maybe_detonate_weapon.
4689  *
4690  * Revision 1.15  1994/09/09  14:20:07  matt
4691  * Added prototype for scrape function
4692  *
4693  * Revision 1.14  1994/09/02  14:00:44  matt
4694  * Simplified explode_object() & mutliple-stage explosions
4695  *
4696  * Revision 1.13  1994/08/18  10:47:35  john
4697  * Cleaned up game sequencing and player death stuff
4698  * in preparation for making the player explode into
4699  * pieces when dead.
4700  *
4701  * Revision 1.12  1994/08/17  16:50:08  john
4702  * Added damaging fireballs, missiles.
4703  *
4704  * Revision 1.11  1994/08/03  16:45:31  mike
4705  * Prototype a function.
4706  *
4707  * Revision 1.10  1994/08/03  15:17:41  mike
4708  * make matcen whack on you if it's ready to make a robot.
4709  *
4710  * Revision 1.9  1994/07/22  12:08:03  mike
4711  * Make robot hit vclip and sound weapon-based until robot dies, then robot-based.
4712  *
4713  * Revision 1.8  1994/07/09  17:36:31  mike
4714  * Prototype apply_damage_to_robot.
4715  *
4716  * Revision 1.7  1994/07/09  13:20:36  mike
4717  * Prototype apply_damage_to_player.
4718  *
4719  * Revision 1.6  1994/06/20  23:35:52  john
4720  * Bunch of stuff.
4721  *
4722  * Revision 1.5  1994/06/17  18:04:03  yuan
4723  * Added Immaterialization...
4724  * Fixed Invulnerability to allow being hit.
4725  *
4726  * Revision 1.4  1994/05/13  20:28:02  john
4727  * Version II of John's new object code.
4728  *
4729  * Revision 1.3  1994/05/13  12:20:35  john
4730  * Fixed some potential problems with code using global variables
4731  * that are set in fvi.
4732  *
4733  * Revision 1.2  1994/05/12  23:20:32  john
4734  * Moved all object collision handling into collide.c.
4735  *
4736  * Revision 1.1  1994/05/12  20:39:09  john
4737  * Initial revision
4738
4739 ------------------------------------------------------------------------
4740 main/compbit.h:
4741
4742  * Revision 1.1  1995/05/16  15:55:16  allender
4743  * Initial revision
4744  *
4745  * Revision 2.0  1995/02/27  11:28:46  john
4746  * New version 2.0, which has no anonymous unions, builds with
4747  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
4748  *
4749  * Revision 1.3  1994/12/05  15:10:28  allender
4750  * changed extern prototype definition
4751  *
4752  * Revision 1.2  1994/10/19  15:43:33  allender
4753  * header file which contains the xor value which is used when encrypting
4754  * bitmaps.tbl
4755  *
4756  * Revision 1.1  1994/10/19  13:22:19  allender
4757  * Initial revision
4758
4759 ------------------------------------------------------------------------
4760 main/config.c:
4761
4762  * Revision 1.8  1995/10/27  10:52:20  allender
4763  * call digi_set_master_volume when prefs are read in to
4764  * set the master volume of the mac
4765  *
4766  * Revision 1.7  1995/10/24  17:08:39  allender
4767  * Config_master_volume added for saving sound manager volume
4768  * across games
4769  *
4770  * Revision 1.6  1995/10/20  00:49:31  allender
4771  * use default values when no prefs file
4772  *
4773  * Revision 1.5  1995/09/21  10:06:58  allender
4774  * set digi and midi volume appropriately
4775  *
4776  * Revision 1.4  1995/09/13  08:49:38  allender
4777  * prefs file stuff
4778  *
4779  * Revision 1.3  1995/09/05  08:47:37  allender
4780  * prefs file working
4781  *
4782  * Revision 1.2  1995/05/26  06:54:14  allender
4783  * removed midi and digi references from config file
4784  *
4785  * Revision 1.1  1995/05/16  15:23:45  allender
4786  * Initial revision
4787  *
4788  * Revision 2.2  1995/03/27  09:42:59  john
4789  * Added VR Settings in config file.
4790  *
4791  * Revision 2.1  1995/03/16  11:20:40  john
4792  * Put in support for Crystal Lake soundcard.
4793  *
4794  * Revision 2.0  1995/02/27  11:30:13  john
4795  * New version 2.0, which has no anonymous unions, builds with
4796  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
4797  *
4798  * Revision 1.14  1995/02/11  16:19:36  john
4799  * Added code to make the default mission be the one last played.
4800  *
4801  * Revision 1.13  1995/01/18  13:23:24  matt
4802  * Made curtom detail level vars initialize properly at load
4803  *
4804  * Revision 1.12  1995/01/04  22:15:36  matt
4805  * Fixed stupid bug using scanf() to read bytes
4806  *
4807  * Revision 1.11  1995/01/04  13:14:21  matt
4808  * Made custom detail level settings save in config file
4809  *
4810  * Revision 1.10  1994/12/12  21:35:09  john
4811  * *** empty log message ***
4812  *
4813  * Revision 1.9  1994/12/12  21:31:51  john
4814  * Made volume work better by making sure volumes are valid
4815  * and set correctly at program startup.
4816  *
4817  * Revision 1.8  1994/12/12  13:58:01  john
4818  * MAde -nomusic work.
4819  * Fixed GUS hang at exit by deinitializing digi before midi.
4820  *
4821  * Revision 1.7  1994/12/08  10:01:33  john
4822  * Changed the way the player callsign stuff works.
4823  *
4824  * Revision 1.6  1994/12/01  11:24:07  john
4825  * Made volume/gamma/joystick sliders all be the same length.  0-->8.
4826  *
4827  * Revision 1.5  1994/11/29  02:01:07  john
4828  * Added code to look at -volume command line arg.
4829  *
4830  * Revision 1.4  1994/11/14  20:14:11  john
4831  * Fixed some warnings.
4832  *
4833  * Revision 1.3  1994/11/14  19:51:01  john
4834  * Added joystick cal values to descent.cfg.
4835  *
4836  * Revision 1.2  1994/11/14  17:53:09  allender
4837  * read and write descent.cfg file
4838  *
4839  * Revision 1.1  1994/11/14  16:28:08  allender
4840  * Initial revision
4841
4842 ------------------------------------------------------------------------
4843 main/config.h:
4844
4845  * Revision 1.3  1995/09/08  17:12:26  allender
4846  * added modem tool stuff for prefs file
4847  *
4848  * Revision 1.2  1995/09/05  08:47:48  allender
4849  * prefs file working
4850  *
4851  * Revision 1.1  1995/05/16  15:55:23  allender
4852  * Initial revision
4853  *
4854  * Revision 2.0  1995/02/27  11:32:48  john
4855  * New version 2.0, which has no anonymous unions, builds with
4856  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.