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