build dumpmine.c for editor
[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.2  2004/08/28 23:37:35  schaffner
1057  * move old per-file change logs into new file ChangeLog-old
1058  *
1059  * Revision 1.1  2004/08/28 23:17:45  schaffner
1060  * move old per-file change logs into new file ChangeLog-old
1061  *
1062  * Revision 1.1.1.1  2001/01/19 03:30:15  bradleyb
1063  * Import of d2x-0.0.8
1064  *
1065  * Revision 1.1.1.1  1999/06/14 21:58:39  donut
1066  * Import of d1x 1.37 source.
1067  *
1068  * Revision 2.6  1995/03/29  11:19:32  john
1069  * Added broadcasting over a net.
1070  * 
1071  * Revision 2.5  1995/03/28  20:04:43  john
1072  * Took away alternate server stuff.
1073  * 
1074  * Revision 2.4  1995/03/23  19:00:10  john
1075  * Added user list capabitly.
1076  * 
1077  * Revision 2.3  1995/03/23  12:26:57  john
1078  * Move IPX into bios lib.
1079  * 
1080  * Revision 2.2  1995/03/22  19:08:14  john
1081  * Added code to fix sending packets over router... now
1082  * we just need to make broadcasts go over router!!
1083  * 
1084  * Revision 2.1  1995/03/21  08:39:56  john
1085  * Ifdef'd out the NETWORK code.
1086  * 
1087  * Revision 2.0  1995/02/27  11:30:16  john
1088  * New version 2.0, which has no anonymous unions, builds with
1089  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
1090  * 
1091  * Revision 1.16  1995/02/16  17:34:52  john
1092  * Added code to allow dynamic socket changing.
1093  * 
1094  * Revision 1.15  1995/01/04  21:43:27  rob
1095  * Remove SPX size definition.
1096  * 
1097  * Revision 1.14  1995/01/03  13:46:18  john
1098  * Added code that should make ipx work over different servers,
1099  * but ifdef'd it out with SHAREWARE in ipx.c.  I haven't tested
1100  * this, and I hope it doesn't introduce net bugs.
1101  * 
1102  * Revision 1.13  1994/11/02  11:37:16  rob
1103  * Changed default socket number to a higher regions.
1104  * 
1105  * Revision 1.12  1994/11/01  15:56:51  rob
1106  * Added defines for SPX socketsx.
1107  * 
1108  * Revision 1.11  1994/10/31  19:23:31  rob
1109  * Added a prototype for the new object send function.
1110  * 
1111  * Revision 1.10  1994/09/07  13:37:25  john
1112  * Changed default socket to 0x4000, because 
1113  * the ipx/spx book says that we can only use
1114  * sockets 0x4000 - 0x7fff.
1115  * 
1116  * Revision 1.9  1994/08/25  18:14:45  matt
1117  * Changed socket because of packet change
1118  * 
1119  * Revision 1.8  1994/08/12  22:42:24  john
1120  * Took away Player_stats; added Players array.
1121  * 
1122  * Revision 1.7  1994/08/09  19:31:47  john
1123  * Networking changes.
1124  * 
1125  * Revision 1.6  1994/08/05  16:11:46  john
1126  * Psuedo working version of networking.
1127  * 
1128  * Revision 1.5  1994/08/04  19:17:20  john
1129  * Inbetween version of network stuff.
1130  * 
1131  * Revision 1.4  1994/07/29  16:08:59  john
1132  * *** empty log message ***
1133  * 
1134  * Revision 1.3  1994/07/25  12:33:22  john
1135  * Network "pinging" in.
1136  * 
1137  * Revision 1.2  1994/07/20  15:58:29  john
1138  * First installment of ipx stuff.
1139  * 
1140  * Revision 1.1  1994/07/19  15:43:05  john
1141  * Initial revision
1142
1143 ------------------------------------------------------------------------
1144 arch/dos/joy.c:
1145
1146  * $Log: not supported by cvs2svn $
1147  * Revision 1.2  2004/08/28 23:37:35  schaffner
1148  * move old per-file change logs into new file ChangeLog-old
1149  *
1150  * Revision 1.1  2004/08/28 23:17:45  schaffner
1151  * move old per-file change logs into new file ChangeLog-old
1152  *
1153  * Revision 1.5  2004/05/22 01:40:12  btb
1154  * use JOY_NUM_AXES instead of 4 in joy_(get|set)_cal_vals (d1x r1.3, r1.4)
1155  *
1156  * Revision 1.4  2001/10/24 09:25:05  bradleyb
1157  * Moved input stuff to arch subdirs, as in d1x.
1158  *
1159  * Revision 1.3  2001/01/29 14:03:56  bradleyb
1160  * Fixed build, minor fixes
1161  *
1162  * Revision 1.2  2001/01/24 04:29:45  bradleyb
1163  * changed args_find to FindArg
1164  *
1165  * Revision 1.1.1.2  2001/01/19 03:33:52  bradleyb
1166  * Import of d2x-0.0.9-pre1
1167  *
1168  * Revision 1.1.1.1  1999/06/14 21:58:26  donut
1169  * Import of d1x 1.37 source.
1170  *
1171  * Revision 1.37  1995/10/07  13:22:31  john
1172  * Added new method of reading joystick that allows higher-priority
1173  * interrupts to go off.
1174  * 
1175  * Revision 1.36  1995/03/30  11:03:40  john
1176  * Made -JoyBios read buttons using BIOS.
1177  * 
1178  * Revision 1.35  1995/02/14  11:39:25  john
1179  * Added polled/bios joystick readers..
1180  * 
1181  * Revision 1.34  1995/02/10  17:06:12  john
1182  * Fixed bug with plugging in a joystick not getting detected.
1183  * 
1184  * Revision 1.33  1995/01/27  16:39:42  john
1185  * Made so that if no joystick detected, it wont't
1186  * read buttons.
1187  * 
1188  * Revision 1.32  1995/01/12  13:16:40  john
1189  * Made it so that joystick can't lose an axis
1190  * by 1 weird reading. Reading has to occurr during
1191  * calibration for this to happen.
1192  * 
1193  * Revision 1.31  1994/12/28  15:56:03  john
1194  * Fixed bug that refused to read joysticks whose 
1195  * min,cen,max were less than 100 apart.
1196  * 
1197  * Revision 1.30  1994/12/28  15:31:53  john
1198  * Added code to read joystick axis not all at one time.
1199  * 
1200  * Revision 1.29  1994/12/27  15:44:36  john
1201  * Made the joystick timeout be at 1/100th of a second, 
1202  * regardless of CPU speed.
1203  * 
1204  * Revision 1.28  1994/12/04  11:54:54  john
1205  * Made stick read at whatever rate the clock is at, not
1206  * at 18.2 times/second.
1207  * 
1208  * Revision 1.27  1994/11/29  02:25:40  john
1209  * Made it so that the scaled reading returns 0 
1210  * if the calibration factors look funny..
1211  * 
1212  * Revision 1.26  1994/11/22  11:08:07  john
1213  * Commented out the ARCADE joystick.
1214  * 
1215  * Revision 1.25  1994/11/14  19:40:26  john
1216  * Fixed bug with no joystick being detected.
1217  * 
1218  * Revision 1.24  1994/11/14  19:36:40  john
1219  * Took out initial cheapy calibration.
1220  * 
1221  * Revision 1.23  1994/11/14  19:13:27  john
1222  * Took out the calibration in joy_init
1223  * 
1224  * Revision 1.22  1994/10/17  10:09:57  john
1225  * Made the state look at last_State, so that a joy_flush
1226  * doesn't cause a new down state to be added next reading.
1227  * 
1228  * Revision 1.21  1994/10/13  11:36:23  john
1229  * Made joy_down_time be kept track of in fixed seconds,
1230  * not ticks.
1231  * 
1232  * Revision 1.20  1994/10/12  16:58:50  john
1233  * Fixed bug w/ previous comment.
1234  * 
1235  * Revision 1.19  1994/10/12  16:57:44  john
1236  * Added function to set a joystick button's state.
1237  * 
1238  * Revision 1.18  1994/10/11  10:20:13  john
1239  * Fixed Flightstick Pro/
1240  * ..
1241  * 
1242  * Revision 1.17  1994/09/29  18:29:20  john
1243  * *** empty log message ***
1244  * 
1245  * Revision 1.16  1994/09/27  19:17:23  john
1246  * Added code so that is joy_init is never called, joystick is not
1247  * used at all.
1248  * 
1249  * Revision 1.15  1994/09/22  16:09:23  john
1250  * Fixed some virtual memory lockdown problems with timer and
1251  * joystick.
1252  * 
1253  * Revision 1.14  1994/09/16  11:44:42  john
1254  * Fixed bug with slow joystick.
1255  * 
1256  * Revision 1.13  1994/09/16  11:36:15  john
1257  * Fixed bug with reading non-present channels.
1258  * 
1259  * Revision 1.12  1994/09/15  20:52:48  john
1260  * rme john
1261  * Added support for the Arcade style joystick.
1262  * 
1263  * Revision 1.11  1994/09/13  20:04:49  john
1264  * Fixed bug with joystick button down_time.
1265  * 
1266  * Revision 1.10  1994/09/10  13:48:07  john
1267  * Made all 20 buttons read.
1268  * 
1269  * Revision 1.9  1994/08/31  09:55:02  john
1270  * *** empty log message ***
1271  * 
1272  * Revision 1.8  1994/08/29  21:02:14  john
1273  * Added joy_set_cal_values...
1274  * 
1275  * Revision 1.7  1994/08/29  20:52:17  john
1276  * Added better cyberman support; also, joystick calibration
1277  * value return funcctiionn,
1278  * 
1279  * Revision 1.6  1994/08/24  18:53:12  john
1280  * Made Cyberman read like normal mouse; added dpmi module; moved
1281  * mouse from assembly to c. Made mouse buttons return time_down.
1282  * 
1283  * Revision 1.5  1994/07/14  22:12:23  john
1284  * Used intrinsic forms of outp to fix vmm error.
1285  * 
1286  * Revision 1.4  1994/07/07  19:52:59  matt
1287  * Made joy_init() return success/fail flag
1288  * Made joy_init() properly detect a stick if one is plugged in after joy_init()
1289  * was called the first time.
1290  * 
1291  * Revision 1.3  1994/07/01  10:55:55  john
1292  * Fixed some bugs... added support for 4 axis.
1293  * 
1294  * Revision 1.2  1994/06/30  20:36:55  john
1295  * Revamped joystick code.
1296  * 
1297  * Revision 1.1  1994/06/30  15:42:15  john
1298  * Initial revision
1299
1300 ------------------------------------------------------------------------
1301 arch/dos/joydefs.c:
1302
1303  * $Log: not supported by cvs2svn $
1304  * Revision 1.2  2004/08/28 23:37:35  schaffner
1305  * move old per-file change logs into new file ChangeLog-old
1306  *
1307  * Revision 1.1  2004/08/28 23:17:45  schaffner
1308  * move old per-file change logs into new file ChangeLog-old
1309  *
1310  * Revision 1.3  2001/10/24 09:25:05  bradleyb
1311  * Moved input stuff to arch subdirs, as in d1x.
1312  *
1313  * Revision 1.2  2001/01/29 14:03:57  bradleyb
1314  * Fixed build, minor fixes
1315  *
1316  * Revision 1.1.1.2  2001/01/19 03:33:52  bradleyb
1317  * Import of d2x-0.0.9-pre1
1318  *
1319  * Revision 1.1.1.1  1999/06/14 21:58:29  donut
1320  * Import of d1x 1.37 source.
1321  *
1322  * Revision 2.2  1995/06/30  12:30:22  john
1323  * Added -Xname command line.
1324  * 
1325  * Revision 2.1  1995/04/06  12:13:20  john
1326  * Made so you can calibrate Gravis Gamepad.
1327  * 
1328  * Revision 2.0  1995/02/27  11:30:27  john
1329  * New version 2.0, which has no anonymous unions, builds with
1330  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
1331  * 
1332  * Revision 1.71  1995/02/12  02:06:10  john
1333  * Fixed bug with joystick incorrectly asking for
1334  * calibration.
1335  * 
1336  * Revision 1.70  1995/01/28  15:58:07  john
1337  * Made joystick calibration be only when wrong detected in
1338  * menu or joystick axis changed.
1339  * 
1340  * Revision 1.69  1995/01/25  14:37:55  john
1341  * Made joystick only prompt for calibration once...
1342  * 
1343  * Revision 1.68  1995/01/24  16:34:29  john
1344  * Made so that if you reconfigure joystick and
1345  * add or subtract an axis, it asks for a recalibration
1346  * upon leaving.
1347  * 
1348  * Revision 1.67  1994/12/29  11:08:51  john
1349  * Fixed Thrustmaster and Logitech Wingman extreme
1350  * Hat by reading the y2 axis during the center stage
1351  * of the calibration, and using 75, 50, 27, and 3 %
1352  * as values for the 4 positions.
1353  * 
1354  * Revision 1.66  1994/12/15  18:17:39  john
1355  * Fixed warning with previous.
1356  * 
1357  * Revision 1.65  1994/12/15  18:15:48  john
1358  * Made the joy cal only write the .cfg file, not
1359  * the player file.
1360  * 
1361  * Revision 1.64  1994/12/13  14:43:35  john
1362  * Took out the code in kconfig to build direction array.
1363  * Called kc_set_controls after selecting a new control type.
1364  * 
1365  * Revision 1.63  1994/12/10  12:08:47  john
1366  * Changed some delays to use TICKER instead of timer_get_fixed_seconds.
1367  * 
1368  * Revision 1.62  1994/12/09  11:01:07  mike
1369  * force calibration of joystick on joystick selection from Controls... menu.
1370  * 
1371  * Revision 1.61  1994/12/07  21:50:27  john
1372  * Put stop/start time around joystick delay.
1373  * 
1374  * Revision 1.60  1994/12/07  19:34:39  john
1375  * Added delay.
1376  * 
1377  * Revision 1.59  1994/12/07  18:12:14  john
1378  * NEatened up joy cal.,
1379  * 
1380  * Revision 1.58  1994/12/07  17:07:51  john
1381  * Fixed up joy cal.
1382  * 
1383  * Revision 1.57  1994/12/07  16:48:53  yuan
1384  * localization
1385  * 
1386  * Revision 1.56  1994/12/07  16:05:55  john
1387  * Changed the way joystick calibration works.
1388  * 
1389  * Revision 1.55  1994/12/06  20:15:22  john
1390  * Took out code that unpauses songs that were never paused.
1391  * 
1392  * Revision 1.54  1994/12/06  15:14:09  yuan
1393  * Localization
1394  * 
1395  * Revision 1.53  1994/12/05  16:29:16  john
1396  * Took out music pause around the cheat menu.
1397  * 
1398  * Revision 1.52  1994/12/04  12:39:10  john
1399  * MAde so that FCS calibration doesn't ask for axis #2.
1400  * 
1401  * Revision 1.51  1994/12/03  15:14:59  john
1402  * Took out the delay mentioned previosuly cause it would
1403  * cause bigger problems than it helps, especially with netgames.
1404  * 
1405  * Revision 1.50  1994/12/03  14:16:14  john
1406  * Put a delay between screens in joy cal to keep Yuan from
1407  * double hitting.
1408  * 
1409  * Revision 1.49  1994/12/03  11:04:06  john
1410  * Changed newmenu code a bit to fix bug with bogus
1411  * backgrounds occcasionally.
1412  * 
1413  * Revision 1.48  1994/12/02  11:03:44  yuan
1414  * Localization.
1415  * 
1416  * Revision 1.47  1994/12/02  10:50:33  yuan
1417  * Localization
1418  * 
1419  * Revision 1.46  1994/12/01  12:21:59  john
1420  * Added code to calibrate 2 joysticks separately.
1421  * 
1422  * Revision 1.45  1994/12/01  11:52:31  john
1423  * Added message when you select FCS to say that if
1424  * you have WCS, see manuel.
1425  * 
1426  * Revision 1.44  1994/11/29  02:26:28  john
1427  * Made the prompts for upper-left, lower right for joy
1428  * calibration more obvious.
1429  * 
1430  * Revision 1.43  1994/11/26  13:13:59  matt
1431  * Changed "none" option to "keyboard only"
1432  * 
1433  * Revision 1.42  1994/11/21  19:35:13  john
1434  * Replaced calls to joy_init with if (joy_present)
1435  * 
1436  * Revision 1.41  1994/11/21  19:28:34  john
1437  * Changed warning for no joystick to use nm_messagebox..
1438  * 
1439  * Revision 1.40  1994/11/21  19:06:25  john
1440  * Made it so that it only stops sound when your in game mode. 
1441  * 
1442  * Revision 1.39  1994/11/21  11:47:18  john
1443  * Made sound pause during joystick calibration.
1444  * 
1445  * Revision 1.38  1994/11/10  20:34:18  rob
1446  * Removed menu-specific network mode support in favor in new stuff
1447  * in newmenu.c
1448  * 
1449  * Revision 1.37  1994/11/08  21:21:38  john
1450  * Made Esc exit joystick calibration.
1451  * 
1452  * Revision 1.36  1994/11/08  15:14:42  john
1453  * Added more calls so net doesn't die in net game.
1454  * 
1455  * Revision 1.35  1994/11/08  14:59:12  john
1456  * Added code to respond to network while in menus.
1457  * 
1458  * Revision 1.34  1994/10/24  19:56:32  john
1459  * Made the new user setup prompt for config options.
1460  * 
1461  * Revision 1.33  1994/10/22  14:11:52  mike
1462  * Suppress compiler warning message.
1463  * 
1464  * Revision 1.32  1994/10/19  12:44:24  john
1465  * Added hours field to player structure.
1466  * 
1467  * Revision 1.31  1994/10/17  13:07:13  john
1468  * Moved the descent.cfg info into the player config file.
1469  * 
1470  * Revision 1.30  1994/10/13  21:41:12  john
1471  * MAde Esc exit out of joystick calibration.
1472  * 
1473  * Revision 1.29  1994/10/13  19:22:27  john
1474  * Added separate config saves for different devices.
1475  * Made all the devices work together better, such as mice won't
1476  * get read when you're playing with the joystick.
1477  * 
1478  * Revision 1.28  1994/10/13  11:40:18  john
1479  * Took out warnings.
1480  * 
1481  * Revision 1.27  1994/10/13  11:35:23  john
1482  * Made Thrustmaster FCS Hat work.  Put a background behind the
1483  * keyboard configure.  Took out turn_sensitivity.  Changed sound/config
1484  * menu to new menu. Made F6 be calibrate joystick.
1485  * 
1486  * Revision 1.26  1994/10/11  21:29:03  matt
1487  * Made a bunch of menus have good initial selected values
1488  * 
1489  * Revision 1.25  1994/10/11  17:08:39  john
1490  * Added sliders for volume controls.
1491  * 
1492  * Revision 1.24  1994/10/10  17:59:21  john
1493  * Neatend previous.
1494  * 
1495  * Revision 1.23  1994/10/10  17:57:59  john
1496  * Neatend previous.
1497  * 
1498  * Revision 1.22  1994/10/10  17:56:11  john
1499  * Added messagebox that tells that config has been saved.
1500  * 
1501  * Revision 1.21  1994/09/30  12:37:26  john
1502  * Added midi,digi volume to configuration.
1503  * 
1504  * Revision 1.20  1994/09/22  16:14:14  john
1505  * Redid intro sequecing.
1506  * 
1507  * Revision 1.19  1994/09/19  18:50:15  john
1508  * Added switch to disable joystick.
1509  * 
1510  * Revision 1.18  1994/09/12  11:47:36  john
1511  * Made stupid cruise work better.  Make kconfig values get
1512  * read/written to disk.
1513  * 
1514  * Revision 1.17  1994/09/10  15:46:47  john
1515  * First version of new keyboard configuration.
1516  * 
1517  * Revision 1.16  1994/09/06  19:35:44  john
1518  * Fixed bug that didn';t load new size .cal file.
1519  * 
1520  * Revision 1.15  1994/09/06  14:51:58  john
1521  * Added sensitivity adjustment, fixed bug with joystick button not
1522  * staying down.
1523  * 
1524  * Revision 1.14  1994/09/02  16:13:47  john
1525  * Made keys fill in position.
1526  * 
1527  * Revision 1.13  1994/08/31  17:58:50  john
1528  * Made a bit simpler.
1529  * 
1530  * Revision 1.12  1994/08/31  14:17:54  john
1531  * *** empty log message ***
1532  * 
1533  * Revision 1.11  1994/08/31  14:10:56  john
1534  * Made keys not work when KEY_DELETE pressed.
1535  * 
1536  * Revision 1.10  1994/08/31  13:40:47  mike
1537  * Change constant
1538  * 
1539  * Revision 1.9  1994/08/31  12:56:27  john
1540  * *** empty log message ***
1541  * 
1542  * Revision 1.8  1994/08/30  20:38:29  john
1543  * Add more config stuff..
1544  * 
1545  * Revision 1.7  1994/08/30  16:37:25  john
1546  * Added menu options to set controls.
1547  * 
1548  * Revision 1.6  1994/08/30  09:27:18  john
1549  * *** empty log message ***
1550  * 
1551  * Revision 1.5  1994/08/30  09:12:01  john
1552  * *** empty log message ***
1553  * 
1554  * Revision 1.4  1994/08/29  21:18:32  john
1555  * First version of new keyboard/oystick remapping stuff.
1556  * 
1557  * Revision 1.3  1994/08/24  19:00:29  john
1558  * Changed key_down_time to return fixed seconds instead of
1559  * milliseconds.
1560  * 
1561  * Revision 1.2  1994/08/17  16:50:37  john
1562  * Added damaging fireballs, missiles.
1563  * 
1564  * Revision 1.1  1994/08/17  10:07:12  john
1565  * Initial revision
1566
1567 ------------------------------------------------------------------------
1568 arch/dos/key.c:
1569
1570  * $Log: not supported by cvs2svn $
1571  * Revision 1.2  2004/08/28 23:37:35  schaffner
1572  * move old per-file change logs into new file ChangeLog-old
1573  *
1574  * Revision 1.1  2004/08/28 23:17:45  schaffner
1575  * move old per-file change logs into new file ChangeLog-old
1576  *
1577  * Revision 1.3  2001/10/24 09:25:05  bradleyb
1578  * Moved input stuff to arch subdirs, as in d1x.
1579  *
1580  * Revision 1.3  2001/01/31 14:04:44  bradleyb
1581  * Fix compiler warnings
1582  *
1583  * Revision 1.2  2001/01/29 14:03:57  bradleyb
1584  * Fixed build, minor fixes
1585  *
1586  * Revision 1.1.1.2  2001/01/19 03:33:52  bradleyb
1587  * Import of d2x-0.0.9-pre1
1588  *
1589  * Revision 1.1.1.1  1999/06/14 21:58:32  donut
1590  * Import of d1x 1.37 source.
1591  *
1592  * Revision 1.35  1995/01/25  20:13:30  john
1593  * Took out not passing keys to debugger if w10.
1594  * 
1595  * Revision 1.34  1995/01/14  19:19:31  john
1596  * Made so when you press Shift+Baskspace, it release keys autmatically.
1597  * 
1598  * Revision 1.33  1994/12/13  09:21:48  john
1599  * Took out keyd_editor_mode, and KEY_DEBUGGED stuff for NDEBUG versions.
1600  * 
1601  * Revision 1.32  1994/11/12  13:52:01  john
1602  * Fixed bug with code that cleared bios buffer.
1603  * 
1604  * Revision 1.31  1994/10/24  15:16:16  john
1605  * Added code to detect KEY_PAUSE.
1606  * 
1607  * Revision 1.30  1994/10/24  13:57:53  john
1608  * Hacked in support for pause key onto code 0x61.
1609  * 
1610  * Revision 1.29  1994/10/21  15:18:13  john
1611  * *** empty log message ***
1612  * 
1613  * Revision 1.28  1994/10/21  15:17:24  john
1614  * Made LSHIFT+BACKSPACE do what PrtScr used to.
1615  * 
1616  * Revision 1.27  1994/09/22  16:09:18  john
1617  * Fixed some virtual memory lockdown problems with timer and
1618  * joystick.
1619  * 
1620  * Revision 1.26  1994/09/15  21:32:47  john
1621  * Added bounds checking for down_count scancode
1622  * parameter.
1623  * 
1624  * Revision 1.25  1994/08/31  12:22:20  john
1625  * Added KEY_DEBUGGED
1626  * 
1627  * Revision 1.24  1994/08/24  18:53:48  john
1628  * Made Cyberman read like normal mouse; added dpmi module; moved
1629  * mouse from assembly to c. Made mouse buttons return time_down.
1630  * 
1631  * Revision 1.23  1994/08/18  15:17:51  john
1632  * *** empty log message ***
1633  * 
1634  * Revision 1.22  1994/08/18  15:16:38  john
1635  * fixed some bugs with clear_key_times and then
1636  * removed it because i fixed key_flush to do the
1637  * same.
1638  * 
1639  * Revision 1.21  1994/08/17  19:01:25  john
1640  * Attempted to fix a bug with a key being held down
1641  * key_flush called, then the key released having too 
1642  * long of a time.
1643  * 
1644  * Revision 1.20  1994/08/08  10:43:48  john
1645  * Recorded when a key was pressed for key_inkey_time.
1646  * 
1647  * Revision 1.19  1994/06/22  15:00:03  john
1648  * Made keyboard close automatically on exit.
1649  * 
1650  * Revision 1.18  1994/06/21  09:16:29  john
1651  * *** empty log message ***
1652  * 
1653  * Revision 1.17  1994/06/21  09:08:23  john
1654  * *** empty log message ***
1655  * 
1656  * Revision 1.16  1994/06/21  09:05:01  john
1657  * *** empty log message ***
1658  * 
1659  * Revision 1.15  1994/06/21  09:04:24  john
1660  * Made PrtScreen do an int5
1661  * 
1662  * Revision 1.14  1994/06/17  17:17:06  john
1663  * Added keyd_time_last_key_was_pressed or something like that.
1664  * 
1665  * Revision 1.13  1994/05/14  13:55:16  matt
1666  * Added #define to control key passing to bios
1667  * 
1668  * Revision 1.12  1994/05/05  18:09:39  john
1669  * Took out BIOS to prevent stuck keys.
1670  * 
1671  * Revision 1.11  1994/05/03  17:39:12  john
1672  * *** empty log message ***
1673  * 
1674  * Revision 1.10  1994/04/29  12:14:20  john
1675  * Locked all memory used during interrupts so that program
1676  * won't hang when using virtual memory.
1677  * 
1678  * Revision 1.9  1994/04/28  23:49:41  john
1679  * Made key_flush flush more keys and also did something else but i forget what.
1680  * 
1681  * Revision 1.8  1994/04/22  12:52:12  john
1682  * *** empty log message ***
1683  * 
1684  * Revision 1.7  1994/04/01  10:44:59  mike
1685  * Change key_getch() to call getch() if our interrupt hasn't been installed.
1686  * 
1687  * Revision 1.6  1994/03/09  10:45:48  john
1688  * Neatend code a bit.
1689  * 
1690  * Revision 1.5  1994/02/17  17:24:16  john
1691  * Neatened up a bit.
1692  * 
1693  * Revision 1.4  1994/02/17  16:30:29  john
1694  * Put in code to pass keys when in debugger.
1695  * 
1696  * Revision 1.3  1994/02/17  15:57:59  john
1697  * Made handler not chain to BIOS handler.
1698  * 
1699  * Revision 1.2  1994/02/17  15:56:06  john
1700  * Initial version.
1701  * 
1702  * Revision 1.1  1994/02/17  15:54:07  john
1703  * Initial revision
1704
1705 ------------------------------------------------------------------------
1706 arch/dos/mono.c:
1707
1708  * $Log: not supported by cvs2svn $
1709  * Revision 1.2  2004/08/28 23:37:35  schaffner
1710  * move old per-file change logs into new file ChangeLog-old
1711  *
1712  * Revision 1.1  2004/08/28 23:17:45  schaffner
1713  * move old per-file change logs into new file ChangeLog-old
1714  *
1715  * Revision 1.1.1.1  2001/01/19 03:30:15  bradleyb
1716  * Import of d2x-0.0.8
1717  *
1718  * Revision 1.1.1.1  1999/06/14 21:58:35  donut
1719  * Import of d1x 1.37 source.
1720  *
1721  * Revision 1.12  1995/02/23  11:59:57  john
1722  * Made the windows smaller so they don't overwrite the debug file menus.
1723  * 
1724  * Revision 1.11  1994/11/27  23:07:50  matt
1725  * Made changes needed to be able to compile out monochrome debugging code
1726  * 
1727  * Revision 1.10  1994/10/26  22:23:43  john
1728  * Limited windows to 2.  Took away saving what was under
1729  * a window.
1730  * 
1731  * Revision 1.9  1994/07/14  23:25:44  matt
1732  * Allow window 0 to be opened; don't allow mono to be initialized twice
1733  * 
1734  * Revision 1.8  1994/03/09  10:45:38  john
1735  * Sped up scroll.
1736  * 
1737  * Revision 1.7  1994/01/26  08:56:55  mike
1738  * Comment out int3 in mputc.
1739  * 
1740  * Revision 1.6  1994/01/12  15:56:34  john
1741  * made backspace do an int3 during mono stuff.
1742  * .,
1743  * 
1744  * Revision 1.5  1993/12/07  12:33:23  john
1745  * *** empty log message ***
1746  * 
1747  * Revision 1.4  1993/10/15  10:10:25  john
1748  * *** empty log message ***
1749  * 
1750  * Revision 1.3  1993/09/14  20:55:13  matt
1751  * Made minit() and mopen() check for presence of mono card in machine.
1752  * 
1753  * Revision 1.2  1993/07/22  13:10:21  john
1754  * *** empty log message ***
1755  * 
1756  * Revision 1.1  1993/07/10  13:10:38  matt
1757  * Initial revision
1758
1759 ------------------------------------------------------------------------
1760 arch/dos/mono.h:
1761
1762  * Revision 1.6  1994/12/03  17:07:37  matt
1763  * Made mono code turn off with either NDEBUG or NMONO
1764  * 
1765  * Revision 1.5  1994/11/27  23:07:28  matt
1766  * Made changes needed to be able to compile out monochrome debugging code
1767  * 
1768  * Revision 1.4  1993/12/07  12:33:28  john
1769  * *** empty log message ***
1770  * 
1771  * Revision 1.3  1993/09/14  20:54:50  matt
1772  * Made minit() check for mono card, return -1 if present, 0 if not
1773  * 
1774  * Revision 1.2  1993/07/22  13:05:40  john
1775  * added macros to print variables
1776  * 
1777  * Revision 1.1  1993/07/10  13:10:40  matt
1778  * Initial revision
1779
1780 ------------------------------------------------------------------------
1781 arch/dos/mouse.c:
1782
1783  * Revision 1.11  1995/02/10  18:52:17  john
1784  * Fixed bug with mouse not getting closed.
1785  *
1786  * Revision 1.10  1995/02/02  11:10:33  john
1787  * Changed a bunch of mouse stuff around to maybe get
1788  * around PS/2 mouse hang.
1789  *
1790  * Revision 1.9  1995/01/14  19:19:52  john
1791  * Fixed signed short error cmp with -1 that caused mouse
1792  * to break under Watcom 10.0
1793  *
1794  * Revision 1.8  1994/12/27  12:38:23  john
1795  * Made mouse use temporary dos buffer instead of
1796  *
1797  * allocating its own.
1798  *
1799  *
1800  * Revision 1.7  1994/12/05  23:54:53  john
1801  * Fixed bug with mouse_get_delta only returning positive numbers..
1802  *
1803  * Revision 1.6  1994/11/18  23:18:18  john
1804  * Changed some shorts to ints.
1805  *
1806  * Revision 1.5  1994/09/13  12:34:02  john
1807  * Added functions to get down count and state.
1808  *
1809  * Revision 1.4  1994/08/29  20:52:19  john
1810  * Added better cyberman support; also, joystick calibration
1811  * value return funcctiionn,
1812  *
1813  * Revision 1.3  1994/08/24  18:54:32  john
1814  * *** empty log message ***
1815  *
1816  * Revision 1.2  1994/08/24  18:53:46  john
1817  * Made Cyberman read like normal mouse; added dpmi module; moved
1818  * mouse from assembly to c. Made mouse buttons return time_down.
1819  *
1820  * Revision 1.1  1994/08/24  13:56:37  john
1821  * Initial revision
1822
1823 ------------------------------------------------------------------------
1824 arch/include/joy.h:
1825
1826  * Revision 1.17  1995/10/07  13:22:30  john
1827  * Added new method of reading joystick that allows higher-priority
1828  * interrupts to go off.
1829  *
1830  * Revision 1.16  1995/02/14  11:17:13  john
1831  * Added BIOS readings for stick.
1832  *
1833  * Revision 1.15  1995/02/14  10:09:58  john
1834  * Added OS2 switch.
1835  *
1836  * Revision 1.14  1994/12/28  13:49:20  john
1837  * Added function to set joystick for slow reading
1838  *
1839  * Revision 1.13  1994/10/13  11:36:06  john
1840  * Made joy_down_time be kept track of in fixed seconds,
1841  * not ticks.
1842  *
1843  * Revision 1.12  1994/10/12  17:03:16  john
1844  * Added prototype for joy_get_scaled_reading.
1845  *
1846  * Revision 1.11  1994/10/12  16:57:55  john
1847  * Added function to set a joystick button's state.
1848  *
1849  * Revision 1.10  1994/09/22  16:09:00  john
1850  * Fixed some virtual memory lockdown problems with timer and
1851  * joystick.
1852  *
1853  * Revision 1.9  1994/08/31  09:54:57  john
1854  * *** empty log message ***
1855  *
1856  * Revision 1.8  1994/08/29  21:02:24  john
1857  * Added joy_set_cal_values...
1858  *
1859  * Revision 1.7  1994/08/29  20:51:52  john
1860  * Added better cyberman support; also, joystick calibration
1861  * value return funcctiionn,
1862  *
1863  * Revision 1.6  1994/07/01  10:55:44  john
1864  * Fixed some bugs... added support for 4 axis.
1865  *
1866  * Revision 1.5  1994/06/30  20:36:51  john
1867  * Revamped joystick code.
1868  *
1869  * Revision 1.4  1994/04/22  12:52:10  john
1870  * *** empty log message ***
1871  *
1872  * Revision 1.3  1994/01/18  13:53:39  john
1873  * Made all joystick functions return int's instead of
1874  * shorts.  Also made the stick reading be CPU speed
1875  * independant by using the timer_get_Stamp_64
1876  * function.
1877  *
1878  * Revision 1.2  1994/01/18  10:58:42  john
1879  * *** empty log message ***
1880  *
1881  * Revision 1.1  1993/07/10  13:10:39  matt
1882  * Initial revision
1883
1884 ------------------------------------------------------------------------
1885 arch/win32/include/key.h:
1886
1887  * Revision 1.19  1994/10/24  13:58:12  john
1888  * Hacked in support for pause key onto code 0x61.
1889  * 
1890  * Revision 1.18  1994/10/21  15:17:10  john
1891  * Added KEY_PRINT_SCREEN
1892  * 
1893  * Revision 1.17  1994/08/31  12:22:13  john
1894  * Added KEY_DEBUGGED
1895  * 
1896  * Revision 1.16  1994/08/24  18:53:50  john
1897  * Made Cyberman read like normal mouse; added dpmi module; moved
1898  * mouse from assembly to c. Made mouse buttons return time_down.
1899  * 
1900  * Revision 1.15  1994/08/18  14:56:16  john
1901  * *** empty log message ***
1902  * 
1903  * Revision 1.14  1994/08/08  10:43:24  john
1904  * Recorded when a key was pressed for key_inkey_time.
1905  * 
1906  * Revision 1.13  1994/06/17  17:17:28  john
1907  * Added keyd_time_last_key_was_pressed or something like that.
1908  * 
1909  * Revision 1.12  1994/04/29  12:14:19  john
1910  * Locked all memory used during interrupts so that program
1911  * won't hang when using virtual memory.
1912  * 
1913  * Revision 1.11  1994/02/17  15:57:14  john
1914  * Changed key libary to C.
1915  * 
1916  * Revision 1.10  1994/01/31  08:34:09  john
1917  * Fixed reversed lshift/rshift keys.
1918  * 
1919  * Revision 1.9  1994/01/18  10:58:17  john
1920  * *** empty log message ***
1921  * 
1922  * Revision 1.8  1993/10/16  19:24:43  matt
1923  * Added new function key_clear_times() & key_clear_counts()
1924  * 
1925  * Revision 1.7  1993/10/15  10:17:09  john
1926  * added keyd_last_key_pressed and released for use with recorder.
1927  * 
1928  * Revision 1.6  1993/10/06  16:20:37  john
1929  * fixed down arrow bug
1930  * 
1931  * Revision 1.5  1993/10/04  13:26:42  john
1932  * changed the #defines for scan codes.
1933  * 
1934  * Revision 1.4  1993/09/28  11:35:20  john
1935  * added key_peekkey
1936  * 
1937  * Revision 1.3  1993/09/20  18:36:43  john
1938  * *** empty log message ***
1939  * 
1940  * Revision 1.1  1993/07/10  13:10:39  matt
1941  * Initial revision
1942
1943 ------------------------------------------------------------------------
1944 arch/win32/include/mouse.h:
1945
1946  * Revision 1.10  1995/02/02  10:22:29  john
1947  * Added cyberman init parameter.
1948  * 
1949  * Revision 1.9  1994/11/18  23:18:09  john
1950  * Changed some shorts to ints.
1951  * 
1952  * Revision 1.8  1994/09/13  12:33:49  john
1953  * Added functions to get down count and state.
1954  * 
1955  * Revision 1.7  1994/08/29  20:52:20  john
1956  * Added better cyberman support; also, joystick calibration
1957  * value return funcctiionn,
1958  * 
1959  * Revision 1.6  1994/08/24  17:54:35  john
1960  * *** empty log message ***
1961  * 
1962  * Revision 1.5  1994/08/24  17:51:43  john
1963  * Added transparent cyberman support
1964  * 
1965  * Revision 1.4  1993/07/27  09:32:22  john
1966  * *** empty log message ***
1967  * 
1968  * Revision 1.3  1993/07/26  10:46:44  john
1969  * added definition for mouse_set_pos
1970  * 
1971  * Revision 1.2  1993/07/22  13:07:59  john
1972  * added header for mousesetlimts
1973  * 
1974  * Revision 1.1  1993/07/10  13:10:40  matt
1975  * Initial revision
1976
1977 ------------------------------------------------------------------------
1978 arch/win32/mouse.c:
1979
1980  * Revision 1.8  1996/02/21  13:57:36  allender
1981  * cursor device manager stuff added here so as not to
1982  * rely on InterfaceLib anymore
1983  *
1984  * Revision 1.7  1995/10/17  15:42:21  allender
1985  * new mouse function to determine single button press
1986  *
1987  * Revision 1.6  1995/10/03  11:27:31  allender
1988  * fixed up hotspot problems with the mouse on multiple monitors
1989  *
1990  * Revision 1.5  1995/07/13  11:27:08  allender
1991  * trap button checks at MAX_MOUSE_BUTTONS
1992  *
1993  * Revision 1.4  1995/06/25  21:56:53  allender
1994  * added events include
1995  *
1996  * Revision 1.3  1995/05/11  17:06:38  allender
1997  * fixed up mouse routines
1998  *
1999  * Revision 1.2  1995/05/11  13:05:53  allender
2000  * of mouse handler code
2001  *
2002  * Revision 1.1  1995/05/05  09:54:45  allender
2003  * Initial revision
2004  *
2005  * Revision 1.9  1995/01/14  19:19:52  john
2006  * Fixed signed short error cmp with -1 that caused mouse
2007  * to break under Watcom 10.0
2008  *
2009  * Revision 1.8  1994/12/27  12:38:23  john
2010  * Made mouse use temporary dos buffer instead of
2011  *
2012  * allocating its own.
2013  *
2014  * Revision 1.7  1994/12/05  23:54:53  john
2015  * Fixed bug with mouse_get_delta only returning positive numbers..
2016  *
2017  * Revision 1.6  1994/11/18  23:18:18  john
2018  * Changed some shorts to ints.
2019  *
2020  * Revision 1.5  1994/09/13  12:34:02  john
2021  * Added functions to get down count and state.
2022  *
2023  * Revision 1.4  1994/08/29  20:52:19  john
2024  * Added better cyberman support; also, joystick calibration
2025  * value return funcctiionn,
2026  *
2027  * Revision 1.3  1994/08/24  18:54:32  john
2028  * *** empty log message ***
2029  *
2030  * Revision 1.2  1994/08/24  18:53:46  john
2031  * Made Cyberman read like normal mouse; added dpmi module; moved
2032  * mouse from assembly to c. Made mouse buttons return time_down.
2033  *
2034  * Revision 1.1  1994/08/24  13:56:37  john
2035  * Initial revision
2036
2037 ------------------------------------------------------------------------
2038 cfile/cfile.c:
2039
2040  * Revision 1.7  1995/10/27  15:18:20  allender
2041  * get back to descent directory before trying to read a hog file
2042  *
2043  * Revision 1.6  1995/10/21  23:48:24  allender
2044  * hogfile(s) are now in :Data: folder
2045  *
2046  * Revision 1.5  1995/08/14  09:27:31  allender
2047  * added byteswap header
2048  *
2049  * Revision 1.4  1995/05/12  11:54:33  allender
2050  * changed memory stuff again
2051  *
2052  * Revision 1.3  1995/05/04  20:03:38  allender
2053  * added code that was missing...use NewPtr instead of malloc
2054  *
2055  * Revision 1.2  1995/04/03  09:59:49  allender
2056  * *** empty log message ***
2057  *
2058  * Revision 1.1  1995/03/30  10:25:02  allender
2059  * Initial revision
2060  *
2061  *
2062  * --- PC RCS Information ---
2063  * Revision 1.24  1995/03/15  14:20:27  john
2064  * Added critical error checker.
2065  *
2066  * Revision 1.23  1995/03/13  15:16:53  john
2067  * Added alternate directory stuff.
2068  *
2069  * Revision 1.22  1995/02/09  23:08:47  matt
2070  * Increased the max number of files in hogfile to 250
2071  *
2072  * Revision 1.21  1995/02/01  20:56:47  john
2073  * Added cfexist function
2074  *
2075  * Revision 1.20  1995/01/21  17:53:48  john
2076  * Added alternate pig file thing.
2077  *
2078  * Revision 1.19  1994/12/29  15:10:02  john
2079  * Increased hogfile max files to 200.
2080  *
2081  * Revision 1.18  1994/12/12  13:20:57  john
2082  * Made cfile work with fiellentth.
2083  *
2084  * Revision 1.17  1994/12/12  13:14:25  john
2085  * Made cfiles prefer non-hog files.
2086  *
2087  * Revision 1.16  1994/12/09  18:53:26  john
2088  * *** empty log message ***
2089  *
2090  * Revision 1.15  1994/12/09  18:52:56  john
2091  * Took out mem, error checking.
2092  *
2093  * Revision 1.14  1994/12/09  18:10:31  john
2094  * Speed up cfgets, which was slowing down the reading of
2095  * bitmaps.tbl, which was making POF loading look slow.
2096  *
2097  * Revision 1.13  1994/12/09  17:53:51  john
2098  * Added error checking to number of hogfiles..
2099  *
2100  * Revision 1.12  1994/12/08  19:02:55  john
2101  * Added cfgets.
2102  *
2103  * Revision 1.11  1994/12/07  21:57:48  john
2104  * Took out data dir.
2105  *
2106  * Revision 1.10  1994/12/07  21:38:02  john
2107  * Made cfile not return error..
2108  *
2109  * Revision 1.9  1994/12/07  21:35:34  john
2110  * Made it read from data directory.
2111  *
2112  * Revision 1.8  1994/12/07  21:33:55  john
2113  * Stripped out compression stuff...
2114  *
2115  * Revision 1.7  1994/04/13  23:44:59  matt
2116  * When file cannot be opened, free up the buffer for that file.
2117  *
2118  * Revision 1.6  1994/02/18  12:38:20  john
2119  * Optimized a bit
2120  *
2121  * Revision 1.5  1994/02/15  18:13:20  john
2122  * Fixed more bugs.
2123  *
2124  * Revision 1.4  1994/02/15  13:27:58  john
2125  * Works ok...
2126  *
2127  * Revision 1.3  1994/02/15  12:51:57  john
2128  * Crappy inbetween version
2129  *
2130  * Revision 1.2  1994/02/14  20:12:29  john
2131  * First version working with new cfile stuff.
2132  *
2133  * Revision 1.1  1994/02/14  15:51:33  john
2134  * Initial revision
2135  *
2136  * Revision 1.1  1994/02/10  15:45:12  john
2137  * Initial revision
2138
2139 ------------------------------------------------------------------------
2140 iff/iff.c:
2141
2142  * Revision 1.2  1995/05/12  11:54:43  allender
2143  * changed memory stuff again
2144  *
2145  * Revision 1.1  1995/05/05  08:59:41  allender
2146  * Initial revision
2147  *
2148  * Revision 1.43  1994/12/08  19:03:17  john
2149  * Added code to use cfile.
2150  *
2151  * Revision 1.42  1994/12/08  17:45:32  john
2152  * Put back in cfile stuff.
2153  *
2154  * Revision 1.41  1994/11/19  16:41:06  matt
2155  * Took out unused code
2156  *
2157  * Revision 1.40  1994/11/07  21:26:39  matt
2158  * Added new function iff_read_into_bitmap()
2159  *
2160  * Revision 1.39  1994/10/27  00:12:03  john
2161  * Used nocfile
2162  *
2163  * Revision 1.38  1994/08/10  19:49:58  matt
2164  * Fixed bitmaps in ILBM format with masking (stencil) on.
2165  *
2166  * Revision 1.37  1994/06/02  18:53:17  matt
2167  * Clear flags & selector in new bitmap structure
2168  *
2169  * Revision 1.36  1994/05/17  14:00:33  matt
2170  * Fixed bug with odd-width deltas & odd-length body chunks
2171  *
2172  * Revision 1.35  1994/05/16  20:38:55  matt
2173  * Made anim brushes work when odd width
2174  *
2175  * Revision 1.34  1994/05/06  19:37:26  matt
2176  * Improved error handling and checking
2177  *
2178  * Revision 1.33  1994/04/27  20:57:07  matt
2179  * Fixed problem with RLE decompression and odd-width bitmap
2180  * Added more error checking
2181  *
2182  * Revision 1.32  1994/04/16  21:44:19  matt
2183  * Fixed bug introduced last version
2184  *
2185  * Revision 1.31  1994/04/16  20:12:40  matt
2186  * Made masked (stenciled) bitmaps work
2187  *
2188  * Revision 1.30  1994/04/13  23:46:16  matt
2189  * Added function, iff_errormsg(), which returns ptr to error message.
2190  *
2191  * Revision 1.29  1994/04/13  23:27:25  matt
2192  * Put in support for anim brushes (.abm files)
2193  *
2194  * Revision 1.28  1994/04/13  16:33:31  matt
2195  * Cleaned up file read code, adding fake_file structure (FFILE), which
2196  * cleanly implements reading the entire file into a buffer and then reading
2197  * out of that buffer.
2198  *
2199  * Revision 1.27  1994/04/06  23:07:43  matt
2200  * Cleaned up code; added prototype (but no new code) for anim brush read
2201  *
2202  * Revision 1.26  1994/03/19  02:51:52  matt
2203  * Really did what I said I did last revision.
2204  *
2205  * Revision 1.25  1994/03/19  02:16:07  matt
2206  * Made work ILBMs which didn't have 8 planes
2207  *
2208  * Revision 1.24  1994/03/15  14:45:26  matt
2209  * When error, only free memory if has been allocated
2210  *
2211  * Revision 1.23  1994/02/18  12:39:05  john
2212  * Made code read from buffer.
2213  *
2214  * Revision 1.22  1994/02/15  18:15:26  john
2215  * Took out cfile attempt (too slow)
2216  *
2217  * Revision 1.21  1994/02/15  13:17:48  john
2218  * added assert to cfseek.
2219  *
2220  * Revision 1.20  1994/02/15  13:13:11  john
2221  * Made iff code work normally.
2222  *
2223  * Revision 1.19  1994/02/15  12:51:07  john
2224  * crappy inbetween version.
2225  *
2226  * Revision 1.18  1994/02/10  18:31:32  matt
2227  * Changed 'if DEBUG_ON' to 'ifndef NDEBUG'
2228  *
2229  * Revision 1.17  1994/01/24  11:51:26  john
2230  * Made write routine write transparency info.
2231  *
2232  * Revision 1.16  1994/01/22  14:41:11  john
2233  * Fixed bug with declareations.
2234  *
2235  * Revision 1.15  1994/01/22  14:23:00  john
2236  * Added global vars to check transparency
2237  *
2238  * Revision 1.14  1993/12/08  19:00:42  matt
2239  * Changed while loop to memset
2240  *
2241  * Revision 1.13  1993/12/08  17:23:51  mike
2242  * Speedup by converting while...getc to fread.
2243  *
2244  * Revision 1.12  1993/12/08  12:37:35  mike
2245  * Optimize parse_body.
2246  *
2247  * Revision 1.11  1993/12/05  17:30:14  matt
2248  * Made bitmaps with width <= 64 not compress
2249  *
2250  * Revision 1.10  1993/12/03  12:24:51  matt
2251  * Fixed TINY chunk when bitmap was part of a larger bitmap
2252  *
2253  * Revision 1.9  1993/11/22  17:26:43  matt
2254  * iff write now writes out a tiny chunk
2255  *
2256  * Revision 1.8  1993/11/21  22:04:13  matt
2257  * Fixed error with non-compressed bitmaps
2258  * Added Yuan's code to free raw data if we get an error parsing the body
2259  *
2260  * Revision 1.7  1993/11/11  12:12:12  yuan
2261  * Changed mallocs to MALLOCs.
2262  *
2263  * Revision 1.6  1993/11/01  19:02:23  matt
2264  * Fixed a couple bugs in rle compression
2265  *
2266  * Revision 1.5  1993/10/27  12:47:39  john
2267  * *** empty log message ***
2268  *
2269  * Revision 1.4  1993/10/27  12:37:31  yuan
2270  * Added mem.h
2271  *
2272  * Revision 1.3  1993/09/22  19:16:57  matt
2273  * Added new error type, IFF_CORRUPT, for internally bad IFF files.
2274  *
2275  * Revision 1.2  1993/09/08  19:24:16  matt
2276  * Fixed bug in RLE compression
2277  * Changed a bunch of unimportant values like aspect and page size when writing
2278  * Added new error condition, IFF_BAD_BM_TYPE
2279  * Make sub-bitmaps work correctly
2280  * Added compile flag to turn compression off (COMPRESS)
2281  *
2282  * Revision 1.1  1993/09/08  14:24:15  matt
2283  * Initial revision
2284
2285 ------------------------------------------------------------------------
2286 include/3d.h:
2287
2288  * Revision 1.2  1995/09/14  14:08:58  allender
2289  * return value for g3_draw_sphere
2290  *
2291  * Revision 1.1  1995/05/05  08:48:41  allender
2292  * Initial revision
2293  *
2294  * Revision 1.34  1994/11/11  19:22:14  matt
2295  * Added new function, g3_calc_point_depth()
2296  *
2297  * Revision 1.33  1994/09/09  14:23:58  matt
2298  * Added support for glowing textures, to add engine glow to Descent.
2299  *
2300  * Revision 1.32  1994/09/01  10:42:27  matt
2301  * Blob routine, renamed g3_draw_bitmap(), now takes seperate 3d width & height.
2302  *
2303  * Revision 1.31  1994/07/29  18:16:14  matt
2304  * Added instance by angles, and corrected parms for g3_init()
2305  *
2306  * Revision 1.30  1994/07/25  00:00:00  matt
2307  * Made 3d no longer deal with point numbers, but only with pointers.
2308  *
2309  * Revision 1.29  1994/07/22  17:57:27  matt
2310  * Changed the name of the rod functions, and took out some debugging code
2311  *
2312  * Revision 1.28  1994/06/07  16:49:12  matt
2313  * Made interpreter take lighting value as parm, rather than in global var
2314  *
2315  * Revision 1.27  1994/05/31  18:35:28  matt
2316  * Added light value to g3_draw_facing_bitmap()
2317  *
2318  * Revision 1.26  1994/05/30  22:48:04  matt
2319  * Added support for morph effect
2320  *
2321  * Revision 1.25  1994/05/30  11:34:57  matt
2322  * Added g3_set_special_render() to allow a user to specify functions to
2323  * call for 2d draws.
2324  *
2325  * Revision 1.24  1994/05/19  21:46:31  matt
2326  * Moved texture lighting out of 3d and into the game
2327  *
2328  * Revision 1.23  1994/05/14  15:26:48  matt
2329  * Added extern for polyobj outline flag
2330  *
2331  * Revision 1.22  1994/04/19  18:26:33  matt
2332  * Added g3_draw_sphere() function.
2333  *
2334  * Revision 1.21  1994/03/25  18:22:28  matt
2335  * g3_draw_polygon_model() now takes ptr to list of angles
2336  *
2337  * Revision 1.20  1994/03/15  21:23:23  matt
2338  * Added interpreter functions
2339  *
2340  * Revision 1.19  1994/02/15  17:37:34  matt
2341  * New function, g3_draw_blob()
2342  *
2343  * Revision 1.18  1994/02/09  11:47:47  matt
2344  * Added rod & delta point functions
2345  *
2346  * Revision 1.17  1994/01/26  12:38:11  matt
2347  * Added function g3_compute_lighting_value()
2348  *
2349  * Revision 1.16  1994/01/25  18:00:02  yuan
2350  * Fixed variable beam_brightness...
2351  *
2352  * Revision 1.15  1994/01/24  14:08:34  matt
2353  * Added instancing functions
2354  *
2355  * Revision 1.14  1994/01/22  18:21:48  matt
2356  * New lighting stuff now done in 3d; g3_draw_tmap() takes lighting parm
2357  *
2358  * Revision 1.13  1994/01/20  17:21:24  matt
2359  * New function g3_compute_sky_polygon()
2360  *
2361  * Revision 1.12  1994/01/14  17:20:25  matt
2362  * Added prototype for new function g3_draw_horizon()
2363  *
2364  * Revision 1.10  1993/12/20  20:21:52  matt
2365  * Added g3_point_2_vec()
2366  *
2367  * Revision 1.9  1993/12/07  23:05:47  matt
2368  * Fixed mistyped function name.
2369  *
2370  * Revision 1.8  1993/12/05  23:47:03  matt
2371  * Added function g3_draw_line_ptrs()
2372  *
2373  * Revision 1.7  1993/12/05  23:13:22  matt
2374  * Added prototypes for g3_rotate_point() and g3_project_point()
2375  *
2376  * Revision 1.6  1993/12/05  23:03:28  matt
2377  * Changed uvl structs to g3s_uvl
2378  *
2379  * Revision 1.5  1993/11/22  10:51:09  matt
2380  * Moved uvl structure here from segment.h, made texture map functions use it
2381  *
2382  * Revision 1.4  1993/11/21  20:08:31  matt
2383  * Added function g3_draw_object()
2384  *
2385  * Revision 1.3  1993/11/04  18:49:19  matt
2386  * Added system to only rotate points once per frame
2387  *
2388  * Revision 1.2  1993/11/04  08:16:06  mike
2389  * Add light field (p3_l) to g3s_point.
2390  *
2391  * Revision 1.1  1993/10/29  22:20:56  matt
2392  * Initial revision
2393
2394 ------------------------------------------------------------------------
2395 include/args.h:
2396
2397  * Revision 1.1  1995/05/16  15:54:24  allender
2398  * Initial revision
2399  *
2400  * Revision 2.0  1995/02/27  11:33:09  john
2401  * New version 2.0, which has no anonymous unions, builds with
2402  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
2403  *
2404  * Revision 1.4  1994/07/11  16:27:28  matt
2405  * Took out prototypes for netipx funcs
2406  *
2407  * Revision 1.3  1994/05/11  19:45:34  john
2408  * *** empty log message ***
2409  *
2410  * Revision 1.2  1994/05/09  17:02:55  john
2411  * Split command line parameters into arg.c and arg.h.
2412  * Also added /dma, /port, /irq to digi.c
2413  *
2414  * Revision 1.1  1994/05/09  16:47:49  john
2415  * Initial revision
2416
2417 ------------------------------------------------------------------------
2418 include/byteswap.h:
2419
2420  * Revision 1.4  1995/08/23  21:28:15  allender
2421  * fix mcc compiler warning
2422  *
2423  * Revision 1.3  1995/08/18  15:51:42  allender
2424  * put back in old byteswapping code
2425  *
2426  * Revision 1.2  1995/05/04  20:10:18  allender
2427  * proper prototypes
2428  *
2429  * Revision 1.1  1995/03/30  15:02:11  allender
2430  * Initial revision
2431
2432 ------------------------------------------------------------------------
2433 include/cfile.h:
2434
2435  * Revision 1.1  1995/03/30  10:25:08  allender
2436  * Initial revision
2437  *
2438  *
2439  * -- PC RCS Information ---
2440  * Revision 1.10  1995/03/13  15:16:47  john
2441  * Added alternate directory stuff.
2442  *
2443  * Revision 1.9  1995/02/01  20:56:40  john
2444  * Added cfexist function
2445  *
2446  * Revision 1.8  1995/01/21  17:53:41  john
2447  * Added alternate pig file thing.
2448  *
2449  * Revision 1.7  1994/12/12  13:19:47  john
2450  * Made cfile work with fiellentth.
2451  *
2452  * Revision 1.6  1994/12/08  19:02:52  john
2453  * Added cfgets.
2454  *
2455  * Revision 1.5  1994/12/07  21:34:07  john
2456  * Stripped out compression stuff...
2457  *
2458  * Revision 1.4  1994/07/13  00:16:53  matt
2459  * Added include
2460  *
2461  * Revision 1.3  1994/02/17  17:36:19  john
2462  * Added CF_READ_MODE and CF_WRITE_MODE constants.
2463  *
2464  * Revision 1.2  1994/02/15  12:52:08  john
2465  * Crappy inbetween version
2466  *
2467  * Revision 1.1  1994/02/15  10:54:23  john
2468  * Initial revision
2469  *
2470  * Revision 1.1  1994/02/10  15:50:54  john
2471  * Initial revision
2472
2473 ------------------------------------------------------------------------
2474 include/error.h:
2475
2476  * Revision 1.12  1994/06/17  15:22:46  matt
2477  * Added pragma for Error() for when NDEBUG
2478  *
2479  * Revision 1.11  1994/03/07  13:22:14  matt
2480  * Since the Error() function has 'aborts' set in pragma, we do a jmp
2481  * to the function rather than call.
2482  *
2483  * Revision 1.10  1994/02/17  12:37:15  matt
2484  * Combined two pragma's for Error(), since second superseded the first
2485  *
2486  * Revision 1.9  1994/02/10  18:02:53  matt
2487  * Changed 'if DEBUG_ON' to 'ifndef NDEBUG'
2488  *
2489  * Revision 1.8  1994/02/09  15:18:29  matt
2490  * Added pragma saying that Error() never returns
2491  *
2492  * Revision 1.7  1993/10/19  12:57:53  matt
2493  * If DEBUG_ON not defined, define it to be 1
2494  *
2495  * Revision 1.6  1993/10/15  21:40:39  matt
2496  * Made error functions generate int3's if debugging on
2497  *
2498  * Revision 1.5  1993/10/14  15:29:22  matt
2499  * Added new function clear_warn_func()
2500  *
2501  * Revision 1.4  1993/10/08  16:16:47  matt
2502  * Made Assert() call function _Assert(), rather to do 'if...' inline.
2503  *
2504  * Revision 1.3  1993/09/29  11:39:07  matt
2505  * Added Assert() macro, like the system one, but calls Error()
2506  *
2507  * Revision 1.2  1993/09/27  11:47:03  matt
2508  * Added function set_warn_func()
2509  *
2510  * Revision 1.1  1993/09/23  20:17:46  matt
2511  * Initial revision
2512
2513 ------------------------------------------------------------------------
2514 include/gr.h:
2515
2516  * Revision 1.7  1995/09/13  08:39:44  allender
2517  * added prototype for gr_bitblt_cockpit
2518  *
2519  * Revision 1.6  1995/08/23  18:47:01  allender
2520  * fixed compiler warnings on mcc
2521  *
2522  * Revision 1.5  1995/08/14  15:51:01  allender
2523  * added #define for transparency color
2524  *
2525  * Revision 1.4  1995/06/13  13:03:55  allender
2526  * added graphics mode
2527  *
2528  * Revision 1.3  1995/04/18  09:50:16  allender
2529  * *** empty log message ***
2530  *
2531  * Revision 1.2  1995/04/07  07:32:33  allender
2532  * *** empty log message ***
2533  *
2534  * Revision 1.1  1995/03/09  09:04:16  allender
2535  * Initial revision
2536  *
2537  *
2538  * --- PC RCS information ---
2539  * Revision 1.45  1994/11/18  22:50:21  john
2540  * Changed shorts to ints in parameters.
2541  *
2542  * Revision 1.44  1994/11/13  13:04:07  john
2543  * Added paged out bit in bitmap structure.  Commented out the
2544  * poly code that is never used.
2545  *
2546  * Revision 1.43  1994/11/09  23:04:56  mike
2547  * Add avg_color field.
2548  *
2549  * Revision 1.42  1994/10/27  00:53:35  john
2550  * Added RLE Flag to bitmap structere.
2551  *
2552  * Revision 1.41  1994/10/26  23:55:52  john
2553  * Took out roller; Took out inverse table.
2554  *
2555  * Revision 1.40  1994/08/11  17:59:12  mike
2556  * Assembler merge functions written for 3 rotations of bitmaps.
2557  *
2558  * Revision 1.39  1994/08/10  12:24:56  matt
2559  * Added support for colors fonts & kerned fonts
2560  * Made our own font file format
2561  *
2562  * Revision 1.38  1994/07/27  18:30:18  john
2563  * Took away the blending table.
2564  *
2565  * Revision 1.37  1994/06/16  15:25:06  mike
2566  * Add flag BM_FLAG_NO_LIGHTING.
2567  *
2568  * Revision 1.36  1994/05/31  10:01:22  john
2569  * *** empty log message ***
2570  *
2571  * Revision 1.35  1994/05/31  07:53:34  john
2572  * *** empty log message ***
2573  *
2574  * Revision 1.34  1994/05/14  17:19:41  matt
2575  * Added externs
2576  *
2577  * Revision 1.33  1994/05/12  17:33:09  john
2578  * Added circle code.
2579  *
2580  * Revision 1.32  1994/05/06  12:50:16  john
2581  * Added supertransparency; neatend things up; took out warnings.
2582  *
2583  * Revision 1.31  1994/05/04  10:06:06  john
2584  * Added flag for bitmap super-transparency.
2585  *
2586  * Revision 1.30  1994/05/03  19:38:56  john
2587  * *** empty log message ***
2588  *
2589  * Revision 1.29  1994/04/22  11:16:05  john
2590  * *** empty log message ***
2591  *
2592  * Revision 1.28  1994/04/08  16:59:32  john
2593  * Add fading poly's; Made palette fade 32 instead of 16.
2594  *
2595  * Revision 1.27  1994/03/16  17:29:52  john
2596  * *** empty log message ***
2597  *
2598  * Revision 1.26  1994/03/16  17:20:51  john
2599  * Added slow palette searching options.
2600  *
2601  * Revision 1.25  1994/03/14  17:59:20  john
2602  * Added function to check bitmap's transparency.
2603  *
2604  * Revision 1.24  1994/03/14  16:56:26  john
2605  * Changed grs_bitmap structure to include bm_flags.
2606  *
2607  * Revision 1.23  1994/02/18  15:32:30  john
2608  * *** empty log message ***
2609  *
2610  * Revision 1.22  1994/01/25  11:40:48  john
2611  * Added gr_check_mode function.
2612  *
2613  * Revision 1.21  1994/01/12  13:45:24  john
2614  * Added scaler.
2615  *
2616  * Revision 1.20  1993/12/21  19:58:24  john
2617  * added selector stuff
2618  *
2619  * Revision 1.19  1993/12/21  11:40:40  john
2620  * *** empty log message ***
2621  *
2622  * Revision 1.18  1993/12/09  15:02:08  john
2623  * Changed palette stuff majorly
2624  *
2625  * Revision 1.17  1993/12/07  12:32:05  john
2626  * moved bmd_palette to gr_palette
2627  *
2628  * Revision 1.16  1993/11/28  12:08:06  mike
2629  * Change prototype for rotate_bitmap.
2630  *
2631  * Revision 1.15  1993/11/18  14:22:51  mike
2632  * Add prototype for rotate_bitmap.
2633  *
2634  * Revision 1.14  1993/11/17  19:00:59  mike
2635  * Add prototype for test_rotate_bitmap
2636  *
2637  * Revision 1.13  1993/11/16  11:28:58  john
2638  * *** empty log message ***
2639  *
2640  * Revision 1.12  1993/10/26  13:17:43  john
2641  * *** empty log message ***
2642  *
2643  * Revision 1.11  1993/10/15  16:23:37  john
2644  * y
2645  *
2646  * Revision 1.10  1993/09/28  15:32:33  john
2647  * added def for save/restore vidmode
2648  *
2649  * Revision 1.9  1993/09/28  12:51:46  matt
2650  * Added aspect ratio to grs_screen structure
2651  *
2652  * Revision 1.8  1993/09/26  22:45:12  matt
2653  * Changed prototypes for line functions to take fixes, not ints.
2654  *
2655  * Revision 1.7  1993/09/26  18:58:16  john
2656  * fadein/out stuff
2657  *
2658  * Revision 1.6  1993/09/14  16:26:44  matt
2659  * Changed gr_change_mode() to be gr_set_mode()
2660  *
2661  * Revision 1.4  1993/09/14  13:08:45  john
2662  * added gr_change_mode
2663  *
2664  * Revision 1.3  1993/09/08  13:56:03  matt
2665  * Put 'if' block around body of file; added bitmap type BM_RGB15
2666  *
2667  * Revision 1.2  1993/09/08  13:02:14  john
2668  * Changed structure definitions a bit.
2669  *
2670  * Revision 1.1  1993/09/08  11:25:15  john
2671  * Initial revision
2672
2673 ------------------------------------------------------------------------
2674 include/grdef.h:
2675
2676  * Revision 1.5  1995/09/14  15:36:33  allender
2677  * added stuff for 68k version
2678  *
2679  * Revision 1.4  1995/07/05  16:10:57  allender
2680  * gr_linear_movsd prototype changes
2681  *
2682  * Revision 1.3  1995/04/19  14:39:28  allender
2683  * changed function prototype
2684  *
2685  * Revision 1.2  1995/04/18  09:49:53  allender
2686  * *** empty log message ***
2687  *
2688  * Revision 1.1  1995/03/09  09:04:56  allender
2689  * Initial revision
2690  *
2691  *
2692  * --- PC RCS information ---
2693  * Revision 1.8  1994/05/06  12:50:09  john
2694  * Added supertransparency; neatend things up; took out warnings.
2695  *
2696  * Revision 1.7  1994/01/25  11:40:29  john
2697  * Added gr_check_mode function.
2698  *
2699  * Revision 1.6  1993/10/15  16:22:53  john
2700  * y
2701  *
2702  * Revision 1.5  1993/09/29  17:31:00  john
2703  * added gr_vesa_pixel
2704  *
2705  * Revision 1.4  1993/09/29  16:14:43  john
2706  * added global canvas descriptors.
2707  *
2708  * Revision 1.3  1993/09/08  17:38:02  john
2709  * Looking for errors
2710  *
2711  * Revision 1.2  1993/09/08  15:54:29  john
2712  * *** empty log message ***
2713  *
2714  * Revision 1.1  1993/09/08  11:37:57  john
2715  * Initial revision
2716
2717 ------------------------------------------------------------------------
2718 include/ibitblt.h:
2719
2720  * Revision 1.1  1995/08/18  15:50:57  allender
2721  * Initial revision
2722  *
2723  * Revision 1.2  1994/05/31  11:10:56  john
2724  * *** empty log message ***
2725  *
2726  * Revision 1.1  1994/05/30  16:08:46  john
2727  * Initial revision
2728
2729 ------------------------------------------------------------------------
2730 include/iff.h:
2731
2732  * Revision 1.2  1995/05/05  16:33:22  allender
2733  * changed types.h to dtypes.h
2734  *
2735  * Revision 1.1  1995/05/05  08:59:45  allender
2736  * Initial revision
2737  *
2738  * Revision 1.12  1994/11/07  21:26:53  matt
2739  * Added new function iff_read_into_bitmap()
2740  *
2741  * Revision 1.11  1994/05/06  19:37:38  matt
2742  * Improved error handling and checking
2743  *
2744  * Revision 1.10  1994/04/16  20:12:54  matt
2745  * Made masked (stenciled) bitmaps work
2746  *
2747  * Revision 1.9  1994/04/13  23:46:00  matt
2748  * Added function, iff_errormsg(), which returns ptr to error message.
2749  *
2750  * Revision 1.8  1994/04/13  23:27:10  matt
2751  * Put in support for anim brushes (.abm files)
2752  *
2753  * Revision 1.7  1994/04/06  23:08:02  matt
2754  * Cleaned up code; added prototype (but no new code) for anim brush read
2755  *
2756  * Revision 1.6  1994/01/22  14:40:59  john
2757  * Fixed bug with declareations.
2758  *
2759  * Revision 1.5  1994/01/22  14:23:13  john
2760  * Added global vars to check transparency
2761  *
2762  * Revision 1.4  1993/10/27  12:47:42  john
2763  * Extended the comments
2764  *
2765  * Revision 1.3  1993/09/22  19:17:20  matt
2766  * Fixed handling of pad byte in ILBM/PPB body - was writing pad byte to
2767  * destination buffer.
2768  *
2769  * Revision 1.2  1993/09/08  19:23:25  matt
2770  * Added additional return code, IFF_BAD_BM_TYPE
2771  *
2772  * Revision 1.1  1993/09/08  14:24:21  matt
2773  * Initial revision
2774
2775 ------------------------------------------------------------------------
2776 include/ipx.h:
2777
2778  * Revision 2.6  1995/03/29  11:19:32  john
2779  * Added broadcasting over a net.
2780  *
2781  * Revision 2.5  1995/03/28  20:04:43  john
2782  * Took away alternate server stuff.
2783  *
2784  * Revision 2.4  1995/03/23  19:00:10  john
2785  * Added user list capabitly.
2786  *
2787  * Revision 2.3  1995/03/23  12:26:57  john
2788  * Move IPX into bios lib.
2789  *
2790  * Revision 2.2  1995/03/22  19:08:14  john
2791  * Added code to fix sending packets over router... now
2792  * we just need to make broadcasts go over router!!
2793  *
2794  * Revision 2.1  1995/03/21  08:39:56  john
2795  * Ifdef'd out the NETWORK code.
2796  *
2797  * Revision 2.0  1995/02/27  11:30:16  john
2798  * New version 2.0, which has no anonymous unions, builds with
2799  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
2800  *
2801  * Revision 1.16  1995/02/16  17:34:52  john
2802  * Added code to allow dynamic socket changing.
2803  *
2804  * Revision 1.15  1995/01/04  21:43:27  rob
2805  * Remove SPX size definition.
2806  *
2807  * Revision 1.14  1995/01/03  13:46:18  john
2808  * Added code that should make ipx work over different servers,
2809  * but ifdef'd it out with SHAREWARE in ipx.c.  I haven't tested
2810  * this, and I hope it doesn't introduce net bugs.
2811  *
2812  * Revision 1.13  1994/11/02  11:37:16  rob
2813  * Changed default socket number to a higher regions.
2814  *
2815  * Revision 1.12  1994/11/01  15:56:51  rob
2816  * Added defines for SPX socketsx.
2817  *
2818  * Revision 1.11  1994/10/31  19:23:31  rob
2819  * Added a prototype for the new object send function.
2820  *
2821  * Revision 1.10  1994/09/07  13:37:25  john
2822  * Changed default socket to 0x4000, because
2823  * the ipx/spx book says that we can only use
2824  * sockets 0x4000 - 0x7fff.
2825  *
2826  * Revision 1.9  1994/08/25  18:14:45  matt
2827  * Changed socket because of packet change
2828  *
2829  * Revision 1.8  1994/08/12  22:42:24  john
2830  * Took away Player_stats; added Players array.
2831  *
2832  * Revision 1.7  1994/08/09  19:31:47  john
2833  * Networking changes.
2834  *
2835  * Revision 1.6  1994/08/05  16:11:46  john
2836  * Psuedo working version of networking.
2837  *
2838  * Revision 1.5  1994/08/04  19:17:20  john
2839  * Inbetween version of network stuff.
2840  *
2841  * Revision 1.4  1994/07/29  16:08:59  john
2842  * *** empty log message ***
2843  *
2844  * Revision 1.3  1994/07/25  12:33:22  john
2845  * Network "pinging" in.
2846  *
2847  * Revision 1.2  1994/07/20  15:58:29  john
2848  * First installment of ipx stuff.
2849  *
2850  * Revision 1.1  1994/07/19  15:43:05  john
2851  * Initial revision
2852
2853 ------------------------------------------------------------------------
2854 include/palette.h:
2855
2856  * Revision 1.11  1994/11/15  17:55:10  john
2857  * Made text palette fade in when game over.
2858  *
2859  * Revision 1.10  1994/11/07  13:53:42  john
2860  * Added better gamma stufff.
2861  *
2862  * Revision 1.9  1994/11/07  13:38:03  john
2863  * Added gamma correction stuff.
2864  *
2865  * Revision 1.8  1994/11/05  13:05:59  john
2866  * Added back in code to allow keys during fade.
2867  *
2868  * Revision 1.7  1994/11/05  12:46:37  john
2869  * Changed palette stuff a bit.
2870  *
2871  * Revision 1.6  1994/09/22  16:08:37  john
2872  * Fixed some palette stuff.
2873  *
2874  * Revision 1.5  1994/08/09  11:27:04  john
2875  * Add cthru stuff.
2876  *
2877  * Revision 1.4  1994/06/09  10:39:33  john
2878  * In fade out.in functions, returned 1 if key was pressed...
2879  *
2880  * Revision 1.3  1994/05/31  19:04:24  john
2881  * Added key to stop fade if desired.
2882  *
2883  * Revision 1.2  1994/05/06  12:50:42  john
2884  * Added supertransparency; neatend things up; took out warnings.
2885  *
2886  * Revision 1.1  1994/05/04  14:59:57  john
2887  * Initial revision
2888
2889 ------------------------------------------------------------------------
2890 include/pcx.h:
2891
2892  * Revision 1.4  1995/01/21  17:07:34  john
2893  * Added out of memory error.
2894  *
2895  * Revision 1.3  1994/11/29  02:53:10  john
2896  * Added error messages; made call be more similiar to iff.
2897  *
2898  * Revision 1.2  1994/11/28  20:03:48  john
2899  * Added PCX functions.
2900  *
2901  * Revision 1.1  1994/11/28  19:57:45  john
2902  * Initial revision
2903
2904 ------------------------------------------------------------------------
2905 include/pstypes.h:
2906
2907  * Revision 1.2  1993/09/14  12:12:30  matt
2908  * Added #define for NULL
2909  *
2910  * Revision 1.1  1993/08/24  12:50:40  matt
2911  * Initial revision
2912
2913 ------------------------------------------------------------------------
2914 include/rle.h:
2915
2916  * Revision 1.5  1995/01/14  11:32:20  john
2917  * Added rle_cache_flush function.
2918  *
2919  * Revision 1.4  1994/11/10  13:16:01  matt
2920  * Added includes
2921  *
2922  * Revision 1.3  1994/11/09  19:53:51  john
2923  * Added texture rle caching.
2924  *
2925  * Revision 1.2  1994/11/09  16:35:18  john
2926  * First version with working RLE bitmaps.
2927  *
2928  * Revision 1.1  1994/11/09  12:40:17  john
2929  * Initial revision
2930
2931 ------------------------------------------------------------------------
2932 include/texmap.h:
2933
2934  * $Log: not supported by cvs2svn $
2935  * Revision 1.2  2004/08/28 23:37:35  schaffner
2936  * move old per-file change logs into new file ChangeLog-old
2937  *
2938  * Revision 1.1  2004/08/28 23:17:45  schaffner
2939  * move old per-file change logs into new file ChangeLog-old
2940  *
2941  * Revision 1.2  2003/03/19 19:21:34  btb
2942  * header/extern declaration housekeeping
2943  *
2944  * Revision 1.1.1.1  2001/01/19 03:30:16  bradleyb
2945  * Import of d2x-0.0.8
2946  *
2947  * Revision 1.2  1999/07/07 21:21:56  donut
2948  * increased recip table size to better accommodate 640 res
2949  *
2950  * Revision 1.1.1.1  1999/06/14 22:02:20  donut
2951  * Import of d1x 1.37 source.
2952  *
2953  * Revision 1.2  1995/09/04  14:22:10  allender
2954  * #defines for fixed point limits on render buffer
2955  *
2956  * Revision 1.1  1995/05/04  20:14:50  allender
2957  * Initial revision
2958  *
2959  * Revision 1.17  1994/11/10  11:09:16  mike
2960  * detail level stuff.
2961  * 
2962  * Revision 1.16  1994/11/09  22:55:32  matt
2963  * Added variable Current_seg_depth for detail level optimization
2964  * 
2965  * Revision 1.15  1994/06/09  16:10:04  mike
2966  * Add prototype for SC2000
2967  * 
2968  * Revision 1.14  1994/05/25  18:46:16  matt
2969  * Added gr_upoly_tmap_ylr(), which generates ylr's for a polygon
2970  * 
2971  * Revision 1.13  1994/05/25  09:47:12  mike
2972  * Added interface support for linear texture mapper (Mike change, Matt commnet)
2973  * 
2974  * Revision 1.12  1994/05/24  17:30:43  mike
2975  * Prototype a bunch of linear, vertical scanning functions.
2976  * 
2977  * Revision 1.11  1994/05/19  23:26:14  mike
2978  * Add constants NUM_LIGHTING_VALUES, MAX_LIGHTING_VALUE, MIN_LIGHTING_VALUE,
2979  * all part of new lighting_values_in_0_to_1 system.
2980  * 
2981  * Revision 1.10  1994/05/14  17:19:21  matt
2982  * Added externs
2983  * 
2984  * Revision 1.9  1994/04/13  23:55:44  matt
2985  * Increased max_tmap_verts from 16 to 25
2986  * 
2987  * Revision 1.8  1994/03/31  08:35:43  mike
2988  * Prototype for gr_upoly_tmap.
2989  * 
2990  * Revision 1.7  1994/02/08  15:17:54  mike
2991  * define label for MAX_TMAP_VERTS
2992  * 
2993  * Revision 1.6  1994/01/31  15:41:51  mike
2994  * Add texture_map_lin_lin_sky_v
2995  * 
2996  * Revision 1.5  1994/01/18  10:49:40  mike
2997  * prototype for texture_map_lin_lin_sky
2998  * 
2999  * Revision 1.4  1993/11/30  17:09:46  mike
3000  * prototype for compute_lighting_value.
3001  * 
3002  * Revision 1.3  1993/11/22  10:50:38  matt
3003  * Add ifndef around body of file
3004  * 
3005  * Revision 1.2  1993/10/06  12:41:25  mike
3006  * Change prototype for draw_tmap.
3007  * 
3008  * Revision 1.1  1993/09/08  17:29:11  mike
3009  * Initial revision
3010
3011 ------------------------------------------------------------------------
3012 include/timer.h:
3013
3014  * Revision 1.8  1994/12/10  12:27:23  john
3015  * Added timer_get_approx_seconds.
3016  *
3017  * Revision 1.7  1994/12/10  12:10:25  john
3018  * Added types.h.
3019  *
3020  * Revision 1.6  1994/12/10  12:07:06  john
3021  * Added tick counter variable.
3022  *
3023  * Revision 1.5  1994/11/15  12:04:15  john
3024  * Cleaned up timer code a bit... took out unused functions
3025  * like timer_get_milliseconds, etc.
3026  *
3027  * Revision 1.4  1994/04/28  23:50:08  john
3028  * Changed calling for init_timer.  Made the function that the
3029  * timer calls be a far function. All of this was done to make
3030  * our timer system compatible with the HMI sound stuff.
3031  *
3032  * Revision 1.3  1994/02/17  15:57:12  john
3033  * Changed key libary to C.
3034  *
3035  * Revision 1.2  1994/01/18  10:58:34  john
3036  * Added timer_get_fixed_seconds
3037  *
3038  * Revision 1.1  1993/07/10  13:10:41  matt
3039  * Initial revision
3040
3041 ------------------------------------------------------------------------
3042 include/u_dpmi.h:
3043
3044  * Revision 1.9  1995/01/14  19:20:14  john
3045  * Added function to set a selector's base address.
3046  *
3047  * Revision 1.8  1994/11/28  20:22:03  john
3048  * Added some variables that return the amount of available
3049  * memory.
3050  *
3051  * Revision 1.7  1994/11/15  18:26:38  john
3052  * Added verbose flag.
3053  *
3054  * Revision 1.6  1994/11/07  11:35:05  john
3055  * Added prototype for real_free
3056  *
3057  * Revision 1.5  1994/10/27  19:54:48  john
3058  * Added unlock region function,.
3059  *
3060  * Revision 1.4  1994/09/27  18:27:56  john
3061  * Added pragma to make inp,outp,enable,disable intrinsic
3062  *
3063  * Revision 1.3  1994/09/27  11:54:45  john
3064  * Added DPMI init function.
3065  *
3066  * Revision 1.2  1994/08/24  18:53:51  john
3067  * Made Cyberman read like normal mouse; added dpmi module; moved
3068  * mouse from assembly to c. Made mouse buttons return time_down.
3069  *
3070  * Revision 1.1  1994/08/24  10:22:48  john
3071  * Initial revision
3072
3073 ------------------------------------------------------------------------
3074 include/vecmat.h:
3075
3076  * Revision 1.1  1995/04/17  16:18:05  allender
3077  * Initial revision
3078  *
3079  *
3080  * --- PC RCS Information ---
3081  * Revision 1.37  1995/02/22  13:23:22  john
3082  * Added the vms_vector_array structure, to access a vms_vector
3083  * with an array.
3084  *
3085  * Revision 1.36  1995/02/22  12:34:33  john
3086  * Took out anonymous unions.
3087  *
3088  * Revision 1.35  1994/12/13  14:44:20  matt
3089  * Added vm_vector_2_matrix_norm()
3090  *
3091  * Revision 1.34  1994/09/11  19:22:55  matt
3092  * Added vm_vec_normalized_dir_quick()
3093  *
3094  * Revision 1.33  1994/08/04  19:45:38  matt
3095  * Added option to make a bunch of functions (add, sub, dotprod) inline
3096  *
3097  * Revision 1.32  1994/07/19  18:52:36  matt
3098  * Added vm_vec_normalize_quick() and vm_vec_copy_normalize_quick()
3099  *
3100  * Revision 1.31  1994/06/16  18:24:30  matt
3101  * Added vm_vec_mag_quick()
3102  *
3103  * Revision 1.30  1994/06/10  23:19:00  matt
3104  * New register usage for vm_vec_ang_2_matrix()
3105  *
3106  * Revision 1.29  1994/06/01  17:32:06  matt
3107  * Fixed modify list for vm_vec_normalized_dir()
3108  *
3109  * Revision 1.28  1994/05/19  12:07:20  matt
3110  * Fixed globals and macros and added a constant
3111  *
3112  * Revision 1.27  1994/05/19  09:19:15  matt
3113  * Made vm_vec_normalized_dir() return mag of vector
3114  *
3115  * Revision 1.26  1994/05/18  22:28:57  matt
3116  * Added function vm_vec_normalized_dir()
3117  * Added C macros IS_ZERO_VEC(), vm_vec_zero(), and vm_set_identity()
3118  * Added C global static vars vmd_zero_vector & vmd_identity_matrix
3119  *
3120  * Revision 1.25  1994/05/18  21:45:06  matt
3121  * Added functions:
3122  *   vm_extract_angles_vector()
3123  *   vm_extract_angles_vector_normalized()
3124  *   vm_vec_copy_normalize()
3125  *
3126  * Revision 1.24  1994/05/13  12:42:16  matt
3127  * Added new function, vm_vec_dist_quick(), which does an approximation.
3128  *
3129  * Revision 1.23  1994/03/30  13:37:34  matt
3130  * Added prototype for vm_vec_scale_add(), and fixed typos
3131  *
3132  * Revision 1.22  1994/03/30  13:29:42  matt
3133  * Header for vm_vec_scale_add2()
3134  *
3135  * Revision 1.21  1994/01/31  19:45:13  matt
3136  * Added function vm_extract_angles_matrix()
3137  *
3138  * Revision 1.20  1993/12/21  19:46:14  matt
3139  * Added function vm_dist_to_plane()
3140  *
3141  * Revision 1.19  1993/12/13  17:26:41  matt
3142  * Added vm_vec_dist()
3143  *
3144  * Revision 1.18  1993/12/02  12:45:11  matt
3145  * New functions: vm_vec_copy_scale(), vm_vec_scale2()
3146  * Aliases: vm_transpose(), vm_vec_dot(), vm_vec_cross(), vm_copy_transpose()
3147  *
3148  * Revision 1.17  1993/10/29  22:38:36  matt
3149  * Changed matrix order, making direction vectors the rows
3150  *
3151  * Revision 1.16  1993/10/25  11:49:57  matt
3152  * Made vm_vec_delta_ang() take optional forward vector to return signed delta
3153  *
3154  * Revision 1.15  1993/10/20  01:10:05  matt
3155  * Added vm_vec_delta_ang(), vm_vec_delta_ang_norm(), and vm_vec_ang_2_matrix()
3156  *
3157  * Revision 1.14  1993/10/17  17:02:52  matt
3158  * vm_vector_2_matrix() now takes optional right vector
3159  *
3160  * Revision 1.13  1993/10/12  19:31:39  matt
3161  * Added IDENTITY_MATRIX constant
3162  *
3163  * Revision 1.12  1993/10/08  18:10:16  matt
3164  * Changed vm_vec_make() and vm_angvec_make() to be inline assembly
3165  * functions, to get rid of compiler warnings.  Did not change vm_mat_make(),
3166  * which could still get warnings if the return value is unused.
3167  *
3168  * Revision 1.11  1993/09/29  12:10:07  matt
3169  * Changed modified regs in pragmas to include return register
3170  *
3171  * Revision 1.10  1993/09/28  12:15:41  matt
3172  * Added func vm_vector_2_matrix()
3173  *
3174  * Revision 1.9  1993/09/24  21:18:38  matt
3175  * Added vm_vec_avg(), vm_vec_avg4(), and vm_angvec_make().
3176  * Documented which functions could have dest==source
3177  *
3178  * Revision 1.8  1993/09/20  14:56:11  matt
3179  * Added new function, vm_vec_perp()
3180  *
3181  * Revision 1.7  1993/09/20  14:27:42  mike
3182  * unfix last fix which introduced a bug
3183  *
3184  * Revision 1.6  1993/09/20  10:11:53  mike
3185  * no changes
3186  *
3187  * Revision 1.5  1993/09/20  09:58:58  mike
3188  * Re-fix vm_vec_make
3189  *
3190  * Revision 1.4  1993/09/20  09:41:21  mike
3191  * Correct vm_vec_make and vm_mat_make macros to return the destination
3192  * as the value of the macro.
3193  *
3194  * Revision 1.3  1993/09/17  11:23:47  matt
3195  * Added row access (via xrow,yrow,zrow) to vms_matrix
3196  * Added macro vm_mat_make(), like vm_vec_make()
3197  *
3198  * Revision 1.2  1993/09/17  11:10:32  matt
3199  * Added vm_vec_add2() and vm_vec_sub2(), which take 2 args (dest==src0)
3200  *
3201  * Revision 1.1  1993/09/16  20:10:01  matt
3202  * Initial revision
3203
3204 ------------------------------------------------------------------------
3205 main/ai.c:
3206
3207  * Revision 1.1  1995/12/05  14:15:37  allender
3208  * Initial revision
3209  *
3210  * Revision 1.10  1995/11/09  09:36:12  allender
3211  * cheats not active during demo playback
3212  *
3213  * Revision 1.9  1995/11/03  12:51:55  allender
3214  * shareware changes
3215  *
3216  * Revision 1.8  1995/10/31  10:25:07  allender
3217  * shareware stuff
3218  *
3219  * Revision 1.7  1995/10/26  14:01:38  allender
3220  * optimization for doing robot stuff only if anim angles done last frame
3221  *
3222  * Revision 1.6  1995/10/25  09:35:43  allender
3223  * prototype some functions causing mcc problems
3224  *
3225  * Revision 1.5  1995/10/17  13:11:40  allender
3226  * fix in ai code that makes bots only look for you every so often
3227  *
3228  * Revision 1.4  1995/10/10  11:48:10  allender
3229  * PC ai code
3230  *
3231  * Revision 2.11  1995/07/09  11:15:48  john
3232  * Put in Mike's code to fix bug where bosses don't gate in bots after
3233  * 32767 seconds of playing.
3234  *
3235  * Revision 2.10  1995/06/15  12:31:08  john
3236  * Fixed bug with cheats getting enabled when you type
3237  * the whole alphabet.
3238  *
3239  * Revision 2.9  1995/05/26  16:16:18  john
3240  * Split SATURN into define's for requiring cd, using cd, etc.
3241  * Also started adding all the Rockwell stuff.
3242  *
3243  * Revision 2.8  1995/04/06  15:12:27  john
3244  * Fixed bug with insane not working.
3245  *
3246  * Revision 2.7  1995/03/30  16:36:44  mike
3247  * text localization.
3248  *
3249  * Revision 2.6  1995/03/28  11:22:24  john
3250  * Added cheats to save file. Changed lunacy text.
3251  *
3252  * Revision 2.5  1995/03/27  16:45:07  john
3253  * Fixed some cheat bugs.  Added astral cheat.
3254  *
3255  * Revision 2.4  1995/03/24  15:29:17  mike
3256  * add new cheats.
3257  *
3258  * Revision 2.3  1995/03/21  14:39:45  john
3259  * Ifdef'd out the NETWORK code.
3260  *
3261  * Revision 2.2  1995/03/14  18:24:39  john
3262  * Force Destination Saturn to use CD-ROM drive.
3263  *
3264  * Revision 2.1  1995/03/06  16:47:14  mike
3265  * destination saturn
3266  *
3267  * Revision 2.0  1995/02/27  11:30:01  john
3268  * New version 2.0, which has no anonymous unions, builds with
3269  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
3270  *
3271  * Revision 1.295  1995/02/22  13:23:04  allender
3272  * remove anonymous unions from object structure
3273  *
3274  * Revision 1.294  1995/02/13  11:00:43  rob
3275  * Make brain guys high enough to get an open slot.
3276  *
3277  * Revision 1.293  1995/02/13  10:31:55  mike
3278  * Make brains understand they can't open locked doors.
3279  *
3280  * Revision 1.292  1995/02/13  10:18:01  rob
3281  * Reduced brain guy's level of awareness to keep him from hogging slots.
3282  *
3283  * Revision 1.291  1995/02/11  12:27:12  mike
3284  * fix path-to-exit cheat.
3285  *
3286  * Revision 1.290  1995/02/11  01:56:30  mike
3287  * robots don't fire cheat.
3288  *
3289  * Revision 1.289  1995/02/10  17:15:09  rob
3290  * Fixed some stuff with 64 awareness stuff.
3291  *
3292  * Revision 1.288  1995/02/10  16:31:32  mike
3293  * oops.
3294  *
3295  * Revision 1.287  1995/02/10  16:24:45  mike
3296  * fix the network follow path fix.
3297  *
3298  * Revision 1.286  1995/02/10  16:11:40  mike
3299  * in serial or modem games, follow path guys don't move if far away and
3300  * can't see player.
3301  *
3302  * Revision 1.285  1995/02/09  13:11:35  mike
3303  * comment out a bunch of mprintfs.
3304  * add toaster (drops prox bombs, runs away) to boss gate list.
3305  *
3306  * Revision 1.284  1995/02/08  22:44:53  rob
3307  * Lowerd anger level for follow path of any sort.
3308  *
3309  * Revision 1.283  1995/02/08  22:30:43  mike
3310  * lower awareness on station guys if they are returning home (multiplayer).
3311  *
3312  * Revision 1.282  1995/02/08  17:01:06  rob
3313  * Fixed problem with toasters dropping of proximity bombs.
3314  *
3315  * Revision 1.281  1995/02/08  11:49:35  rob
3316  * Reduce Green-guy attack awareness level so we don't let him attack us too.
3317  *
3318  * Revision 1.280  1995/02/08  11:37:52  mike
3319  * Check for failures in call to obj_create.
3320  *
3321  * Revision 1.279  1995/02/07  20:38:46  mike
3322  * fix toasters in multiplayer
3323  *
3324  *
3325  * Revision 1.278  1995/02/07  16:51:07  mike
3326  * fix sound time play bug.
3327  *
3328  * Revision 1.277  1995/02/06  22:33:04  mike
3329  * make robots follow path better in cooperative/roboarchy.
3330  *
3331  * Revision 1.276  1995/02/06  18:15:42  rob
3332  * Added forced sends for evasion movemnet.
3333  *
3334  * Revision 1.275  1995/02/06  16:41:22  rob
3335  * Change some positioning calls.
3336  *
3337  * Revision 1.274  1995/02/06  11:40:33  mike
3338  * replace some lint-related hacks with clean, proper code.
3339  *
3340  * Revision 1.273  1995/02/04  17:28:19  mike
3341  * make station guys return better.
3342  *
3343  * Revision 1.272  1995/02/03  17:40:55  mike
3344  * fix problem with robots falling asleep if you sit in game overnight, not in pause...bah.
3345  *
3346  * Revision 1.271  1995/02/02  21:11:25  rob
3347  * Tweaking stuff for multiplayer ai.
3348  *
3349  * Revision 1.270  1995/02/02  17:32:06  john
3350  * Added Hack for Assert that Mike put in after using Lint to find
3351  * uninitialized variables.
3352  *
3353  * Revision 1.269  1995/02/02  16:46:31  mike
3354  * fix boss gating.
3355  *
3356  * Revision 1.268  1995/02/02  16:27:29  mike
3357  * make boss not put out infinite robots.
3358  *
3359  * Revision 1.267  1995/02/01  21:10:02  mike
3360  * lint found bug! player_visibility not initialized!
3361  *
3362  * Revision 1.266  1995/02/01  20:51:27  john
3363  * Lintized
3364  *
3365  * Revision 1.265  1995/02/01  17:14:05  mike
3366  * fix robot sounds.
3367  *
3368  * Revision 1.264  1995/01/31  16:16:40  mike
3369  * Comment out "Darn you, John" Int3().
3370  *
3371  * Revision 1.263  1995/01/30  20:55:04  mike
3372  * fix nonsense in robot firing when a player is cloaked.
3373  *
3374  * Revision 1.262  1995/01/30  17:15:10  rob
3375  * Fixed problems with bigboss eclip messages.
3376  * Tweaked robot position sending for modem purposes.
3377  *
3378  * Revision 1.261  1995/01/30  15:30:31  rob
3379  * Prevent non-master players from gating in robots.
3380  *
3381  * Revision 1.260  1995/01/30  13:30:55  mike
3382  * new cases for firing at other players were bogus, could send position
3383  * without permission.
3384  *
3385  * Revision 1.259  1995/01/30  13:01:17  mike
3386  * Make robots fire at player other than one they are controlled by sometimes.
3387  *
3388  * Revision 1.258  1995/01/29  16:09:17  rob
3389  * Trying to get robots to shoot at non-controlling players.
3390  *
3391  * Revision 1.257  1995/01/29  13:47:05  mike
3392  * Make boss have more fireballs on death, have until end (though silent at end).
3393  * Fix bug which was preventing him from teleporting until hit, so he'd always
3394  * be in the same place when the player enters the room.
3395  *
3396  * Revision 1.256  1995/01/28  17:40:18  mike
3397  * make boss teleport & gate before you see him.
3398  *
3399  * Revision 1.255  1995/01/27  17:02:08  mike
3400  * move code around, was sending one frame (or worse!) old robot information.
3401  *
3402  * Revision 1.254  1995/01/26  17:02:43  mike
3403  * make fusion cannon have more chrome, make fusion, mega rock you!
3404  *
3405  * Revision 1.253  1995/01/26  15:11:17  rob
3406  * Shutup!  I fixed it!
3407  *
3408  * Revision 1.252  1995/01/26  15:08:55  rob
3409  * Changed robot gating to accomodate multiplayer.
3410  *
3411  * Revision 1.251  1995/01/26  14:49:04  rob
3412  * Increase awareness level for firing to 94.
3413  *
3414  * Revision 1.250  1995/01/26  12:41:20  mike
3415  * fix bogus multiplayer code, would send permission without getting permission.
3416  *
3417  * Revision 1.249  1995/01/26  12:23:23  rob
3418  * Removed defines that were moved to ai.h
3419  *
3420  * Revision 1.248  1995/01/25  23:38:48  mike
3421  * modify list of robots gated in by super boss.
3422  *
3423  * Revision 1.247  1995/01/25  21:21:13  rob
3424  * Trying to let robots fire at a player even if they're not in control.
3425  *
3426  * Revision 1.246  1995/01/25  13:50:37  mike
3427  * Robots make angry sounds.
3428  *
3429  * Revision 1.245  1995/01/25  10:53:47  mike
3430  * better handling of robots which poke out of mine and try to recover.
3431  *
3432  * Revision 1.244  1995/01/24  22:03:02  mike
3433  * Tricky code to move a robot to a legal position if he is poking out of
3434  * the mine, even if it means moving him to another segment.
3435  *
3436  * Revision 1.243  1995/01/24  20:12:06  rob
3437  * Changed robot fire awareness level from 74 to 94.
3438  *
3439  * Revision 1.242  1995/01/24  13:22:32  mike
3440  * make robots accelerate faster, and Difficulty_level dependent.
3441  *
3442  * Revision 1.241  1995/01/24  12:09:39  mike
3443  * make robots animate in multiplayer.
3444  *
3445  * Revision 1.240  1995/01/21  21:21:10  mike
3446  * Make boss only gate robots into specified segments.
3447  *
3448  * Revision 1.239  1995/01/20  20:21:26  mike
3449  * prevent unnecessary boss cloaking.
3450
3451 ------------------------------------------------------------------------
3452 main/ai.h:
3453
3454  * Revision 1.3  1995/10/15  16:28:07  allender
3455  * added flag to player_is_visible function
3456  *
3457  * Revision 1.2  1995/10/10  11:48:32  allender
3458  * PC ai header
3459  *
3460  * Revision 1.1  1995/05/16  15:54:00  allender
3461  * Initial revision
3462  *
3463  * Revision 2.0  1995/02/27  11:33:07  john
3464  * New version 2.0, which has no anonymous unions, builds with
3465  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
3466  *
3467  * Revision 1.57  1995/02/04  17:28:31  mike
3468  * make station guys return better.
3469  *
3470  * Revision 1.56  1995/02/04  10:03:23  mike
3471  * Fly to exit cheat.
3472  *
3473  * Revision 1.55  1995/02/01  19:23:52  rob
3474  * Externed a boss var.
3475  *
3476  * Revision 1.54  1995/01/30  13:00:58  mike
3477  * Make robots fire at player other than one they are controlled by sometimes.
3478  *
3479  * Revision 1.53  1995/01/26  15:09:16  rob
3480  * Changed robot gating to accomodate multiplayer.
3481  *
3482  * Revision 1.52  1995/01/26  12:23:12  rob
3483  * Added new externs needed for multiplayer.
3484  *
3485  * Revision 1.51  1995/01/21  21:22:14  mike
3486  * Kill prototype of init_boss_segments, which didn't need to be public
3487  * and had changed.
3488  *
3489  * Revision 1.50  1995/01/16  19:24:29  mike
3490  * Publicize BOSS_GATE_MATCEN_NUM and Boss_been_hit.
3491  *
3492  * Revision 1.49  1995/01/02  16:17:35  mike
3493  * prototype some super boss function for gameseq.
3494  *
3495  * Revision 1.48  1994/12/19  17:08:06  mike
3496  * deal with new ai_multiplayer_awareness which returns a value saying whether this object can be moved by this player.
3497  *
3498  * Revision 1.47  1994/12/12  17:18:04  mike
3499  * make boss cloak/teleport when get hit, make quad laser 3/4 as powerful.
3500  *
3501  * Revision 1.46  1994/12/08  15:46:16  mike
3502  * better robot behavior.
3503  *
3504  * Revision 1.45  1994/11/27  23:16:08  matt
3505  * Made debug code go away when debugging turned off
3506  *
3507  * Revision 1.44  1994/11/16  23:38:41  mike
3508  * new improved boss teleportation behavior.
3509  *
3510  * Revision 1.43  1994/11/10  17:45:11  mike
3511  * debugging.
3512  *
3513  * Revision 1.42  1994/11/07  10:37:42  mike
3514  * hooks for rob's network code.
3515  *
3516  * Revision 1.41  1994/11/06  15:10:50  mike
3517  * prototype a debug function for dumping ai info.
3518  *
3519  * Revision 1.40  1994/11/02  17:57:30  rob
3520  * Added extern of Believe_player_pos needed to get control centers
3521  * locating people.
3522  *
3523  * Revision 1.39  1994/10/28  19:43:39  mike
3524  * Prototype Boss_cloak_start_time, Boss_cloak_end_time.
3525  *
3526  * Revision 1.38  1994/10/22  14:14:42  mike
3527  * Prototype ai_reset_all_paths.
3528  *
3529  * Revision 1.37  1994/10/21  20:42:01  mike
3530  * Define MAX_PATH_LENGTH: maximum allowed length of a path.
3531  *
3532  * Revision 1.36  1994/10/20  09:49:18  mike
3533  * Prototype something.
3534  *
3535  *
3536  * Revision 1.35  1994/10/18  15:37:52  mike
3537  * Define ROBOT_BOSS1.
3538  *
3539  * Revision 1.34  1994/10/13  11:12:25  mike
3540  * Prototype some door functions.
3541  *
3542  * Revision 1.33  1994/10/12  21:28:51  mike
3543  * Prototype create_n_segment_path_to_door
3544  * Prototype ai_open_doors_in_segment
3545  * Prototype ai_door_is_openable.
3546  *
3547  * Revision 1.32  1994/10/11  15:59:41  mike
3548  * Prototype Robot_firing_enabled.
3549  *
3550  * Revision 1.31  1994/10/09  22:02:48  mike
3551  * Adapt create_path_points and create_n_segment_path prototypes to use avoid_seg for player evasion.
3552  *
3553  * Revision 1.30  1994/09/18  18:07:44  mike
3554  * Update prototypes for create_path_points and create_path_to_player.
3555  *
3556  * Revision 1.29  1994/09/15  16:34:08  mike
3557  * Prototype do_ai_robot_hit_attack.
3558  *
3559  * Revision 1.28  1994/09/12  19:12:35  mike
3560  * Prototype attempt_to_resume_path.
3561  *
3562  * Revision 1.27  1994/08/25  21:55:32  mike
3563  * Add some prototypes.
3564  *
3565  * Revision 1.26  1994/08/10  19:53:24  mike
3566  * Prototype create_path_to_player and init_robots_for_level.
3567  *
3568  * Revision 1.25  1994/08/04  16:32:58  mike
3569  * prototype create_path_to_player.
3570  *
3571  * Revision 1.24  1994/08/03  15:17:20  mike
3572  * Prototype make_random_vector.
3573  *
3574  * Revision 1.23  1994/07/31  18:10:34  mike
3575  * Update prototype for create_path_points.
3576  *
3577  * Revision 1.22  1994/07/28  12:36:14  matt
3578  * Cleaned up object bumping code
3579
3580 ------------------------------------------------------------------------
3581 main/ai2.c:
3582
3583  * Revision 1.1  1995/05/25  12:00:31  mike
3584  * Initial revision
3585
3586 ------------------------------------------------------------------------
3587 main/aipath.c:
3588
3589  * Revision 1.5  1995/10/26  14:12:03  allender
3590  * prototype functions for mcc compiler
3591  *
3592  * Revision 1.4  1995/10/25  09:38:22  allender
3593  * prototype some functions causing mcc grief
3594  *
3595  * Revision 1.3  1995/10/10  11:48:43  allender
3596  * PC ai code
3597  *
3598  * Revision 2.0  1995/02/27  11:30:48  john
3599  * New version 2.0, which has no anonymous unions, builds with
3600  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
3601  *
3602  * Revision 1.101  1995/02/22  13:42:44  allender
3603  * remove anonymous unions for object structure
3604  *
3605  * Revision 1.100  1995/02/10  16:20:04  mike
3606  * fix bogosity in create_path_points, assumed all objects were robots.
3607  *
3608  * Revision 1.99  1995/02/07  21:09:30  mike
3609  * make run_from guys have diff level based speed.
3610  *
3611  * Revision 1.98  1995/02/04  17:28:29  mike
3612  * make station guys return better.
3613  *
3614  * Revision 1.97  1995/02/04  10:28:39  mike
3615  * fix compile error!
3616  *
3617  * Revision 1.96  1995/02/04  10:03:37  mike
3618  * Fly to exit cheat.
3619  *
3620  * Revision 1.95  1995/02/01  21:10:36  mike
3621  * Array name was dereferenced.  Not a bug, but unclean.
3622  *
3623  * Revision 1.94  1995/02/01  17:14:12  mike
3624  * comment out some common mprintfs which didn't matter.
3625  *
3626  * Revision 1.93  1995/01/30  13:01:23  mike
3627  * Make robots fire at player other than one they are controlled by sometimes.
3628  *
3629  * Revision 1.92  1995/01/29  22:29:32  mike
3630  * add more debug info for guys that get lost.
3631  *
3632  * Revision 1.91  1995/01/20  16:56:05  mike
3633  * station stuff.
3634  *
3635  * Revision 1.90  1995/01/18  10:59:45  mike
3636  * comment out some mprintfs.
3637  *
3638  * Revision 1.89  1995/01/17  16:58:34  mike
3639  * make path following work for multiplayer.
3640  *
3641  * Revision 1.88  1995/01/17  14:21:44  mike
3642  * make run_from guys run better.
3643  *
3644  * Revision 1.87  1995/01/14  17:09:04  mike
3645  * playing with crazy josh, he's kinda slow and dumb now.
3646  *
3647  * Revision 1.86  1995/01/13  18:52:28  mike
3648  * comment out int3.
3649  *
3650  * Revision 1.85  1995/01/05  09:42:11  mike
3651  * compile out code based on SHAREWARE.
3652  *
3653  * Revision 1.84  1995/01/02  12:38:32  mike
3654  * make crazy josh turn faster, therefore evade player better.
3655  *
3656  * Revision 1.83  1994/12/27  15:59:40  mike
3657  * tweak ai_multiplayer_awareness constants.
3658  *
3659  * Revision 1.82  1994/12/19  17:07:10  mike
3660  * deal with new ai_multiplayer_awareness which returns a value saying whether this object can be moved by this player.
3661  *
3662  * Revision 1.81  1994/12/15  13:04:30  mike
3663  * Replace Players[Player_num].time_total references with GameTime.
3664  *
3665  * Revision 1.80  1994/12/09  16:13:23  mike
3666  * remove debug code.
3667  *
3668  * Revision 1.79  1994/12/07  00:36:54  mike
3669  * make robots get out of matcens better and be aware of player.
3670  *
3671  * Revision 1.78  1994/11/30  00:59:05  mike
3672  * optimizations.
3673  *
3674  * Revision 1.77  1994/11/27  23:13:39  matt
3675  * Made changes for new mprintf calling convention
3676  *
3677  * Revision 1.76  1994/11/23  21:59:34  mike
3678  * comment out some mprintfs.
3679  *
3680  * Revision 1.75  1994/11/21  16:07:14  mike
3681  * flip PARALLAX flag, prevent annoying debug information.
3682  *
3683  * Revision 1.74  1994/11/19  15:13:28  mike
3684  * remove unused code and data.
3685  *
3686  * Revision 1.73  1994/11/17  14:53:15  mike
3687  * segment validation functions moved from editor to main.
3688  *
3689  * Revision 1.72  1994/11/16  23:38:42  mike
3690  * new improved boss teleportation behavior.
3691  *
3692  * Revision 1.71  1994/11/13  17:18:30  mike
3693  * debug code, then comment it out.
3694  *
3695  * Revision 1.70  1994/11/11  16:41:43  mike
3696  * flip the PARALLAX flag.
3697  *
3698  * Revision 1.69  1994/11/11  16:33:45  mike
3699  * twiddle the PARALLAX flag.
3700  *
3701  *
3702  * Revision 1.68  1994/11/10  21:32:29  mike
3703  * debug code.
3704  *
3705  * Revision 1.67  1994/11/10  20:15:07  mike
3706  * fix stupid bug: uninitialized pointer.
3707  *
3708  * Revision 1.66  1994/11/10  17:45:15  mike
3709  * debugging.
3710  *
3711  * Revision 1.65  1994/11/10  17:28:10  mike
3712  * debugging.
3713
3714 ------------------------------------------------------------------------
3715 main/aistruct.h:
3716
3717  * Revision 1.2  1995/10/10  11:49:04  allender
3718  * PC ai code
3719  *
3720  * Revision 1.1  1995/05/16  15:54:08  allender
3721  * Initial revision
3722  *
3723  * Revision 2.0  1995/02/27  11:30:19  john
3724  * New version 2.0, which has no anonymous unions, builds with
3725  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
3726  *
3727  * Revision 1.34  1995/01/25  13:50:46  mike
3728  * Robots make angry sounds.
3729  *
3730  * Revision 1.33  1994/12/29  12:44:56  rob
3731  * Added new coop robot flag.
3732  *
3733  * Revision 1.32  1994/12/20  20:41:54  rob
3734  * Added new ai flag for multiplayer robots.
3735  *
3736  * Revision 1.31  1994/12/19  16:37:39  rob
3737  * Added a new flag for remote controlled objects.
3738  *
3739  * Revision 1.30  1994/12/07  00:36:07  mike
3740  * fix phys_apply_rot for robots -- ai was bashing effect in next frame.
3741  *
3742  * Revision 1.29  1994/12/02  22:06:28  mike
3743  * add fields to allow robots to make awareness sounds every so often, not every damn blasted frame
3744  *
3745  * Revision 1.28  1994/11/04  17:18:35  yuan
3746  * Increased MAX_SEG_POINTS to 2500.
3747  *
3748  * Revision 1.27  1994/10/17  21:19:22  mike
3749  * robot cloaking.
3750  *
3751  * Revision 1.26  1994/10/12  21:28:38  mike
3752  * Add new ai mode: AIM_OPEN_DOOR.
3753  * Add GOALSIDE to aip.
3754  *
3755  * Revision 1.25  1994/09/25  23:41:08  matt
3756  * Changed the object load & save code to read/write the structure fields one
3757  * at a time (rather than the whole structure at once).  This mean that the
3758  * object structure can be changed without breaking the load/save functions.
3759  * As a result of this change, the local_object data can be and has been
3760  * incorporated into the object array.  Also, timeleft is now a property
3761  * of all objects, and the object structure has been otherwise cleaned up.
3762  *
3763  * Revision 1.24  1994/09/21  12:28:11  mike
3764  * Change AI behavior for when player cloaked
3765  *
3766  * Revision 1.23  1994/09/19  21:43:00  mike
3767  * Add follow_path_start_seg and follow_path_end_seg to aistruct.h.
3768  *
3769  * Revision 1.22  1994/09/18  18:06:14  mike
3770  * Add Last_uncloaked_time and Last_uncloaked_position variables.
3771  *
3772  * Revision 1.21  1994/09/15  16:31:38  mike
3773  * Define GREEN_GUY
3774  * Add previous_visibility to ai_local struct.
3775  *
3776  * Revision 1.20  1994/09/12  19:12:45  mike
3777  * Change some bytes to ints in ai_local so I could set watchpoints.
3778  *
3779  * Revision 1.19  1994/08/25  21:53:31  mike
3780  * Add behavior, taking place of what used to be mode.
3781  *
3782  * Revision 1.18  1994/08/23  16:38:09  mike
3783  * rapidfire_count in ai_local.
3784  *
3785  * Revision 1.17  1994/08/19  17:38:23  mike
3786  * *** empty log message ***
3787  *
3788  * Revision 1.16  1994/08/17  22:18:58  mike
3789  * add time_since_processed to ai_local.
3790  *
3791  * Revision 1.15  1994/08/10  19:52:25  mike
3792  * Add Overall_agitation.
3793  *
3794  * Revision 1.14  1994/08/04  16:32:32  mike
3795  * Add time_player_seen.
3796  *
3797  * Revision 1.13  1994/07/28  16:58:11  mike
3798  * Move constants from ai.c
3799  *
3800  * Revision 1.12  1994/07/19  15:26:24  mike
3801  * New ai_static and ai_local structures.
3802  *
3803  * Revision 1.11  1994/07/15  15:17:19  matt
3804  * Changes MAX_AI_FLAGS for better alignment
3805
3806 ------------------------------------------------------------------------
3807 main/automap.c:
3808
3809  * Revision 1.8  1995/10/31  10:24:54  allender
3810  * shareware stuff
3811  *
3812  * Revision 1.7  1995/10/21  16:18:20  allender
3813  * blit pcx background directly to Page canvas instead of creating
3814  * seperate bitmap for it -- hope to solve VM bug on some macs
3815  *
3816  * Revision 1.6  1995/10/20  00:49:16  allender
3817  * added redbook check during automap
3818  *
3819  * Revision 1.5  1995/09/13  08:44:07  allender
3820  * Dave Denhart's changes to speed up the automap
3821  *
3822  * Revision 1.4  1995/08/18  15:46:00  allender
3823  * put text all on upper bar -- and fixed background since
3824  * changing xparency color
3825  *
3826  * Revision 1.3  1995/08/03  15:15:18  allender
3827  * fixed edge hashing problem causing automap to crash
3828  *
3829  * Revision 1.2  1995/07/12  12:49:27  allender
3830  * works in 640x480 mode
3831  *
3832  * Revision 1.1  1995/05/16  15:22:59  allender
3833  * Initial revision
3834  *
3835  * Revision 2.2  1995/03/21  14:41:26  john
3836  * Ifdef'd out the NETWORK code.
3837  *
3838  * Revision 2.1  1995/03/20  18:16:06  john
3839  * Added code to not store the normals in the segment structure.
3840  *
3841  * Revision 2.0  1995/02/27  11:32:55  john
3842  * New version 2.0, which has no anonymous unions, builds with
3843  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
3844  *
3845  * Revision 1.117  1995/02/22  14:11:31  allender
3846  * remove anonymous unions from object structure
3847  *
3848  * Revision 1.116  1995/02/22  13:24:39  john
3849  * Removed the vecmat anonymous unions.
3850  *
3851  * Revision 1.115  1995/02/09  14:57:02  john
3852  * Reduced mem usage. Made automap slide farther.
3853  *
3854  * Revision 1.114  1995/02/07  20:40:44  rob
3855  * Allow for anarchy automap of player pos by option.
3856  *
3857  * Revision 1.113  1995/02/07  15:45:33  john
3858  * Made automap memory be static.
3859  *
3860  * Revision 1.112  1995/02/02  12:24:00  adam
3861  * played with automap labels
3862  *
3863  * Revision 1.111  1995/02/02  01:52:52  john
3864  * Made the automap use small font.
3865  *
3866  * Revision 1.110  1995/02/02  01:34:34  john
3867  * Made Reset in automap not change segmentlimit.
3868  *
3869  * Revision 1.109  1995/02/02  01:23:11  john
3870  * Finalized the new automap partial viewer.
3871  *
3872  * Revision 1.108  1995/02/02  00:49:45  mike
3873  * new automap segment-depth functionality.
3874  *
3875  * Revision 1.107  1995/02/02  00:23:04  john
3876  * Half of the code for new connected distance stuff in automap.
3877  *
3878  * Revision 1.106  1995/02/01  22:54:00  john
3879  * Made colored doors not fade in automap. Made default
3880  * viewing area be maxxed.
3881  *
3882  * Revision 1.105  1995/02/01  13:16:13  john
3883  * Added great grates.
3884  *
3885  * Revision 1.104  1995/01/31  12:47:06  john
3886  * Made Alt+F only work with cheats enabled.
3887  *
3888  * Revision 1.103  1995/01/31  12:41:23  john
3889  * Working with new controls.
3890  *
3891  * Revision 1.102  1995/01/31  12:04:19  john
3892  * Version 2 of new key control.
3893  *
3894  * Revision 1.101  1995/01/31  11:32:00  john
3895  * First version of new automap system.
3896  *
3897  * Revision 1.100  1995/01/28  16:55:48  john
3898  * Made keys draw in automap in the segments that you have
3899  * visited.
3900  *
3901  * Revision 1.99  1995/01/28  14:44:51  john
3902  * Made hostage doors show up on automap.
3903  *
3904  * Revision 1.98  1995/01/22  17:03:49  rob
3905  * Fixed problem drawing playerships in automap coop/team mode
3906  *
3907  * Revision 1.97  1995/01/21  17:23:11  john
3908  * Limited S movement in map. Made map bitmap load from disk
3909  * and then freed it.
3910  *
3911  * Revision 1.96  1995/01/19  18:55:38  john
3912  * Don't draw players in automap if not obj_player.
3913  *
3914  * Revision 1.95  1995/01/19  18:48:13  john
3915  * Made player colors better in automap.
3916  *
3917  * Revision 1.94  1995/01/19  17:34:52  rob
3918  * Added team colorizations in automap.
3919  *
3920  * Revision 1.93  1995/01/19  17:15:36  rob
3921  * Trying to add player ships into map for coop and team mode.
3922  *
3923  * Revision 1.92  1995/01/19  17:11:09  john
3924  * Added code for Rob to draw Multiplayer ships in automap.
3925  *
3926  * Revision 1.91  1995/01/12  13:35:20  john
3927  * Fixed bug with Segment 0 not getting displayed
3928  * in automap if you have EDITOR compiled in.
3929  *
3930  * Revision 1.90  1995/01/08  16:17:14  john
3931  * Added code to draw player's up vector while in automap.
3932  *
3933  * Revision 1.89  1995/01/08  16:09:41  john
3934  * Fixed problems with grate.
3935  *
3936  * Revision 1.88  1994/12/14  22:54:17  john
3937  * Fixed bug that didn't show hostages in automap.
3938  *
3939  * Revision 1.87  1994/12/09  00:41:03  mike
3940  * fix hang in automap print screen
3941  *
3942  * Revision 1.86  1994/12/05  23:37:15  matt
3943  * Took out calls to warning() function
3944  *
3945  * Revision 1.85  1994/12/03  22:35:28  yuan
3946  * Localization 412
3947  *
3948  * Revision 1.84  1994/12/02  15:05:45  matt
3949  * Added new "official" cheats
3950  *
3951  * Revision 1.83  1994/11/30  12:10:49  adam
3952  * added support for PCX titles/brief screens
3953  *
3954  * Revision 1.82  1994/11/27  23:15:12  matt
3955  * Made changes for new mprintf calling convention
3956  *
3957  * Revision 1.81  1994/11/27  15:35:52  matt
3958  * Enable screen shots even when debugging is turned off
3959  *
3960  * Revision 1.80  1994/11/26  22:51:43  matt
3961  * Removed editor-only fields from segment structure when editor is compiled
3962  * out, and padded segment structure to even multiple of 4 bytes.
3963  *
3964  * Revision 1.79  1994/11/26  16:22:48  matt
3965  * Reduced leave_time
3966  *
3967  * Revision 1.78  1994/11/23  22:00:10  mike
3968  * show level number.
3969  *
3970  * Revision 1.77  1994/11/21  11:40:33  rob
3971  * Tweaked the game-loop for automap in multiplayer games.
3972  *
3973  * Revision 1.76  1994/11/18  16:42:06  adam
3974  * removed a font
3975  *
3976  * Revision 1.75  1994/11/17  13:06:48  adam
3977  * changed font
3978  *
3979  * Revision 1.74  1994/11/14  20:47:17  john
3980  * Attempted to strip out all the code in the game
3981  * directory that uses any ui code.
3982
3983 ------------------------------------------------------------------------
3984 main/automap.h:
3985
3986  * Revision 1.2  1995/07/12  12:48:33  allender
3987  * moved edge_list structure into here for mallocing in mglobal
3988  *
3989  * Revision 1.1  1995/05/16  15:54:31  allender
3990  * Initial revision
3991  *
3992  * Revision 2.0  1995/02/27  11:29:35  john
3993  * New version 2.0, which has no anonymous unions, builds with
3994  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
3995  *
3996  * Revision 1.5  1994/12/09  00:41:21  mike
3997  * fix hang in automap print screen
3998  *
3999  * Revision 1.4  1994/07/14  11:25:29  john
4000  * Made control centers destroy better; made automap use Tab key.
4001  *
4002  * Revision 1.3  1994/07/12  15:45:51  john
4003  * Made paritial map.
4004  *
4005  * Revision 1.2  1994/07/07  18:35:05  john
4006  * First version of automap
4007  *
4008  * Revision 1.1  1994/07/07  15:12:13  john
4009  * Initial revision
4010
4011 ------------------------------------------------------------------------
4012 main/bm.c:
4013
4014  * Revision 1.1  1995/05/16  15:23:08  allender
4015  * Initial revision
4016  *
4017  * Revision 2.3  1995/03/14  16:22:04  john
4018  * Added cdrom alternate directory stuff.
4019  *
4020  * Revision 2.2  1995/03/07  16:51:48  john
4021  * Fixed robots not moving without edtiro bug.
4022  *
4023  * Revision 2.1  1995/03/06  15:23:06  john
4024  * New screen techniques.
4025  *
4026  * Revision 2.0  1995/02/27  11:27:05  john
4027  * New version 2.0, which has no anonymous unions, builds with
4028  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
4029
4030 ------------------------------------------------------------------------
4031 main/bm.h:
4032
4033  * Revision 1.1  1995/05/16  15:54:39  allender
4034  * Initial revision
4035  *
4036  * Revision 2.0  1995/02/27  11:32:59  john
4037  * New version 2.0, which has no anonymous unions, builds with
4038  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
4039  *
4040  * Revision 1.60  1994/12/06  13:24:58  matt
4041  * Made exit model come out of bitmaps.tbl
4042  *
4043  * Revision 1.59  1994/11/10  14:02:48  matt
4044  * Hacked in support for player ships with different textures
4045  *
4046  * Revision 1.58  1994/10/27  13:32:17  john
4047  * Made TmapList only be in if editor
4048  *
4049  * Revision 1.57  1994/10/11  12:25:20  matt
4050  * Added "hot rocks" that create badass explosion when hit by weapons
4051  *
4052  * Revision 1.56  1994/09/29  12:38:13  matt
4053  * Took out include of digi.h, saving hours of unneeded compiles
4054  *
4055  * Revision 1.55  1994/09/25  00:39:51  matt
4056  * Added the ability to make eclips (monitors, fans) which can be blown up
4057  *
4058  * Revision 1.54  1994/09/17  01:40:59  matt
4059  * Added status bar/sizable window mode, and in the process revamped the
4060  * whole cockpit mode system.