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