dxx-rebirth/ChangeLog-old
2004-08-29 14:03:51 +00:00

20123 lines
622 KiB
Plaintext

This file contains the per-file change logs written before CVS was used
------------------------------------------------------------------------
2d/2dsline.c:
* Revision 1.6 1995/09/14 14:24:03 allender
* fixed MW compile error
*
* Revision 1.5 1995/09/14 13:45:17 allender
* quick optimization for scanline
*
* Revision 1.4 1995/04/27 07:36:05 allender
* remove some memsets since all old is here now
*
* Revision 1.3 1995/04/19 14:35:33 allender
* *** empty log message ***
*
* Revision 1.2 1995/04/18 12:03:40 allender
* *** empty log message ***
*
* Revision 1.1 1995/03/09 09:24:06 allender
* Initial revision
*
*
* --- PC RCS information ---
* Revision 1.7 1994/11/18 22:50:48 john
* Changed a bunch of shorts to ints in calls.
*
* Revision 1.6 1994/09/02 11:40:32 john
* fixed bug with urect scanline drakening still
* only using 16 levels of fade.
*
* Revision 1.5 1994/04/08 16:59:12 john
* Add fading poly's; Made palette fade 32 instead of 16.
*
* Revision 1.4 1994/03/22 18:36:27 john
* Added darkening scanlines
*
* Revision 1.3 1993/10/15 16:22:52 john
* y
*
* Revision 1.2 1993/09/08 11:56:29 john
* neatened
*
* Revision 1.1 1993/09/08 11:44:27 john
* Initial revision
*
------------------------------------------------------------------------
2d/bitblt.c:
* Revision 1.29 1995/03/14 12:14:28 john
* Added code to double horz/vert bitblts.
*
* Revision 1.28 1995/03/13 09:01:48 john
* Fixed bug with VFX1 screen not tall enough.
*
* Revision 1.27 1995/03/01 15:38:10 john
* Better ModeX support.
*
* Revision 1.26 1994/12/15 12:19:00 john
* Added gr_bm_bitblt (clipped!) function.
*
* Revision 1.25 1994/12/09 18:58:42 matt
* Took out include of 3d.h
*
* Revision 1.24 1994/11/28 17:08:32 john
* Took out some unused functions in linear.asm, moved
* gr_linear_movsd from linear.asm to bitblt.c, made sure that
* the code in ibiblt.c sets the direction flags before rep movsing.
*
* Revision 1.22 1994/11/23 16:04:00 john
* Fixed generic rle'ing to use new bit method.
*
* Revision 1.21 1994/11/18 22:51:03 john
* Changed a bunch of shorts to ints in calls.
*
* Revision 1.20 1994/11/10 15:59:48 john
* Fixed bugs with canvas's being created with bogus bm_flags.
*
* Revision 1.19 1994/11/09 21:03:35 john
* Added RLE for svga gr_ubitmap.
*
* Revision 1.18 1994/11/09 17:41:29 john
* Made a slow version of rle bitblt to svga, modex.
*
* Revision 1.17 1994/11/09 16:35:15 john
* First version with working RLE bitmaps.
*
* Revision 1.16 1994/11/04 10:06:58 john
* Added fade table for fading fonts. Made font that partially clips
* not print a warning message.
*
* Revision 1.15 1994/09/22 16:08:38 john
* Fixed some palette stuff.
*
* Revision 1.14 1994/09/19 11:44:27 john
* Changed call to allocate selector to the dpmi module.
*
* Revision 1.13 1994/08/08 13:03:00 john
* Fixed bug in gr_bitmap in modex
*
* Revision 1.12 1994/07/13 19:47:23 john
* Fixed bug with modex bitblt to page 2 not working.
*
* Revision 1.11 1994/05/31 11:10:52 john
* *** empty log message ***
*
* Revision 1.10 1994/03/18 15:24:34 matt
* Removed interlace stuff
*
* Revision 1.9 1994/02/18 15:32:20 john
* *** empty log message ***
*
* Revision 1.8 1994/02/01 13:22:54 john
* *** empty log message ***
*
* Revision 1.7 1994/01/13 08:28:25 mike
* Modify rect copy to copy alternate scanlines when in interlaced mode.
*
* Revision 1.6 1993/12/28 12:09:46 john
* added lbitblt.asm
*
* Revision 1.5 1993/10/26 13:18:09 john
* *** empty log message ***
*
* Revision 1.4 1993/10/15 16:23:30 john
* y
*
* Revision 1.3 1993/09/13 17:52:58 john
* Fixed bug in BitBlt linear to SVGA
*
* Revision 1.2 1993/09/08 14:47:00 john
* Made bitmap00 add rowsize instead of bitmap width.
* Other routines might have this problem too.
*
* Revision 1.1 1993/09/08 11:43:01 john
* Initial revision
------------------------------------------------------------------------
2d/bitmap.c:
* Revision 1.11 1995/08/23 18:46:06 allender
* fixed compiler warning
*
* Revision 1.10 1995/08/14 14:25:45 allender
* changed transparency color to 0
*
* Revision 1.9 1995/07/05 16:04:51 allender
* transparency/game kitchen changes
*
* Revision 1.8 1995/06/15 09:50:48 allender
* new malloc to align bitmap on 8 byte bountry
*
* Revision 1.7 1995/05/12 11:52:19 allender
* changed memory stuff again
*
* Revision 1.6 1995/05/11 12:48:34 allender
* nge transparency color
*
* Revision 1.5 1995/05/04 19:59:21 allender
* use NewPtr instead of malloc
*
* Revision 1.4 1995/04/27 07:33:04 allender
* rearrange functions
*
* Revision 1.3 1995/04/19 14:37:17 allender
* removed dead asm code
*
* Revision 1.2 1995/04/18 12:04:51 allender
* *** empty log message ***
*
* Revision 1.1 1995/03/09 08:48:06 allender
* Initial revision
*
*
* ------- PC version RCS information
* Revision 1.17 1994/11/18 22:50:25 john
* Changed shorts to ints in parameters.
*
* Revision 1.16 1994/11/10 15:59:46 john
* Fixed bugs with canvas's being created with bogus bm_flags.
*
* Revision 1.15 1994/10/26 23:55:53 john
* Took out roller; Took out inverse table.
*
* Revision 1.14 1994/09/19 14:40:21 john
* Changed dpmi stuff.
*
* Revision 1.13 1994/09/19 11:44:04 john
* Changed call to allocate selector to the dpmi module.
*
* Revision 1.12 1994/06/09 13:14:57 john
* Made selectors zero our
* out, I meant.
*
* Revision 1.11 1994/05/06 12:50:07 john
* Added supertransparency; neatend things up; took out warnings.
*
* Revision 1.10 1994/04/08 16:59:39 john
* Add fading poly's; Made palette fade 32 instead of 16.
*
* Revision 1.9 1994/03/16 17:21:09 john
* Added slow palette searching options.
*
* Revision 1.8 1994/03/14 17:59:35 john
* Added function to check bitmap's transparency.
*
* Revision 1.7 1994/03/14 17:16:21 john
* fixed bug with counting freq of pixels.
*
* Revision 1.6 1994/03/14 16:55:47 john
* Changed grs_bitmap structure to include bm_flags.
*
* Revision 1.5 1994/02/18 15:32:22 john
* *** empty log message ***
*
* Revision 1.4 1993/10/15 16:22:49 john
* *** empty log message ***
*
* Revision 1.3 1993/09/08 17:37:11 john
* Checking for errors with Yuan...
*
* Revision 1.2 1993/09/08 14:46:27 john
* looking for possible bugs...
*
* Revision 1.1 1993/09/08 11:43:05 john
* Initial revision
*
------------------------------------------------------------------------
2d/clip.h:
* Revision 1.3 1993/10/15 16:22:28 john
* *** empty log message ***
*
* Revision 1.2 1993/09/29 16:14:31 john
* made work with fix point
*
* Revision 1.1 1993/09/08 11:40:53 john
* Initial revision
*
*
------------------------------------------------------------------------
2d/ibitblt.c:
* Revision 1.3 1995/09/13 11:43:22 allender
* start on optimizing cockpit copy code
*
* Revision 1.2 1995/09/07 10:16:57 allender
* fixed up cockpit and rearview hole blitting
*
* Revision 1.1 1995/08/18 15:50:48 allender
* Initial revision
*
* Revision 1.6 1994/11/28 17:07:29 john
* Took out some unused functions in linear.asm, moved
* gr_linear_movsd from linear.asm to bitblt.c, made sure that
* the code in ibiblt.c sets the direction flags before rep movsing.
*
* Revision 1.5 1994/11/18 22:50:22 john
* Changed shorts to ints in parameters.
*
* Revision 1.4 1994/11/09 16:35:16 john
* First version with working RLE bitmaps.
*
* Revision 1.3 1994/10/03 17:18:05 john
* Fixed bug with edi not getting intialized to zero
* in create_mask.
*
* Revision 1.2 1994/05/31 11:10:55 john
* *** empty log message ***
*
* Revision 1.1 1994/05/30 16:08:27 john
* Initial revision
*
------------------------------------------------------------------------
2d/palette.c:
; Revision 1.20 1994/11/28 17:08:30 john
; Took out some unused functions in linear.asm, moved
; gr_linear_movsd from linear.asm to bitblt.c, made sure that
; the code in ibiblt.c sets the direction flags before rep movsing.
;
; Revision 1.19 1994/11/27 22:57:56 john
; Took out some code that was never called.
;
; Revision 1.18 1994/09/12 14:40:16 john
; Neatend.
;
; Revision 1.17 1994/07/27 18:30:30 john
; Took away the blending table.
;
; Revision 1.16 1994/04/08 16:59:28 john
; Add fading poly's; Made palette fade 32 instead of 16.
;
; Revision 1.15 1993/12/21 20:10:03 john
; *** empty log message ***
;
; Revision 1.14 1993/12/21 19:58:31 john
; added selector stuff
;
; Revision 1.13 1993/12/21 11:40:51 john
; *** empty log message ***
;
; Revision 1.12 1993/12/09 15:01:52 john
; Changed palette stuff majorly
;
; Revision 1.11 1993/12/08 16:41:02 john
; *** empty log message ***
;
; Revision 1.10 1993/12/08 11:50:17 john
; Fixed bug with gr_init
;
; Revision 1.9 1993/12/07 12:32:12 john
; moved bmd_palette to gr_palette
;
; Revision 1.8 1993/12/03 12:11:25 john
; *** empty log message ***
;
; Revision 1.7 1993/11/16 11:29:08 john
; *** empty log message ***
;
; Revision 1.6 1993/10/15 16:22:13 john
; *** empty log message ***
;
; Revision 1.5 1993/09/29 16:15:28 john
; added assembler linear_line
;
; Revision 1.4 1993/09/26 18:59:27 john
; fade stuff
;
; Revision 1.3 1993/09/21 14:00:59 john
; added code to save 43/50 line text modes.
;
; Revision 1.2 1993/09/16 17:28:06 john
; added code to save/restore video mode
;
; Revision 1.1 1993/09/08 11:41:30 john
; Initial revision
------------------------------------------------------------------------
2d/palette.c:
* Revision 1.41 1995/02/02 14:26:31 john
* Made palette fades work better with gamma thingy..
*
* Revision 1.40 1994/12/08 19:03:46 john
* Made functions use cfile.
*
* Revision 1.39 1994/12/01 11:23:27 john
* Limited Gamma from 0-8.
*
* Revision 1.38 1994/11/28 01:31:08 mike
* optimize color lookup function, caching recently used colors.
*
* Revision 1.37 1994/11/18 22:50:18 john
* Changed shorts to ints in parameters.
*
* Revision 1.36 1994/11/15 17:54:59 john
* Made text palette fade in when game over.
*
* Revision 1.35 1994/11/10 19:53:14 matt
* Fixed error handling is gr_use_palette_table()
*
* Revision 1.34 1994/11/07 13:53:48 john
* Added better gamma stufff.
*
* Revision 1.33 1994/11/07 13:37:56 john
* Added gamma correction stuff.
*
* Revision 1.32 1994/11/05 13:20:14 john
* Fixed bug with find_closest_color_current not working.
*
* Revision 1.31 1994/11/05 13:08:09 john
* MAde it return 0 when palette already faded out.
*
* Revision 1.30 1994/11/05 13:05:34 john
* Added back in code to allow keys during fade.
*
* Revision 1.29 1994/11/05 12:49:50 john
* Fixed bug with previous comment..
*
* Revision 1.28 1994/11/05 12:48:46 john
* Made palette only fade in / out when its supposed to.
*
* Revision 1.27 1994/11/05 12:46:43 john
* Changed palette stuff a bit.
*
* Revision 1.26 1994/11/01 12:59:35 john
* Reduced palette.256 size.
*
* Revision 1.25 1994/10/26 23:55:35 john
* Took out roller; Took out inverse table.
*
* Revision 1.24 1994/10/04 22:03:05 matt
* Fixed bug: palette wasn't fading all the way out or in
*
* Revision 1.23 1994/09/22 16:08:40 john
* Fixed some palette stuff.
*
* Revision 1.22 1994/09/19 11:44:31 john
* Changed call to allocate selector to the dpmi module.
*
* Revision 1.21 1994/09/12 19:28:09 john
* Fixed bug with unclipped fonts clipping.
*
* Revision 1.20 1994/09/12 18:18:39 john
* Set 254 and 255 to fade to themselves in fadetable
*
* Revision 1.19 1994/09/12 14:40:10 john
* Neatend.
*
* Revision 1.18 1994/09/09 09:31:55 john
* Made find_closest_color not look at superx spot of 254
*
* Revision 1.17 1994/08/09 11:27:08 john
* Add cthru stuff.
*
* Revision 1.16 1994/08/01 11:03:51 john
* MAde it read in old/new palette.256
*
* Revision 1.15 1994/07/27 18:30:27 john
* Took away the blending table.
*
* Revision 1.14 1994/06/09 10:39:52 john
* In fade out.in functions, returned 1 if key was pressed...
*
* Revision 1.13 1994/05/31 19:04:16 john
* Added key to stop fade if desired.
*
* Revision 1.12 1994/05/06 12:50:20 john
* Added supertransparency; neatend things up; took out warnings.
*
* Revision 1.11 1994/05/03 19:39:02 john
* *** empty log message ***
*
* Revision 1.10 1994/04/22 11:16:07 john
* *** empty log message ***
*
* Revision 1.9 1994/04/08 16:59:40 john
* Add fading poly's; Made palette fade 32 instead of 16.
*
* Revision 1.8 1994/03/16 17:21:17 john
* Added slow palette searching options.
*
* Revision 1.7 1994/01/07 11:47:33 john
* made use cflib
*
* Revision 1.6 1993/12/21 11:41:04 john
* *** empty log message ***
*
* Revision 1.5 1993/12/09 15:02:47 john
* Changed palette stuff majorly
*
* Revision 1.4 1993/12/07 12:31:41 john
* moved bmd_palette to gr_palette
*
* Revision 1.3 1993/10/15 16:22:23 john
* *** empty log message ***
*
* Revision 1.2 1993/09/26 18:59:46 john
* fade stuff
*
* Revision 1.1 1993/09/08 11:44:03 john
* Initial revision
*
------------------------------------------------------------------------
2d/pcx.c:
* Revision 1.6 1995/03/01 15:38:12 john
* Better ModeX support.
*
* Revision 1.5 1995/01/21 17:54:17 john
* Added pcx reader for modes other than modex.
*
* Revision 1.4 1994/12/08 19:03:56 john
* Made functions use cfile.
*
* Revision 1.3 1994/11/29 02:53:24 john
* Added error messages; made call be more similiar to iff.
*
* Revision 1.2 1994/11/28 20:03:50 john
* Added PCX functions.
*
* Revision 1.1 1994/11/28 19:57:56 john
* Initial revision
*
------------------------------------------------------------------------
2d/rle.c:
* Changed shorts to ints in parameters.
*
*
* Old Log:
* Revision 1.10 1995/08/14 14:26:34 allender
* changed transparency color to 0
*
* Revision 1.9 1995/07/05 16:07:49 allender
* transparency/kitchen chagnes
*
* Revision 1.8 1995/05/12 11:54:03 allender
* changed memory stuff again
*
* Revision 1.7 1995/05/11 12:49:19 allender
* change transparency color
*
* Revision 1.6 1995/05/04 20:00:30 allender
* use NewPtr instead of malloc. Fix gr_rle_scanline (which caused me
* *many* hours of frustration!!!!)
*
* Revision 1.5 1995/05/01 08:40:32 allender
* trying to find memory bug....this stuff works -- it's johns code
*
* Revision 1.4 1995/04/27 07:38:24 allender
* new rle code ala John
*
* Revision 1.3 1995/04/19 14:36:06 allender
* *** empty log message ***
*
* Revision 1.2 1995/04/18 12:08:30 allender
* *** empty log message ***
*
* Revision 1.1 1995/03/09 09:23:04 allender
* Initial revision
*
*
* --- PC RCS information ---
* Revision 1.19 1995/01/14 19:18:31 john
* Added assert to check for paged out bitmap.
*
* Revision 1.18 1995/01/14 11:32:07 john
* Added rle_cache_flush function.
*
* Revision 1.17 1994/12/13 10:58:27 john
* Fixed bug with 2 consecutive calls to get_expanded_Texture
* with 2 different bitmaps, returning the same rle texture,
* causing doors to disapper.
*
* Revision 1.16 1994/11/30 00:55:03 mike
* optimization
*
* Revision 1.15 1994/11/24 13:24:44 john
* Made sure that some rep movs had the cld set first.
* Took some unused functions out.
*
* Revision 1.14 1994/11/23 16:03:46 john
* Fixed generic rle'ing to use new bit method.
*
* Revision 1.13 1994/11/23 15:45:51 john
* Changed to a 3 bit rle scheme.
*
* Revision 1.12 1994/11/18 22:50:24 john
* Changed shorts to ints in parameters.
*
* Revision 1.11 1994/11/14 17:06:13 john
* Took out Key_f12.
*
* Revision 1.10 1994/11/14 15:54:09 john
* Put code in for maybe checking bogus rle data.
*
* Revision 1.9 1994/11/14 15:51:58 john
* Added rle_disable_caching variable to prove the stability of my rle
* caching code to any non-believers.
*
* Revision 1.8 1994/11/10 10:31:20 john
* Reduce cache buffers to 16.
*
* Revision 1.7 1994/11/09 19:53:43 john
* Added texture rle caching.
*
* Revision 1.6 1994/11/09 17:41:44 john
* Made a slow version of rle bitblt to svga, modex.
*
* Revision 1.5 1994/11/09 17:07:50 john
* Fixed bug with bitmap that gets bigger with rle.
*
* Revision 1.4 1994/11/09 16:35:17 john
* First version with working RLE bitmaps.
*
* Revision 1.3 1994/10/26 12:54:47 john
* Fixed bug with decode that used rep movsd instead of
* rep stosd.
*
* Revision 1.2 1994/10/06 17:05:25 john
* First version of rle stuff.
*
* Revision 1.1 1994/10/06 16:53:34 john
* Initial revision
------------------------------------------------------------------------
2d/scale.c:
* Revision 1.12 1995/03/14 15:14:11 john
* Increased max scanline length to 640.
* ..
*
* Revision 1.11 1994/11/27 12:56:39 matt
* Took out unneeded include of 3d.h
*
* Revision 1.10 1994/11/18 22:50:25 john
* Changed shorts to ints in parameters.
*
* Revision 1.9 1994/11/09 16:35:02 john
* First version with working RLE bitmaps.
*
* Revision 1.8 1994/06/09 13:15:17 john
* *** empty log message ***
*
* Revision 1.7 1994/06/07 11:47:02 john
* Added back in the fast code for scaling up bitmaps.
*
* Revision 1.6 1994/02/18 15:32:36 john
* *** empty log message ***
*
* Revision 1.5 1994/01/22 14:35:01 john
* Added transparency as color index 255.
*
* Revision 1.4 1994/01/17 16:59:12 john
* once again...
*
* Revision 1.3 1994/01/17 16:51:17 john
* Added check so we don't draw outsibe
* the source bitmap's v coordinate... kind
* of a hack, but works.
*
* Revision 1.2 1994/01/12 18:03:26 john
* The first iteration of fast scaler..
*
* Revision 1.1 1994/01/11 14:48:42 john
* Initial revision
------------------------------------------------------------------------
2d/scalea.asm:
; Revision 1.2 1994/01/12 18:02:52 john
; Asm code for the scaler... first iteration here
; has compiled code that works!!
;
; Revision 1.1 1994/01/12 12:20:11 john
; Initial revision
------------------------------------------------------------------------
3d/clipper.h:
* Revision 1.1 1995/05/05 08:50:13 allender
* Initial revision
*
* Revision 1.1 1995/04/17 19:56:58 matt
* Initial revision
*
*
------------------------------------------------------------------------
3d/globvars.c:
* Revision 1.2 1995/09/13 11:30:47 allender
* added fCanv_w2 and vCanv_h2 for PPC implementation
*
* Revision 1.1 1995/05/05 08:50:48 allender
* Initial revision
*
* Revision 1.1 1995/04/17 04:24:57 matt
* Initial revision
------------------------------------------------------------------------
3d/globvars.h:
* Revision 1.2 1995/09/13 11:31:19 allender
* added fCanv_w2 and vCanv_h2 for PPC implementation
*
* Revision 1.1 1995/05/05 08:51:02 allender
* Initial revision
*
* Revision 1.1 1995/04/17 04:07:58 matt
* Initial revision
------------------------------------------------------------------------
3d/instance.c:
* Revision 1.2 1995/06/12 12:36:57 allender
* fixed bug where g3_start_instance_angles recursively called itself
*
* Revision 1.1 1995/05/05 08:51:27 allender
* Initial revision
*
* Revision 1.1 1995/04/17 06:43:29 matt
* Initial revision
------------------------------------------------------------------------
3d/interp.c:
* Revision 1.4 1995/10/10 22:20:09 allender
* new morphing code from Matt
*
* Revision 1.3 1995/08/31 15:40:24 allender
* swap color data correctly
*
* Revision 1.2 1995/05/11 13:06:38 allender
* fix int --> short problem
*
* Revision 1.1 1995/05/05 08:51:41 allender
* Initial revision
*
* Revision 1.1 1995/04/17 06:44:33 matt
* Initial revision
------------------------------------------------------------------------
3d/matrix.c:
* Revision 1.1 1995/05/05 08:52:11 allender
* Initial revision
*
* Revision 1.1 1995/04/17 04:14:34 matt
* Initial revision
------------------------------------------------------------------------
3d/points.c:
* Revision 1.3 1995/09/21 17:29:40 allender
* changed project_point to overflow if z <= 0
*
* Revision 1.2 1995/09/13 11:31:28 allender
* removed checkmuldiv from g3_project_point
*
* Revision 1.1 1995/05/05 08:52:35 allender
* Initial revision
*
* Revision 1.1 1995/04/17 04:32:25 matt
* Initial revision
------------------------------------------------------------------------
3d/rod.c:
* Revision 1.2 1995/09/13 11:31:46 allender
* removed checkmuldiv in PPC implemenation
*
* Revision 1.1 1995/05/05 08:52:45 allender
* Initial revision
*
* Revision 1.1 1995/04/17 06:42:08 matt
* Initial revision
------------------------------------------------------------------------
3d/setup.c:
* Revision 1.4 1995/10/11 00:27:04 allender
* bash free_num_points to 0
*
* Revision 1.3 1995/09/13 11:31:58 allender
* calc for fCanv_w2 and fCanv_h2
*
* Revision 1.2 1995/06/25 21:57:57 allender
* *** empty log message ***
*
* Revision 1.1 1995/05/05 08:52:54 allender
* Initial revision
*
* Revision 1.1 1995/04/17 03:59:01 matt
* Initial revision
------------------------------------------------------------------------
arch/dos/bak/ipx.c:
* Revision 2.10 1995/03/29 17:27:55 john
* Added code to not duplicate broadcasts.
*
* Revision 2.9 1995/03/29 15:32:07 john
* NEatened.
*
* Revision 2.8 1995/03/29 15:07:31 john
* Added network support.
*
* Revision 2.7 1995/03/29 11:22:27 john
* Added broadcasting over a net.
*
* Revision 2.6 1995/03/28 20:05:03 john
* Took away alternate server stuff.
*
* Revision 2.5 1995/03/23 19:14:29 john
* Added better MAX_USERS message.
*
* Revision 2.4 1995/03/23 19:00:02 john
* Added user list capabitly.
*
* Revision 2.3 1995/03/23 12:27:05 john
* Move IPX into bios lib.
*
* Revision 2.2 1995/03/22 19:08:15 john
* Added code to fix sending packets over router... now
* we just need to make broadcasts go over router!!
*
* Revision 2.1 1995/03/21 08:40:16 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.0 1995/02/27 11:30:45 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.31 1995/02/16 17:35:03 john
* Added code to allow dynamic socket changing.
*
* Revision 1.30 1995/02/01 21:03:45 john
* Lintified.
*
* Revision 1.29 1995/01/22 14:31:05 john
* Added key.h
*
* Revision 1.28 1995/01/22 14:29:26 john
* Added code to bypass broadcast messages.
*
* Revision 1.27 1995/01/03 13:46:16 john
* Added code that should make ipx work over different servers,
* but ifdef'd it out with SHAREWARE in ipx.c. I haven't tested
* this, and I hope it doesn't introduce net bugs.
*
* Revision 1.26 1994/12/14 11:54:37 rob
* Reduce # of ipx packets.
*
* Revision 1.25 1994/12/11 00:43:28 john
* Locked down DOS ipx buffers... probably not necessary, tho.
*
* Revision 1.24 1994/12/08 15:49:58 rob
* Bumped up the # of ipx packets.
*
* Revision 1.23 1994/12/04 15:23:54 rob
* Reduced packet # constants.
*
* Revision 1.22 1994/11/27 23:12:39 matt
* Made changes for new mprintf calling convention
*
* Revision 1.21 1994/11/19 15:15:19 mike
* remove unused code and data
*
* Revision 1.20 1994/11/10 11:06:07 rob
* Raised number of ipx packets to 64 and buffers to 128 (for 8-way games)
* Removed (commented out) all the spx support stuff.
*
* Revision 1.19 1994/11/07 17:50:12 rob
* Bumped up max_packets and ipx_num_packets to double their previous
* values.
*
* Revision 1.18 1994/11/07 15:39:01 rob
* Removed temporary hacked ipx_send_object function.
* Replaced with a more general thing.
*
* Revision 1.17 1994/11/05 16:08:40 rob
* Made a change necessary for object syncing on rejoin.
*
* Revision 1.16 1994/11/01 15:57:12 rob
* Added support for SPX sockets for critical messages.
*
* Revision 1.15 1994/10/31 19:21:01 rob
* Added a routine for sending objects via ipx. Its a hack and shoukld
* be replaced by something more general time permitting.
*
* Revision 1.14 1994/10/20 14:57:42 john
* Some test stuff.
*
* Revision 1.13 1994/10/20 11:22:45 john
* Tweaked the number of waiting packets. Added code to print
* total packets missed, and to limit the packet send rate to
* 10 packets per second unless firing.
*
* Revision 1.12 1994/10/03 20:50:11 john
* Started adding sound pause functions.
*
* Revision 1.11 1994/09/15 08:54:24 mike
* comment out a mprintf.
*
* Revision 1.10 1994/09/12 19:38:20 john
* Made some stuff that prints to the DOS screen go to the
* mono instead, since it really is debugging info.
*
* Revision 1.9 1994/09/07 13:32:03 john
* Made ipx_close explicitly close the socket we were using,
* because it seems that VLM's don't automatically close them
* like the older NETX stuff did (Going from Novell 3.11 driver
* to 3.12 anyway).
*
* Revision 1.8 1994/09/06 19:29:20 john
* Added trial version of rejoin function.
*
* Revision 1.7 1994/08/09 19:31:50 john
* Networking changes.
*
* Revision 1.6 1994/08/05 16:11:41 john
* Psuedo working version of networking.
*
* Revision 1.5 1994/08/04 19:17:21 john
* Inbetween version of network stuff.
*
* Revision 1.4 1994/07/29 16:08:57 john
* *** empty log message ***
*
* Revision 1.3 1994/07/25 12:33:31 john
* Network "pinging" in.
*
* Revision 1.2 1994/07/20 15:58:28 john
* First installment of ipx stuff.
*
* Revision 1.1 1994/07/19 15:42:00 john
* Initial revision
------------------------------------------------------------------------
arch/dos/ipx.c:
* Revision 2.10 1995/03/29 17:27:55 john
* Added code to not duplicate broadcasts.
*
* Revision 2.9 1995/03/29 15:32:07 john
* NEatened.
*
* Revision 2.8 1995/03/29 15:07:31 john
* Added network support.
*
* Revision 2.7 1995/03/29 11:22:27 john
* Added broadcasting over a net.
*
* Revision 2.6 1995/03/28 20:05:03 john
* Took away alternate server stuff.
*
* Revision 2.5 1995/03/23 19:14:29 john
* Added better MAX_USERS message.
*
* Revision 2.4 1995/03/23 19:00:02 john
* Added user list capabitly.
*
* Revision 2.3 1995/03/23 12:27:05 john
* Move IPX into bios lib.
*
* Revision 2.2 1995/03/22 19:08:15 john
* Added code to fix sending packets over router... now
* we just need to make broadcasts go over router!!
*
* Revision 2.1 1995/03/21 08:40:16 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.0 1995/02/27 11:30:45 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.31 1995/02/16 17:35:03 john
* Added code to allow dynamic socket changing.
*
* Revision 1.30 1995/02/01 21:03:45 john
* Lintified.
*
* Revision 1.29 1995/01/22 14:31:05 john
* Added key.h
*
* Revision 1.28 1995/01/22 14:29:26 john
* Added code to bypass broadcast messages.
*
* Revision 1.27 1995/01/03 13:46:16 john
* Added code that should make ipx work over different servers,
* but ifdef'd it out with SHAREWARE in ipx.c. I haven't tested
* this, and I hope it doesn't introduce net bugs.
*
* Revision 1.26 1994/12/14 11:54:37 rob
* Reduce # of ipx packets.
*
* Revision 1.25 1994/12/11 00:43:28 john
* Locked down DOS ipx buffers... probably not necessary, tho.
*
* Revision 1.24 1994/12/08 15:49:58 rob
* Bumped up the # of ipx packets.
*
* Revision 1.23 1994/12/04 15:23:54 rob
* Reduced packet # constants.
*
* Revision 1.22 1994/11/27 23:12:39 matt
* Made changes for new mprintf calling convention
*
* Revision 1.21 1994/11/19 15:15:19 mike
* remove unused code and data
*
* Revision 1.20 1994/11/10 11:06:07 rob
* Raised number of ipx packets to 64 and buffers to 128 (for 8-way games)
* Removed (commented out) all the spx support stuff.
*
* Revision 1.19 1994/11/07 17:50:12 rob
* Bumped up max_packets and ipx_num_packets to double their previous
* values.
*
* Revision 1.18 1994/11/07 15:39:01 rob
* Removed temporary hacked ipx_send_object function.
* Replaced with a more general thing.
*
* Revision 1.17 1994/11/05 16:08:40 rob
* Made a change necessary for object syncing on rejoin.
*
* Revision 1.16 1994/11/01 15:57:12 rob
* Added support for SPX sockets for critical messages.
*
* Revision 1.15 1994/10/31 19:21:01 rob
* Added a routine for sending objects via ipx. Its a hack and shoukld
* be replaced by something more general time permitting.
*
* Revision 1.14 1994/10/20 14:57:42 john
* Some test stuff.
*
* Revision 1.13 1994/10/20 11:22:45 john
* Tweaked the number of waiting packets. Added code to print
* total packets missed, and to limit the packet send rate to
* 10 packets per second unless firing.
*
* Revision 1.12 1994/10/03 20:50:11 john
* Started adding sound pause functions.
*
* Revision 1.11 1994/09/15 08:54:24 mike
* comment out a mprintf.
*
* Revision 1.10 1994/09/12 19:38:20 john
* Made some stuff that prints to the DOS screen go to the
* mono instead, since it really is debugging info.
*
* Revision 1.9 1994/09/07 13:32:03 john
* Made ipx_close explicitly close the socket we were using,
* because it seems that VLM's don't automatically close them
* like the older NETX stuff did (Going from Novell 3.11 driver
* to 3.12 anyway).
*
* Revision 1.8 1994/09/06 19:29:20 john
* Added trial version of rejoin function.
*
* Revision 1.7 1994/08/09 19:31:50 john
* Networking changes.
*
* Revision 1.6 1994/08/05 16:11:41 john
* Psuedo working version of networking.
*
* Revision 1.5 1994/08/04 19:17:21 john
* Inbetween version of network stuff.
*
* Revision 1.4 1994/07/29 16:08:57 john
* *** empty log message ***
*
* Revision 1.3 1994/07/25 12:33:31 john
* Network "pinging" in.
*
* Revision 1.2 1994/07/20 15:58:28 john
* First installment of ipx stuff.
*
* Revision 1.1 1994/07/19 15:42:00 john
* Initial revision
------------------------------------------------------------------------
arch/dos/ipx.h:
* $Log: not supported by cvs2svn $
* Revision 1.2 2004/08/28 23:37:35 schaffner
* move old per-file change logs into new file ChangeLog-old
*
* Revision 1.1 2004/08/28 23:17:45 schaffner
* move old per-file change logs into new file ChangeLog-old
*
* Revision 1.1.1.1 2001/01/19 03:30:15 bradleyb
* Import of d2x-0.0.8
*
* Revision 1.1.1.1 1999/06/14 21:58:39 donut
* Import of d1x 1.37 source.
*
* Revision 2.6 1995/03/29 11:19:32 john
* Added broadcasting over a net.
*
* Revision 2.5 1995/03/28 20:04:43 john
* Took away alternate server stuff.
*
* Revision 2.4 1995/03/23 19:00:10 john
* Added user list capabitly.
*
* Revision 2.3 1995/03/23 12:26:57 john
* Move IPX into bios lib.
*
* Revision 2.2 1995/03/22 19:08:14 john
* Added code to fix sending packets over router... now
* we just need to make broadcasts go over router!!
*
* Revision 2.1 1995/03/21 08:39:56 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.0 1995/02/27 11:30:16 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.16 1995/02/16 17:34:52 john
* Added code to allow dynamic socket changing.
*
* Revision 1.15 1995/01/04 21:43:27 rob
* Remove SPX size definition.
*
* Revision 1.14 1995/01/03 13:46:18 john
* Added code that should make ipx work over different servers,
* but ifdef'd it out with SHAREWARE in ipx.c. I haven't tested
* this, and I hope it doesn't introduce net bugs.
*
* Revision 1.13 1994/11/02 11:37:16 rob
* Changed default socket number to a higher regions.
*
* Revision 1.12 1994/11/01 15:56:51 rob
* Added defines for SPX socketsx.
*
* Revision 1.11 1994/10/31 19:23:31 rob
* Added a prototype for the new object send function.
*
* Revision 1.10 1994/09/07 13:37:25 john
* Changed default socket to 0x4000, because
* the ipx/spx book says that we can only use
* sockets 0x4000 - 0x7fff.
*
* Revision 1.9 1994/08/25 18:14:45 matt
* Changed socket because of packet change
*
* Revision 1.8 1994/08/12 22:42:24 john
* Took away Player_stats; added Players array.
*
* Revision 1.7 1994/08/09 19:31:47 john
* Networking changes.
*
* Revision 1.6 1994/08/05 16:11:46 john
* Psuedo working version of networking.
*
* Revision 1.5 1994/08/04 19:17:20 john
* Inbetween version of network stuff.
*
* Revision 1.4 1994/07/29 16:08:59 john
* *** empty log message ***
*
* Revision 1.3 1994/07/25 12:33:22 john
* Network "pinging" in.
*
* Revision 1.2 1994/07/20 15:58:29 john
* First installment of ipx stuff.
*
* Revision 1.1 1994/07/19 15:43:05 john
* Initial revision
------------------------------------------------------------------------
arch/dos/joy.c:
* $Log: not supported by cvs2svn $
* Revision 1.2 2004/08/28 23:37:35 schaffner
* move old per-file change logs into new file ChangeLog-old
*
* Revision 1.1 2004/08/28 23:17:45 schaffner
* move old per-file change logs into new file ChangeLog-old
*
* Revision 1.5 2004/05/22 01:40:12 btb
* use JOY_NUM_AXES instead of 4 in joy_(get|set)_cal_vals (d1x r1.3, r1.4)
*
* Revision 1.4 2001/10/24 09:25:05 bradleyb
* Moved input stuff to arch subdirs, as in d1x.
*
* Revision 1.3 2001/01/29 14:03:56 bradleyb
* Fixed build, minor fixes
*
* Revision 1.2 2001/01/24 04:29:45 bradleyb
* changed args_find to FindArg
*
* Revision 1.1.1.2 2001/01/19 03:33:52 bradleyb
* Import of d2x-0.0.9-pre1
*
* Revision 1.1.1.1 1999/06/14 21:58:26 donut
* Import of d1x 1.37 source.
*
* Revision 1.37 1995/10/07 13:22:31 john
* Added new method of reading joystick that allows higher-priority
* interrupts to go off.
*
* Revision 1.36 1995/03/30 11:03:40 john
* Made -JoyBios read buttons using BIOS.
*
* Revision 1.35 1995/02/14 11:39:25 john
* Added polled/bios joystick readers..
*
* Revision 1.34 1995/02/10 17:06:12 john
* Fixed bug with plugging in a joystick not getting detected.
*
* Revision 1.33 1995/01/27 16:39:42 john
* Made so that if no joystick detected, it wont't
* read buttons.
*
* Revision 1.32 1995/01/12 13:16:40 john
* Made it so that joystick can't lose an axis
* by 1 weird reading. Reading has to occurr during
* calibration for this to happen.
*
* Revision 1.31 1994/12/28 15:56:03 john
* Fixed bug that refused to read joysticks whose
* min,cen,max were less than 100 apart.
*
* Revision 1.30 1994/12/28 15:31:53 john
* Added code to read joystick axis not all at one time.
*
* Revision 1.29 1994/12/27 15:44:36 john
* Made the joystick timeout be at 1/100th of a second,
* regardless of CPU speed.
*
* Revision 1.28 1994/12/04 11:54:54 john
* Made stick read at whatever rate the clock is at, not
* at 18.2 times/second.
*
* Revision 1.27 1994/11/29 02:25:40 john
* Made it so that the scaled reading returns 0
* if the calibration factors look funny..
*
* Revision 1.26 1994/11/22 11:08:07 john
* Commented out the ARCADE joystick.
*
* Revision 1.25 1994/11/14 19:40:26 john
* Fixed bug with no joystick being detected.
*
* Revision 1.24 1994/11/14 19:36:40 john
* Took out initial cheapy calibration.
*
* Revision 1.23 1994/11/14 19:13:27 john
* Took out the calibration in joy_init
*
* Revision 1.22 1994/10/17 10:09:57 john
* Made the state look at last_State, so that a joy_flush
* doesn't cause a new down state to be added next reading.
*
* Revision 1.21 1994/10/13 11:36:23 john
* Made joy_down_time be kept track of in fixed seconds,
* not ticks.
*
* Revision 1.20 1994/10/12 16:58:50 john
* Fixed bug w/ previous comment.
*
* Revision 1.19 1994/10/12 16:57:44 john
* Added function to set a joystick button's state.
*
* Revision 1.18 1994/10/11 10:20:13 john
* Fixed Flightstick Pro/
* ..
*
* Revision 1.17 1994/09/29 18:29:20 john
* *** empty log message ***
*
* Revision 1.16 1994/09/27 19:17:23 john
* Added code so that is joy_init is never called, joystick is not
* used at all.
*
* Revision 1.15 1994/09/22 16:09:23 john
* Fixed some virtual memory lockdown problems with timer and
* joystick.
*
* Revision 1.14 1994/09/16 11:44:42 john
* Fixed bug with slow joystick.
*
* Revision 1.13 1994/09/16 11:36:15 john
* Fixed bug with reading non-present channels.
*
* Revision 1.12 1994/09/15 20:52:48 john
* rme john
* Added support for the Arcade style joystick.
*
* Revision 1.11 1994/09/13 20:04:49 john
* Fixed bug with joystick button down_time.
*
* Revision 1.10 1994/09/10 13:48:07 john
* Made all 20 buttons read.
*
* Revision 1.9 1994/08/31 09:55:02 john
* *** empty log message ***
*
* Revision 1.8 1994/08/29 21:02:14 john
* Added joy_set_cal_values...
*
* Revision 1.7 1994/08/29 20:52:17 john
* Added better cyberman support; also, joystick calibration
* value return funcctiionn,
*
* Revision 1.6 1994/08/24 18:53:12 john
* Made Cyberman read like normal mouse; added dpmi module; moved
* mouse from assembly to c. Made mouse buttons return time_down.
*
* Revision 1.5 1994/07/14 22:12:23 john
* Used intrinsic forms of outp to fix vmm error.
*
* Revision 1.4 1994/07/07 19:52:59 matt
* Made joy_init() return success/fail flag
* Made joy_init() properly detect a stick if one is plugged in after joy_init()
* was called the first time.
*
* Revision 1.3 1994/07/01 10:55:55 john
* Fixed some bugs... added support for 4 axis.
*
* Revision 1.2 1994/06/30 20:36:55 john
* Revamped joystick code.
*
* Revision 1.1 1994/06/30 15:42:15 john
* Initial revision
------------------------------------------------------------------------
arch/dos/joydefs.c:
* $Log: not supported by cvs2svn $
* Revision 1.2 2004/08/28 23:37:35 schaffner
* move old per-file change logs into new file ChangeLog-old
*
* Revision 1.1 2004/08/28 23:17:45 schaffner
* move old per-file change logs into new file ChangeLog-old
*
* Revision 1.3 2001/10/24 09:25:05 bradleyb
* Moved input stuff to arch subdirs, as in d1x.
*
* Revision 1.2 2001/01/29 14:03:57 bradleyb
* Fixed build, minor fixes
*
* Revision 1.1.1.2 2001/01/19 03:33:52 bradleyb
* Import of d2x-0.0.9-pre1
*
* Revision 1.1.1.1 1999/06/14 21:58:29 donut
* Import of d1x 1.37 source.
*
* Revision 2.2 1995/06/30 12:30:22 john
* Added -Xname command line.
*
* Revision 2.1 1995/04/06 12:13:20 john
* Made so you can calibrate Gravis Gamepad.
*
* Revision 2.0 1995/02/27 11:30:27 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.71 1995/02/12 02:06:10 john
* Fixed bug with joystick incorrectly asking for
* calibration.
*
* Revision 1.70 1995/01/28 15:58:07 john
* Made joystick calibration be only when wrong detected in
* menu or joystick axis changed.
*
* Revision 1.69 1995/01/25 14:37:55 john
* Made joystick only prompt for calibration once...
*
* Revision 1.68 1995/01/24 16:34:29 john
* Made so that if you reconfigure joystick and
* add or subtract an axis, it asks for a recalibration
* upon leaving.
*
* Revision 1.67 1994/12/29 11:08:51 john
* Fixed Thrustmaster and Logitech Wingman extreme
* Hat by reading the y2 axis during the center stage
* of the calibration, and using 75, 50, 27, and 3 %
* as values for the 4 positions.
*
* Revision 1.66 1994/12/15 18:17:39 john
* Fixed warning with previous.
*
* Revision 1.65 1994/12/15 18:15:48 john
* Made the joy cal only write the .cfg file, not
* the player file.
*
* Revision 1.64 1994/12/13 14:43:35 john
* Took out the code in kconfig to build direction array.
* Called kc_set_controls after selecting a new control type.
*
* Revision 1.63 1994/12/10 12:08:47 john
* Changed some delays to use TICKER instead of timer_get_fixed_seconds.
*
* Revision 1.62 1994/12/09 11:01:07 mike
* force calibration of joystick on joystick selection from Controls... menu.
*
* Revision 1.61 1994/12/07 21:50:27 john
* Put stop/start time around joystick delay.
*
* Revision 1.60 1994/12/07 19:34:39 john
* Added delay.
*
* Revision 1.59 1994/12/07 18:12:14 john
* NEatened up joy cal.,
*
* Revision 1.58 1994/12/07 17:07:51 john
* Fixed up joy cal.
*
* Revision 1.57 1994/12/07 16:48:53 yuan
* localization
*
* Revision 1.56 1994/12/07 16:05:55 john
* Changed the way joystick calibration works.
*
* Revision 1.55 1994/12/06 20:15:22 john
* Took out code that unpauses songs that were never paused.
*
* Revision 1.54 1994/12/06 15:14:09 yuan
* Localization
*
* Revision 1.53 1994/12/05 16:29:16 john
* Took out music pause around the cheat menu.
*
* Revision 1.52 1994/12/04 12:39:10 john
* MAde so that FCS calibration doesn't ask for axis #2.
*
* Revision 1.51 1994/12/03 15:14:59 john
* Took out the delay mentioned previosuly cause it would
* cause bigger problems than it helps, especially with netgames.
*
* Revision 1.50 1994/12/03 14:16:14 john
* Put a delay between screens in joy cal to keep Yuan from
* double hitting.
*
* Revision 1.49 1994/12/03 11:04:06 john
* Changed newmenu code a bit to fix bug with bogus
* backgrounds occcasionally.
*
* Revision 1.48 1994/12/02 11:03:44 yuan
* Localization.
*
* Revision 1.47 1994/12/02 10:50:33 yuan
* Localization
*
* Revision 1.46 1994/12/01 12:21:59 john
* Added code to calibrate 2 joysticks separately.
*
* Revision 1.45 1994/12/01 11:52:31 john
* Added message when you select FCS to say that if
* you have WCS, see manuel.
*
* Revision 1.44 1994/11/29 02:26:28 john
* Made the prompts for upper-left, lower right for joy
* calibration more obvious.
*
* Revision 1.43 1994/11/26 13:13:59 matt
* Changed "none" option to "keyboard only"
*
* Revision 1.42 1994/11/21 19:35:13 john
* Replaced calls to joy_init with if (joy_present)
*
* Revision 1.41 1994/11/21 19:28:34 john
* Changed warning for no joystick to use nm_messagebox..
*
* Revision 1.40 1994/11/21 19:06:25 john
* Made it so that it only stops sound when your in game mode.
*
* Revision 1.39 1994/11/21 11:47:18 john
* Made sound pause during joystick calibration.
*
* Revision 1.38 1994/11/10 20:34:18 rob
* Removed menu-specific network mode support in favor in new stuff
* in newmenu.c
*
* Revision 1.37 1994/11/08 21:21:38 john
* Made Esc exit joystick calibration.
*
* Revision 1.36 1994/11/08 15:14:42 john
* Added more calls so net doesn't die in net game.
*
* Revision 1.35 1994/11/08 14:59:12 john
* Added code to respond to network while in menus.
*
* Revision 1.34 1994/10/24 19:56:32 john
* Made the new user setup prompt for config options.
*
* Revision 1.33 1994/10/22 14:11:52 mike
* Suppress compiler warning message.
*
* Revision 1.32 1994/10/19 12:44:24 john
* Added hours field to player structure.
*
* Revision 1.31 1994/10/17 13:07:13 john
* Moved the descent.cfg info into the player config file.
*
* Revision 1.30 1994/10/13 21:41:12 john
* MAde Esc exit out of joystick calibration.
*
* Revision 1.29 1994/10/13 19:22:27 john
* Added separate config saves for different devices.
* Made all the devices work together better, such as mice won't
* get read when you're playing with the joystick.
*
* Revision 1.28 1994/10/13 11:40:18 john
* Took out warnings.
*
* Revision 1.27 1994/10/13 11:35:23 john
* Made Thrustmaster FCS Hat work. Put a background behind the
* keyboard configure. Took out turn_sensitivity. Changed sound/config
* menu to new menu. Made F6 be calibrate joystick.
*
* Revision 1.26 1994/10/11 21:29:03 matt
* Made a bunch of menus have good initial selected values
*
* Revision 1.25 1994/10/11 17:08:39 john
* Added sliders for volume controls.
*
* Revision 1.24 1994/10/10 17:59:21 john
* Neatend previous.
*
* Revision 1.23 1994/10/10 17:57:59 john
* Neatend previous.
*
* Revision 1.22 1994/10/10 17:56:11 john
* Added messagebox that tells that config has been saved.
*
* Revision 1.21 1994/09/30 12:37:26 john
* Added midi,digi volume to configuration.
*
* Revision 1.20 1994/09/22 16:14:14 john
* Redid intro sequecing.
*
* Revision 1.19 1994/09/19 18:50:15 john
* Added switch to disable joystick.
*
* Revision 1.18 1994/09/12 11:47:36 john
* Made stupid cruise work better. Make kconfig values get
* read/written to disk.
*
* Revision 1.17 1994/09/10 15:46:47 john
* First version of new keyboard configuration.
*
* Revision 1.16 1994/09/06 19:35:44 john
* Fixed bug that didn';t load new size .cal file.
*
* Revision 1.15 1994/09/06 14:51:58 john
* Added sensitivity adjustment, fixed bug with joystick button not
* staying down.
*
* Revision 1.14 1994/09/02 16:13:47 john
* Made keys fill in position.
*
* Revision 1.13 1994/08/31 17:58:50 john
* Made a bit simpler.
*
* Revision 1.12 1994/08/31 14:17:54 john
* *** empty log message ***
*
* Revision 1.11 1994/08/31 14:10:56 john
* Made keys not work when KEY_DELETE pressed.
*
* Revision 1.10 1994/08/31 13:40:47 mike
* Change constant
*
* Revision 1.9 1994/08/31 12:56:27 john
* *** empty log message ***
*
* Revision 1.8 1994/08/30 20:38:29 john
* Add more config stuff..
*
* Revision 1.7 1994/08/30 16:37:25 john
* Added menu options to set controls.
*
* Revision 1.6 1994/08/30 09:27:18 john
* *** empty log message ***
*
* Revision 1.5 1994/08/30 09:12:01 john
* *** empty log message ***
*
* Revision 1.4 1994/08/29 21:18:32 john
* First version of new keyboard/oystick remapping stuff.
*
* Revision 1.3 1994/08/24 19:00:29 john
* Changed key_down_time to return fixed seconds instead of
* milliseconds.
*
* Revision 1.2 1994/08/17 16:50:37 john
* Added damaging fireballs, missiles.
*
* Revision 1.1 1994/08/17 10:07:12 john
* Initial revision
------------------------------------------------------------------------
arch/dos/key.c:
* $Log: not supported by cvs2svn $
* Revision 1.2 2004/08/28 23:37:35 schaffner
* move old per-file change logs into new file ChangeLog-old
*
* Revision 1.1 2004/08/28 23:17:45 schaffner
* move old per-file change logs into new file ChangeLog-old
*
* Revision 1.3 2001/10/24 09:25:05 bradleyb
* Moved input stuff to arch subdirs, as in d1x.
*
* Revision 1.3 2001/01/31 14:04:44 bradleyb
* Fix compiler warnings
*
* Revision 1.2 2001/01/29 14:03:57 bradleyb
* Fixed build, minor fixes
*
* Revision 1.1.1.2 2001/01/19 03:33:52 bradleyb
* Import of d2x-0.0.9-pre1
*
* Revision 1.1.1.1 1999/06/14 21:58:32 donut
* Import of d1x 1.37 source.
*
* Revision 1.35 1995/01/25 20:13:30 john
* Took out not passing keys to debugger if w10.
*
* Revision 1.34 1995/01/14 19:19:31 john
* Made so when you press Shift+Baskspace, it release keys autmatically.
*
* Revision 1.33 1994/12/13 09:21:48 john
* Took out keyd_editor_mode, and KEY_DEBUGGED stuff for NDEBUG versions.
*
* Revision 1.32 1994/11/12 13:52:01 john
* Fixed bug with code that cleared bios buffer.
*
* Revision 1.31 1994/10/24 15:16:16 john
* Added code to detect KEY_PAUSE.
*
* Revision 1.30 1994/10/24 13:57:53 john
* Hacked in support for pause key onto code 0x61.
*
* Revision 1.29 1994/10/21 15:18:13 john
* *** empty log message ***
*
* Revision 1.28 1994/10/21 15:17:24 john
* Made LSHIFT+BACKSPACE do what PrtScr used to.
*
* Revision 1.27 1994/09/22 16:09:18 john
* Fixed some virtual memory lockdown problems with timer and
* joystick.
*
* Revision 1.26 1994/09/15 21:32:47 john
* Added bounds checking for down_count scancode
* parameter.
*
* Revision 1.25 1994/08/31 12:22:20 john
* Added KEY_DEBUGGED
*
* Revision 1.24 1994/08/24 18:53:48 john
* Made Cyberman read like normal mouse; added dpmi module; moved
* mouse from assembly to c. Made mouse buttons return time_down.
*
* Revision 1.23 1994/08/18 15:17:51 john
* *** empty log message ***
*
* Revision 1.22 1994/08/18 15:16:38 john
* fixed some bugs with clear_key_times and then
* removed it because i fixed key_flush to do the
* same.
*
* Revision 1.21 1994/08/17 19:01:25 john
* Attempted to fix a bug with a key being held down
* key_flush called, then the key released having too
* long of a time.
*
* Revision 1.20 1994/08/08 10:43:48 john
* Recorded when a key was pressed for key_inkey_time.
*
* Revision 1.19 1994/06/22 15:00:03 john
* Made keyboard close automatically on exit.
*
* Revision 1.18 1994/06/21 09:16:29 john
* *** empty log message ***
*
* Revision 1.17 1994/06/21 09:08:23 john
* *** empty log message ***
*
* Revision 1.16 1994/06/21 09:05:01 john
* *** empty log message ***
*
* Revision 1.15 1994/06/21 09:04:24 john
* Made PrtScreen do an int5
*
* Revision 1.14 1994/06/17 17:17:06 john
* Added keyd_time_last_key_was_pressed or something like that.
*
* Revision 1.13 1994/05/14 13:55:16 matt
* Added #define to control key passing to bios
*
* Revision 1.12 1994/05/05 18:09:39 john
* Took out BIOS to prevent stuck keys.
*
* Revision 1.11 1994/05/03 17:39:12 john
* *** empty log message ***
*
* Revision 1.10 1994/04/29 12:14:20 john
* Locked all memory used during interrupts so that program
* won't hang when using virtual memory.
*
* Revision 1.9 1994/04/28 23:49:41 john
* Made key_flush flush more keys and also did something else but i forget what.
*
* Revision 1.8 1994/04/22 12:52:12 john
* *** empty log message ***
*
* Revision 1.7 1994/04/01 10:44:59 mike
* Change key_getch() to call getch() if our interrupt hasn't been installed.
*
* Revision 1.6 1994/03/09 10:45:48 john
* Neatend code a bit.
*
* Revision 1.5 1994/02/17 17:24:16 john
* Neatened up a bit.
*
* Revision 1.4 1994/02/17 16:30:29 john
* Put in code to pass keys when in debugger.
*
* Revision 1.3 1994/02/17 15:57:59 john
* Made handler not chain to BIOS handler.
*
* Revision 1.2 1994/02/17 15:56:06 john
* Initial version.
*
* Revision 1.1 1994/02/17 15:54:07 john
* Initial revision
------------------------------------------------------------------------
arch/dos/mono.c:
* $Log: not supported by cvs2svn $
* Revision 1.2 2004/08/28 23:37:35 schaffner
* move old per-file change logs into new file ChangeLog-old
*
* Revision 1.1 2004/08/28 23:17:45 schaffner
* move old per-file change logs into new file ChangeLog-old
*
* Revision 1.1.1.1 2001/01/19 03:30:15 bradleyb
* Import of d2x-0.0.8
*
* Revision 1.1.1.1 1999/06/14 21:58:35 donut
* Import of d1x 1.37 source.
*
* Revision 1.12 1995/02/23 11:59:57 john
* Made the windows smaller so they don't overwrite the debug file menus.
*
* Revision 1.11 1994/11/27 23:07:50 matt
* Made changes needed to be able to compile out monochrome debugging code
*
* Revision 1.10 1994/10/26 22:23:43 john
* Limited windows to 2. Took away saving what was under
* a window.
*
* Revision 1.9 1994/07/14 23:25:44 matt
* Allow window 0 to be opened; don't allow mono to be initialized twice
*
* Revision 1.8 1994/03/09 10:45:38 john
* Sped up scroll.
*
* Revision 1.7 1994/01/26 08:56:55 mike
* Comment out int3 in mputc.
*
* Revision 1.6 1994/01/12 15:56:34 john
* made backspace do an int3 during mono stuff.
* .,
*
* Revision 1.5 1993/12/07 12:33:23 john
* *** empty log message ***
*
* Revision 1.4 1993/10/15 10:10:25 john
* *** empty log message ***
*
* Revision 1.3 1993/09/14 20:55:13 matt
* Made minit() and mopen() check for presence of mono card in machine.
*
* Revision 1.2 1993/07/22 13:10:21 john
* *** empty log message ***
*
* Revision 1.1 1993/07/10 13:10:38 matt
* Initial revision
------------------------------------------------------------------------
arch/dos/mono.h:
* Revision 1.6 1994/12/03 17:07:37 matt
* Made mono code turn off with either NDEBUG or NMONO
*
* Revision 1.5 1994/11/27 23:07:28 matt
* Made changes needed to be able to compile out monochrome debugging code
*
* Revision 1.4 1993/12/07 12:33:28 john
* *** empty log message ***
*
* Revision 1.3 1993/09/14 20:54:50 matt
* Made minit() check for mono card, return -1 if present, 0 if not
*
* Revision 1.2 1993/07/22 13:05:40 john
* added macros to print variables
*
* Revision 1.1 1993/07/10 13:10:40 matt
* Initial revision
------------------------------------------------------------------------
arch/dos/mouse.c:
* Revision 1.11 1995/02/10 18:52:17 john
* Fixed bug with mouse not getting closed.
*
* Revision 1.10 1995/02/02 11:10:33 john
* Changed a bunch of mouse stuff around to maybe get
* around PS/2 mouse hang.
*
* Revision 1.9 1995/01/14 19:19:52 john
* Fixed signed short error cmp with -1 that caused mouse
* to break under Watcom 10.0
*
* Revision 1.8 1994/12/27 12:38:23 john
* Made mouse use temporary dos buffer instead of
*
* allocating its own.
*
*
* Revision 1.7 1994/12/05 23:54:53 john
* Fixed bug with mouse_get_delta only returning positive numbers..
*
* Revision 1.6 1994/11/18 23:18:18 john
* Changed some shorts to ints.
*
* Revision 1.5 1994/09/13 12:34:02 john
* Added functions to get down count and state.
*
* Revision 1.4 1994/08/29 20:52:19 john
* Added better cyberman support; also, joystick calibration
* value return funcctiionn,
*
* Revision 1.3 1994/08/24 18:54:32 john
* *** empty log message ***
*
* Revision 1.2 1994/08/24 18:53:46 john
* Made Cyberman read like normal mouse; added dpmi module; moved
* mouse from assembly to c. Made mouse buttons return time_down.
*
* Revision 1.1 1994/08/24 13:56:37 john
* Initial revision
------------------------------------------------------------------------
arch/include/joy.h:
* Revision 1.17 1995/10/07 13:22:30 john
* Added new method of reading joystick that allows higher-priority
* interrupts to go off.
*
* Revision 1.16 1995/02/14 11:17:13 john
* Added BIOS readings for stick.
*
* Revision 1.15 1995/02/14 10:09:58 john
* Added OS2 switch.
*
* Revision 1.14 1994/12/28 13:49:20 john
* Added function to set joystick for slow reading
*
* Revision 1.13 1994/10/13 11:36:06 john
* Made joy_down_time be kept track of in fixed seconds,
* not ticks.
*
* Revision 1.12 1994/10/12 17:03:16 john
* Added prototype for joy_get_scaled_reading.
*
* Revision 1.11 1994/10/12 16:57:55 john
* Added function to set a joystick button's state.
*
* Revision 1.10 1994/09/22 16:09:00 john
* Fixed some virtual memory lockdown problems with timer and
* joystick.
*
* Revision 1.9 1994/08/31 09:54:57 john
* *** empty log message ***
*
* Revision 1.8 1994/08/29 21:02:24 john
* Added joy_set_cal_values...
*
* Revision 1.7 1994/08/29 20:51:52 john
* Added better cyberman support; also, joystick calibration
* value return funcctiionn,
*
* Revision 1.6 1994/07/01 10:55:44 john
* Fixed some bugs... added support for 4 axis.
*
* Revision 1.5 1994/06/30 20:36:51 john
* Revamped joystick code.
*
* Revision 1.4 1994/04/22 12:52:10 john
* *** empty log message ***
*
* Revision 1.3 1994/01/18 13:53:39 john
* Made all joystick functions return int's instead of
* shorts. Also made the stick reading be CPU speed
* independant by using the timer_get_Stamp_64
* function.
*
* Revision 1.2 1994/01/18 10:58:42 john
* *** empty log message ***
*
* Revision 1.1 1993/07/10 13:10:39 matt
* Initial revision
------------------------------------------------------------------------
arch/win32/include/key.h:
* Revision 1.19 1994/10/24 13:58:12 john
* Hacked in support for pause key onto code 0x61.
*
* Revision 1.18 1994/10/21 15:17:10 john
* Added KEY_PRINT_SCREEN
*
* Revision 1.17 1994/08/31 12:22:13 john
* Added KEY_DEBUGGED
*
* Revision 1.16 1994/08/24 18:53:50 john
* Made Cyberman read like normal mouse; added dpmi module; moved
* mouse from assembly to c. Made mouse buttons return time_down.
*
* Revision 1.15 1994/08/18 14:56:16 john
* *** empty log message ***
*
* Revision 1.14 1994/08/08 10:43:24 john
* Recorded when a key was pressed for key_inkey_time.
*
* Revision 1.13 1994/06/17 17:17:28 john
* Added keyd_time_last_key_was_pressed or something like that.
*
* Revision 1.12 1994/04/29 12:14:19 john
* Locked all memory used during interrupts so that program
* won't hang when using virtual memory.
*
* Revision 1.11 1994/02/17 15:57:14 john
* Changed key libary to C.
*
* Revision 1.10 1994/01/31 08:34:09 john
* Fixed reversed lshift/rshift keys.
*
* Revision 1.9 1994/01/18 10:58:17 john
* *** empty log message ***
*
* Revision 1.8 1993/10/16 19:24:43 matt
* Added new function key_clear_times() & key_clear_counts()
*
* Revision 1.7 1993/10/15 10:17:09 john
* added keyd_last_key_pressed and released for use with recorder.
*
* Revision 1.6 1993/10/06 16:20:37 john
* fixed down arrow bug
*
* Revision 1.5 1993/10/04 13:26:42 john
* changed the #defines for scan codes.
*
* Revision 1.4 1993/09/28 11:35:20 john
* added key_peekkey
*
* Revision 1.3 1993/09/20 18:36:43 john
* *** empty log message ***
*
* Revision 1.1 1993/07/10 13:10:39 matt
* Initial revision
------------------------------------------------------------------------
arch/win32/include/mouse.h:
* Revision 1.10 1995/02/02 10:22:29 john
* Added cyberman init parameter.
*
* Revision 1.9 1994/11/18 23:18:09 john
* Changed some shorts to ints.
*
* Revision 1.8 1994/09/13 12:33:49 john
* Added functions to get down count and state.
*
* Revision 1.7 1994/08/29 20:52:20 john
* Added better cyberman support; also, joystick calibration
* value return funcctiionn,
*
* Revision 1.6 1994/08/24 17:54:35 john
* *** empty log message ***
*
* Revision 1.5 1994/08/24 17:51:43 john
* Added transparent cyberman support
*
* Revision 1.4 1993/07/27 09:32:22 john
* *** empty log message ***
*
* Revision 1.3 1993/07/26 10:46:44 john
* added definition for mouse_set_pos
*
* Revision 1.2 1993/07/22 13:07:59 john
* added header for mousesetlimts
*
* Revision 1.1 1993/07/10 13:10:40 matt
* Initial revision
------------------------------------------------------------------------
arch/win32/mouse.c:
* Revision 1.8 1996/02/21 13:57:36 allender
* cursor device manager stuff added here so as not to
* rely on InterfaceLib anymore
*
* Revision 1.7 1995/10/17 15:42:21 allender
* new mouse function to determine single button press
*
* Revision 1.6 1995/10/03 11:27:31 allender
* fixed up hotspot problems with the mouse on multiple monitors
*
* Revision 1.5 1995/07/13 11:27:08 allender
* trap button checks at MAX_MOUSE_BUTTONS
*
* Revision 1.4 1995/06/25 21:56:53 allender
* added events include
*
* Revision 1.3 1995/05/11 17:06:38 allender
* fixed up mouse routines
*
* Revision 1.2 1995/05/11 13:05:53 allender
* of mouse handler code
*
* Revision 1.1 1995/05/05 09:54:45 allender
* Initial revision
*
* Revision 1.9 1995/01/14 19:19:52 john
* Fixed signed short error cmp with -1 that caused mouse
* to break under Watcom 10.0
*
* Revision 1.8 1994/12/27 12:38:23 john
* Made mouse use temporary dos buffer instead of
*
* allocating its own.
*
* Revision 1.7 1994/12/05 23:54:53 john
* Fixed bug with mouse_get_delta only returning positive numbers..
*
* Revision 1.6 1994/11/18 23:18:18 john
* Changed some shorts to ints.
*
* Revision 1.5 1994/09/13 12:34:02 john
* Added functions to get down count and state.
*
* Revision 1.4 1994/08/29 20:52:19 john
* Added better cyberman support; also, joystick calibration
* value return funcctiionn,
*
* Revision 1.3 1994/08/24 18:54:32 john
* *** empty log message ***
*
* Revision 1.2 1994/08/24 18:53:46 john
* Made Cyberman read like normal mouse; added dpmi module; moved
* mouse from assembly to c. Made mouse buttons return time_down.
*
* Revision 1.1 1994/08/24 13:56:37 john
* Initial revision
------------------------------------------------------------------------
cfile/cfile.c:
* Revision 1.7 1995/10/27 15:18:20 allender
* get back to descent directory before trying to read a hog file
*
* Revision 1.6 1995/10/21 23:48:24 allender
* hogfile(s) are now in :Data: folder
*
* Revision 1.5 1995/08/14 09:27:31 allender
* added byteswap header
*
* Revision 1.4 1995/05/12 11:54:33 allender
* changed memory stuff again
*
* Revision 1.3 1995/05/04 20:03:38 allender
* added code that was missing...use NewPtr instead of malloc
*
* Revision 1.2 1995/04/03 09:59:49 allender
* *** empty log message ***
*
* Revision 1.1 1995/03/30 10:25:02 allender
* Initial revision
*
*
* --- PC RCS Information ---
* Revision 1.24 1995/03/15 14:20:27 john
* Added critical error checker.
*
* Revision 1.23 1995/03/13 15:16:53 john
* Added alternate directory stuff.
*
* Revision 1.22 1995/02/09 23:08:47 matt
* Increased the max number of files in hogfile to 250
*
* Revision 1.21 1995/02/01 20:56:47 john
* Added cfexist function
*
* Revision 1.20 1995/01/21 17:53:48 john
* Added alternate pig file thing.
*
* Revision 1.19 1994/12/29 15:10:02 john
* Increased hogfile max files to 200.
*
* Revision 1.18 1994/12/12 13:20:57 john
* Made cfile work with fiellentth.
*
* Revision 1.17 1994/12/12 13:14:25 john
* Made cfiles prefer non-hog files.
*
* Revision 1.16 1994/12/09 18:53:26 john
* *** empty log message ***
*
* Revision 1.15 1994/12/09 18:52:56 john
* Took out mem, error checking.
*
* Revision 1.14 1994/12/09 18:10:31 john
* Speed up cfgets, which was slowing down the reading of
* bitmaps.tbl, which was making POF loading look slow.
*
* Revision 1.13 1994/12/09 17:53:51 john
* Added error checking to number of hogfiles..
*
* Revision 1.12 1994/12/08 19:02:55 john
* Added cfgets.
*
* Revision 1.11 1994/12/07 21:57:48 john
* Took out data dir.
*
* Revision 1.10 1994/12/07 21:38:02 john
* Made cfile not return error..
*
* Revision 1.9 1994/12/07 21:35:34 john
* Made it read from data directory.
*
* Revision 1.8 1994/12/07 21:33:55 john
* Stripped out compression stuff...
*
* Revision 1.7 1994/04/13 23:44:59 matt
* When file cannot be opened, free up the buffer for that file.
*
* Revision 1.6 1994/02/18 12:38:20 john
* Optimized a bit
*
* Revision 1.5 1994/02/15 18:13:20 john
* Fixed more bugs.
*
* Revision 1.4 1994/02/15 13:27:58 john
* Works ok...
*
* Revision 1.3 1994/02/15 12:51:57 john
* Crappy inbetween version
*
* Revision 1.2 1994/02/14 20:12:29 john
* First version working with new cfile stuff.
*
* Revision 1.1 1994/02/14 15:51:33 john
* Initial revision
*
* Revision 1.1 1994/02/10 15:45:12 john
* Initial revision
------------------------------------------------------------------------
iff/iff.c:
* Revision 1.2 1995/05/12 11:54:43 allender
* changed memory stuff again
*
* Revision 1.1 1995/05/05 08:59:41 allender
* Initial revision
*
* Revision 1.43 1994/12/08 19:03:17 john
* Added code to use cfile.
*
* Revision 1.42 1994/12/08 17:45:32 john
* Put back in cfile stuff.
*
* Revision 1.41 1994/11/19 16:41:06 matt
* Took out unused code
*
* Revision 1.40 1994/11/07 21:26:39 matt
* Added new function iff_read_into_bitmap()
*
* Revision 1.39 1994/10/27 00:12:03 john
* Used nocfile
*
* Revision 1.38 1994/08/10 19:49:58 matt
* Fixed bitmaps in ILBM format with masking (stencil) on.
*
* Revision 1.37 1994/06/02 18:53:17 matt
* Clear flags & selector in new bitmap structure
*
* Revision 1.36 1994/05/17 14:00:33 matt
* Fixed bug with odd-width deltas & odd-length body chunks
*
* Revision 1.35 1994/05/16 20:38:55 matt
* Made anim brushes work when odd width
*
* Revision 1.34 1994/05/06 19:37:26 matt
* Improved error handling and checking
*
* Revision 1.33 1994/04/27 20:57:07 matt
* Fixed problem with RLE decompression and odd-width bitmap
* Added more error checking
*
* Revision 1.32 1994/04/16 21:44:19 matt
* Fixed bug introduced last version
*
* Revision 1.31 1994/04/16 20:12:40 matt
* Made masked (stenciled) bitmaps work
*
* Revision 1.30 1994/04/13 23:46:16 matt
* Added function, iff_errormsg(), which returns ptr to error message.
*
* Revision 1.29 1994/04/13 23:27:25 matt
* Put in support for anim brushes (.abm files)
*
* Revision 1.28 1994/04/13 16:33:31 matt
* Cleaned up file read code, adding fake_file structure (FFILE), which
* cleanly implements reading the entire file into a buffer and then reading
* out of that buffer.
*
* Revision 1.27 1994/04/06 23:07:43 matt
* Cleaned up code; added prototype (but no new code) for anim brush read
*
* Revision 1.26 1994/03/19 02:51:52 matt
* Really did what I said I did last revision.
*
* Revision 1.25 1994/03/19 02:16:07 matt
* Made work ILBMs which didn't have 8 planes
*
* Revision 1.24 1994/03/15 14:45:26 matt
* When error, only free memory if has been allocated
*
* Revision 1.23 1994/02/18 12:39:05 john
* Made code read from buffer.
*
* Revision 1.22 1994/02/15 18:15:26 john
* Took out cfile attempt (too slow)
*
* Revision 1.21 1994/02/15 13:17:48 john
* added assert to cfseek.
*
* Revision 1.20 1994/02/15 13:13:11 john
* Made iff code work normally.
*
* Revision 1.19 1994/02/15 12:51:07 john
* crappy inbetween version.
*
* Revision 1.18 1994/02/10 18:31:32 matt
* Changed 'if DEBUG_ON' to 'ifndef NDEBUG'
*
* Revision 1.17 1994/01/24 11:51:26 john
* Made write routine write transparency info.
*
* Revision 1.16 1994/01/22 14:41:11 john
* Fixed bug with declareations.
*
* Revision 1.15 1994/01/22 14:23:00 john
* Added global vars to check transparency
*
* Revision 1.14 1993/12/08 19:00:42 matt
* Changed while loop to memset
*
* Revision 1.13 1993/12/08 17:23:51 mike
* Speedup by converting while...getc to fread.
*
* Revision 1.12 1993/12/08 12:37:35 mike
* Optimize parse_body.
*
* Revision 1.11 1993/12/05 17:30:14 matt
* Made bitmaps with width <= 64 not compress
*
* Revision 1.10 1993/12/03 12:24:51 matt
* Fixed TINY chunk when bitmap was part of a larger bitmap
*
* Revision 1.9 1993/11/22 17:26:43 matt
* iff write now writes out a tiny chunk
*
* Revision 1.8 1993/11/21 22:04:13 matt
* Fixed error with non-compressed bitmaps
* Added Yuan's code to free raw data if we get an error parsing the body
*
* Revision 1.7 1993/11/11 12:12:12 yuan
* Changed mallocs to MALLOCs.
*
* Revision 1.6 1993/11/01 19:02:23 matt
* Fixed a couple bugs in rle compression
*
* Revision 1.5 1993/10/27 12:47:39 john
* *** empty log message ***
*
* Revision 1.4 1993/10/27 12:37:31 yuan
* Added mem.h
*
* Revision 1.3 1993/09/22 19:16:57 matt
* Added new error type, IFF_CORRUPT, for internally bad IFF files.
*
* Revision 1.2 1993/09/08 19:24:16 matt
* Fixed bug in RLE compression
* Changed a bunch of unimportant values like aspect and page size when writing
* Added new error condition, IFF_BAD_BM_TYPE
* Make sub-bitmaps work correctly
* Added compile flag to turn compression off (COMPRESS)
*
* Revision 1.1 1993/09/08 14:24:15 matt
* Initial revision
------------------------------------------------------------------------
include/3d.h:
* Revision 1.2 1995/09/14 14:08:58 allender
* return value for g3_draw_sphere
*
* Revision 1.1 1995/05/05 08:48:41 allender
* Initial revision
*
* Revision 1.34 1994/11/11 19:22:14 matt
* Added new function, g3_calc_point_depth()
*
* Revision 1.33 1994/09/09 14:23:58 matt
* Added support for glowing textures, to add engine glow to Descent.
*
* Revision 1.32 1994/09/01 10:42:27 matt
* Blob routine, renamed g3_draw_bitmap(), now takes seperate 3d width & height.
*
* Revision 1.31 1994/07/29 18:16:14 matt
* Added instance by angles, and corrected parms for g3_init()
*
* Revision 1.30 1994/07/25 00:00:00 matt
* Made 3d no longer deal with point numbers, but only with pointers.
*
* Revision 1.29 1994/07/22 17:57:27 matt
* Changed the name of the rod functions, and took out some debugging code
*
* Revision 1.28 1994/06/07 16:49:12 matt
* Made interpreter take lighting value as parm, rather than in global var
*
* Revision 1.27 1994/05/31 18:35:28 matt
* Added light value to g3_draw_facing_bitmap()
*
* Revision 1.26 1994/05/30 22:48:04 matt
* Added support for morph effect
*
* Revision 1.25 1994/05/30 11:34:57 matt
* Added g3_set_special_render() to allow a user to specify functions to
* call for 2d draws.
*
* Revision 1.24 1994/05/19 21:46:31 matt
* Moved texture lighting out of 3d and into the game
*
* Revision 1.23 1994/05/14 15:26:48 matt
* Added extern for polyobj outline flag
*
* Revision 1.22 1994/04/19 18:26:33 matt
* Added g3_draw_sphere() function.
*
* Revision 1.21 1994/03/25 18:22:28 matt
* g3_draw_polygon_model() now takes ptr to list of angles
*
* Revision 1.20 1994/03/15 21:23:23 matt
* Added interpreter functions
*
* Revision 1.19 1994/02/15 17:37:34 matt
* New function, g3_draw_blob()
*
* Revision 1.18 1994/02/09 11:47:47 matt
* Added rod & delta point functions
*
* Revision 1.17 1994/01/26 12:38:11 matt
* Added function g3_compute_lighting_value()
*
* Revision 1.16 1994/01/25 18:00:02 yuan
* Fixed variable beam_brightness...
*
* Revision 1.15 1994/01/24 14:08:34 matt
* Added instancing functions
*
* Revision 1.14 1994/01/22 18:21:48 matt
* New lighting stuff now done in 3d; g3_draw_tmap() takes lighting parm
*
* Revision 1.13 1994/01/20 17:21:24 matt
* New function g3_compute_sky_polygon()
*
* Revision 1.12 1994/01/14 17:20:25 matt
* Added prototype for new function g3_draw_horizon()
*
* Revision 1.10 1993/12/20 20:21:52 matt
* Added g3_point_2_vec()
*
* Revision 1.9 1993/12/07 23:05:47 matt
* Fixed mistyped function name.
*
* Revision 1.8 1993/12/05 23:47:03 matt
* Added function g3_draw_line_ptrs()
*
* Revision 1.7 1993/12/05 23:13:22 matt
* Added prototypes for g3_rotate_point() and g3_project_point()
*
* Revision 1.6 1993/12/05 23:03:28 matt
* Changed uvl structs to g3s_uvl
*
* Revision 1.5 1993/11/22 10:51:09 matt
* Moved uvl structure here from segment.h, made texture map functions use it
*
* Revision 1.4 1993/11/21 20:08:31 matt
* Added function g3_draw_object()
*
* Revision 1.3 1993/11/04 18:49:19 matt
* Added system to only rotate points once per frame
*
* Revision 1.2 1993/11/04 08:16:06 mike
* Add light field (p3_l) to g3s_point.
*
* Revision 1.1 1993/10/29 22:20:56 matt
* Initial revision
------------------------------------------------------------------------
include/args.h:
* Revision 1.1 1995/05/16 15:54:24 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:33:09 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.4 1994/07/11 16:27:28 matt
* Took out prototypes for netipx funcs
*
* Revision 1.3 1994/05/11 19:45:34 john
* *** empty log message ***
*
* Revision 1.2 1994/05/09 17:02:55 john
* Split command line parameters into arg.c and arg.h.
* Also added /dma, /port, /irq to digi.c
*
* Revision 1.1 1994/05/09 16:47:49 john
* Initial revision
------------------------------------------------------------------------
include/byteswap.h:
* Revision 1.4 1995/08/23 21:28:15 allender
* fix mcc compiler warning
*
* Revision 1.3 1995/08/18 15:51:42 allender
* put back in old byteswapping code
*
* Revision 1.2 1995/05/04 20:10:18 allender
* proper prototypes
*
* Revision 1.1 1995/03/30 15:02:11 allender
* Initial revision
------------------------------------------------------------------------
include/cfile.h:
* Revision 1.1 1995/03/30 10:25:08 allender
* Initial revision
*
*
* -- PC RCS Information ---
* Revision 1.10 1995/03/13 15:16:47 john
* Added alternate directory stuff.
*
* Revision 1.9 1995/02/01 20:56:40 john
* Added cfexist function
*
* Revision 1.8 1995/01/21 17:53:41 john
* Added alternate pig file thing.
*
* Revision 1.7 1994/12/12 13:19:47 john
* Made cfile work with fiellentth.
*
* Revision 1.6 1994/12/08 19:02:52 john
* Added cfgets.
*
* Revision 1.5 1994/12/07 21:34:07 john
* Stripped out compression stuff...
*
* Revision 1.4 1994/07/13 00:16:53 matt
* Added include
*
* Revision 1.3 1994/02/17 17:36:19 john
* Added CF_READ_MODE and CF_WRITE_MODE constants.
*
* Revision 1.2 1994/02/15 12:52:08 john
* Crappy inbetween version
*
* Revision 1.1 1994/02/15 10:54:23 john
* Initial revision
*
* Revision 1.1 1994/02/10 15:50:54 john
* Initial revision
------------------------------------------------------------------------
include/error.h:
* Revision 1.12 1994/06/17 15:22:46 matt
* Added pragma for Error() for when NDEBUG
*
* Revision 1.11 1994/03/07 13:22:14 matt
* Since the Error() function has 'aborts' set in pragma, we do a jmp
* to the function rather than call.
*
* Revision 1.10 1994/02/17 12:37:15 matt
* Combined two pragma's for Error(), since second superseded the first
*
* Revision 1.9 1994/02/10 18:02:53 matt
* Changed 'if DEBUG_ON' to 'ifndef NDEBUG'
*
* Revision 1.8 1994/02/09 15:18:29 matt
* Added pragma saying that Error() never returns
*
* Revision 1.7 1993/10/19 12:57:53 matt
* If DEBUG_ON not defined, define it to be 1
*
* Revision 1.6 1993/10/15 21:40:39 matt
* Made error functions generate int3's if debugging on
*
* Revision 1.5 1993/10/14 15:29:22 matt
* Added new function clear_warn_func()
*
* Revision 1.4 1993/10/08 16:16:47 matt
* Made Assert() call function _Assert(), rather to do 'if...' inline.
*
* Revision 1.3 1993/09/29 11:39:07 matt
* Added Assert() macro, like the system one, but calls Error()
*
* Revision 1.2 1993/09/27 11:47:03 matt
* Added function set_warn_func()
*
* Revision 1.1 1993/09/23 20:17:46 matt
* Initial revision
------------------------------------------------------------------------
include/gr.h:
* Revision 1.7 1995/09/13 08:39:44 allender
* added prototype for gr_bitblt_cockpit
*
* Revision 1.6 1995/08/23 18:47:01 allender
* fixed compiler warnings on mcc
*
* Revision 1.5 1995/08/14 15:51:01 allender
* added #define for transparency color
*
* Revision 1.4 1995/06/13 13:03:55 allender
* added graphics mode
*
* Revision 1.3 1995/04/18 09:50:16 allender
* *** empty log message ***
*
* Revision 1.2 1995/04/07 07:32:33 allender
* *** empty log message ***
*
* Revision 1.1 1995/03/09 09:04:16 allender
* Initial revision
*
*
* --- PC RCS information ---
* Revision 1.45 1994/11/18 22:50:21 john
* Changed shorts to ints in parameters.
*
* Revision 1.44 1994/11/13 13:04:07 john
* Added paged out bit in bitmap structure. Commented out the
* poly code that is never used.
*
* Revision 1.43 1994/11/09 23:04:56 mike
* Add avg_color field.
*
* Revision 1.42 1994/10/27 00:53:35 john
* Added RLE Flag to bitmap structere.
*
* Revision 1.41 1994/10/26 23:55:52 john
* Took out roller; Took out inverse table.
*
* Revision 1.40 1994/08/11 17:59:12 mike
* Assembler merge functions written for 3 rotations of bitmaps.
*
* Revision 1.39 1994/08/10 12:24:56 matt
* Added support for colors fonts & kerned fonts
* Made our own font file format
*
* Revision 1.38 1994/07/27 18:30:18 john
* Took away the blending table.
*
* Revision 1.37 1994/06/16 15:25:06 mike
* Add flag BM_FLAG_NO_LIGHTING.
*
* Revision 1.36 1994/05/31 10:01:22 john
* *** empty log message ***
*
* Revision 1.35 1994/05/31 07:53:34 john
* *** empty log message ***
*
* Revision 1.34 1994/05/14 17:19:41 matt
* Added externs
*
* Revision 1.33 1994/05/12 17:33:09 john
* Added circle code.
*
* Revision 1.32 1994/05/06 12:50:16 john
* Added supertransparency; neatend things up; took out warnings.
*
* Revision 1.31 1994/05/04 10:06:06 john
* Added flag for bitmap super-transparency.
*
* Revision 1.30 1994/05/03 19:38:56 john
* *** empty log message ***
*
* Revision 1.29 1994/04/22 11:16:05 john
* *** empty log message ***
*
* Revision 1.28 1994/04/08 16:59:32 john
* Add fading poly's; Made palette fade 32 instead of 16.
*
* Revision 1.27 1994/03/16 17:29:52 john
* *** empty log message ***
*
* Revision 1.26 1994/03/16 17:20:51 john
* Added slow palette searching options.
*
* Revision 1.25 1994/03/14 17:59:20 john
* Added function to check bitmap's transparency.
*
* Revision 1.24 1994/03/14 16:56:26 john
* Changed grs_bitmap structure to include bm_flags.
*
* Revision 1.23 1994/02/18 15:32:30 john
* *** empty log message ***
*
* Revision 1.22 1994/01/25 11:40:48 john
* Added gr_check_mode function.
*
* Revision 1.21 1994/01/12 13:45:24 john
* Added scaler.
*
* Revision 1.20 1993/12/21 19:58:24 john
* added selector stuff
*
* Revision 1.19 1993/12/21 11:40:40 john
* *** empty log message ***
*
* Revision 1.18 1993/12/09 15:02:08 john
* Changed palette stuff majorly
*
* Revision 1.17 1993/12/07 12:32:05 john
* moved bmd_palette to gr_palette
*
* Revision 1.16 1993/11/28 12:08:06 mike
* Change prototype for rotate_bitmap.
*
* Revision 1.15 1993/11/18 14:22:51 mike
* Add prototype for rotate_bitmap.
*
* Revision 1.14 1993/11/17 19:00:59 mike
* Add prototype for test_rotate_bitmap
*
* Revision 1.13 1993/11/16 11:28:58 john
* *** empty log message ***
*
* Revision 1.12 1993/10/26 13:17:43 john
* *** empty log message ***
*
* Revision 1.11 1993/10/15 16:23:37 john
* y
*
* Revision 1.10 1993/09/28 15:32:33 john
* added def for save/restore vidmode
*
* Revision 1.9 1993/09/28 12:51:46 matt
* Added aspect ratio to grs_screen structure
*
* Revision 1.8 1993/09/26 22:45:12 matt
* Changed prototypes for line functions to take fixes, not ints.
*
* Revision 1.7 1993/09/26 18:58:16 john
* fadein/out stuff
*
* Revision 1.6 1993/09/14 16:26:44 matt
* Changed gr_change_mode() to be gr_set_mode()
*
* Revision 1.4 1993/09/14 13:08:45 john
* added gr_change_mode
*
* Revision 1.3 1993/09/08 13:56:03 matt
* Put 'if' block around body of file; added bitmap type BM_RGB15
*
* Revision 1.2 1993/09/08 13:02:14 john
* Changed structure definitions a bit.
*
* Revision 1.1 1993/09/08 11:25:15 john
* Initial revision
------------------------------------------------------------------------
include/grdef.h:
* Revision 1.5 1995/09/14 15:36:33 allender
* added stuff for 68k version
*
* Revision 1.4 1995/07/05 16:10:57 allender
* gr_linear_movsd prototype changes
*
* Revision 1.3 1995/04/19 14:39:28 allender
* changed function prototype
*
* Revision 1.2 1995/04/18 09:49:53 allender
* *** empty log message ***
*
* Revision 1.1 1995/03/09 09:04:56 allender
* Initial revision
*
*
* --- PC RCS information ---
* Revision 1.8 1994/05/06 12:50:09 john
* Added supertransparency; neatend things up; took out warnings.
*
* Revision 1.7 1994/01/25 11:40:29 john
* Added gr_check_mode function.
*
* Revision 1.6 1993/10/15 16:22:53 john
* y
*
* Revision 1.5 1993/09/29 17:31:00 john
* added gr_vesa_pixel
*
* Revision 1.4 1993/09/29 16:14:43 john
* added global canvas descriptors.
*
* Revision 1.3 1993/09/08 17:38:02 john
* Looking for errors
*
* Revision 1.2 1993/09/08 15:54:29 john
* *** empty log message ***
*
* Revision 1.1 1993/09/08 11:37:57 john
* Initial revision
------------------------------------------------------------------------
include/ibitblt.h:
* Revision 1.1 1995/08/18 15:50:57 allender
* Initial revision
*
* Revision 1.2 1994/05/31 11:10:56 john
* *** empty log message ***
*
* Revision 1.1 1994/05/30 16:08:46 john
* Initial revision
------------------------------------------------------------------------
include/iff.h:
* Revision 1.2 1995/05/05 16:33:22 allender
* changed types.h to dtypes.h
*
* Revision 1.1 1995/05/05 08:59:45 allender
* Initial revision
*
* Revision 1.12 1994/11/07 21:26:53 matt
* Added new function iff_read_into_bitmap()
*
* Revision 1.11 1994/05/06 19:37:38 matt
* Improved error handling and checking
*
* Revision 1.10 1994/04/16 20:12:54 matt
* Made masked (stenciled) bitmaps work
*
* Revision 1.9 1994/04/13 23:46:00 matt
* Added function, iff_errormsg(), which returns ptr to error message.
*
* Revision 1.8 1994/04/13 23:27:10 matt
* Put in support for anim brushes (.abm files)
*
* Revision 1.7 1994/04/06 23:08:02 matt
* Cleaned up code; added prototype (but no new code) for anim brush read
*
* Revision 1.6 1994/01/22 14:40:59 john
* Fixed bug with declareations.
*
* Revision 1.5 1994/01/22 14:23:13 john
* Added global vars to check transparency
*
* Revision 1.4 1993/10/27 12:47:42 john
* Extended the comments
*
* Revision 1.3 1993/09/22 19:17:20 matt
* Fixed handling of pad byte in ILBM/PPB body - was writing pad byte to
* destination buffer.
*
* Revision 1.2 1993/09/08 19:23:25 matt
* Added additional return code, IFF_BAD_BM_TYPE
*
* Revision 1.1 1993/09/08 14:24:21 matt
* Initial revision
------------------------------------------------------------------------
include/ipx.h:
* Revision 2.6 1995/03/29 11:19:32 john
* Added broadcasting over a net.
*
* Revision 2.5 1995/03/28 20:04:43 john
* Took away alternate server stuff.
*
* Revision 2.4 1995/03/23 19:00:10 john
* Added user list capabitly.
*
* Revision 2.3 1995/03/23 12:26:57 john
* Move IPX into bios lib.
*
* Revision 2.2 1995/03/22 19:08:14 john
* Added code to fix sending packets over router... now
* we just need to make broadcasts go over router!!
*
* Revision 2.1 1995/03/21 08:39:56 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.0 1995/02/27 11:30:16 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.16 1995/02/16 17:34:52 john
* Added code to allow dynamic socket changing.
*
* Revision 1.15 1995/01/04 21:43:27 rob
* Remove SPX size definition.
*
* Revision 1.14 1995/01/03 13:46:18 john
* Added code that should make ipx work over different servers,
* but ifdef'd it out with SHAREWARE in ipx.c. I haven't tested
* this, and I hope it doesn't introduce net bugs.
*
* Revision 1.13 1994/11/02 11:37:16 rob
* Changed default socket number to a higher regions.
*
* Revision 1.12 1994/11/01 15:56:51 rob
* Added defines for SPX socketsx.
*
* Revision 1.11 1994/10/31 19:23:31 rob
* Added a prototype for the new object send function.
*
* Revision 1.10 1994/09/07 13:37:25 john
* Changed default socket to 0x4000, because
* the ipx/spx book says that we can only use
* sockets 0x4000 - 0x7fff.
*
* Revision 1.9 1994/08/25 18:14:45 matt
* Changed socket because of packet change
*
* Revision 1.8 1994/08/12 22:42:24 john
* Took away Player_stats; added Players array.
*
* Revision 1.7 1994/08/09 19:31:47 john
* Networking changes.
*
* Revision 1.6 1994/08/05 16:11:46 john
* Psuedo working version of networking.
*
* Revision 1.5 1994/08/04 19:17:20 john
* Inbetween version of network stuff.
*
* Revision 1.4 1994/07/29 16:08:59 john
* *** empty log message ***
*
* Revision 1.3 1994/07/25 12:33:22 john
* Network "pinging" in.
*
* Revision 1.2 1994/07/20 15:58:29 john
* First installment of ipx stuff.
*
* Revision 1.1 1994/07/19 15:43:05 john
* Initial revision
------------------------------------------------------------------------
include/palette.h:
* Revision 1.11 1994/11/15 17:55:10 john
* Made text palette fade in when game over.
*
* Revision 1.10 1994/11/07 13:53:42 john
* Added better gamma stufff.
*
* Revision 1.9 1994/11/07 13:38:03 john
* Added gamma correction stuff.
*
* Revision 1.8 1994/11/05 13:05:59 john
* Added back in code to allow keys during fade.
*
* Revision 1.7 1994/11/05 12:46:37 john
* Changed palette stuff a bit.
*
* Revision 1.6 1994/09/22 16:08:37 john
* Fixed some palette stuff.
*
* Revision 1.5 1994/08/09 11:27:04 john
* Add cthru stuff.
*
* Revision 1.4 1994/06/09 10:39:33 john
* In fade out.in functions, returned 1 if key was pressed...
*
* Revision 1.3 1994/05/31 19:04:24 john
* Added key to stop fade if desired.
*
* Revision 1.2 1994/05/06 12:50:42 john
* Added supertransparency; neatend things up; took out warnings.
*
* Revision 1.1 1994/05/04 14:59:57 john
* Initial revision
------------------------------------------------------------------------
include/pcx.h:
* Revision 1.4 1995/01/21 17:07:34 john
* Added out of memory error.
*
* Revision 1.3 1994/11/29 02:53:10 john
* Added error messages; made call be more similiar to iff.
*
* Revision 1.2 1994/11/28 20:03:48 john
* Added PCX functions.
*
* Revision 1.1 1994/11/28 19:57:45 john
* Initial revision
------------------------------------------------------------------------
include/pstypes.h:
* Revision 1.2 1993/09/14 12:12:30 matt
* Added #define for NULL
*
* Revision 1.1 1993/08/24 12:50:40 matt
* Initial revision
------------------------------------------------------------------------
include/rle.h:
* Revision 1.5 1995/01/14 11:32:20 john
* Added rle_cache_flush function.
*
* Revision 1.4 1994/11/10 13:16:01 matt
* Added includes
*
* Revision 1.3 1994/11/09 19:53:51 john
* Added texture rle caching.
*
* Revision 1.2 1994/11/09 16:35:18 john
* First version with working RLE bitmaps.
*
* Revision 1.1 1994/11/09 12:40:17 john
* Initial revision
------------------------------------------------------------------------
include/texmap.h:
* $Log: not supported by cvs2svn $
* Revision 1.2 2004/08/28 23:37:35 schaffner
* move old per-file change logs into new file ChangeLog-old
*
* Revision 1.1 2004/08/28 23:17:45 schaffner
* move old per-file change logs into new file ChangeLog-old
*
* Revision 1.2 2003/03/19 19:21:34 btb
* header/extern declaration housekeeping
*
* Revision 1.1.1.1 2001/01/19 03:30:16 bradleyb
* Import of d2x-0.0.8
*
* Revision 1.2 1999/07/07 21:21:56 donut
* increased recip table size to better accommodate 640 res
*
* Revision 1.1.1.1 1999/06/14 22:02:20 donut
* Import of d1x 1.37 source.
*
* Revision 1.2 1995/09/04 14:22:10 allender
* #defines for fixed point limits on render buffer
*
* Revision 1.1 1995/05/04 20:14:50 allender
* Initial revision
*
* Revision 1.17 1994/11/10 11:09:16 mike
* detail level stuff.
*
* Revision 1.16 1994/11/09 22:55:32 matt
* Added variable Current_seg_depth for detail level optimization
*
* Revision 1.15 1994/06/09 16:10:04 mike
* Add prototype for SC2000
*
* Revision 1.14 1994/05/25 18:46:16 matt
* Added gr_upoly_tmap_ylr(), which generates ylr's for a polygon
*
* Revision 1.13 1994/05/25 09:47:12 mike
* Added interface support for linear texture mapper (Mike change, Matt commnet)
*
* Revision 1.12 1994/05/24 17:30:43 mike
* Prototype a bunch of linear, vertical scanning functions.
*
* Revision 1.11 1994/05/19 23:26:14 mike
* Add constants NUM_LIGHTING_VALUES, MAX_LIGHTING_VALUE, MIN_LIGHTING_VALUE,
* all part of new lighting_values_in_0_to_1 system.
*
* Revision 1.10 1994/05/14 17:19:21 matt
* Added externs
*
* Revision 1.9 1994/04/13 23:55:44 matt
* Increased max_tmap_verts from 16 to 25
*
* Revision 1.8 1994/03/31 08:35:43 mike
* Prototype for gr_upoly_tmap.
*
* Revision 1.7 1994/02/08 15:17:54 mike
* define label for MAX_TMAP_VERTS
*
* Revision 1.6 1994/01/31 15:41:51 mike
* Add texture_map_lin_lin_sky_v
*
* Revision 1.5 1994/01/18 10:49:40 mike
* prototype for texture_map_lin_lin_sky
*
* Revision 1.4 1993/11/30 17:09:46 mike
* prototype for compute_lighting_value.
*
* Revision 1.3 1993/11/22 10:50:38 matt
* Add ifndef around body of file
*
* Revision 1.2 1993/10/06 12:41:25 mike
* Change prototype for draw_tmap.
*
* Revision 1.1 1993/09/08 17:29:11 mike
* Initial revision
------------------------------------------------------------------------
include/timer.h:
* Revision 1.8 1994/12/10 12:27:23 john
* Added timer_get_approx_seconds.
*
* Revision 1.7 1994/12/10 12:10:25 john
* Added types.h.
*
* Revision 1.6 1994/12/10 12:07:06 john
* Added tick counter variable.
*
* Revision 1.5 1994/11/15 12:04:15 john
* Cleaned up timer code a bit... took out unused functions
* like timer_get_milliseconds, etc.
*
* Revision 1.4 1994/04/28 23:50:08 john
* Changed calling for init_timer. Made the function that the
* timer calls be a far function. All of this was done to make
* our timer system compatible with the HMI sound stuff.
*
* Revision 1.3 1994/02/17 15:57:12 john
* Changed key libary to C.
*
* Revision 1.2 1994/01/18 10:58:34 john
* Added timer_get_fixed_seconds
*
* Revision 1.1 1993/07/10 13:10:41 matt
* Initial revision
------------------------------------------------------------------------
include/u_dpmi.h:
* Revision 1.9 1995/01/14 19:20:14 john
* Added function to set a selector's base address.
*
* Revision 1.8 1994/11/28 20:22:03 john
* Added some variables that return the amount of available
* memory.
*
* Revision 1.7 1994/11/15 18:26:38 john
* Added verbose flag.
*
* Revision 1.6 1994/11/07 11:35:05 john
* Added prototype for real_free
*
* Revision 1.5 1994/10/27 19:54:48 john
* Added unlock region function,.
*
* Revision 1.4 1994/09/27 18:27:56 john
* Added pragma to make inp,outp,enable,disable intrinsic
*
* Revision 1.3 1994/09/27 11:54:45 john
* Added DPMI init function.
*
* Revision 1.2 1994/08/24 18:53:51 john
* Made Cyberman read like normal mouse; added dpmi module; moved
* mouse from assembly to c. Made mouse buttons return time_down.
*
* Revision 1.1 1994/08/24 10:22:48 john
* Initial revision
------------------------------------------------------------------------
include/vecmat.h:
* Revision 1.1 1995/04/17 16:18:05 allender
* Initial revision
*
*
* --- PC RCS Information ---
* Revision 1.37 1995/02/22 13:23:22 john
* Added the vms_vector_array structure, to access a vms_vector
* with an array.
*
* Revision 1.36 1995/02/22 12:34:33 john
* Took out anonymous unions.
*
* Revision 1.35 1994/12/13 14:44:20 matt
* Added vm_vector_2_matrix_norm()
*
* Revision 1.34 1994/09/11 19:22:55 matt
* Added vm_vec_normalized_dir_quick()
*
* Revision 1.33 1994/08/04 19:45:38 matt
* Added option to make a bunch of functions (add, sub, dotprod) inline
*
* Revision 1.32 1994/07/19 18:52:36 matt
* Added vm_vec_normalize_quick() and vm_vec_copy_normalize_quick()
*
* Revision 1.31 1994/06/16 18:24:30 matt
* Added vm_vec_mag_quick()
*
* Revision 1.30 1994/06/10 23:19:00 matt
* New register usage for vm_vec_ang_2_matrix()
*
* Revision 1.29 1994/06/01 17:32:06 matt
* Fixed modify list for vm_vec_normalized_dir()
*
* Revision 1.28 1994/05/19 12:07:20 matt
* Fixed globals and macros and added a constant
*
* Revision 1.27 1994/05/19 09:19:15 matt
* Made vm_vec_normalized_dir() return mag of vector
*
* Revision 1.26 1994/05/18 22:28:57 matt
* Added function vm_vec_normalized_dir()
* Added C macros IS_ZERO_VEC(), vm_vec_zero(), and vm_set_identity()
* Added C global static vars vmd_zero_vector & vmd_identity_matrix
*
* Revision 1.25 1994/05/18 21:45:06 matt
* Added functions:
* vm_extract_angles_vector()
* vm_extract_angles_vector_normalized()
* vm_vec_copy_normalize()
*
* Revision 1.24 1994/05/13 12:42:16 matt
* Added new function, vm_vec_dist_quick(), which does an approximation.
*
* Revision 1.23 1994/03/30 13:37:34 matt
* Added prototype for vm_vec_scale_add(), and fixed typos
*
* Revision 1.22 1994/03/30 13:29:42 matt
* Header for vm_vec_scale_add2()
*
* Revision 1.21 1994/01/31 19:45:13 matt
* Added function vm_extract_angles_matrix()
*
* Revision 1.20 1993/12/21 19:46:14 matt
* Added function vm_dist_to_plane()
*
* Revision 1.19 1993/12/13 17:26:41 matt
* Added vm_vec_dist()
*
* Revision 1.18 1993/12/02 12:45:11 matt
* New functions: vm_vec_copy_scale(), vm_vec_scale2()
* Aliases: vm_transpose(), vm_vec_dot(), vm_vec_cross(), vm_copy_transpose()
*
* Revision 1.17 1993/10/29 22:38:36 matt
* Changed matrix order, making direction vectors the rows
*
* Revision 1.16 1993/10/25 11:49:57 matt
* Made vm_vec_delta_ang() take optional forward vector to return signed delta
*
* Revision 1.15 1993/10/20 01:10:05 matt
* Added vm_vec_delta_ang(), vm_vec_delta_ang_norm(), and vm_vec_ang_2_matrix()
*
* Revision 1.14 1993/10/17 17:02:52 matt
* vm_vector_2_matrix() now takes optional right vector
*
* Revision 1.13 1993/10/12 19:31:39 matt
* Added IDENTITY_MATRIX constant
*
* Revision 1.12 1993/10/08 18:10:16 matt
* Changed vm_vec_make() and vm_angvec_make() to be inline assembly
* functions, to get rid of compiler warnings. Did not change vm_mat_make(),
* which could still get warnings if the return value is unused.
*
* Revision 1.11 1993/09/29 12:10:07 matt
* Changed modified regs in pragmas to include return register
*
* Revision 1.10 1993/09/28 12:15:41 matt
* Added func vm_vector_2_matrix()
*
* Revision 1.9 1993/09/24 21:18:38 matt
* Added vm_vec_avg(), vm_vec_avg4(), and vm_angvec_make().
* Documented which functions could have dest==source
*
* Revision 1.8 1993/09/20 14:56:11 matt
* Added new function, vm_vec_perp()
*
* Revision 1.7 1993/09/20 14:27:42 mike
* unfix last fix which introduced a bug
*
* Revision 1.6 1993/09/20 10:11:53 mike
* no changes
*
* Revision 1.5 1993/09/20 09:58:58 mike
* Re-fix vm_vec_make
*
* Revision 1.4 1993/09/20 09:41:21 mike
* Correct vm_vec_make and vm_mat_make macros to return the destination
* as the value of the macro.
*
* Revision 1.3 1993/09/17 11:23:47 matt
* Added row access (via xrow,yrow,zrow) to vms_matrix
* Added macro vm_mat_make(), like vm_vec_make()
*
* Revision 1.2 1993/09/17 11:10:32 matt
* Added vm_vec_add2() and vm_vec_sub2(), which take 2 args (dest==src0)
*
* Revision 1.1 1993/09/16 20:10:01 matt
* Initial revision
------------------------------------------------------------------------
main/ai.c:
* Revision 1.1 1995/12/05 14:15:37 allender
* Initial revision
*
* Revision 1.10 1995/11/09 09:36:12 allender
* cheats not active during demo playback
*
* Revision 1.9 1995/11/03 12:51:55 allender
* shareware changes
*
* Revision 1.8 1995/10/31 10:25:07 allender
* shareware stuff
*
* Revision 1.7 1995/10/26 14:01:38 allender
* optimization for doing robot stuff only if anim angles done last frame
*
* Revision 1.6 1995/10/25 09:35:43 allender
* prototype some functions causing mcc problems
*
* Revision 1.5 1995/10/17 13:11:40 allender
* fix in ai code that makes bots only look for you every so often
*
* Revision 1.4 1995/10/10 11:48:10 allender
* PC ai code
*
* Revision 2.11 1995/07/09 11:15:48 john
* Put in Mike's code to fix bug where bosses don't gate in bots after
* 32767 seconds of playing.
*
* Revision 2.10 1995/06/15 12:31:08 john
* Fixed bug with cheats getting enabled when you type
* the whole alphabet.
*
* Revision 2.9 1995/05/26 16:16:18 john
* Split SATURN into define's for requiring cd, using cd, etc.
* Also started adding all the Rockwell stuff.
*
* Revision 2.8 1995/04/06 15:12:27 john
* Fixed bug with insane not working.
*
* Revision 2.7 1995/03/30 16:36:44 mike
* text localization.
*
* Revision 2.6 1995/03/28 11:22:24 john
* Added cheats to save file. Changed lunacy text.
*
* Revision 2.5 1995/03/27 16:45:07 john
* Fixed some cheat bugs. Added astral cheat.
*
* Revision 2.4 1995/03/24 15:29:17 mike
* add new cheats.
*
* Revision 2.3 1995/03/21 14:39:45 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.2 1995/03/14 18:24:39 john
* Force Destination Saturn to use CD-ROM drive.
*
* Revision 2.1 1995/03/06 16:47:14 mike
* destination saturn
*
* Revision 2.0 1995/02/27 11:30:01 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.295 1995/02/22 13:23:04 allender
* remove anonymous unions from object structure
*
* Revision 1.294 1995/02/13 11:00:43 rob
* Make brain guys high enough to get an open slot.
*
* Revision 1.293 1995/02/13 10:31:55 mike
* Make brains understand they can't open locked doors.
*
* Revision 1.292 1995/02/13 10:18:01 rob
* Reduced brain guy's level of awareness to keep him from hogging slots.
*
* Revision 1.291 1995/02/11 12:27:12 mike
* fix path-to-exit cheat.
*
* Revision 1.290 1995/02/11 01:56:30 mike
* robots don't fire cheat.
*
* Revision 1.289 1995/02/10 17:15:09 rob
* Fixed some stuff with 64 awareness stuff.
*
* Revision 1.288 1995/02/10 16:31:32 mike
* oops.
*
* Revision 1.287 1995/02/10 16:24:45 mike
* fix the network follow path fix.
*
* Revision 1.286 1995/02/10 16:11:40 mike
* in serial or modem games, follow path guys don't move if far away and
* can't see player.
*
* Revision 1.285 1995/02/09 13:11:35 mike
* comment out a bunch of mprintfs.
* add toaster (drops prox bombs, runs away) to boss gate list.
*
* Revision 1.284 1995/02/08 22:44:53 rob
* Lowerd anger level for follow path of any sort.
*
* Revision 1.283 1995/02/08 22:30:43 mike
* lower awareness on station guys if they are returning home (multiplayer).
*
* Revision 1.282 1995/02/08 17:01:06 rob
* Fixed problem with toasters dropping of proximity bombs.
*
* Revision 1.281 1995/02/08 11:49:35 rob
* Reduce Green-guy attack awareness level so we don't let him attack us too.
*
* Revision 1.280 1995/02/08 11:37:52 mike
* Check for failures in call to obj_create.
*
* Revision 1.279 1995/02/07 20:38:46 mike
* fix toasters in multiplayer
*
*
* Revision 1.278 1995/02/07 16:51:07 mike
* fix sound time play bug.
*
* Revision 1.277 1995/02/06 22:33:04 mike
* make robots follow path better in cooperative/roboarchy.
*
* Revision 1.276 1995/02/06 18:15:42 rob
* Added forced sends for evasion movemnet.
*
* Revision 1.275 1995/02/06 16:41:22 rob
* Change some positioning calls.
*
* Revision 1.274 1995/02/06 11:40:33 mike
* replace some lint-related hacks with clean, proper code.
*
* Revision 1.273 1995/02/04 17:28:19 mike
* make station guys return better.
*
* Revision 1.272 1995/02/03 17:40:55 mike
* fix problem with robots falling asleep if you sit in game overnight, not in pause...bah.
*
* Revision 1.271 1995/02/02 21:11:25 rob
* Tweaking stuff for multiplayer ai.
*
* Revision 1.270 1995/02/02 17:32:06 john
* Added Hack for Assert that Mike put in after using Lint to find
* uninitialized variables.
*
* Revision 1.269 1995/02/02 16:46:31 mike
* fix boss gating.
*
* Revision 1.268 1995/02/02 16:27:29 mike
* make boss not put out infinite robots.
*
* Revision 1.267 1995/02/01 21:10:02 mike
* lint found bug! player_visibility not initialized!
*
* Revision 1.266 1995/02/01 20:51:27 john
* Lintized
*
* Revision 1.265 1995/02/01 17:14:05 mike
* fix robot sounds.
*
* Revision 1.264 1995/01/31 16:16:40 mike
* Comment out "Darn you, John" Int3().
*
* Revision 1.263 1995/01/30 20:55:04 mike
* fix nonsense in robot firing when a player is cloaked.
*
* Revision 1.262 1995/01/30 17:15:10 rob
* Fixed problems with bigboss eclip messages.
* Tweaked robot position sending for modem purposes.
*
* Revision 1.261 1995/01/30 15:30:31 rob
* Prevent non-master players from gating in robots.
*
* Revision 1.260 1995/01/30 13:30:55 mike
* new cases for firing at other players were bogus, could send position
* without permission.
*
* Revision 1.259 1995/01/30 13:01:17 mike
* Make robots fire at player other than one they are controlled by sometimes.
*
* Revision 1.258 1995/01/29 16:09:17 rob
* Trying to get robots to shoot at non-controlling players.
*
* Revision 1.257 1995/01/29 13:47:05 mike
* Make boss have more fireballs on death, have until end (though silent at end).
* Fix bug which was preventing him from teleporting until hit, so he'd always
* be in the same place when the player enters the room.
*
* Revision 1.256 1995/01/28 17:40:18 mike
* make boss teleport & gate before you see him.
*
* Revision 1.255 1995/01/27 17:02:08 mike
* move code around, was sending one frame (or worse!) old robot information.
*
* Revision 1.254 1995/01/26 17:02:43 mike
* make fusion cannon have more chrome, make fusion, mega rock you!
*
* Revision 1.253 1995/01/26 15:11:17 rob
* Shutup! I fixed it!
*
* Revision 1.252 1995/01/26 15:08:55 rob
* Changed robot gating to accomodate multiplayer.
*
* Revision 1.251 1995/01/26 14:49:04 rob
* Increase awareness level for firing to 94.
*
* Revision 1.250 1995/01/26 12:41:20 mike
* fix bogus multiplayer code, would send permission without getting permission.
*
* Revision 1.249 1995/01/26 12:23:23 rob
* Removed defines that were moved to ai.h
*
* Revision 1.248 1995/01/25 23:38:48 mike
* modify list of robots gated in by super boss.
*
* Revision 1.247 1995/01/25 21:21:13 rob
* Trying to let robots fire at a player even if they're not in control.
*
* Revision 1.246 1995/01/25 13:50:37 mike
* Robots make angry sounds.
*
* Revision 1.245 1995/01/25 10:53:47 mike
* better handling of robots which poke out of mine and try to recover.
*
* Revision 1.244 1995/01/24 22:03:02 mike
* Tricky code to move a robot to a legal position if he is poking out of
* the mine, even if it means moving him to another segment.
*
* Revision 1.243 1995/01/24 20:12:06 rob
* Changed robot fire awareness level from 74 to 94.
*
* Revision 1.242 1995/01/24 13:22:32 mike
* make robots accelerate faster, and Difficulty_level dependent.
*
* Revision 1.241 1995/01/24 12:09:39 mike
* make robots animate in multiplayer.
*
* Revision 1.240 1995/01/21 21:21:10 mike
* Make boss only gate robots into specified segments.
*
* Revision 1.239 1995/01/20 20:21:26 mike
* prevent unnecessary boss cloaking.
------------------------------------------------------------------------
main/ai.h:
* Revision 1.3 1995/10/15 16:28:07 allender
* added flag to player_is_visible function
*
* Revision 1.2 1995/10/10 11:48:32 allender
* PC ai header
*
* Revision 1.1 1995/05/16 15:54:00 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:33:07 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.57 1995/02/04 17:28:31 mike
* make station guys return better.
*
* Revision 1.56 1995/02/04 10:03:23 mike
* Fly to exit cheat.
*
* Revision 1.55 1995/02/01 19:23:52 rob
* Externed a boss var.
*
* Revision 1.54 1995/01/30 13:00:58 mike
* Make robots fire at player other than one they are controlled by sometimes.
*
* Revision 1.53 1995/01/26 15:09:16 rob
* Changed robot gating to accomodate multiplayer.
*
* Revision 1.52 1995/01/26 12:23:12 rob
* Added new externs needed for multiplayer.
*
* Revision 1.51 1995/01/21 21:22:14 mike
* Kill prototype of init_boss_segments, which didn't need to be public
* and had changed.
*
* Revision 1.50 1995/01/16 19:24:29 mike
* Publicize BOSS_GATE_MATCEN_NUM and Boss_been_hit.
*
* Revision 1.49 1995/01/02 16:17:35 mike
* prototype some super boss function for gameseq.
*
* Revision 1.48 1994/12/19 17:08:06 mike
* deal with new ai_multiplayer_awareness which returns a value saying whether this object can be moved by this player.
*
* Revision 1.47 1994/12/12 17:18:04 mike
* make boss cloak/teleport when get hit, make quad laser 3/4 as powerful.
*
* Revision 1.46 1994/12/08 15:46:16 mike
* better robot behavior.
*
* Revision 1.45 1994/11/27 23:16:08 matt
* Made debug code go away when debugging turned off
*
* Revision 1.44 1994/11/16 23:38:41 mike
* new improved boss teleportation behavior.
*
* Revision 1.43 1994/11/10 17:45:11 mike
* debugging.
*
* Revision 1.42 1994/11/07 10:37:42 mike
* hooks for rob's network code.
*
* Revision 1.41 1994/11/06 15:10:50 mike
* prototype a debug function for dumping ai info.
*
* Revision 1.40 1994/11/02 17:57:30 rob
* Added extern of Believe_player_pos needed to get control centers
* locating people.
*
* Revision 1.39 1994/10/28 19:43:39 mike
* Prototype Boss_cloak_start_time, Boss_cloak_end_time.
*
* Revision 1.38 1994/10/22 14:14:42 mike
* Prototype ai_reset_all_paths.
*
* Revision 1.37 1994/10/21 20:42:01 mike
* Define MAX_PATH_LENGTH: maximum allowed length of a path.
*
* Revision 1.36 1994/10/20 09:49:18 mike
* Prototype something.
*
*
* Revision 1.35 1994/10/18 15:37:52 mike
* Define ROBOT_BOSS1.
*
* Revision 1.34 1994/10/13 11:12:25 mike
* Prototype some door functions.
*
* Revision 1.33 1994/10/12 21:28:51 mike
* Prototype create_n_segment_path_to_door
* Prototype ai_open_doors_in_segment
* Prototype ai_door_is_openable.
*
* Revision 1.32 1994/10/11 15:59:41 mike
* Prototype Robot_firing_enabled.
*
* Revision 1.31 1994/10/09 22:02:48 mike
* Adapt create_path_points and create_n_segment_path prototypes to use avoid_seg for player evasion.
*
* Revision 1.30 1994/09/18 18:07:44 mike
* Update prototypes for create_path_points and create_path_to_player.
*
* Revision 1.29 1994/09/15 16:34:08 mike
* Prototype do_ai_robot_hit_attack.
*
* Revision 1.28 1994/09/12 19:12:35 mike
* Prototype attempt_to_resume_path.
*
* Revision 1.27 1994/08/25 21:55:32 mike
* Add some prototypes.
*
* Revision 1.26 1994/08/10 19:53:24 mike
* Prototype create_path_to_player and init_robots_for_level.
*
* Revision 1.25 1994/08/04 16:32:58 mike
* prototype create_path_to_player.
*
* Revision 1.24 1994/08/03 15:17:20 mike
* Prototype make_random_vector.
*
* Revision 1.23 1994/07/31 18:10:34 mike
* Update prototype for create_path_points.
*
* Revision 1.22 1994/07/28 12:36:14 matt
* Cleaned up object bumping code
------------------------------------------------------------------------
main/ai2.c:
* Revision 1.1 1995/05/25 12:00:31 mike
* Initial revision
------------------------------------------------------------------------
main/aipath.c:
* Revision 1.5 1995/10/26 14:12:03 allender
* prototype functions for mcc compiler
*
* Revision 1.4 1995/10/25 09:38:22 allender
* prototype some functions causing mcc grief
*
* Revision 1.3 1995/10/10 11:48:43 allender
* PC ai code
*
* Revision 2.0 1995/02/27 11:30:48 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.101 1995/02/22 13:42:44 allender
* remove anonymous unions for object structure
*
* Revision 1.100 1995/02/10 16:20:04 mike
* fix bogosity in create_path_points, assumed all objects were robots.
*
* Revision 1.99 1995/02/07 21:09:30 mike
* make run_from guys have diff level based speed.
*
* Revision 1.98 1995/02/04 17:28:29 mike
* make station guys return better.
*
* Revision 1.97 1995/02/04 10:28:39 mike
* fix compile error!
*
* Revision 1.96 1995/02/04 10:03:37 mike
* Fly to exit cheat.
*
* Revision 1.95 1995/02/01 21:10:36 mike
* Array name was dereferenced. Not a bug, but unclean.
*
* Revision 1.94 1995/02/01 17:14:12 mike
* comment out some common mprintfs which didn't matter.
*
* Revision 1.93 1995/01/30 13:01:23 mike
* Make robots fire at player other than one they are controlled by sometimes.
*
* Revision 1.92 1995/01/29 22:29:32 mike
* add more debug info for guys that get lost.
*
* Revision 1.91 1995/01/20 16:56:05 mike
* station stuff.
*
* Revision 1.90 1995/01/18 10:59:45 mike
* comment out some mprintfs.
*
* Revision 1.89 1995/01/17 16:58:34 mike
* make path following work for multiplayer.
*
* Revision 1.88 1995/01/17 14:21:44 mike
* make run_from guys run better.
*
* Revision 1.87 1995/01/14 17:09:04 mike
* playing with crazy josh, he's kinda slow and dumb now.
*
* Revision 1.86 1995/01/13 18:52:28 mike
* comment out int3.
*
* Revision 1.85 1995/01/05 09:42:11 mike
* compile out code based on SHAREWARE.
*
* Revision 1.84 1995/01/02 12:38:32 mike
* make crazy josh turn faster, therefore evade player better.
*
* Revision 1.83 1994/12/27 15:59:40 mike
* tweak ai_multiplayer_awareness constants.
*
* Revision 1.82 1994/12/19 17:07:10 mike
* deal with new ai_multiplayer_awareness which returns a value saying whether this object can be moved by this player.
*
* Revision 1.81 1994/12/15 13:04:30 mike
* Replace Players[Player_num].time_total references with GameTime.
*
* Revision 1.80 1994/12/09 16:13:23 mike
* remove debug code.
*
* Revision 1.79 1994/12/07 00:36:54 mike
* make robots get out of matcens better and be aware of player.
*
* Revision 1.78 1994/11/30 00:59:05 mike
* optimizations.
*
* Revision 1.77 1994/11/27 23:13:39 matt
* Made changes for new mprintf calling convention
*
* Revision 1.76 1994/11/23 21:59:34 mike
* comment out some mprintfs.
*
* Revision 1.75 1994/11/21 16:07:14 mike
* flip PARALLAX flag, prevent annoying debug information.
*
* Revision 1.74 1994/11/19 15:13:28 mike
* remove unused code and data.
*
* Revision 1.73 1994/11/17 14:53:15 mike
* segment validation functions moved from editor to main.
*
* Revision 1.72 1994/11/16 23:38:42 mike
* new improved boss teleportation behavior.
*
* Revision 1.71 1994/11/13 17:18:30 mike
* debug code, then comment it out.
*
* Revision 1.70 1994/11/11 16:41:43 mike
* flip the PARALLAX flag.
*
* Revision 1.69 1994/11/11 16:33:45 mike
* twiddle the PARALLAX flag.
*
*
* Revision 1.68 1994/11/10 21:32:29 mike
* debug code.
*
* Revision 1.67 1994/11/10 20:15:07 mike
* fix stupid bug: uninitialized pointer.
*
* Revision 1.66 1994/11/10 17:45:15 mike
* debugging.
*
* Revision 1.65 1994/11/10 17:28:10 mike
* debugging.
------------------------------------------------------------------------
main/aistruct.h:
* Revision 1.2 1995/10/10 11:49:04 allender
* PC ai code
*
* Revision 1.1 1995/05/16 15:54:08 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:30:19 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.34 1995/01/25 13:50:46 mike
* Robots make angry sounds.
*
* Revision 1.33 1994/12/29 12:44:56 rob
* Added new coop robot flag.
*
* Revision 1.32 1994/12/20 20:41:54 rob
* Added new ai flag for multiplayer robots.
*
* Revision 1.31 1994/12/19 16:37:39 rob
* Added a new flag for remote controlled objects.
*
* Revision 1.30 1994/12/07 00:36:07 mike
* fix phys_apply_rot for robots -- ai was bashing effect in next frame.
*
* Revision 1.29 1994/12/02 22:06:28 mike
* add fields to allow robots to make awareness sounds every so often, not every damn blasted frame
*
* Revision 1.28 1994/11/04 17:18:35 yuan
* Increased MAX_SEG_POINTS to 2500.
*
* Revision 1.27 1994/10/17 21:19:22 mike
* robot cloaking.
*
* Revision 1.26 1994/10/12 21:28:38 mike
* Add new ai mode: AIM_OPEN_DOOR.
* Add GOALSIDE to aip.
*
* Revision 1.25 1994/09/25 23:41:08 matt
* Changed the object load & save code to read/write the structure fields one
* at a time (rather than the whole structure at once). This mean that the
* object structure can be changed without breaking the load/save functions.
* As a result of this change, the local_object data can be and has been
* incorporated into the object array. Also, timeleft is now a property
* of all objects, and the object structure has been otherwise cleaned up.
*
* Revision 1.24 1994/09/21 12:28:11 mike
* Change AI behavior for when player cloaked
*
* Revision 1.23 1994/09/19 21:43:00 mike
* Add follow_path_start_seg and follow_path_end_seg to aistruct.h.
*
* Revision 1.22 1994/09/18 18:06:14 mike
* Add Last_uncloaked_time and Last_uncloaked_position variables.
*
* Revision 1.21 1994/09/15 16:31:38 mike
* Define GREEN_GUY
* Add previous_visibility to ai_local struct.
*
* Revision 1.20 1994/09/12 19:12:45 mike
* Change some bytes to ints in ai_local so I could set watchpoints.
*
* Revision 1.19 1994/08/25 21:53:31 mike
* Add behavior, taking place of what used to be mode.
*
* Revision 1.18 1994/08/23 16:38:09 mike
* rapidfire_count in ai_local.
*
* Revision 1.17 1994/08/19 17:38:23 mike
* *** empty log message ***
*
* Revision 1.16 1994/08/17 22:18:58 mike
* add time_since_processed to ai_local.
*
* Revision 1.15 1994/08/10 19:52:25 mike
* Add Overall_agitation.
*
* Revision 1.14 1994/08/04 16:32:32 mike
* Add time_player_seen.
*
* Revision 1.13 1994/07/28 16:58:11 mike
* Move constants from ai.c
*
* Revision 1.12 1994/07/19 15:26:24 mike
* New ai_static and ai_local structures.
*
* Revision 1.11 1994/07/15 15:17:19 matt
* Changes MAX_AI_FLAGS for better alignment
------------------------------------------------------------------------
main/automap.c:
* Revision 1.8 1995/10/31 10:24:54 allender
* shareware stuff
*
* Revision 1.7 1995/10/21 16:18:20 allender
* blit pcx background directly to Page canvas instead of creating
* seperate bitmap for it -- hope to solve VM bug on some macs
*
* Revision 1.6 1995/10/20 00:49:16 allender
* added redbook check during automap
*
* Revision 1.5 1995/09/13 08:44:07 allender
* Dave Denhart's changes to speed up the automap
*
* Revision 1.4 1995/08/18 15:46:00 allender
* put text all on upper bar -- and fixed background since
* changing xparency color
*
* Revision 1.3 1995/08/03 15:15:18 allender
* fixed edge hashing problem causing automap to crash
*
* Revision 1.2 1995/07/12 12:49:27 allender
* works in 640x480 mode
*
* Revision 1.1 1995/05/16 15:22:59 allender
* Initial revision
*
* Revision 2.2 1995/03/21 14:41:26 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.1 1995/03/20 18:16:06 john
* Added code to not store the normals in the segment structure.
*
* Revision 2.0 1995/02/27 11:32:55 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.117 1995/02/22 14:11:31 allender
* remove anonymous unions from object structure
*
* Revision 1.116 1995/02/22 13:24:39 john
* Removed the vecmat anonymous unions.
*
* Revision 1.115 1995/02/09 14:57:02 john
* Reduced mem usage. Made automap slide farther.
*
* Revision 1.114 1995/02/07 20:40:44 rob
* Allow for anarchy automap of player pos by option.
*
* Revision 1.113 1995/02/07 15:45:33 john
* Made automap memory be static.
*
* Revision 1.112 1995/02/02 12:24:00 adam
* played with automap labels
*
* Revision 1.111 1995/02/02 01:52:52 john
* Made the automap use small font.
*
* Revision 1.110 1995/02/02 01:34:34 john
* Made Reset in automap not change segmentlimit.
*
* Revision 1.109 1995/02/02 01:23:11 john
* Finalized the new automap partial viewer.
*
* Revision 1.108 1995/02/02 00:49:45 mike
* new automap segment-depth functionality.
*
* Revision 1.107 1995/02/02 00:23:04 john
* Half of the code for new connected distance stuff in automap.
*
* Revision 1.106 1995/02/01 22:54:00 john
* Made colored doors not fade in automap. Made default
* viewing area be maxxed.
*
* Revision 1.105 1995/02/01 13:16:13 john
* Added great grates.
*
* Revision 1.104 1995/01/31 12:47:06 john
* Made Alt+F only work with cheats enabled.
*
* Revision 1.103 1995/01/31 12:41:23 john
* Working with new controls.
*
* Revision 1.102 1995/01/31 12:04:19 john
* Version 2 of new key control.
*
* Revision 1.101 1995/01/31 11:32:00 john
* First version of new automap system.
*
* Revision 1.100 1995/01/28 16:55:48 john
* Made keys draw in automap in the segments that you have
* visited.
*
* Revision 1.99 1995/01/28 14:44:51 john
* Made hostage doors show up on automap.
*
* Revision 1.98 1995/01/22 17:03:49 rob
* Fixed problem drawing playerships in automap coop/team mode
*
* Revision 1.97 1995/01/21 17:23:11 john
* Limited S movement in map. Made map bitmap load from disk
* and then freed it.
*
* Revision 1.96 1995/01/19 18:55:38 john
* Don't draw players in automap if not obj_player.
*
* Revision 1.95 1995/01/19 18:48:13 john
* Made player colors better in automap.
*
* Revision 1.94 1995/01/19 17:34:52 rob
* Added team colorizations in automap.
*
* Revision 1.93 1995/01/19 17:15:36 rob
* Trying to add player ships into map for coop and team mode.
*
* Revision 1.92 1995/01/19 17:11:09 john
* Added code for Rob to draw Multiplayer ships in automap.
*
* Revision 1.91 1995/01/12 13:35:20 john
* Fixed bug with Segment 0 not getting displayed
* in automap if you have EDITOR compiled in.
*
* Revision 1.90 1995/01/08 16:17:14 john
* Added code to draw player's up vector while in automap.
*
* Revision 1.89 1995/01/08 16:09:41 john
* Fixed problems with grate.
*
* Revision 1.88 1994/12/14 22:54:17 john
* Fixed bug that didn't show hostages in automap.
*
* Revision 1.87 1994/12/09 00:41:03 mike
* fix hang in automap print screen
*
* Revision 1.86 1994/12/05 23:37:15 matt
* Took out calls to warning() function
*
* Revision 1.85 1994/12/03 22:35:28 yuan
* Localization 412
*
* Revision 1.84 1994/12/02 15:05:45 matt
* Added new "official" cheats
*
* Revision 1.83 1994/11/30 12:10:49 adam
* added support for PCX titles/brief screens
*
* Revision 1.82 1994/11/27 23:15:12 matt
* Made changes for new mprintf calling convention
*
* Revision 1.81 1994/11/27 15:35:52 matt
* Enable screen shots even when debugging is turned off
*
* Revision 1.80 1994/11/26 22:51:43 matt
* Removed editor-only fields from segment structure when editor is compiled
* out, and padded segment structure to even multiple of 4 bytes.
*
* Revision 1.79 1994/11/26 16:22:48 matt
* Reduced leave_time
*
* Revision 1.78 1994/11/23 22:00:10 mike
* show level number.
*
* Revision 1.77 1994/11/21 11:40:33 rob
* Tweaked the game-loop for automap in multiplayer games.
*
* Revision 1.76 1994/11/18 16:42:06 adam
* removed a font
*
* Revision 1.75 1994/11/17 13:06:48 adam
* changed font
*
* Revision 1.74 1994/11/14 20:47:17 john
* Attempted to strip out all the code in the game
* directory that uses any ui code.
------------------------------------------------------------------------
main/automap.h:
* Revision 1.2 1995/07/12 12:48:33 allender
* moved edge_list structure into here for mallocing in mglobal
*
* Revision 1.1 1995/05/16 15:54:31 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:29:35 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.5 1994/12/09 00:41:21 mike
* fix hang in automap print screen
*
* Revision 1.4 1994/07/14 11:25:29 john
* Made control centers destroy better; made automap use Tab key.
*
* Revision 1.3 1994/07/12 15:45:51 john
* Made paritial map.
*
* Revision 1.2 1994/07/07 18:35:05 john
* First version of automap
*
* Revision 1.1 1994/07/07 15:12:13 john
* Initial revision
------------------------------------------------------------------------
main/bm.c:
* Revision 1.1 1995/05/16 15:23:08 allender
* Initial revision
*
* Revision 2.3 1995/03/14 16:22:04 john
* Added cdrom alternate directory stuff.
*
* Revision 2.2 1995/03/07 16:51:48 john
* Fixed robots not moving without edtiro bug.
*
* Revision 2.1 1995/03/06 15:23:06 john
* New screen techniques.
*
* Revision 2.0 1995/02/27 11:27:05 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
------------------------------------------------------------------------
main/bm.h:
* Revision 1.1 1995/05/16 15:54:39 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:32:59 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.60 1994/12/06 13:24:58 matt
* Made exit model come out of bitmaps.tbl
*
* Revision 1.59 1994/11/10 14:02:48 matt
* Hacked in support for player ships with different textures
*
* Revision 1.58 1994/10/27 13:32:17 john
* Made TmapList only be in if editor
*
* Revision 1.57 1994/10/11 12:25:20 matt
* Added "hot rocks" that create badass explosion when hit by weapons
*
* Revision 1.56 1994/09/29 12:38:13 matt
* Took out include of digi.h, saving hours of unneeded compiles
*
* Revision 1.55 1994/09/25 00:39:51 matt
* Added the ability to make eclips (monitors, fans) which can be blown up
*
* Revision 1.54 1994/09/17 01:40:59 matt
* Added status bar/sizable window mode, and in the process revamped the
* whole cockpit mode system.
*
* Revision 1.53 1994/09/08 16:20:48 matt
* Gave textures the ability to cause damage when scraped
*
* Revision 1.52 1994/08/30 22:23:43 matt
* Added cabability for player ship to have alternate model to use to
* create debris.
*
* Revision 1.51 1994/08/26 15:35:57 matt
* Made eclips usable on more than one object at a time
*
* Revision 1.50 1994/08/23 16:59:51 john
* Added 3 cockpuits
*
* Revision 1.49 1994/08/19 20:09:43 matt
* Added end-of-level cut scene with external scene
*
* Revision 1.48 1994/08/12 22:20:45 matt
* Generalized polygon objects (such as control center)
*
* Revision 1.47 1994/08/09 16:04:21 john
* Added network players to editor.
*
* Revision 1.46 1994/08/09 09:01:31 john
* Increase MAX_TEXTURES
*
* Revision 1.45 1994/07/13 00:14:57 matt
* Moved all (or nearly all) of the values that affect player movement to
* bitmaps.tbl
*
* Revision 1.44 1994/06/20 21:33:15 matt
* Made bm.h not include sounds.h, to reduce dependencies
*
* Revision 1.43 1994/06/15 11:55:58 matt
* Added 3d model for player
*
* Revision 1.42 1994/06/13 16:09:11 adam
* increased max textures to 600
*
* Revision 1.41 1994/06/06 15:38:58 john
* Made fullscreen view be just another cockpit, but the "hole"
* in the cockpit is just bigger.
*
* Revision 1.40 1994/05/26 21:08:59 matt
* Moved robot stuff out of polygon model and into robot_info struct
* Made new file, robot.c, to deal with robots
*
* Revision 1.39 1994/05/18 11:00:05 mike
* Add robot_info stuff.
*
* Revision 1.38 1994/05/17 14:44:56 mike
* Get object type and id from ObjType and ObjId.
*
* Revision 1.37 1994/05/17 12:04:45 mike
* Deal with little known fact that polygon object != robot.
*
* Revision 1.36 1994/05/16 16:17:35 john
* Bunch of stuff on my Inferno Task list May16-23
*
* Revision 1.35 1994/04/27 11:43:42 john
* First version of sound! Yay!
*
* Revision 1.34 1994/04/22 10:53:48 john
* Increased MAX_TEXTURES to 500.
*
* Revision 1.33 1994/04/01 11:15:05 yuan
* Added multiple bitmap functionality to all objects...
* (hostages, powerups, lasers, etc.)
* Hostages and powerups are implemented in the object system,
* just need to finish function call to "affect" player.
*
* Revision 1.32 1994/03/25 17:30:37 yuan
* Checking in hostage stuff.
*
* Revision 1.31 1994/03/17 18:07:28 yuan
* Removed switch code... Now we just have Walls, Triggers, and Links...
*
* Revision 1.30 1994/03/15 17:03:51 yuan
* Added Robot/object bitmap capability
*
* Revision 1.29 1994/03/15 16:32:58 yuan
* Cleaned up bm-loading code.
* (Fixed structures too)
*
* Revision 1.28 1994/03/04 17:09:13 yuan
* New door stuff.
*
* Revision 1.27 1994/01/31 14:50:09 yuan
* Added Robotex
*
* Revision 1.26 1994/01/31 12:27:14 yuan
* Added demo stuff (menu, etc.)
*
* Revision 1.25 1994/01/25 17:11:43 john
* New texmaped lasers.
*
* Revision 1.24 1994/01/24 11:48:06 yuan
* Lighting stuff
*
* Revision 1.23 1994/01/22 13:40:15 yuan
* Modified the bmd_bitmap structure a bit.
* (Saves some memory, and added reflection)
*
* Revision 1.22 1994/01/11 10:58:38 yuan
* Added effects system
*
* Revision 1.21 1994/01/06 17:13:12 john
* Added Video clip functionality
*
* Revision 1.20 1993/12/21 20:00:15 john
* moved selector stuff to grs_bitmap
*
* Revision 1.19 1993/12/21 19:33:58 john
* Added selector to bmd_bitmap.
*
* Revision 1.18 1993/12/07 12:28:48 john
* moved bmd_palette to gr_palette
*
* Revision 1.17 1993/12/06 18:40:37 matt
* Changed object loading & handling
*
* Revision 1.16 1993/12/05 23:05:03 matt
* Added include of gr.h
*
* Revision 1.15 1993/12/03 17:38:04 yuan
* Ooops. meant to say:
* Moved MAX variables to bm.c, Arrays left open.
*
* Revision 1.14 1993/12/03 17:37:26 yuan
* Added Asserts.
*
* Revision 1.13 1993/12/02 17:22:54 yuan
* New global var. Num_object_types
*
* Revision 1.12 1993/12/02 16:34:39 yuan
* Added fireball hack stuff.
*
* Revision 1.11 1993/12/02 15:45:14 yuan
* Added a buncha constants, variables, and function prototypes
* for the new bitmaps.tbl format.
*
* Revision 1.10 1993/12/01 11:25:11 yuan
* Changed MALLOC'd buffers for filename and type in
* the bmd_bitmap structure into arrays... Saves time
* at load up.
*
* Revision 1.9 1993/12/01 00:28:09 yuan
* New bitmap system structure.
*
* Revision 1.8 1993/11/03 11:34:08 john
* made it use bitmaps.tbl
*
* Revision 1.7 1993/10/26 18:11:03 john
* made all palette data be statically allocated
*
* Revision 1.6 1993/10/19 12:17:51 john
* *** empty log message ***
*
* Revision 1.5 1993/10/16 20:02:41 matt
* Changed name of backdrop bitmap file
*
* Revision 1.4 1993/10/12 15:08:52 matt
* Added a bunch of new textures
*
* Revision 1.3 1993/10/12 12:30:41 john
* *** empty log message ***
*
* Revision 1.2 1993/10/12 11:27:58 john
* added more bitmaps
*
* Revision 1.1 1993/09/23 13:09:10 john
* Initial revision
------------------------------------------------------------------------
main/bmread.c:
* Revision 2.4 1995/03/28 18:05:29 john
* Fixed it so you don't have to delete pig after changing bitmaps.tbl
*
* Revision 2.3 1995/03/07 16:52:03 john
* Fixed robots not moving without edtiro bug.
*
* Revision 2.2 1995/03/06 16:10:20 mike
* Fix compile errors if building without editor.
*
* Revision 2.1 1995/03/02 14:55:40 john
* Fixed bug with EDITOR never defined.
*
* Revision 2.0 1995/02/27 11:33:10 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.1 1995/02/25 14:02:36 john
* Initial revision
------------------------------------------------------------------------
main/ctrlcen.c:
* Revision 1.2 1995/10/17 13:12:13 allender
* added param to ai call
*
* Revision 1.1 1995/05/16 15:23:27 allender
* Initial revision
*
* Revision 2.1 1995/03/21 14:40:25 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.0 1995/02/27 11:31:25 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.22 1995/02/11 01:56:14 mike
* robots don't fire cheat.
*
* Revision 1.21 1995/02/05 13:39:39 mike
* fix stupid bug in control center firing timing.
*
* Revision 1.20 1995/02/03 17:41:21 mike
* fix control cen next fire time in multiplayer.
*
* Revision 1.19 1995/01/29 13:46:41 mike
* adapt to new create_small_fireball_on_object prototype.
*
* Revision 1.18 1995/01/18 16:12:13 mike
* Make control center aware of a cloaked playerr when he fires.
*
* Revision 1.17 1995/01/12 12:53:44 rob
* Trying to fix a bug with having cntrlcen in robotarchy games.
*
* Revision 1.16 1994/12/11 12:37:22 mike
* make control center smarter about firing at cloaked player, don't fire through self, though
* it still looks that way due to prioritization problems.
*
* Revision 1.15 1994/12/01 11:34:33 mike
* fix control center shield strength in multiplayer team games.
*
* Revision 1.14 1994/11/30 15:44:29 mike
* make cntrlcen harder at higher levels.
*
* Revision 1.13 1994/11/29 22:26:23 yuan
* Fixed boss bug.
*
* Revision 1.12 1994/11/27 23:12:31 matt
* Made changes for new mprintf calling convention
*
* Revision 1.11 1994/11/23 17:29:38 mike
* deal with peculiarities going between net and regular game on boss level.
*
* Revision 1.10 1994/11/18 18:27:15 rob
* Fixed some bugs with the last version.
*
* Revision 1.9 1994/11/18 17:13:59 mike
* special case handling for level 8.
*
* Revision 1.8 1994/11/15 12:45:28 mike
* don't let cntrlcen know where a cloaked player is.
*
* Revision 1.7 1994/11/08 12:18:37 mike
* small explosions on control center.
*
* Revision 1.6 1994/11/02 17:59:18 rob
* Changed control centers so they can find people in network games.
* Side effect of this is that control centers can find cloaked players.
* (see in-code comments for explanation).
* Also added network hooks so control center shots 'sync up'.
*
* Revision 1.5 1994/10/22 14:13:21 mike
* Make control center stop firing shortly after player dies.
* Fix bug: If play from editor and die, tries to initialize non-control center object.
*
* Revision 1.4 1994/10/20 15:17:30 mike
* Hack for control center inside boss robot.
*
* Revision 1.3 1994/10/20 09:47:46 mike
* lots stuff.
*
* Revision 1.2 1994/10/17 21:35:09 matt
* Added support for new Control Center/Main Reactor
*
* Revision 1.1 1994/10/17 20:24:01 matt
* Initial revision
------------------------------------------------------------------------
main/ctrlcen.h:
* Revision 2.0 1995/02/27 11:30:40 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.7 1995/02/01 16:34:14 john
* Linted.
*
* Revision 1.6 1995/01/03 20:19:14 john
* Pretty good working version of game save.
*
* Revision 1.5 1994/11/08 12:18:28 mike
* small explosions on control center.
*
* Revision 1.4 1994/11/02 18:00:12 rob
* Added extern for Gun_pos array for network hooks.
*
* Revision 1.3 1994/10/20 09:47:37 mike
* *** empty log message ***
*
* Revision 1.2 1994/10/17 21:35:10 matt
* Added support for new Control Center/Main Reactor
*
* Revision 1.1 1994/10/17 20:24:28 matt
* Initial revision
------------------------------------------------------------------------
main/collide.c:
* Revision 1.3 1995/11/08 17:15:21 allender
* make collide_player_and_weapon play player_hit_sound if
* shareware and not my playernum
*
* Revision 1.2 1995/10/31 10:24:37 allender
* shareware stuff
*
* Revision 1.1 1995/05/16 15:23:34 allender
* Initial revision
*
* Revision 2.5 1995/07/26 12:07:46 john
* Made code that pages in weapon_info->robot_hit_vclip not
* page in unless it is a badass weapon. Took out old functionallity
* of using this if no robot exp1_vclip, since all robots have these.
*
* Revision 2.4 1995/03/30 16:36:09 mike
* text localization.
*
* Revision 2.3 1995/03/24 15:11:13 john
* Added ugly robot cheat.
*
* Revision 2.2 1995/03/21 14:41:04 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.1 1995/03/20 18:16:02 john
* Added code to not store the normals in the segment structure.
*
* Revision 2.0 1995/02/27 11:32:20 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.289 1995/02/22 13:56:06 allender
* remove anonymous unions from object structure
*
* Revision 1.288 1995/02/11 15:52:45 rob
* Included text.h.
*
* Revision 1.287 1995/02/11 15:04:11 rob
* Localized a string.
*
* Revision 1.286 1995/02/11 14:25:41 rob
* Added invul. controlcen option.
*
* Revision 1.285 1995/02/06 15:53:00 mike
* create awareness event for player:wall collision.
*
* Revision 1.284 1995/02/05 23:18:17 matt
* Deal with objects (such as fusion blobs) that get created already
* poking through a wall
*
* Revision 1.283 1995/02/01 17:51:33 mike
* fusion bolt can now toast multiple proximity bombs.
*
* Revision 1.282 1995/02/01 17:29:20 john
* Lintized
*
* Revision 1.281 1995/02/01 15:04:00 rob
* Changed sound of weapons hitting invulnerable players.
*
* Revision 1.280 1995/01/31 16:16:35 mike
* Separate smart blobs for robot and player.
*
* Revision 1.279 1995/01/29 15:57:10 rob
* Fixed another bug with robot_request_change calls.
*
* Revision 1.278 1995/01/28 18:15:06 rob
* Fixed a bug in multi_request_robot_change.
*
* Revision 1.277 1995/01/27 15:15:44 rob
* Fixing problems with controlcen damage.
*
* Revision 1.276 1995/01/27 15:13:10 mike
* comment out mprintf.
*
* Revision 1.275 1995/01/26 22:11:51 mike
* Purple chromo-blaster (ie, fusion cannon) spruce up (chromification)
*
* Revision 1.274 1995/01/26 18:57:55 rob
* Changed two uses of digi_play_sample to digi_link_sound_to_pos which
* made more sense.
*
* Revision 1.273 1995/01/25 23:37:58 mike
* make persistent objects not hit player more than once.
* Also, make them hit player before degrading them, else they often did 0 damage.
*
* Revision 1.272 1995/01/25 18:23:54 rob
* Don't let players pick up powerups in exit tunnel.
*
* Revision 1.271 1995/01/25 13:43:18 rob
* Added robot transfer for player collisions.
* Removed mprintf from collide.c on Mike's request.
*
* Revision 1.270 1995/01/25 10:24:01 mike
* Make sizzle and rock happen in lava even if you're invulnerable.
*
* Revision 1.269 1995/01/22 17:05:33 mike
* Call multi_robot_request_change when a robot gets whacked by a player or
* player weapon, if player_num != Player_num
*
* Revision 1.268 1995/01/21 21:20:28 matt
* Fixed stupid bug
*
* Revision 1.267 1995/01/21 18:47:47 rob
* Fixed a really dumb bug with player keys.
*
* Revision 1.266 1995/01/21 17:39:30 matt
* Cleaned up laser/player hit wall confusions
*
* Revision 1.265 1995/01/19 17:44:42 mike
* damage_force removed, that information coming from strength field.
*
* Revision 1.264 1995/01/18 17:12:56 rob
* Fixed control stuff for multiplayer.
*
* Revision 1.263 1995/01/18 16:12:33 mike
* Make control center aware of a cloaked playerr when he fires.
*
* Revision 1.262 1995/01/17 17:48:42 rob
* Added key syncing for coop players.
*
* Revision 1.261 1995/01/16 19:30:28 rob
* Fixed an assert error in fireball.c
*
* Revision 1.260 1995/01/16 19:23:51 mike
* Say Boss_been_hit if he been hit so he gates appropriately.
*
* Revision 1.259 1995/01/16 11:55:16 mike
* make enemies become aware of player if he damages control center.
*
* Revision 1.258 1995/01/15 16:42:00 rob
* Fixed problem with robot bumping damage.
*
* Revision 1.257 1995/01/14 19:16:36 john
* First version of new bitmap paging code.
*
* Revision 1.256 1995/01/03 17:58:37 rob
* Fixed scoring problems.
*
* Revision 1.255 1994/12/29 12:41:11 rob
* Tweaking robot exploding in coop.
*
* Revision 1.254 1994/12/28 10:37:59 rob
* Fixed ifdef of multibot stuff.
*
* Revision 1.253 1994/12/21 19:03:14 rob
* Fixing score accounting for multiplayer robots
*
* Revision 1.252 1994/12/21 17:36:31 rob
* Fix hostage pickup problem in network.
* tweaking robot powerup drops.
*
* Revision 1.251 1994/12/19 20:32:34 rob
* Remove awareness events from player collisions and lasers that are not the console player.
*
* Revision 1.250 1994/12/19 20:01:22 rob
* Added multibot.h include.
*
* Revision 1.249 1994/12/19 16:36:41 rob
* Patches damaging of multiplayer robots.
*
* Revision 1.248 1994/12/14 21:15:18 rob
* play lava hiss across network.
*
* Revision 1.247 1994/12/14 17:09:09 matt
* Fixed problem with no sound when lasers hit closed walls, like grates.
*
* Revision 1.246 1994/12/14 09:51:49 mike
* make any weapon cause proximity bomb detonation.
*
* Revision 1.245 1994/12/13 12:55:25 mike
* change number of proximity bomb powerups which get dropped.
*
* Revision 1.244 1994/12/12 17:17:53 mike
* make boss cloak/teleport when get hit, make quad laser 3/4 as powerful.
*
* Revision 1.243 1994/12/12 12:07:51 rob
* Don't take damage if we're in endlevel sequence.
*
* Revision 1.242 1994/12/11 23:44:52 mike
* less phys_apply_rot() at higher skill levels.
*
* Revision 1.241 1994/12/11 12:37:02 mike
* remove stupid robot spinning code. it was really stupid. (actually, call here, code in ai.c).
*
* Revision 1.240 1994/12/10 16:44:51 matt
* Added debugging code to track down door that turns into rock
*
* Revision 1.239 1994/12/09 14:59:19 matt
* Added system to attach a fireball to another object for rendering purposes,
* so the fireball always renders on top of (after) the object.
*
* Revision 1.238 1994/12/09 09:57:02 mike
* Don't allow robots or their weapons to pass through control center.
*
* Revision 1.237 1994/12/08 15:46:03 mike
* better robot behavior.
*
* Revision 1.236 1994/12/08 12:32:56 mike
* make boss dying more interesting.
*
* Revision 1.235 1994/12/07 22:49:15 mike
* tweak rotation due to collision.
*
* Revision 1.234 1994/12/07 16:44:50 mike
* make bump sound if supposed to, even if not taking damage.
*
* Revision 1.233 1994/12/07 12:55:08 mike
* tweak rotvel applied from collisions.
*
* Revision 1.232 1994/12/05 19:30:48 matt
* Fixed horrible segment over-dereferencing
*
* Revision 1.231 1994/12/05 00:32:15 mike
* do rotvel on badass and bump collisions.
*
* Revision 1.230 1994/12/03 12:49:22 mike
* don't play bonk sound when you collide with a volatile wall (like lava).
*
* Revision 1.229 1994/12/02 16:51:09 mike
* make lava sound only happen at 4 Hz.
*
* Revision 1.228 1994/11/30 23:55:27 rob
* Fixed a bug where a laser hitting a wall was making 2 sounds.
*
* Revision 1.227 1994/11/30 20:11:00 rob
* Fixed # of dropped laser powerups.
*
* Revision 1.226 1994/11/30 19:19:03 rob
* Transmit collission sounds for net games.
*
* Revision 1.225 1994/11/30 16:33:01 mike
* new boss behavior.
*
* Revision 1.224 1994/11/30 15:44:17 mike
* /2 on boss smart children damage.
*
* Revision 1.223 1994/11/30 14:03:03 mike
* hook for claw sounds
*
* Revision 1.222 1994/11/29 20:41:09 matt
* Deleted a bunch of commented-out lines
*
* Revision 1.221 1994/11/27 23:15:08 matt
* Made changes for new mprintf calling convention
*
* Revision 1.220 1994/11/19 16:11:28 rob
* Collision damage with walls or lava is counted as suicides in net games
*
* Revision 1.219 1994/11/19 15:20:41 mike
* rip out unused code and data
*
* Revision 1.218 1994/11/17 18:44:27 rob
* Added OBJ_GHOST to list of valid player types to create eggs.
*
* Revision 1.217 1994/11/17 14:57:59 mike
* moved segment validation functions from editor to main.
*
* Revision 1.216 1994/11/16 23:38:36 mike
* new improved boss teleportation behavior.
*
* Revision 1.215 1994/11/16 12:16:29 mike
* Enable collisions between robots. A hack in fvi.c only does this for robots which lunge to attack (eg, green guy)
*
* Revision 1.214 1994/11/15 16:51:50 mike
* bump player when he hits a volatile wall.
*
* Revision 1.213 1994/11/12 16:38:44 mike
* allow flares to open doors.
*
* Revision 1.212 1994/11/10 13:09:19 matt
* Added support for new run-length-encoded bitmaps
*
* Revision 1.211 1994/11/09 17:05:43 matt
* Fixed problem with volatile walls
*
* Revision 1.210 1994/11/09 12:11:46 mike
* only award points if ConsoleObject killed robot.
*
* Revision 1.209 1994/11/09 11:11:03 yuan
* Made wall volatile if either tmap_num1 or tmap_num2 is a volatile wall.
*
* Revision 1.208 1994/11/08 12:20:15 mike
* moved do_controlcen_destroyed_stuff from here to cntrlcen.c
*
* Revision 1.207 1994/11/02 23:22:08 mike
* Make ` (backquote, KEY_LAPOSTRO) tell what wall was hit by laser.
*
* Revision 1.206 1994/11/02 18:03:00 rob
* Fix control_center_been_hit logic so it only cares about the local player.
* Other players take care of their own control center 'ai'.
*
* Revision 1.205 1994/11/01 19:37:33 rob
* Changed the max # of consussion missiles to 4.
* (cause they're lame and clutter things up)
*
* Revision 1.204 1994/11/01 18:06:35 john
* Tweaked wall banging sound constant.
*
* Revision 1.203 1994/11/01 18:01:40 john
* Made wall bang less obnoxious, but volume based.
*
* Revision 1.202 1994/11/01 17:11:05 rob
* Changed some stuff in drop_player_eggs.
*
* Revision 1.201 1994/11/01 12:18:23 john
* Added sound volume support. Made wall collisions be louder/softer.
*
* Revision 1.200 1994/10/31 13:48:44 rob
* Fixed bug in opening doors over network/modem. Added a new message
* type to multi.c that communicates door openings across the net.
* Changed includes in multi.c and wall.c to accomplish this.
*
* Revision 1.199 1994/10/28 14:42:52 john
* Added sound volumes to all sound calls.
*
* Revision 1.198 1994/10/27 16:58:37 allender
* added demo recording of monitors blowing up
*
* Revision 1.197 1994/10/26 23:20:52 matt
* Tone down flash even more
*
* Revision 1.196 1994/10/26 23:01:50 matt
* Toned down red flash when damaged
*
* Revision 1.195 1994/10/26 15:56:29 yuan
* Tweaked some palette flashes.
*
* Revision 1.194 1994/10/25 11:32:26 matt
* Fixed bugs with vulcan powerups in mutliplayer
*
* Revision 1.193 1994/10/25 10:51:18 matt
* Vulcan cannon powerups now contain ammo count
*
* Revision 1.192 1994/10/24 14:14:05 matt
* Fixed bug in bump_two_objects()
*
* Revision 1.191 1994/10/23 19:17:04 matt
* Fixed bug with "no key" messages
*
* Revision 1.190 1994/10/22 00:08:46 matt
* Fixed up problems with bonus & game sequencing
* Player doesn't get credit for hostages unless he gets them out alive
*
* Revision 1.189 1994/10/21 20:42:34 mike
* Clear number of hostages on board between levels.
*
* Revision 1.188 1994/10/20 15:17:43 mike
* control center in boss handling.
*
* Revision 1.187 1994/10/20 10:09:47 mike
* Only ever drop 1 shield powerup in multiplayer (as an egg).
*
* Revision 1.186 1994/10/20 09:47:11 mike
* Fix bug in dropping vulcan ammo in multiplayer.
* Also control center stuff.
*
* Revision 1.185 1994/10/19 15:14:32 john
* Took % hits out of player structure, made %kills work properly.
*
* Revision 1.184 1994/10/19 11:33:16 john
* Fixed hostage rescued percent.
*
* Revision 1.183 1994/10/19 11:16:49 mike
* Don't allow crazy josh to open locked doors.
* Don't allow weapons to harm parent.
*
* Revision 1.182 1994/10/18 18:37:01 mike
* No more hostage killing. Too much stuff to do to integrate into game.
*
* Revision 1.181 1994/10/18 16:37:35 mike
* Debug function for Yuan: Show seg:side when hit by puny laser if Show_seg_and_side != 0.
*
* Revision 1.180 1994/10/18 10:53:17 mike
* Support attack type as a property of a robot, not of being == GREEN_GUY.
*
* Revision 1.179 1994/10/17 21:18:36 mike
* diminish damage player does to robot due to collision, only took 2-3 hits to kill a josh.
*
* Revision 1.178 1994/10/17 20:30:40 john
* Made player_hostages_rescued or whatever count properly.
*
* Revision 1.177 1994/10/16 12:42:56 mike
* Trap bogus amount of vulcan ammo dropping.
*
* Revision 1.176 1994/10/15 19:06:51 mike
* Drop vulcan ammo if player has it, but no vulcan cannon (when he dies).
*
* Revision 1.175 1994/10/13 15:42:06 mike
* Remove afterburner.
*
* Revision 1.174 1994/10/13 11:12:57 mike
* Apply damage to robots. I hosed it a couple weeks ago when I made the green guy special.
------------------------------------------------------------------------
main/collide.h:
* Revision 1.1 1995/05/16 15:55:09 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:28:59 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.23 1995/01/26 22:11:47 mike
* Purple chromo-blaster (ie, fusion cannon) spruce up (chromification)
*
* Revision 1.22 1994/12/21 19:03:24 rob
* Fixing score accounting for multiplayer robots
*
* Revision 1.21 1994/12/21 11:34:56 mike
* make control center take badass damage.
*
* Revision 1.20 1994/10/29 16:53:16 allender
* added check_effect_blowup for demo recording to record monitor explosions
*
* Revision 1.19 1994/10/09 13:46:48 mike
* Make public collide_player_and_powerup.
*
* Revision 1.18 1994/10/05 14:54:29 rob
* Added serial game support in control center sequence..
*
* Revision 1.17 1994/09/15 16:32:12 mike
* Prototype collide_player_and_nasty_robot.
*
* Revision 1.16 1994/09/11 15:49:04 mike
* Prototype for maybe_detonate_weapon.
*
* Revision 1.15 1994/09/09 14:20:07 matt
* Added prototype for scrape function
*
* Revision 1.14 1994/09/02 14:00:44 matt
* Simplified explode_object() & mutliple-stage explosions
*
* Revision 1.13 1994/08/18 10:47:35 john
* Cleaned up game sequencing and player death stuff
* in preparation for making the player explode into
* pieces when dead.
*
* Revision 1.12 1994/08/17 16:50:08 john
* Added damaging fireballs, missiles.
*
* Revision 1.11 1994/08/03 16:45:31 mike
* Prototype a function.
*
* Revision 1.10 1994/08/03 15:17:41 mike
* make matcen whack on you if it's ready to make a robot.
*
* Revision 1.9 1994/07/22 12:08:03 mike
* Make robot hit vclip and sound weapon-based until robot dies, then robot-based.
*
* Revision 1.8 1994/07/09 17:36:31 mike
* Prototype apply_damage_to_robot.
*
* Revision 1.7 1994/07/09 13:20:36 mike
* Prototype apply_damage_to_player.
*
* Revision 1.6 1994/06/20 23:35:52 john
* Bunch of stuff.
*
* Revision 1.5 1994/06/17 18:04:03 yuan
* Added Immaterialization...
* Fixed Invulnerability to allow being hit.
*
* Revision 1.4 1994/05/13 20:28:02 john
* Version II of John's new object code.
*
* Revision 1.3 1994/05/13 12:20:35 john
* Fixed some potential problems with code using global variables
* that are set in fvi.
*
* Revision 1.2 1994/05/12 23:20:32 john
* Moved all object collision handling into collide.c.
*
* Revision 1.1 1994/05/12 20:39:09 john
* Initial revision
------------------------------------------------------------------------
main/compbit.h:
* Revision 1.1 1995/05/16 15:55:16 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:28:46 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.3 1994/12/05 15:10:28 allender
* changed extern prototype definition
*
* Revision 1.2 1994/10/19 15:43:33 allender
* header file which contains the xor value which is used when encrypting
* bitmaps.tbl
*
* Revision 1.1 1994/10/19 13:22:19 allender
* Initial revision
------------------------------------------------------------------------
main/config.c:
* Revision 1.8 1995/10/27 10:52:20 allender
* call digi_set_master_volume when prefs are read in to
* set the master volume of the mac
*
* Revision 1.7 1995/10/24 17:08:39 allender
* Config_master_volume added for saving sound manager volume
* across games
*
* Revision 1.6 1995/10/20 00:49:31 allender
* use default values when no prefs file
*
* Revision 1.5 1995/09/21 10:06:58 allender
* set digi and midi volume appropriately
*
* Revision 1.4 1995/09/13 08:49:38 allender
* prefs file stuff
*
* Revision 1.3 1995/09/05 08:47:37 allender
* prefs file working
*
* Revision 1.2 1995/05/26 06:54:14 allender
* removed midi and digi references from config file
*
* Revision 1.1 1995/05/16 15:23:45 allender
* Initial revision
*
* Revision 2.2 1995/03/27 09:42:59 john
* Added VR Settings in config file.
*
* Revision 2.1 1995/03/16 11:20:40 john
* Put in support for Crystal Lake soundcard.
*
* Revision 2.0 1995/02/27 11:30:13 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.14 1995/02/11 16:19:36 john
* Added code to make the default mission be the one last played.
*
* Revision 1.13 1995/01/18 13:23:24 matt
* Made curtom detail level vars initialize properly at load
*
* Revision 1.12 1995/01/04 22:15:36 matt
* Fixed stupid bug using scanf() to read bytes
*
* Revision 1.11 1995/01/04 13:14:21 matt
* Made custom detail level settings save in config file
*
* Revision 1.10 1994/12/12 21:35:09 john
* *** empty log message ***
*
* Revision 1.9 1994/12/12 21:31:51 john
* Made volume work better by making sure volumes are valid
* and set correctly at program startup.
*
* Revision 1.8 1994/12/12 13:58:01 john
* MAde -nomusic work.
* Fixed GUS hang at exit by deinitializing digi before midi.
*
* Revision 1.7 1994/12/08 10:01:33 john
* Changed the way the player callsign stuff works.
*
* Revision 1.6 1994/12/01 11:24:07 john
* Made volume/gamma/joystick sliders all be the same length. 0-->8.
*
* Revision 1.5 1994/11/29 02:01:07 john
* Added code to look at -volume command line arg.
*
* Revision 1.4 1994/11/14 20:14:11 john
* Fixed some warnings.
*
* Revision 1.3 1994/11/14 19:51:01 john
* Added joystick cal values to descent.cfg.
*
* Revision 1.2 1994/11/14 17:53:09 allender
* read and write descent.cfg file
*
* Revision 1.1 1994/11/14 16:28:08 allender
* Initial revision
------------------------------------------------------------------------
main/config.h:
* Revision 1.3 1995/09/08 17:12:26 allender
* added modem tool stuff for prefs file
*
* Revision 1.2 1995/09/05 08:47:48 allender
* prefs file working
*
* Revision 1.1 1995/05/16 15:55:23 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:32:48 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.4 1995/02/11 16:20:06 john
* Added code to make the default mission be the one last played.
*
* Revision 1.3 1994/12/08 10:01:41 john
* Changed the way the player callsign stuff works.
*
* Revision 1.2 1994/11/14 17:53:17 allender
* extern definitions for ReadConfigFile and WriteConfigFile
*
* Revision 1.1 1994/11/14 16:56:17 allender
* Initial revision
------------------------------------------------------------------------
main/controls.c:
* Revision 1.3 1995/11/20 17:17:27 allender
* call fix_fastsincos with tmp variable to prevent
* writing to NULL
*
* Revision 1.2 1995/08/11 16:00:04 allender
* fixed bug we think we never saw (overflow on max_rotthrust
*
* Revision 1.1 1995/05/16 15:23:53 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:27:11 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.50 1995/02/22 14:11:19 allender
* remove anonymous unions from object structure
*
* Revision 1.49 1994/12/15 13:04:10 mike
* Replace Players[Player_num].time_total references with GameTime.
*
* Revision 1.48 1994/11/27 23:12:13 matt
* Made changes for new mprintf calling convention
*
* Revision 1.47 1994/11/25 22:15:54 matt
* Added asserts to try to trap frametime < 0 bug
*
* Revision 1.46 1994/11/16 11:25:40 matt
* Took out int3's since I determined that the errors are caused by neg frametime
*
* Revision 1.45 1994/11/15 13:07:23 matt
* Added int3's to try to trap bug
*
* Revision 1.44 1994/10/14 16:18:12 john
* Made Assert that the object was player just nicely exit
* the function.
*
* Revision 1.43 1994/10/13 11:35:25 john
* Made Thrustmaster FCS Hat work. Put a background behind the
* keyboard configure. Took out turn_sensitivity. Changed sound/config
* menu to new menu. Made F6 be calibrate joystick.
*
* Revision 1.42 1994/09/29 11:22:02 mike
* Zero thrust when player dies.
*
* Revision 1.41 1994/09/16 13:10:30 mike
* Hook in afterburner stuff.
*
* Revision 1.40 1994/09/14 22:21:54 matt
* Avoid post-death assert
*
* Revision 1.39 1994/09/11 20:30:27 matt
* Cleaned up thrust vars, changing a few names
*
* Revision 1.38 1994/09/10 15:46:31 john
* First version of new keyboard configuration.
*
* Revision 1.37 1994/09/07 15:58:12 mike
* Check for player dead in controls so you can't fire or move after dead, logical, huh?
*
* Revision 1.36 1994/09/06 14:51:56 john
* Added sensitivity adjustment, fixed bug with joystick button not
* staying down.
*
* Revision 1.35 1994/09/01 15:43:26 john
* Put pitch bak like it was.
*
* Revision 1.34 1994/08/31 18:59:35 john
* Made rotthrust back like it was.
*
* Revision 1.33 1994/08/31 18:49:17 john
* Slowed Maxrothrust a bit,
* ..
*
* Revision 1.32 1994/08/31 18:32:05 john
* Lower max rotational thrust
*
* Revision 1.31 1994/08/29 21:18:27 john
* First version of new keyboard/oystick remapping stuff.
*
* Revision 1.30 1994/08/29 16:18:30 mike
* trap divide overflow.
*
* Revision 1.29 1994/08/26 14:40:45 john
* *** empty log message ***
*
* Revision 1.28 1994/08/26 12:23:50 john
* MAde joystick read up to 15 times per second max.
*
* Revision 1.27 1994/08/26 10:50:59 john
* Took out Controls_always_stopped.
*
* Revision 1.26 1994/08/26 10:47:27 john
* *** empty log message ***
*
* Revision 1.25 1994/08/26 10:46:50 john
* New version of controls.
*
* Revision 1.24 1994/08/25 19:41:44 john
* *** empty log message ***
*
* Revision 1.23 1994/08/25 18:44:55 john
* *** empty log message ***
*
* Revision 1.22 1994/08/25 18:43:46 john
* First revision of new control code.
*
* Revision 1.21 1994/08/24 20:02:46 john
* Added cyberman support; made keys work key_down_time
* returning seconds instead of milliseconds,.
*
*
* Revision 1.20 1994/08/24 19:00:27 john
* Changed key_down_time to return fixed seconds instead of
* milliseconds.
*
* Revision 1.19 1994/08/19 15:22:12 mike
* Fix divide overflow in sliding.
*
* Revision 1.18 1994/08/19 14:42:50 john
* Added joystick sensitivity.
*
* Revision 1.17 1994/08/17 16:50:01 john
* Added damaging fireballs, missiles.
*
* Revision 1.16 1994/08/12 22:41:54 john
* Took away Player_stats; added Players array.
*
* Revision 1.15 1994/08/09 16:03:56 john
* Added network players to editor.
*
* Revision 1.14 1994/07/28 12:33:31 matt
* Made sliding use thrust, rather than changing velocity directly
*
* Revision 1.13 1994/07/27 20:53:21 matt
* Added rotational drag & thrust, so turning now has momemtum like moving
*
* Revision 1.12 1994/07/25 10:24:06 john
* Victor stuff.
*
* Revision 1.11 1994/07/22 17:53:16 john
* Added better victormax support
*
* Revision 1.10 1994/07/21 21:31:29 john
* First cheapo version of VictorMaxx tracking.
*
* Revision 1.9 1994/07/15 15:16:18 john
* Fixed some joystick stuff.
*
* Revision 1.8 1994/07/15 09:32:09 john
* Changes player movement.
*
* Revision 1.7 1994/07/13 00:14:58 matt
* Moved all (or nearly all) of the values that affect player movement to
* bitmaps.tbl
*
* Revision 1.6 1994/07/12 12:40:14 matt
* Revamped physics system
*
* Revision 1.5 1994/07/02 13:50:39 matt
* Cleaned up includes
*
* Revision 1.4 1994/07/01 10:55:25 john
* Added analog joystick throttle
*
* Revision 1.3 1994/06/30 20:04:28 john
* Added -joydef support.
*
* Revision 1.2 1994/06/30 19:01:58 matt
* Moved flying controls code from physics.c to controls.c
*
* Revision 1.1 1994/06/30 18:41:25 matt
* Initial revision
------------------------------------------------------------------------
main/controls.h:
* Revision 1.1 1995/05/16 15:55:31 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:27:17 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.4 1994/07/21 18:15:33 matt
* Ripped out a bunch of unused stuff
*
* Revision 1.3 1994/07/15 09:32:08 john
* Changes player movement.
*
* Revision 1.2 1994/06/30 19:02:22 matt
* Moved flying controls code from physics.c to controls.c
*
* Revision 1.1 1994/06/30 18:41:36 matt
* Initial revision
------------------------------------------------------------------------
main/credits.c:
* Revision 1.8 1995/11/07 13:54:56 allender
* loop shareware song since it is too short
*
* Revision 1.7 1995/10/31 10:24:25 allender
* shareware stuff
*
* Revision 1.6 1995/10/27 15:17:57 allender
* minor fix to get them to look right at top and bottom
* of screens
*
* Revision 1.5 1995/10/21 22:50:49 allender
* credits is way cool!!!!
*
* Revision 1.3 1995/08/08 13:45:26 allender
* added macsys header file
*
* Revision 1.2 1995/07/17 08:49:48 allender
* make work in 640x480 -- still needs major work!!
*
* Revision 1.1 1995/05/16 15:24:01 allender
* Initial revision
*
* Revision 2.2 1995/06/14 17:26:08 john
* Fixed bug with VFX palette not getting loaded for credits, titles.
*
* Revision 2.1 1995/03/06 15:23:30 john
* New screen techniques.
*
* Revision 2.0 1995/02/27 11:29:25 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.33 1995/02/11 12:41:56 john
* Added new song method, with FM bank switching..
*
* Revision 1.32 1995/02/03 14:18:06 john
* Added columns.
*
* Revision 1.31 1994/12/28 10:43:00 john
* More VFX tweaking.
*
* Revision 1.30 1994/12/20 18:22:31 john
* Added code to support non-looping songs, and put
* it in for endlevel and credits.
*
* Revision 1.29 1994/12/15 14:23:00 adam
* fixed timing.
*
* Revision 1.28 1994/12/14 16:56:33 adam
* *** empty log message ***
*
* Revision 1.27 1994/12/14 12:18:11 adam
* messed w/timing
*
* Revision 1.26 1994/12/12 22:52:59 matt
* Fixed little bug
*
* Revision 1.25 1994/12/12 22:49:35 adam
* *** empty log message ***
*
* Revision 1.24 1994/12/09 23:16:50 john
* Make credits.txb load.
*
* Revision 1.23 1994/12/09 00:41:54 mike
* fix hang in automap print screen.
*
* Revision 1.22 1994/12/09 00:34:22 matt
* Added support for half-height lines
*
* Revision 1.21 1994/12/08 18:36:03 yuan
* More HOGfile support.
*
* Revision 1.20 1994/12/04 14:48:17 john
* Made credits restore playing descent.hmp.
*
* Revision 1.19 1994/12/04 14:30:20 john
* Added hooks for music..
*
* Revision 1.18 1994/12/04 12:06:46 matt
* Put in support for large font
*
* Revision 1.17 1994/12/01 10:47:27 john
* Took out code that allows keypresses to change scroll rate.
*
* Revision 1.16 1994/11/30 12:10:52 adam
* added support for PCX titles/brief screens
*
* Revision 1.15 1994/11/27 23:12:17 matt
* Made changes for new mprintf calling convention
*
* Revision 1.14 1994/11/27 19:51:46 matt
* Made screen shots work in a few more places
*
* Revision 1.13 1994/11/18 16:41:51 adam
* trimmed some more meat for shareware
*
* Revision 1.12 1994/11/10 20:38:29 john
* Made credits not loop.
*
* Revision 1.11 1994/11/05 15:04:06 john
* Added non-popup menu for the main menu, so that scores and credits don't have to save
* the background.
*
* Revision 1.10 1994/11/05 14:05:52 john
* Fixed fade transitions between all screens by making gr_palette_fade_in and out keep
* track of whether the palette is faded in or not. Then, wherever the code needs to fade out,
* it just calls gr_palette_fade_out and it will fade out if it isn't already. The same with fade_in.
* This eliminates the need for all the flags like Menu_fade_out, game_fade_in palette, etc.
*
* Revision 1.9 1994/11/04 12:02:32 john
* Fixed fading transitions a bit more.
*
* Revision 1.8 1994/11/04 11:30:44 john
* Fixed fade transitions between game/menu/credits.
*
* Revision 1.7 1994/11/04 11:06:32 john
* Added code to support credit fade table.
*
* Revision 1.6 1994/11/04 10:16:13 john
* Made the credits fade in/out smoothly on top of a bitmap background.
*
* Revision 1.5 1994/11/03 21:24:12 john
* Made credits exit the instant a key is pressed.
* Made it scroll a bit slower.
*
* Revision 1.4 1994/11/03 21:20:28 john
* Working.
*
* Revision 1.3 1994/11/03 21:01:24 john
* First version of credits that works.
*
* Revision 1.2 1994/11/03 20:17:39 john
* Added initial code for showing credits.
*
* Revision 1.1 1994/11/03 20:09:05 john
* Initial revision
------------------------------------------------------------------------
main/credits.h:
* Revision 1.1 1995/05/16 15:55:39 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:32:30 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.2 1994/11/03 20:17:40 john
* Added initial code for showing credits.
*
* Revision 1.1 1994/11/03 20:09:19 john
* Initial revision
------------------------------------------------------------------------
main/desc_id.h:
* Revision 1.1 1995/05/16 15:55:53 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:29:38 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.3 1994/10/19 09:52:57 allender
* Added variable for bogus error number return when game exits
*
* Revision 1.2 1994/10/18 16:43:52 allender
* Added constants for id and time stamping
*
* Revision 1.1 1994/10/17 09:56:47 allender
* Initial revision
* Header for checksum stuff - No idea what for.
------------------------------------------------------------------------
main/digi.h:
* Revision 2.0 1995/02/27 11:28:40 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.29 1995/02/11 12:42:00 john
* Added new song method, with FM bank switching..
*
* Revision 1.28 1995/02/03 17:08:26 john
* Changed sound stuff to allow low memory usage.
* Also, changed so that Sounds isn't an array of digi_sounds, it
* is a ubyte pointing into GameSounds, this way the digi.c code that
* locks sounds won't accidentally unlock a sound that is already playing, but
* since it's Sounds[soundno] is different, it would erroneously be unlocked.
*
* Revision 1.27 1995/02/01 22:20:31 john
* Added digi_is_sound_playing.
*
* Revision 1.26 1994/12/20 18:03:51 john
* Added loop midi flag.
*
* Revision 1.25 1994/12/13 00:46:14 john
* Split digi and midi volume into 2 seperate functions.
*
* Revision 1.24 1994/12/10 20:34:53 john
* Added digi_kill_sound_linked_to_object.
*
* Revision 1.23 1994/12/10 15:59:39 mike
* Fixed bug.
*
* Revision 1.22 1994/12/10 15:44:35 john
* Added max_distance passing for sound objects.
*
* Revision 1.21 1994/12/05 12:17:40 john
* Added code that locks/unlocks digital sounds on demand.
*
* Revision 1.20 1994/11/28 18:34:57 john
* Made the digi_max_channels cut of an old sound instead of
* not playing a new sound.
*
* Revision 1.19 1994/11/14 17:53:56 allender
* made some digi variables extern
*
* Revision 1.18 1994/10/28 14:42:58 john
* Added sound volumes to all sound calls.
*
* Revision 1.17 1994/10/11 15:25:37 john
* Added new function to play a sound once...
*
* Revision 1.16 1994/10/03 20:51:44 john
* Started added pause sound function; for the network I changed to
* packet structure a bit; never tested, though.
*
*
* Revision 1.15 1994/10/03 13:09:43 john
* Added Pause function, but never tested it yet.
*
* Revision 1.14 1994/09/30 10:09:24 john
* Changed sound stuff... made it so the reseting card doesn't hang,
* made volume change only if sound is installed.
*
* Revision 1.13 1994/09/29 21:13:43 john
* Added Master volumes for digi and midi. Also took out panning,
* because it doesn't work with MasterVolume stuff.
*
* Revision 1.12 1994/09/29 12:42:34 john
* Added sidenum to keep track of sound pos. Made sound functions
* not do anything if nosound. Made sounds_init delete currently
* playing sounds.
*
* Revision 1.11 1994/09/29 12:23:42 john
* Added digi_kill_sound_linked_to_segment function.
*
* Revision 1.10 1994/09/29 11:59:04 john
* Added digi_kill_sound
*
* Revision 1.9 1994/09/29 10:37:38 john
* Added sound objects that dynamicaly change volume,pan.
*
* Revision 1.8 1994/09/28 16:18:37 john
* Added capability to play midi song.
*
* Revision 1.7 1994/06/17 18:01:41 john
* A bunch of new stuff by John
*
* Revision 1.6 1994/06/15 19:00:58 john
* Added the capability to make 3d sounds play just once for the
* laser hit wall effects.
*
* Revision 1.5 1994/06/07 10:54:30 john
* Made key S reinit the sound system.
*
* Revision 1.4 1994/05/09 21:11:39 john
* Sound changes; pass index instead of pointer to digi routines.
* Made laser sound cut off the last laser sound.
*
* Revision 1.3 1994/04/27 11:44:25 john
* First version of sound! Yay!
*
* Revision 1.2 1994/04/20 21:58:50 john
* First version of sound stuff... hopefully everything
* is commented out because it hangs..
*
* Revision 1.1 1994/04/15 14:25:02 john
* Initial revision
------------------------------------------------------------------------
main/dumpmine.c:
* Revision 1.1 1995/05/16 15:24:16 allender
* Initial revision
*
* Revision 2.1 1995/04/06 12:21:50 mike
* Add texture map information to txm files.
*
* Revision 2.0 1995/02/27 11:26:41 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.24 1995/01/23 15:34:43 mike
* New diagnostic code, levels.all stuff.
*
* Revision 1.23 1994/12/20 17:56:36 yuan
* Multiplayer object capability.
*
* Revision 1.22 1994/11/27 23:12:19 matt
* Made changes for new mprintf calling convention
*
* Revision 1.21 1994/11/23 12:19:04 mike
* move out level names, stick in gamesave.
*
* Revision 1.20 1994/11/21 16:54:36 mike
* oops.
*
*
* Revision 1.19 1994/11/20 22:12:55 mike
* Lotsa new stuff in this fine debug file.
*
* Revision 1.18 1994/11/17 14:58:09 mike
* moved segment validation functions from editor to main.
*
* Revision 1.17 1994/11/15 21:43:02 mike
* texture usage system.
*
* Revision 1.16 1994/11/15 12:45:59 mike
* debug code for dumping texture info.
*
* Revision 1.15 1994/11/14 20:47:50 john
* Attempted to strip out all the code in the game
* directory that uses any ui code.
*
* Revision 1.14 1994/10/14 17:33:38 mike
* Fix error reporting for number of multiplayer objects in mine.
*
* Revision 1.13 1994/10/14 13:37:46 mike
* Forgot parameter in fprintf, was getting bogus number of excess keys.
*
* Revision 1.12 1994/10/12 08:05:33 mike
* Detect keys contained in objects for error checking (txm file).
*
* Revision 1.11 1994/10/10 17:02:08 mike
* fix fix.
*
* Revision 1.10 1994/10/10 17:00:37 mike
* Add checking for proper number of players.
*
* Revision 1.9 1994/10/03 23:37:19 mike
* Adapt to clear and rational understanding of matcens as related to fuelcens as related to something that might work.
*
* Revision 1.8 1994/09/30 17:15:29 mike
* Fix error message, was telling bogus filename.
*
* Revision 1.7 1994/09/30 11:50:55 mike
* More diagnostics.
*
* Revision 1.6 1994/09/28 17:31:19 mike
* More error checking.
*
* Revision 1.5 1994/09/28 11:14:05 mike
* Better checking on bogus walls.
*
* Revision 1.4 1994/09/28 09:23:50 mike
* Change some Error messages to Warnings.
*
* Revision 1.3 1994/09/27 17:08:31 mike
* More mine validation stuff.
*
* Revision 1.2 1994/09/27 15:43:22 mike
* The amazing code to tell you everything and more about our mines!
*
* Revision 1.1 1994/09/27 10:51:15 mike
* Initial revision
------------------------------------------------------------------------
main/editor/med.c:
* Revision 2.3 1995/03/06 18:23:52 john
* Fixed bug with font screwing up.
*
* Revision 2.2 1995/03/06 16:34:55 john
* Fixed bug with previous.
*
* Revision 2.1 1995/03/06 15:20:57 john
* New screen mode method.
*
* Revision 2.0 1995/02/27 11:35:54 john
* Version 2.0! No anonymous unions, Watcom 10.0, with no need
* for bitmaps.tbl.
*
* Revision 1.192 1994/11/30 12:33:55 mike
* set window clearing mode for editor.
*
* Revision 1.191 1994/11/27 23:17:02 matt
* Made changes for new mprintf calling convention
*
* Revision 1.190 1994/11/19 00:04:33 john
* Changed some shorts to ints.
*
* Revision 1.189 1994/11/17 14:47:57 mike
* validation functions moved from editor to game.
*
* Revision 1.188 1994/11/14 11:41:38 john
* Fixed bug with editor/game sequencing.
*
* Revision 1.187 1994/11/13 15:36:44 john
* Changed game sequencing with editor.
*
* Revision 1.186 1994/11/10 16:49:12 matt
* Don't sort seg list if no segs in list
*
* Revision 1.185 1994/11/08 09:28:39 mike
* reset ai paths on going to game.
*
* Revision 1.184 1994/10/30 14:13:05 mike
* rip out repair center stuff.
*
* Revision 1.183 1994/10/27 10:07:06 mike
* adapt to no inverse table.
*
* Revision 1.182 1994/10/20 12:48:03 matt
* Replaced old save files (MIN/SAV/HOT) with new LVL files
*
* Revision 1.181 1994/10/13 11:39:22 john
* Took out network stuff/.
*
* Revision 1.180 1994/10/07 22:21:38 mike
* Stop Delete-{whatever} from hanging you!
*
* Revision 1.179 1994/10/03 23:39:37 mike
* Adapt to newer, better, fuelcen_activate function.
*
* Revision 1.178 1994/09/30 00:38:05 mike
* Shorten diagnostic message erase -- was erasing outside canvas.
*
* Revision 1.177 1994/09/28 17:31:37 mike
* Add call to check_wall_validity();
*
* Revision 1.176 1994/08/19 10:57:42 mike
* Fix status message erase bug.
*
* Revision 1.175 1994/08/18 10:48:12 john
* Cleaned up game sequencing.
*
* Revision 1.174 1994/08/16 18:11:04 yuan
* Maded C place you in the center of a segment.
*
* Revision 1.173 1994/08/10 19:55:05 john
* Changed font stuff.
*
* Revision 1.172 1994/08/09 16:06:06 john
* Added the ability to place players. Made old
* Player variable be ConsoleObject.
*
* Revision 1.171 1994/08/04 09:14:11 matt
* Fixed problem I said I fixed last time
*
* Revision 1.170 1994/08/04 00:27:57 matt
* When viewing a wall, update the objects segnum if moved out of the segment
*
* Revision 1.169 1994/08/02 14:18:12 mike
* Clean up dialog boxes.
*
* Revision 1.168 1994/07/29 15:34:35 mike
* Kill some mprintfs.
*
* Revision 1.167 1994/07/29 14:56:46 yuan
* Close centers window, when you go into game.
*
* Revision 1.166 1994/07/28 17:16:20 john
* MAde editor use Network stuff.
*
* Revision 1.165 1994/07/28 16:59:10 mike
* objects containing objects.
*
* Revision 1.164 1994/07/22 12:37:07 matt
* Cleaned up editor/game interactions some more.
*
* Revision 1.163 1994/07/21 19:35:11 yuan
* Fixed #include problem
*
* Revision 1.162 1994/07/21 18:02:09 matt
* Don't re-init player stats when going from editor -> game
*
* Revision 1.161 1994/07/21 12:47:53 mike
* Add tilde key functionality for object movement.
*
* Revision 1.160 1994/07/18 10:44:55 mike
* One-click access to keypads.
*
* Revision 1.159 1994/07/01 18:05:54 john
* *** empty log message ***
*
* Revision 1.158 1994/07/01 17:57:06 john
* First version of not-working hostage system
*
*
* Revision 1.157 1994/07/01 11:32:29 john
* *** empty log message ***
*
* Revision 1.156 1994/06/24 17:04:36 john
* *** empty log message ***
*
* Revision 1.155 1994/06/23 15:53:47 matt
* Finished hacking in 3d rendering in big window
*
* Revision 1.154 1994/06/21 16:17:54 yuan
* Init stats when you go to game from editor
*
* Revision 1.153 1994/06/21 12:57:14 yuan
* Remove center from segment function added to menu.
------------------------------------------------------------------------
main/editor/medwall.h:
* Revision 2.0 1995/02/27 11:35:10 john
* Version 2.0! No anonymous unions, Watcom 10.0, with no need
* for bitmaps.tbl.
*
* Revision 1.9 1994/09/28 17:31:51 mike
* Prototype copy_group_walls().
*
* Revision 1.8 1994/08/05 21:18:16 matt
* Allow two doors to be linked together
*
* Revision 1.7 1994/06/20 22:30:10 yuan
* Fixed crazy runaway trigger bug that Adam found
*
* Revision 1.6 1994/05/30 20:22:58 yuan
* New triggers.
*
* Revision 1.5 1994/05/25 18:08:37 yuan
* Revamping walls and triggers interface.
* Wall interface complete, but triggers are still in progress.
*
* Revision 1.4 1994/05/18 18:22:04 yuan
* Fixed delete segment and walls bug.
*
* Revision 1.3 1994/03/17 18:08:41 yuan
* New wall stuff... Cut out switches....
*
* Revision 1.2 1994/03/15 16:34:10 yuan
* Fixed bm loader (might have some changes in walls and switches)
*
* Revision 1.1 1994/02/10 17:52:01 matt
* Initial revision
------------------------------------------------------------------------
main/editor/segment.c:
* Revision 2.0 1995/02/27 11:35:21 john
* Version 2.0! No anonymous unions, Watcom 10.0, with no need
* for bitmaps.tbl.
*
* Revision 1.191 1995/02/22 15:28:30 allender
* remove anonymous unions from object structure
*
* Revision 1.190 1995/02/02 02:59:40 yuan
* Working on exterminating bogus matcen_nums... (harmless though)
*
* Revision 1.189 1995/02/01 16:29:51 yuan
* Stabilizing triggers and matcens.
*
* Revision 1.188 1995/02/01 11:31:47 yuan
* Trigger bug fixed.
*
* Revision 1.187 1994/11/27 23:17:24 matt
* Made changes for new mprintf calling convention
*
* Revision 1.186 1994/11/17 14:48:12 mike
* validation functions moved from editor to game.
*
* Revision 1.185 1994/10/30 14:13:17 mike
* rip out local segment stuff.
*
* Revision 1.184 1994/10/27 10:04:24 matt
* When triangulating, don't use WID() to see if connected, look at children
*
* Revision 1.183 1994/10/26 13:40:23 mike
* debug code for matt.
*
* Revision 1.182 1994/10/24 16:34:00 mike
* Force render after mine compress to prevent bugs in segment selection via clicking in 3d window.
*
* Revision 1.181 1994/10/20 18:16:15 mike
* Initialize ControlCenterTriggers.num_links in create_new_mine.
*
* Revision 1.180 1994/10/18 16:29:14 mike
* Write function to automatically fix bogus segnums in segment array.
*
* Revision 1.179 1994/10/08 17:10:41 matt
* Correctly set current_level_num when loading/creating mine in editor
*
* Revision 1.178 1994/09/25 14:17:51 mike
* Initialize (to 0) Num_robot_centers and Num_open_doors at mine creation.
*
* Revision 1.177 1994/09/20 14:36:06 mike
* Write function to find overlapping segments.
*
* Revision 1.176 1994/08/25 21:55:57 mike
* IS_CHILD stuff.
*
* Revision 1.175 1994/08/23 15:28:03 mike
* Fix peculiarity in med_combine_duplicate_vertices.
*
* Revision 1.174 1994/08/09 16:06:17 john
* Added the ability to place players. Made old
* Player variable be ConsoleObject.
*
* Revision 1.173 1994/08/05 21:18:10 matt
* Allow two doors to be linked together
*
* Revision 1.172 1994/08/04 19:13:16 matt
* Changed a bunch of vecmat calls to use multiple-function routines, and to
* allow the use of C macros for some functions
*
* Revision 1.171 1994/07/22 12:37:00 matt
* Cleaned up editor/game interactions some more.
*
* Revision 1.170 1994/07/22 11:20:08 mike
* Set Lsegments validity.
*
* Revision 1.169 1994/07/21 19:02:49 mike
* lsegment stuff.
*
* Revision 1.168 1994/07/21 13:27:17 matt
* Ripped out remants of old demo system, and added demo
* disables object movement and game options from menu.
*
* Revision 1.167 1994/07/19 20:15:48 matt
* Name for each level now saved in the .SAV file & stored in Current_level_name
*
* Revision 1.166 1994/07/06 12:42:45 john
* Made generic messages for hostages.
*
* Revision 1.165 1994/06/24 17:04:29 john
* *** empty log message ***
*
* Revision 1.164 1994/06/15 15:42:40 mike
* Initialize static_light field in new segments.
*
* Revision 1.163 1994/06/13 17:49:19 mike
* Fix bug in med_validate_side which was toasting lighting for removable walls.
*
* Revision 1.162 1994/06/13 10:52:20 mike
* Fix bug in triangulation of sides between connected segments.
* Was assigning SIDE_IS_02 regardless of how triangulated, was
* causing physics bugs.
*
* Revision 1.161 1994/06/08 18:14:16 mike
* Fix triangulation of sides in hallways (ie, where there is no wall),
* so they get triangulated the same way, so find_new_seg doesn't get
* stuck in an infinite recursion.
*
* Revision 1.160 1994/06/08 11:44:31 mike
* Fix bug in normals not being opposite on opposite sides of a segment.
* Problem occurred due to difference in handling of remainder in signed divide.
*
* Revision 1.159 1994/05/31 19:00:15 yuan
* Fixed gamestate restore.
*
* Revision 1.158 1994/05/30 20:22:36 yuan
* New triggers.
*
* Revision 1.157 1994/05/26 19:32:51 mike
* Add bfs_parse.
*
* Revision 1.156 1994/05/23 14:56:46 mike
* make current segment be add segment.,
------------------------------------------------------------------------
main/editor/seguvs.h:
* Revision 2.0 1995/02/27 11:34:58 john
* Version 2.0! No anonymous unions, Watcom 10.0, with no need
* for bitmaps.tbl.
*
* Revision 1.3 1994/08/03 10:32:28 mike
* Add stretch_uvs_from_curedge.
*
* Revision 1.2 1994/05/14 18:00:58 matt
* Got rid of externs in source (non-header) files
*
* Revision 1.1 1994/05/14 17:27:26 matt
* Initial revision
------------------------------------------------------------------------
main/effects.c:
* Revision 1.1 1995/05/16 15:24:25 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:32:49 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.21 1995/02/13 20:35:06 john
* Lintized
*
* Revision 1.20 1994/12/10 16:44:50 matt
* Added debugging code to track down door that turns into rock
*
* Revision 1.19 1994/12/06 16:27:14 matt
* Fixed horrible bug that was referencing segment -1
*
* Revision 1.18 1994/12/02 23:20:51 matt
* Reset bitmaps possibly changed by crit clips
*
* Revision 1.17 1994/11/14 14:00:19 matt
* Fixed stupid bug
*
* Revision 1.16 1994/11/14 12:42:43 matt
* Allow holes in effects list
*
* Revision 1.15 1994/11/08 21:11:52 matt
* Added functions to stop & start effects
*
* Revision 1.14 1994/10/04 18:59:08 matt
* Exploding eclips now play eclip while exploding, then switch to static bm
*
* Revision 1.13 1994/10/04 15:17:42 matt
* Took out references to unused constant
*
* Revision 1.12 1994/09/29 11:00:01 matt
* Made eclips (wall animations) not frame-rate dependent (for now)
*
* Revision 1.11 1994/09/25 00:40:24 matt
* Added the ability to make eclips (monitors, fans) which can be blown up
*
* Revision 1.10 1994/08/14 23:15:14 matt
* Added animating bitmap hostages, and cleaned up vclips a bit
*
* Revision 1.9 1994/08/05 15:56:04 matt
* Cleaned up effects system, and added alternate effects for after mine
* destruction.
*
* Revision 1.8 1994/08/01 23:17:21 matt
* Add support for animating textures on robots
*
* Revision 1.7 1994/05/23 15:10:46 yuan
* Make Eclips read directly...
* No more need for $EFFECTS list.
*
* Revision 1.6 1994/04/06 14:42:44 yuan
* Adding new powerups.
*
* Revision 1.5 1994/03/15 16:31:54 yuan
* Cleaned up bm-loading code.
* (And structures)
*
* Revision 1.4 1994/03/04 17:09:09 yuan
* New door stuff.
*
* Revision 1.3 1994/01/11 11:18:50 yuan
* Fixed frame_count
*
* Revision 1.2 1994/01/11 10:38:55 yuan
* Special effects new implementation
*
* Revision 1.1 1994/01/10 09:45:29 yuan
* Initial revision
------------------------------------------------------------------------
main/effects.h:
* Revision 1.1 1995/05/16 15:56:08 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:27:34 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.15 1994/11/08 21:12:07 matt
* Added functions to stop & start effects
*
* Revision 1.14 1994/10/13 17:14:11 adam
* MAX_EFFECTS to 60 (ugh)
*
* Revision 1.13 1994/10/05 10:14:34 adam
* MAX_EFFECTS to 50
*
* Revision 1.12 1994/10/04 18:59:09 matt
* Exploding eclips now play eclip while exploding, then switch to static bm
*
* Revision 1.11 1994/10/04 15:17:52 matt
* Took out references to unused constant
*
* Revision 1.10 1994/09/29 14:15:00 matt
* Added sounds for eclips (wall effects)
*
* Revision 1.9 1994/09/25 00:40:24 matt
* Added the ability to make eclips (monitors, fans) which can be blown up
*
* Revision 1.8 1994/08/05 15:55:25 matt
* Cleaned up effects system, and added alternate effects for after mine
* destruction.
*
* Revision 1.7 1994/08/01 23:17:20 matt
* Add support for animating textures on robots
*
* Revision 1.6 1994/05/19 18:13:18 yuan
* MAX_EFFECTS increased to 30
*
* Revision 1.5 1994/03/15 16:32:37 yuan
* Cleaned up bm-loading code.
* (Fixed structures too)
*
* Revision 1.4 1994/03/04 17:09:07 yuan
* New door stuff.
*
* Revision 1.3 1994/01/19 18:22:45 yuan
* Changed number of effects from 10-20
*
* Revision 1.2 1994/01/11 10:39:07 yuan
* Special effects new implementation
*
* Revision 1.1 1994/01/10 10:36:14 yuan
* Initial revision
------------------------------------------------------------------------
main/endlevel.c:
* Revision 1.5 1995/10/31 10:24:09 allender
* shareware stuff
*
* Revision 1.4 1995/09/14 16:33:54 allender
* fixed function return values for those that didn't
* have them...thanks matt!
*
* Revision 1.3 1995/07/28 15:36:26 allender
* reverse inverse sqrt change
*
* Revision 1.2 1995/07/28 15:17:40 allender
* inverse magnitude fixup
*
* Revision 1.1 1995/05/16 15:24:32 allender
* Initial revision
*
* Revision 2.2 1995/03/21 14:40:14 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.1 1995/03/20 18:15:50 john
* Added code to not store the normals in the segment structure.
*
* Revision 2.0 1995/02/27 11:30:42 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.80 1995/02/22 13:24:45 john
* Removed the vecmat anonymous unions.
*
* Revision 1.79 1995/02/11 12:41:54 john
* Added new song method, with FM bank switching..
*
* Revision 1.78 1995/02/08 11:37:41 mike
* Check for failures in call to obj_create.
*
* Revision 1.77 1995/02/05 22:09:49 matt
* Switch out of rear view when starting endlevel sequence
*
* Revision 1.76 1995/01/30 18:08:28 rob
* Add palette fade out before ending level on special missions.
*
* Revision 1.75 1995/01/29 16:19:19 rob
* Fixed endlevel for custom missions.
*
* Revision 1.74 1995/01/26 12:18:10 rob
* Changed calling convention of network_do_frame.
*
* Revision 1.73 1995/01/21 16:50:03 matt
* Made endlevel work with new mission stuff
*
* Revision 1.72 1994/12/20 18:22:51 john
* Added code to support non-looping songs, and put
* it in for endlevel and credits.
*
* Revision 1.71 1994/12/15 12:23:58 matt
* Added check for failure to create camera object
*
* Revision 1.70 1994/12/15 03:05:28 matt
* Added error checking for NULL return from object_create_explosion()
*
* Revision 1.69 1994/12/12 21:41:38 matt
* Don't start endlevel if OF_SHOULD_BE_DEAD is set for player
*
* Revision 1.68 1994/12/12 15:44:54 rob
* Rolled back a change to endlevel_start that caused more bugs than
* it fixed.
*
* Revision 1.67 1994/12/12 12:08:33 rob
* IF a player is dead upon entering the tunnel, make them not dead. Not perfect solution
* but avoids some last-minute weirdness we want to fix. This should be revisited in new
* versions if possible!
*
* Revision 1.66 1994/12/11 22:02:13 allender
* made endlevel data loading work with .txb encoded format (made with
* compbit -i level0?.end -o level0?.txb)
*
* Revision 1.65 1994/12/11 20:32:47 matt
* Made camera transition happen 1/3 of the way through exit tunnel
*
* Revision 1.64 1994/12/08 20:56:27 john
* More cfile stuff.
*
* Revision 1.63 1994/12/07 17:00:52 rob
* Trying to fix homing tone warning when in exit tunnel.
*
* Revision 1.62 1994/12/06 13:24:47 matt
* Made exit model come out of bitmaps.tbl
*
* Revision 1.61 1994/12/06 12:06:22 matt
* Fixed/cleaned up satellite (planet/sun) code
*
* Revision 1.60 1994/12/05 13:37:12 adam
* removed slew-mode
*
* Revision 1.59 1994/12/05 12:49:37 matt
* Made satellite a rod (instead of a plane old non-rotating bitmap), and
* made the size settable in the .end file
*
* Revision 1.58 1994/12/04 21:40:00 matt
* Added explosion sounds
*
* Revision 1.57 1994/12/04 18:31:41 matt
* Wasn't coding planet position, causing it to disappear sometimes
*
* Revision 1.56 1994/12/04 14:30:26 john
* Added hooks for music..
*
* Revision 1.55 1994/12/04 13:53:52 matt
* Added code to make camera off-centered during lookback
*
* Revision 1.54 1994/12/04 12:30:18 matt
* Fixed slew for short sequence
*
* Revision 1.53 1994/12/03 19:28:10 matt
* Added alternate model for exit model after mine destruction
*
* Revision 1.52 1994/12/03 00:17:23 matt
* Made endlevel sequence cut off early
* Made exit model and bit explosion always plot last (after all terrain)
*
* Revision 1.51 1994/12/01 20:15:43 yuan
* Localization.
*
* Revision 1.50 1994/11/30 23:27:35 adam
* mucked around carelessly
*
* Revision 1.49 1994/11/28 21:50:37 mike
* optimizations.
*
* Revision 1.48 1994/11/28 00:12:05 allender
* took out demo code that was in at one time to record endlevel sequence.
* We are _not_ recording endlevel sequence
*
* Revision 1.47 1994/11/27 23:35:54 allender
* pause demo recording when starting endlevel sequence. on demo playback,
* don't do endlevel at all.
*
* Revision 1.46 1994/11/27 23:13:59 matt
* Made changes for new mprintf calling convention
*
* Revision 1.45 1994/11/26 23:17:29 matt
* When camera leaves mine, bank it so it's level with the ground
*
* Revision 1.44 1994/11/23 16:52:13 rob
* Ended netgame endlevel sequence a bit earlier.
*
* Revision 1.43 1994/11/22 19:20:46 rob
* Modem support for secret levels.
*
* Revision 1.42 1994/11/22 12:11:03 rob
* Fixed bug - file handle left open in load_endlevel_data.
*
* Revision 1.41 1994/11/21 17:29:22 matt
* Cleaned up sequencing & game saving for secret levels
*
* Revision 1.40 1994/11/19 15:14:54 mike
* remove unused code and data
*
* Revision 1.39 1994/11/19 12:41:32 matt
* Added system to read endlevel data from file, and to make it work
* with any exit tunnel.
*
* Revision 1.38 1994/11/17 15:02:24 mike
* support new segment validation functions.
*
* Revision 1.37 1994/11/17 13:04:45 allender
* backout out newdemo changes
*
* Revision 1.35 1994/11/16 14:52:33 rob
* Commented out SLEW_ON on Matt's direction.
* Changed something to fix demo recording.
*
* Revision 1.34 1994/11/16 11:49:29 matt
* Added code to rotate terrain to match mine
*
* Revision 1.33 1994/11/14 17:54:54 allender
* on exit sequence during demo recording, force player exited from mine
* packet to all other network players
*
* Revision 1.32 1994/11/10 21:27:42 matt
* Took out printf's
*
* Revision 1.31 1994/11/10 14:02:24 matt
* Hacked in support for player ships with different textures
*
* Revision 1.30 1994/11/09 10:31:33 matt
* Don't create explosions if can't find seg to create them in
*
* Revision 1.29 1994/11/05 17:22:37 john
* Fixed lots of sequencing problems with newdemo stuff.
*
* Revision 1.28 1994/11/03 11:10:39 matt
* Fixed chase angles code
* Maybe other things, too.
*
* Revision 1.27 1994/10/30 20:09:21 matt
* For endlevel: added big explosion at tunnel exit; made lights in tunnel
* go out; made more explosions on walls.
*
* Revision 1.26 1994/10/28 16:37:50 allender
* stop demo recording when endlevel sequence activated
*
* Revision 1.25 1994/10/27 21:15:21 matt
* Added explosions in mine chasing player
*
* Revision 1.24 1994/10/27 01:03:57 matt
* Fixed several small bugs in flythrough
*
* Revision 1.23 1994/10/22 01:32:30 matt
* Don't start endlevel sequence if player dead
*
* Revision 1.22 1994/10/22 00:08:06 matt
* Fixed up problems with bonus & game sequencing
* Player doesn't get credit for hostages unless he gets them out alive
------------------------------------------------------------------------
main/endlevel.h:
* Revision 1.2 1995/09/14 16:36:34 allender
* fixed function prototype for those functions that didn't
* have them...thanks matt
*
* Revision 1.1 1995/05/16 15:56:16 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:31:37 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.5 1994/12/06 13:24:55 matt
* Made exit model come out of bitmaps.tbl
*
* Revision 1.4 1994/11/19 12:41:35 matt
* Added system to read endlevel data from file, and to make it work
* with any exit tunnel.
*
* Revision 1.3 1994/10/30 20:09:20 matt
* For endlevel: added big explosion at tunnel exit; made lights in tunnel
* go out; made more explosions on walls.
*
* Revision 1.2 1994/08/19 20:09:38 matt
* Added end-of-level cut scene with external scene
*
* Revision 1.1 1994/08/15 19:18:47 matt
* Initial revision
------------------------------------------------------------------------
main/escort.c:
* Revision 1.1 1995/05/06 23:32:19 mike
* Initial revision
------------------------------------------------------------------------
main/fireball.c:
* Revision 1.2 1995/10/31 10:23:56 allender
* shareware stuff
*
* Revision 1.1 1995/05/16 15:24:41 allender
* Initial revision
*
* Revision 2.2 1995/03/21 14:39:57 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.1 1995/03/20 18:15:47 john
* Added code to not store the normals in the segment structure.
*
* Revision 2.0 1995/02/27 11:30:34 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.200 1995/02/22 13:18:41 allender
* remove anonymous unions from object structure
*
* Revision 1.199 1995/02/14 19:58:32 mike
* comment out "something bad has happened" int3.
*
* Revision 1.198 1995/02/09 13:11:01 mike
* remove an annoying mprintf and Int3().
*
* Revision 1.197 1995/02/08 17:10:14 mike
* don't drop cloaks if one nearby.
*
* Revision 1.196 1995/02/08 13:27:14 rob
* Give keys dropped by robots 0 velocity in coop game.
*
* Revision 1.195 1995/02/08 11:57:40 mike
* determine whether debris object failed to create because buffer was
* exhausted or because limit was hit.
*
* Revision 1.194 1995/02/08 11:37:58 mike
* Check for failures in call to obj_create.
*
* Revision 1.193 1995/02/07 21:09:41 mike
* only replace weapon with energy 1/2 time.
*
* Revision 1.192 1995/01/30 18:21:52 rob
* Replace extra life powerups in multiplayer to invul when
* dropped by robots.
*
* Revision 1.191 1995/01/28 17:40:59 mike
* fix stupidity in converting quad lasers to energy.
*
* Revision 1.190 1995/01/27 15:05:59 rob
* Trying to fix a bug with damaging robots with player badass explosions.
*
* Revision 1.189 1995/01/26 18:59:04 rob
* Powerups were flying too far in robot-cooperative games.
*
* Revision 1.188 1995/01/25 10:53:35 mike
* make badass damage go through grates.
*
* Revision 1.187 1995/01/25 09:37:23 mike
* fix objects containing robots, worked for powerups, bad {} placement.
*
* Revision 1.186 1995/01/23 22:51:20 mike
* drop energy instead of primary weapon if you already have primary weapon.
*
* Revision 1.185 1995/01/20 16:56:37 mike
* Cut damage done by badass weapons.
*
* Revision 1.184 1995/01/19 17:44:57 mike
* damage_force removed, that information coming from strength field.
*
* Revision 1.183 1995/01/16 21:06:54 mike
* Move function pick_random_point_in_segment from fireball.c to gameseg.c.
*
* Revision 1.182 1995/01/16 19:24:04 mike
* If a gated-in robot and going to drop energy powerup, don't!
*
* Revision 1.181 1995/01/15 20:48:03 mike
* drop energy in place of quad lasers if player already has quad lasers.
*
* Revision 1.180 1995/01/14 19:32:19 rob
* Fixed an error.
*
* Revision 1.179 1995/01/14 18:50:55 rob
* Make robot egg creation suitable for mutliplayer situations.
*
* Revision 1.178 1995/01/14 14:55:07 rob
* Make weapons/keys/etc never disappear in network mode.
------------------------------------------------------------------------
main/fireball.h:
* Revision 1.1 1995/05/16 15:56:23 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:27:03 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.13 1995/01/17 12:14:38 john
* Made walls, object explosion vclips load at level start.
*
* Revision 1.12 1995/01/13 15:41:52 rob
* Added prototype for maybe_replace_powerup_with_energy
*
* Revision 1.11 1994/11/17 16:28:36 rob
* Changed maybe_drop_cloak_powerup to maybe_drop_net_powerup (more
* generic and useful)
*
* Revision 1.10 1994/10/12 08:03:42 mike
* Prototype maybe_drop_cloak_powerup.
*
* Revision 1.9 1994/10/11 12:24:39 matt
* Cleaned up/change badass explosion calls
*
* Revision 1.8 1994/09/07 16:00:34 mike
* Add object pointer to parameter list of object_create_badass_explosion.
*
* Revision 1.7 1994/09/02 14:00:39 matt
* Simplified explode_object() & mutliple-stage explosions
*
* Revision 1.6 1994/08/17 16:49:58 john
* Added damaging fireballs, missiles.
*
* Revision 1.5 1994/07/14 22:39:19 matt
* Added exploding doors
*
* Revision 1.4 1994/06/08 10:56:36 matt
* Improved debris: now get submodel size from new POF files; debris now has
* limited life; debris can now be blown up.
*
* Revision 1.3 1994/04/01 13:35:44 matt
* Added multiple-stage explosions
*
* Revision 1.2 1994/02/17 11:33:32 matt
* Changes in object system
*
* Revision 1.1 1994/02/16 22:41:15 matt
* Initial revision
------------------------------------------------------------------------
main/fuelcen.c:
* Revision 1.2 1995/10/31 10:23:40 allender
* shareware stuff
*
* Revision 1.1 1995/05/16 15:24:50 allender
* Initial revision
*
* Revision 2.3 1995/03/21 14:38:40 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.2 1995/03/06 15:23:09 john
* New screen techniques.
*
* Revision 2.1 1995/02/27 13:13:26 john
* Removed floating point.
*
* Revision 2.0 1995/02/27 11:27:20 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.159 1995/02/22 13:48:10 allender
* remove anonymous unions in object structure
*
* Revision 1.158 1995/02/08 11:37:48 mike
* Check for failures in call to obj_create.
*
* Revision 1.157 1995/02/07 20:39:39 mike
* fix toasters in multiplayer
*
*
* Revision 1.156 1995/02/02 18:40:10 john
* Fixed bug with full screen cockpit flashing non-white.
*
* Revision 1.155 1995/01/28 15:27:22 yuan
* Make sure fuelcen nums are valid.
*
* Revision 1.154 1995/01/03 14:26:23 rob
* Better ifdef for robot centers.
*
* Revision 1.153 1995/01/03 11:27:49 rob
* Added include of fuelcen.c
*
* Revision 1.152 1995/01/03 09:47:22 john
* Some ifdef SHAREWARE lines.
*
* Revision 1.151 1995/01/02 21:02:07 rob
* added matcen support for coop/multirobot.
*
* Revision 1.150 1994/12/15 18:31:22 mike
* fix confusing precedence problems.
*
* Revision 1.149 1994/12/15 13:04:22 mike
* Replace Players[Player_num].time_total references with GameTime.
*
* Revision 1.148 1994/12/15 03:05:18 matt
* Added error checking for NULL return from object_create_explosion()
*
* Revision 1.147 1994/12/13 19:49:12 rob
* Made the fuelcen noise quieter.
*
* Revision 1.146 1994/12/13 12:03:18 john
* Made the warning sirens not start until after "desccruction
* secquence activated voice".
*
* Revision 1.145 1994/12/12 17:18:30 mike
* make warning siren louder.
*
* Revision 1.144 1994/12/11 23:18:04 john
* Added -nomusic.
* Added RealFrameTime.
* Put in a pause when sound initialization error.
* Made controlcen countdown and framerate use RealFrameTime.
*
* Revision 1.143 1994/12/11 14:10:16 mike
* louder sounds.
*
* Revision 1.142 1994/12/06 11:33:19 yuan
* Fixed bug with fueling when above 100.
*
* Revision 1.141 1994/12/05 23:37:14 matt
* Took out calls to warning() function
*
* Revision 1.140 1994/12/05 23:19:18 yuan
* Fixed fuel center refuelers..
*
* Revision 1.139 1994/12/03 12:48:12 mike
* diminish rocking due to control center destruction.
*
* Revision 1.138 1994/12/02 23:30:32 mike
* fix bumpiness after toasting control center.
*
* Revision 1.137 1994/12/02 22:48:14 mike
* rock the ship after toasting the control center!
*
* Revision 1.136 1994/12/02 17:12:11 rob
* Fixed countdown sounds.
*
* Revision 1.135 1994/11/29 20:59:43 rob
* Don't run out of fuel in net games (don't want to sync it between machines)
*
* Revision 1.134 1994/11/29 19:10:57 john
* Took out debugging mprintf.
*
* Revision 1.133 1994/11/29 13:19:40 john
* Made voice for "destruction actived in t-"
* be at 12.75 secs.
*
* Revision 1.132 1994/11/29 12:19:46 john
* MAde the "Mine desctruction will commence"
* voice play at 12.5 secs.
*
* Revision 1.131 1994/11/29 12:12:54 adam
* *** empty log message ***
*
* Revision 1.130 1994/11/28 21:04:26 rob
* Added code to cast noise when player refuels.
*
* Revision 1.129 1994/11/27 23:15:04 matt
* Made changes for new mprintf calling convention
*
* Revision 1.128 1994/11/21 16:27:51 mike
* debug code for morphing.
*
* Revision 1.127 1994/11/21 12:33:50 matt
* For control center explosions, use small fireball, not pseudo-random vclip
*
* Revision 1.126 1994/11/20 22:12:15 mike
* Fix bug in initializing materialization centers.
*
* Revision 1.125 1994/11/19 15:18:22 mike
* rip out unused code and data.
*
* Revision 1.124 1994/11/08 12:18:59 mike
* Initialize Fuelcen_seconds_left.
*
* Revision 1.123 1994/10/30 14:12:33 mike
* rip out repair center stuff
*
* Revision 1.122 1994/10/28 14:42:45 john
* Added sound volumes to all sound calls.
*
* Revision 1.121 1994/10/16 12:44:02 mike
* Make time to exit mine after control center destruction diff level dependent.
*
* Revision 1.120 1994/10/09 22:03:26 mike
* Adapt to new create_n_segment_path parameters.
*
* Revision 1.119 1994/10/06 14:52:42 mike
* Remove last of ability to damage fuel centers.
*
* Revision 1.118 1994/10/06 14:08:45 matt
* Made morph flash effect get orientation from segment
*
* Revision 1.117 1994/10/05 16:09:03 mike
* Put debugging code into matcen/fuelcen synchronization problem.
*
* Revision 1.116 1994/10/04 15:32:41 john
* Took out the old PLAY_SOUND??? code and replaced it
* with direct calls into digi_link_??? so that all sounds
* can be made 3d.
*
* Revision 1.115 1994/10/03 23:37:57 mike
* Clean up this mess of confusion to the point where maybe matcens actually work.
*
* Revision 1.114 1994/10/03 13:34:40 matt
* Added new (and hopefully better) game sequencing functions
*
* Revision 1.113 1994/09/30 14:41:57 matt
* Fixed bug as per Mike's instructions
*
* Revision 1.112 1994/09/30 00:37:33 mike
* Balance materialization centers.
*
* Revision 1.111 1994/09/28 23:12:52 matt
* Macroized palette flash system
*
* Revision 1.110 1994/09/27 15:42:31 mike
* Add names of Specials.
*
* Revision 1.109 1994/09/27 00:02:23 mike
* Yet more materialization center stuff.
*
* Revision 1.108 1994/09/26 11:26:23 mike
* Balance materialization centers.
*
* Revision 1.107 1994/09/25 23:40:47 matt
* Changed the object load & save code to read/write the structure fields one
* at a time (rather than the whole structure at once). This mean that the
* object structure can be changed without breaking the load/save functions.
* As a result of this change, the local_object data can be and has been
* incorporated into the object array. Also, timeleft is now a property
* of all objects, and the object structure has been otherwise cleaned up.
*
* Revision 1.106 1994/09/25 15:55:58 mike
* Balance materialization centers, make them emit light, make them re-triggerable after awhile.
*
* Revision 1.105 1994/09/24 17:42:33 mike
* Making materialization centers be activated by triggers and balancing them.
*
* Revision 1.104 1994/09/24 14:16:06 mike
* Support new network constants.
*
* Revision 1.103 1994/09/20 19:14:40 john
* Massaged the sound system; used a better formula for determining
* which l/r balance, also, put in Mike's stuff that searches for a connection
* between the 2 sounds' segments, stopping for closed doors, etc.
*
* Revision 1.102 1994/09/17 01:40:51 matt
* Added status bar/sizable window mode, and in the process revamped the
* whole cockpit mode system.
*
* Revision 1.101 1994/08/31 20:57:25 matt
* Cleaned up endlevel/death code
*
* Revision 1.100 1994/08/30 17:54:20 mike
* Slow down rate of creation of objects by materialization centers.
*
* Revision 1.99 1994/08/29 11:47:01 john
* Added warning if no control centers in mine.
------------------------------------------------------------------------
main/fuelcen.h:
* Revision 1.1 1995/05/16 15:56:31 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:28:43 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.26 1995/01/26 12:19:16 rob
* Added externs of things needed for multiplayer.
*
* Revision 1.25 1994/10/30 14:11:10 mike
* rip out repair center stuff.
*
* Revision 1.24 1994/10/03 23:36:36 mike
* Add segnum and fuelcen_num (renaming dest_seg and *path) in matcen_info struct.
*
* Revision 1.23 1994/09/30 00:37:44 mike
* Change FuelCenter struct.
*
* Revision 1.22 1994/09/27 15:42:49 mike
* Kill some obsolete matcen constants, Prototype Special_names.
*
* Revision 1.21 1994/09/27 00:04:30 mike
* Moved FuelCenter struct here from fuelcen.c
*
* Revision 1.20 1994/09/25 15:55:37 mike
* Prototype function disable_matcens.
*
* Revision 1.19 1994/09/24 17:41:34 mike
* Prototype trigger_matcen.
*
* Revision 1.18 1994/08/03 17:52:19 matt
* Tidied up repair centers a bit
*
* Revision 1.17 1994/08/02 12:16:01 mike
* *** empty log message ***
*
* Revision 1.16 1994/08/01 11:04:03 yuan
* New materialization centers.
*
* Revision 1.15 1994/07/21 19:02:15 mike
* break repair centers.
*
* Revision 1.14 1994/07/14 11:25:22 john
* Made control centers destroy better; made automap use Tab key.
*
* Revision 1.13 1994/07/13 10:45:33 john
* Made control center object switch when dead.
*
* Revision 1.12 1994/07/09 17:36:44 mike
* Add extern for find_connected_repair_seg.
*
* Revision 1.11 1994/06/15 19:00:32 john
* Show timer in on top of 3d with mine destroyed...
*
* Revision 1.10 1994/05/31 16:49:46 john
* Begin to add robot materialization centers.
*
* Revision 1.9 1994/05/30 20:22:03 yuan
* New triggers.
*
* Revision 1.8 1994/05/05 16:41:14 matt
* Cleaned up repair center code, and moved some from object.c to fuelcen.c
*
* Revision 1.7 1994/04/21 20:41:21 yuan
* Added extern.
*
* Revision 1.6 1994/04/21 20:28:32 john
* Added flag for Yuan to tell when a fuel center is destroyed.
*
* Revision 1.5 1994/04/14 17:00:59 john
* Made repair cen's work properly; added reset_all_fuelcens.
*
* Revision 1.4 1994/04/12 20:28:04 john
* Added control center.
*
* Revision 1.3 1994/04/08 15:37:10 john
* Added repair centers.
*
* Revision 1.2 1994/04/06 19:10:38 john
* NEw version.
*
*
* Revision 1.1 1994/04/06 12:39:02 john
* Initial revision
------------------------------------------------------------------------
main/fvi.c:
* Revision 1.7 1995/10/21 23:52:18 allender
* #ifdef'ed out stack debug stuff
*
* Revision 1.6 1995/10/10 12:07:42 allender
* add forgotten ;
*
* Revision 1.5 1995/10/10 11:47:27 allender
* put in stack space check
*
* Revision 1.4 1995/08/23 21:34:08 allender
* fix mcc compiler warning
*
* Revision 1.3 1995/08/14 14:35:18 allender
* changed transparency to 0
*
* Revision 1.2 1995/07/05 16:50:51 allender
* transparency/kitchen change
*
* Revision 1.1 1995/05/16 15:24:59 allender
* Initial revision
*
* Revision 2.3 1995/03/24 14:49:04 john
* Added cheat for player to go thru walls.
*
* Revision 2.2 1995/03/21 17:58:32 john
* Fixed bug with normals..
*
*
* Revision 2.1 1995/03/20 18:15:37 john
* Added code to not store the normals in the segment structure.
*
* Revision 2.0 1995/02/27 11:27:41 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.49 1995/02/22 14:45:47 allender
* remove anonymous unions from object structure
*
* Revision 1.48 1995/02/22 13:24:50 john
* Removed the vecmat anonymous unions.
*
* Revision 1.47 1995/02/07 16:17:26 matt
* Disabled all robot-robot collisions except those involving two green
* guys. Used to do collisions if either robot was green guy.
*
* Revision 1.46 1995/02/02 14:07:53 matt
* Fixed confusion about which segment you are touching when you're
* touching a wall. This manifested itself in spurious lava burns.
*
* Revision 1.45 1995/02/02 13:45:53 matt
* Made a bunch of lint-inspired changes
*
* Revision 1.44 1995/01/24 12:10:17 matt
* Fudged collisions for player/player, and player weapon/other player in
* coop games.
*
* Revision 1.43 1995/01/14 19:16:45 john
* First version of new bitmap paging code.
*
* Revision 1.42 1994/12/15 12:22:40 matt
* Small change which may or may not help
*
* Revision 1.41 1994/12/14 11:45:51 matt
* Fixed (hopefully) little bug with invalid segnum
*
* Revision 1.40 1994/12/13 17:12:01 matt
* Increased edge tolerance a bunch more
*
* Revision 1.39 1994/12/13 14:37:59 matt
* Fixed another stupid little bug
*
* Revision 1.38 1994/12/13 13:25:44 matt
* Increased tolerance massively to avoid catching on corners
*
* Revision 1.37 1994/12/13 12:02:20 matt
* Fixed small bug
*
* Revision 1.36 1994/12/13 11:17:35 matt
* Lots of changes to hopefully fix objects leaving the mine. Note that
* this code should be considered somewhat experimental - one problem I
* know about is that you can get stuck on edges more easily than before.
* There may be other problems I don't know about yet.
*
* Revision 1.35 1994/12/12 01:20:57 matt
* Added hack in object-object collisions that treats claw guys as
* if they have 3/4 of their actual radius.
*
* Revision 1.34 1994/12/04 22:48:39 matt
* Physics & FVI now only build seglist for player objects, and they
* responsilby deal with buffer full conditions
*
* Revision 1.33 1994/12/04 22:07:05 matt
* Added better handing of buffer full condition
*
* Revision 1.32 1994/12/01 21:06:33 matt
* Several important changes:
* (1) Checking against triangulated sides has been standardized a bit
* (2) Code has been added to de-triangulate some sides
* (3) BIG ONE: the tolerance for checking a point against a plane has
* been drastically relaxed
*
*
* Revision 1.31 1994/11/27 23:15:03 matt
* Made changes for new mprintf calling convention
*
* Revision 1.30 1994/11/19 15:20:30 mike
* rip out unused code and data
*
* Revision 1.29 1994/11/16 12:18:17 mike
* hack for green_guy:green_guy collision detection.
*
* Revision 1.28 1994/11/10 13:08:54 matt
* Added support for new run-length-encoded bitmaps
*
* Revision 1.27 1994/10/31 12:27:51 matt
* Added new function object_intersects_wall()
*
* Revision 1.26 1994/10/20 13:59:27 matt
* Added assert
*
* Revision 1.25 1994/10/09 23:51:09 matt
* Made find_hitpoint_uv() work with triangulated sides
*
* Revision 1.24 1994/09/25 00:39:29 matt
* Took out mprintf's
*
* Revision 1.23 1994/09/25 00:37:53 matt
* Made the 'find the point in the bitmap where something hit' system
* publicly accessible.
*
* Revision 1.22 1994/09/21 16:58:22 matt
* Fixed bug in trans wall check that was checking against verically
* flipped bitmap (i.e., the y coord was negative when checking).
*
* Revision 1.21 1994/09/02 11:31:40 matt
* Fixed object/object collisions, so you can't fly through robots anymore.
* Cleaned up object damage system.
*
* Revision 1.20 1994/08/26 09:42:03 matt
* Increased the size of a buffer
*
* Revision 1.19 1994/08/11 18:57:53 mike
* Convert shorts to ints for optimization.
*
* Revision 1.18 1994/08/08 21:38:24 matt
* Put in small optimization
*
* Revision 1.17 1994/08/08 12:21:52 yuan
* Fixed assert
*
* Revision 1.16 1994/08/08 11:47:04 matt
* Cleaned up fvi and physics a little
*
* Revision 1.15 1994/08/04 00:21:04 matt
* Cleaned up fvi & physics error handling; put in code to make sure objects
* are in correct segment; simplified segment finding for objects and points
*
* Revision 1.14 1994/08/02 19:04:26 matt
* Cleaned up vertex list functions
*
* Revision 1.13 1994/08/02 09:56:28 matt
* Put in check for bad value find_plane_line_intersection()
*
* Revision 1.12 1994/08/01 17:27:26 matt
* Added support for triangulated walls in trans point check
*
* Revision 1.11 1994/08/01 13:30:40 matt
* Made fvi() check holes in transparent walls, and changed fvi() calling
* parms to take all input data in query structure.
*
* Revision 1.10 1994/07/13 21:47:17 matt
* FVI() and physics now keep lists of segments passed through which the
* trigger code uses.
*
* Revision 1.9 1994/07/09 21:21:40 matt
* Fixed, hopefull, bugs in sphere-to-vector intersection code
*
* Revision 1.8 1994/07/08 14:26:42 matt
* Non-needed powerups don't get picked up now; this required changing FVI to
* take a list of ingore objects rather than just one ignore object.
*
* Revision 1.7 1994/07/06 20:02:37 matt
* Made change to match gameseg that uses lowest point number as reference
* point when checking against a plane
*
* Revision 1.6 1994/06/29 15:43:58 matt
* When computing intersection of vector and sphere, use the radii of both
* objects.
*
* Revision 1.5 1994/06/14 15:57:58 matt
* Took out asserts, and added other hacks, pending real bug fixes
*
* Revision 1.4 1994/06/13 23:10:08 matt
* Fixed problems with triangulated sides
*
* Revision 1.3 1994/06/09 12:11:14 matt
* Fixed confusing use of two variables, hit_objnum & fvi_hit_object, to
* keep the same information in different ways.
*
* Revision 1.2 1994/06/09 09:58:38 matt
* Moved find_vector_intersection() from physics.c to new file fvi.c
*
* Revision 1.1 1994/06/09 09:25:57 matt
* Initial revision
------------------------------------------------------------------------
main/fvi.h:
* Revision 1.2 1995/08/23 21:34:29 allender
* fix mcc compiler warning
*
* Revision 1.1 1995/05/16 15:56:38 allender
* Initial revision
*
* Revision 2.1 1995/03/20 18:15:58 john
* Added code to not store the normals in the segment structure.
*
* Revision 2.0 1995/02/27 11:32:02 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.10 1995/02/02 14:07:58 matt
* Fixed confusion about which segment you are touching when you're
* touching a wall. This manifested itself in spurious lava burns.
*
* Revision 1.9 1994/12/04 22:48:04 matt
* Physics & FVI now only build seglist for player objects, and they
* responsilby deal with buffer full conditions
*
* Revision 1.8 1994/10/31 12:28:01 matt
* Added new function object_intersects_wall()
*
* Revision 1.7 1994/10/10 13:10:00 matt
* Increased max_fvi_segs
*
* Revision 1.6 1994/09/25 00:38:29 matt
* Made the 'find the point in the bitmap where something hit' system
* publicly accessible.
*
* Revision 1.5 1994/08/01 13:30:35 matt
* Made fvi() check holes in transparent walls, and changed fvi() calling
* parms to take all input data in query structure.
*
* Revision 1.4 1994/07/13 21:47:59 matt
* FVI() and physics now keep lists of segments passed through which the
* trigger code uses.
*
* Revision 1.3 1994/07/08 14:27:26 matt
* Non-needed powerups don't get picked up now; this required changing FVI to
* take a list of ingore objects rather than just one ignore object.
*
* Revision 1.2 1994/06/09 09:58:39 matt
* Moved find_vector_intersection() from physics.c to new file fvi.c
*
* Revision 1.1 1994/06/09 09:26:14 matt
* Initial revision
------------------------------------------------------------------------
main/game.c:
* Revision 1.1 1995/12/05 16:01:09 allender
* Initial revision
*
* Revision 1.38 1995/11/13 13:02:35 allender
* put up HUD message when player starts tournament
*
* Revision 1.37 1995/11/13 09:21:05 allender
* ved and shorted tournament mode messages
*
* Revision 1.36 1995/11/09 17:27:00 allender
* took out cheats during demo playback
*
* Revision 1.35 1995/11/07 17:05:41 allender
* move registered cheats
*
* Revision 1.34 1995/11/03 12:55:45 allender
* shareware changes
*
* Revision 1.33 1995/10/29 20:15:00 allender
* took out frame rate cheat. Pause for at least a second because
* of cmd-P problem
*
* Revision 1.32 1995/10/26 14:11:26 allender
* fix up message box stuff to align correctly
*
* Revision 1.31 1995/10/24 18:09:41 allender
* ixed cockpit weirdness -- don't update cockpit when do_appl_quit
* is called -- screen saved in mevent.c
*
* Revision 1.30 1995/10/21 23:39:10 allender
* ruise marking indicator
*
* Revision 1.29 1995/10/21 22:52:27 allender
* bald guy cheat -- print screen stuff
*
* Revision 1.28 1995/10/20 00:54:28 allender
* new help menus and redbook checking in outer game loop
*
* Revision 1.27 1995/10/17 15:34:19 allender
* pixel double is now default mode
*
* Revision 1.26 1995/10/12 17:34:44 allender
* bigger message box -- command key equivs for function keys
*
* Revision 1.25 1995/10/11 12:17:14 allender
* removed event loop processing
*
* Revision 1.24 1995/10/11 00:58:47 allender
* removed debugging code
*
* Revision 1.23 1995/10/10 11:50:32 allender
* fixed boxed message to align on 8 byte boundry,
* and some debug code
*
* Revision 1.22 1995/09/24 10:51:26 allender
* cannot go to finder in network..added cmd-q for quit
*
* Revision 1.21 1995/09/22 15:05:18 allender
* *more* hud and font type stuff (messages)
*
* Revision 1.20 1995/09/22 14:39:57 allender
* ved framerate counter up
*
* Revision 1.19 1995/09/18 17:01:28 allender
* start of compatibility stuff
*
* Revision 1.18 1995/09/15 15:53:13 allender
* better handling of PICT screen shots
*
* Revision 1.17 1995/09/14 15:27:41 allender
* fixed function type on message_box routiens
*
* Revision 1.16 1995/09/13 11:37:47 allender
* put in call to dump PICT file instead of PCX
*
* Revision 1.15 1995/09/08 17:13:28 allender
* put back in ibitblt.h and start of PICT picture dump
*
* Revision 1.14 1995/09/07 10:20:58 allender
* make cockpit mode default
*
* Revision 1.13 1995/09/07 10:17:34 allender
* added command key equivalents for function keys
*
* Revision 1.12 1995/09/04 11:36:47 allender
* fixed pixel double mode to have correct number of rendered
* lines
*
* Revision 1.11 1995/09/01 15:47:07 allender
* cap frame rate at 60 fps
*
* Revision 1.10 1995/08/26 16:25:59 allender
* whole buncha' stuff!!!!
*
* Revision 1.9 1995/08/01 16:04:47 allender
* put in ctrl_esc sequence to go to menubar
*
* Revision 1.8 1995/07/28 14:15:11 allender
* added FRAME cheat to display frame rate
*
* Revision 1.7 1995/07/17 08:54:19 allender
* *** empty log message ***
*
* Revision 1.6 1995/07/12 12:54:06 allender
* removed some debug keys
*
* Revision 1.5 1995/07/05 16:44:35 allender
* changed some debug keys
*
* Revision 1.4 1995/06/23 10:24:57 allender
* added scanline doubling routine
*
* Revision 1.3 1995/06/13 13:08:26 allender
* added special debug key to move window into upper left corner.
* also added debug key to put game in 640x480 mode
*
* Revision 1.2 1995/06/12 11:10:31 allender
* added DEL_SHIFT_M to move window to corner of screen
*
* Revision 1.1 1995/05/16 15:25:08 allender
* Initial revision
*
* Revision 2.36 1996/01/05 16:52:05 john
* Improved 3d stuff.
*
* Revision 2.35 1995/10/09 22:17:10 john
* Took out the page flipping in set_screen_mode, which shouldn't
* be there. This was hosing the modex stuff.
*
* Revision 2.34 1995/10/09 19:46:34 john
* Fixed bug with modex paging with lcdbios.
*
* Revision 2.33 1995/10/08 11:46:09 john
* Fixed bug with 2d offset in interlaced mode in low res.
* Made LCDBIOS with pageflipping using VESA set start
* Address function. X=CRTC offset, Y=0.
*
* Revision 2.32 1995/10/07 13:20:51 john
* Added new modes for LCDBIOS, also added support for -JoyNice,
* and added Shift+F1-F4 to controls various stereoscopic params.
*
* Revision 2.31 1995/05/31 14:34:43 unknown
* fixed warnings.
*
* Revision 2.30 1995/05/08 11:23:45 john
* Made 3dmax work like Kasan wants it to.
*
* Revision 2.29 1995/04/06 13:47:39 yuan
* Restored rear view to original.
*
* Revision 2.28 1995/04/06 12:13:07 john
* Fixed some bugs with 3dmax.
*
* Revision 2.27 1995/04/05 13:18:18 mike
* decrease energy usage on fusion cannon
*
* Revision 2.26 1995/03/30 16:36:32 mike
* text localization.
*
* Revision 2.25 1995/03/27 16:45:26 john
* Fixed some cheat bugs. Added astral cheat.
*
* Revision 2.24 1995/03/27 15:37:11 mike
* boost fusion cannon for non-multiplayer modes.
*
* Revision 2.23 1995/03/24 17:48:04 john
* Fixed bug with menus and 320x100.
*
* Revision 2.22 1995/03/24 15:34:02 mike
* cheats.
*
* Revision 2.21 1995/03/24 13:11:39 john
* Added save game during briefing screens.
*
* Revision 2.20 1995/03/21 14:40:50 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.19 1995/03/16 22:07:16 john
* Made so only for screen can be used for anything other
* than mode 13.
*
* Revision 2.18 1995/03/16 21:45:35 john
* Made all paged modes have incompatible menus!
*
* Revision 2.17 1995/03/16 18:30:35 john
* Made wider than 320 screens not have
* a status bar mode.
*
* Revision 2.16 1995/03/16 10:53:34 john
* Move VFX center to Shift+Z instead of Enter because
* it conflicted with toggling HUD on/off.
*
* Revision 2.15 1995/03/16 10:18:33 john
* Fixed bug with VFX mode not working. also made warning
* when it can't set VESA mode.
*
* Revision 2.14 1995/03/14 16:22:39 john
* Added cdrom alternate directory stuff.
*
* Revision 2.13 1995/03/14 12:14:17 john
* Made VR helmets have 4 resolutions to choose from.
*
* Revision 2.12 1995/03/10 13:47:33 john
* Added head tracking sensitivity.
*
* Revision 2.11 1995/03/10 13:13:47 john
* Added code to show T-xx on iglasses.
*
* Revision 2.10 1995/03/09 18:07:29 john
* Fixed bug with iglasses tracking not "centering" right.
* Made VFX have bright headlight lighting.
*
* Revision 2.9 1995/03/09 11:48:02 john
* Added HUD for VR helmets.
*
* Revision 2.8 1995/03/07 15:12:53 john
* Fixed VFX,3dmax support.
*
* Revision 2.7 1995/03/07 11:35:03 john
* Fixed bug with cockpit in rear view.
*
* Revision 2.6 1995/03/06 18:40:17 john
* Added some ifdef EDITOR stuff.
*
* Revision 2.5 1995/03/06 18:31:21 john
* Fixed bug with nmenu popping up on editor screen.
*
* Revision 2.4 1995/03/06 17:28:33 john
* Fixed but with cockpit toggling wrong.
*
* Revision 2.3 1995/03/06 16:08:10 mike
* Fix compile errors if building without editor.
*
* Revision 2.2 1995/03/06 15:24:10 john
* New screen techniques.
*
* Revision 2.1 1995/02/27 13:41:03 john
* Removed floating point from frame rate calculations.
*
* Revision 2.0 1995/02/27 11:31:54 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.770 1995/02/22 12:45:15 allender
* remove anonymous unions from object structure
*
* Revision 1.769 1995/02/15 10:06:25 allender
* make pause pause game during demo playback
*
* Revision 1.768 1995/02/13 20:35:11 john
* Lintized
*
* Revision 1.767 1995/02/13 19:40:29 allender
* added place to demo record restoration from rear view in place that
* I forgot before
*
* Revision 1.766 1995/02/13 10:29:27 john
* Fixed bug with cheats not restoreing across save games.
*
* Revision 1.765 1995/02/11 22:54:33 john
* Made loading for pig not show up for demos.
*
* Revision 1.764 1995/02/11 17:30:08 allender
* ifndef NDEBUG around strip frame stuff
*
* Revision 1.763 1995/02/11 17:13:01 rob
* Took out modem.c code fille stuff.
*
* Revision 1.762 1995/02/11 16:36:47 allender
* debug key to strip frames from end of demo
*
* Revision 1.761 1995/02/11 14:29:16 john
* Turned off cheats when going into game.
*
* Revision 1.760 1995/02/11 13:46:54 mike
* fix cheats.
*
* Revision 1.759 1995/02/11 12:36:09 matt
* Cleaned up cheats
*
* Revision 1.758 1995/02/11 12:27:04 mike
* fix path-to-exit cheat.
*
* Revision 1.757 1995/02/11 01:56:24 mike
* robots don't fire cheat.
*
* Revision 1.756 1995/02/10 16:38:40 mike
* illuminate path to exit cheat.
*
* Revision 1.755 1995/02/10 16:19:40 mike
* new show-path-to-exit system, still buggy, compiled out.
*
* Revision 1.754 1995/02/10 15:54:46 matt
* Added new cheats
*
* Revision 1.753 1995/02/09 12:25:42 matt
* Made mem_fill() test routines not be called if RELEASE
*
* Revision 1.752 1995/02/09 08:49:32 mike
* change fill opcode value to 0xcc, int 3 value.
*
*
* Revision 1.751 1995/02/09 02:59:26 mike
* check code for 00066xxx bugs.
*
* Revision 1.750 1995/02/08 17:10:02 mike
* add, but don't call, debug code.
*
* Revision 1.749 1995/02/07 11:07:27 john
* Added hooks for confirm on game state restore.
*
* Revision 1.748 1995/02/06 15:52:45 mike
* add mini megawow powerup for giving reasonable weapons.
*
* Revision 1.747 1995/02/06 12:53:35 allender
* force endlevel_sequence to 0 to fix weird bug
*
* Revision 1.746 1995/02/04 10:03:30 mike
* Fly to exit cheat.
*
* Revision 1.745 1995/02/02 15:57:52 john
* Added turbo mode cheat.
*
* Revision 1.744 1995/02/02 14:43:39 john
* Uppped frametime limit to 150 Hz.
*
* Revision 1.743 1995/02/02 13:37:16 mike
* move T-?? message down in certain modes.
*
* Revision 1.742 1995/02/02 01:26:59 john
* Took out no key repeating.
*
* Revision 1.741 1995/01/29 21:36:44 mike
* make fusion cannon not make pitching slow.
*
* Revision 1.740 1995/01/28 15:57:57 john
* Made joystick calibration be only when wrong detected in
* menu or joystick axis changed.
*
* Revision 1.739 1995/01/28 15:21:03 yuan
* Added X-tra life cheat.
*
* Revision 1.738 1995/01/27 14:08:31 rob
* Fixed a bug.
*
* Revision 1.737 1995/01/27 14:04:59 rob
* Its not my fault, Mark told me to do it!
*
* Revision 1.736 1995/01/27 13:12:18 rob
* Added charging noises to play across net.
*
* Revision 1.735 1995/01/27 11:48:28 allender
* check for newdemo_state to be paused and stop recording. We might be
* in between levels
*
* Revision 1.734 1995/01/26 22:11:41 mike
* Purple chromo-blaster (ie, fusion cannon) spruce up (chromification)
*
* Revision 1.733 1995/01/26 17:03:04 mike
* make fusion cannon have more chrome, make fusion, mega rock you!
*
* Revision 1.732 1995/01/25 14:37:25 john
* Made joystick only prompt for calibration once...
*
* Revision 1.731 1995/01/24 15:49:14 john
* Made typeing in long net messages wrap on
* small screen sizes.
*
* Revision 1.730 1995/01/24 15:23:42 mike
* network message tweaking.
*
* Revision 1.729 1995/01/24 12:00:47 john
* Fixed bug with defing macro passing keys to controls.
*
* Revision 1.728 1995/01/24 11:53:35 john
* Added better macro defining code.
*
* Revision 1.727 1995/01/23 22:17:15 john
* Fixed bug with not clearing key buffer when leaving f8.
*
* Revision 1.726 1995/01/23 22:07:09 john
* Added flush to game inputs during F8.
------------------------------------------------------------------------
main/game.h:
* Revision 1.3 1995/09/14 13:44:34 allender
* fixed function prototypes to have void return value to satify
* moto compiler
*
* Revision 1.2 1995/08/17 09:25:05 allender
* externed Scanline_double variable
*
* Revision 1.1 1995/05/16 15:56:46 allender
* Initial revision
*
* Revision 2.1 1995/03/06 15:23:22 john
* New screen techniques.
*
* Revision 2.0 1995/02/27 11:28:21 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.79 1995/02/13 10:37:17 john
* Saved Buggin' cheat mode to save file.
*
* Revision 1.78 1995/02/01 16:34:12 john
* Linted.
*
* Revision 1.77 1995/01/29 21:37:14 mike
* initialize variables on game load so you don't drain your energy when you fire.
*
* Revision 1.76 1995/01/26 22:11:36 mike
* Purple chromo-blaster (ie, fusion cannon) spruce up (chromification)
*
* Revision 1.75 1995/01/26 16:45:31 mike
* Add autofire fusion cannon stuff.
*
* Revision 1.74 1994/12/11 23:18:06 john
* Added -nomusic.
* Added RealFrameTime.
* Put in a pause when sound initialization error.
* Made controlcen countdown and framerate use RealFrameTime.
*
* Revision 1.73 1994/12/09 00:41:24 mike
* fix hang in automap print screen
*
* Revision 1.72 1994/12/04 13:47:00 mike
* enhance custom detail level support.
*
* Revision 1.71 1994/12/02 15:05:44 matt
* Added new "official" cheats
*
* Revision 1.70 1994/11/28 18:14:09 rob
* Added game_mode flag for team games.
*
* Revision 1.69 1994/11/15 16:51:13 matt
* Made rear view only switch to rear cockpit if cockpit on in front view
*
* Revision 1.68 1994/11/04 16:26:10 john
* Fixed bug with letterbox mode game after you finish a game.
*
* Revision 1.67 1994/11/02 11:59:48 john
* Moved menu out of game into inferno main loop.
*
* Revision 1.66 1994/10/26 23:02:19 matt
* Made palette flash saturate negative values
*
* Revision 1.65 1994/10/26 15:21:05 mike
* Detail level stuff. Make Render_depth public.
*
* Revision 1.64 1994/10/19 00:13:01 matt
* Added prototypes
*
* Revision 1.63 1994/10/09 14:54:39 matt
* Made player cockpit state & window size save/restore with saved games & automap
*
* Revision 1.62 1994/10/08 19:56:32 matt
* Added prototype
*
* Revision 1.61 1994/10/07 22:19:32 mike
* Increase number of difficulty levels from 4 to 5.
*
* Revision 1.60 1994/10/06 14:14:11 matt
* Added new function to reset time (to prevent big FrameTime) at start of level
*
* Revision 1.59 1994/10/05 17:08:43 matt
* Changed order of cockpit bitmaps, since there's no longer a full-screen cockpit
*
* Revision 1.58 1994/10/03 23:44:13 matt
* Save & restore palette effect around menus & pause message
*
* Revision 1.57 1994/09/29 17:42:12 matt
* Cleaned up game_mode a little
*
* Revision 1.56 1994/09/28 23:12:01 matt
* Macroized palette flash system
*
* Revision 1.55 1994/09/24 16:56:13 rob
* Added new fields for the Game_mode bitvector for modem play.
*
* Revision 1.54 1994/09/24 14:16:20 mike
* Added new game mode constants.
*
* Revision 1.53 1994/09/22 19:00:57 mike
* Move NDL from robot.h to here.
*
* Revision 1.52 1994/09/22 10:46:51 mike
* Add difficulty levels.
*
* Revision 1.51 1994/09/17 01:39:52 matt
* Added status bar/sizable window mode, and in the process revamped the
* whole cockpit mode system.
*
* Revision 1.50 1994/09/15 21:23:10 matt
* Changed system to keep track of whether & what cockpit is up
*
* Revision 1.49 1994/09/15 16:11:33 john
* Added support for VFX1 head tracking. Fixed bug with memory over-
* write when using stereo mode.
*
* Revision 1.48 1994/09/13 16:40:10 mike
* Prototype Global_missile_firing_count.
*
* Revision 1.47 1994/09/13 11:19:05 mike
* Add Next_missile_fire_time.
*
* Revision 1.46 1994/09/12 09:52:50 john
* Made global flush function that flushes keyboard,mouse, and joystick.
*
* Revision 1.45 1994/09/03 15:24:14 mike
* Make global Global_laser_firing_count.
*
* Revision 1.44 1994/08/31 19:26:57 mike
* Prototypes for Next_laser_fire_time, Laser_delay_time.
*
* Revision 1.43 1994/08/18 10:47:22 john
* Cleaned up game sequencing and player death stuff
* in preparation for making the player explode into
* pieces when dead.
*
* Revision 1.42 1994/08/11 18:03:53 matt
* Added prototype
*
* Revision 1.41 1994/06/29 20:41:38 matt
* Added new pause mode; cleaned up countdown & game startup code
*
* Revision 1.40 1994/06/24 17:03:49 john
* Added VFX support. Also took all game sequencing stuff like
* EndGame out and put it into gameseq.c
*
* Revision 1.39 1994/06/20 15:01:08 yuan
* Added death when mine blows up...
* Continues onto next level.
*
* Revision 1.38 1994/06/17 18:07:20 matt
* Moved some vars out of ifdef
*
* Revision 1.37 1994/06/15 11:09:22 yuan
* Moved gauge_message to mono screen for now.
*
* Revision 1.36 1994/05/30 20:22:11 yuan
* New triggers.
*
* Revision 1.35 1994/05/27 10:32:48 yuan
* New dialog boxes (Walls and Triggers) added.
*
*
* Revision 1.34 1994/05/20 11:56:45 matt
* Cleaned up find_vector_intersection() interface
* Killed check_point_in_seg(), check_player_seg(), check_object_seg()
*
* Revision 1.33 1994/05/19 21:45:21 matt
* Removed unused prototypes
*
* Revision 1.32 1994/05/19 18:53:17 yuan
* Changing player structure...
*
* Revision 1.31 1994/05/16 16:38:35 yuan
* Fixed palette add so it doesn't show up in the menu.
*
* Revision 1.30 1994/05/16 09:28:17 matt
* Renamed init_player() to be init_player_stats(), added new funtion
* init_player_object()
*
* Revision 1.29 1994/05/14 17:14:57 matt
* Got rid of externs in source (non-header) files
------------------------------------------------------------------------
main/gamefont.c:
* Revision 1.2 1995/08/18 10:23:25 allender
* remove refernce to big font -- add PC small font for pixel
* doubling display
*
* Revision 1.1 1995/05/16 15:25:22 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:30:14 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.8 1994/11/18 16:41:39 adam
* trimmed some meat
*
* Revision 1.7 1994/11/17 13:07:11 adam
* removed unused font
*
* Revision 1.6 1994/11/03 21:36:12 john
* Added code for credit fonts.
*
* Revision 1.5 1994/08/17 20:20:02 matt
* Took out alternate-color versions of font3, since this is a mono font
*
* Revision 1.4 1994/08/12 12:03:44 adam
* tweaked fonts.
*
* Revision 1.3 1994/08/11 12:43:40 adam
* changed font filenames
*
* Revision 1.2 1994/08/10 19:57:15 john
* Changed font stuff; Took out old menu; messed up lots of
* other stuff like game sequencing messages, etc.
*
* Revision 1.1 1994/08/10 17:20:09 john
* Initial revision
------------------------------------------------------------------------
main/gamefont.h:
* Revision 1.2 1995/08/18 10:23:54 allender
* removed large font -- added PC small font
*
* Revision 1.1 1995/05/16 15:56:55 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:31:09 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.7 1994/11/18 16:41:28 adam
* trimmed meat
*
* Revision 1.6 1994/11/17 13:07:00 adam
* removed unused font
*
* Revision 1.5 1994/11/03 21:36:02 john
* Added code for credit fonts.
*
* Revision 1.4 1994/08/17 20:20:25 matt
* Took out alternate-color versions of font3, since this is a mono font
*
* Revision 1.3 1994/08/11 12:44:32 adam
* killed a #define
*
* Revision 1.2 1994/08/10 19:57:16 john
* Changed font stuff; Took out old menu; messed up lots of
* other stuff like game sequencing messages, etc.
*
* Revision 1.1 1994/08/10 17:20:22 john
* Initial revision
------------------------------------------------------------------------
main/gamemine.c:
* Revision 1.2 1995/10/31 10:15:58 allender
* code for shareware levels
*
* Revision 1.1 1995/05/16 15:25:29 allender
* Initial revision
*
* Revision 2.2 1995/03/06 15:23:14 john
* New screen techniques.
*
* Revision 2.1 1995/02/27 13:13:37 john
* Removed floating point.
*
* Revision 2.0 1995/02/27 11:27:45 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.70 1995/02/13 20:35:09 john
* Lintized
*
* Revision 1.69 1995/02/07 17:12:03 rob
* Added ifdef's for Editor.
*
* Revision 1.68 1995/02/07 16:51:48 mike
* fix gray rock josh problem.
*
* Revision 1.67 1995/02/01 15:46:26 yuan
* Fixed matcen_nums.
*
* Revision 1.66 1995/01/19 15:19:28 mike
* new super-compressed registered file format.
*
* Revision 1.65 1994/12/10 16:44:59 matt
* Added debugging code to track down door that turns into rock
*
* Revision 1.64 1994/12/10 14:58:24 yuan
* *** empty log message ***
*
* Revision 1.63 1994/12/08 17:19:10 yuan
* Cfiling stuff.
*
* Revision 1.62 1994/12/07 14:05:33 yuan
* Fixed wall assert problem... Bashed highest_segment
* _index before WALL_IS_DOORWAY check.
*
* Revision 1.61 1994/11/27 23:14:52 matt
* Made changes for new mprintf calling convention
*
* Revision 1.60 1994/11/27 18:05:20 matt
* Compile out LVL reader when editor compiled out
*
* Revision 1.59 1994/11/26 22:51:45 matt
* Removed editor-only fields from segment structure when editor is compiled
* out, and padded segment structure to even multiple of 4 bytes.
*
* Revision 1.58 1994/11/26 21:48:02 matt
* Fixed saturation in short light value
*
* Revision 1.57 1994/11/20 22:11:49 mike
* comment out an apparently unnecessary call to fuelcen_reset().
*
* Revision 1.56 1994/11/18 21:56:42 john
* Added a better, leaner pig format.
*
* Revision 1.55 1994/11/17 20:09:18 john
* Added new compiled level format.
*
* Revision 1.54 1994/11/17 15:40:17 mike
* Comment out mprintf which was causing important information to scroll away.
*
* Revision 1.53 1994/11/17 14:56:37 mike
* moved segment validation functions from editor to main.
*
* Revision 1.52 1994/11/17 11:39:35 matt
* Ripped out code to load old mines
*
* Revision 1.51 1994/11/14 20:47:53 john
* Attempted to strip out all the code in the game
* directory that uses any ui code.
*
* Revision 1.50 1994/11/14 16:05:38 matt
* Fixed, maybe, again, errors when can't find texture during remap
*
* Revision 1.49 1994/11/14 14:34:03 matt
* Fixed up handling when textures can't be found during remap
*
* Revision 1.48 1994/11/14 13:01:55 matt
* Added Int3() when can't find texture
*
* Revision 1.47 1994/10/30 14:12:21 mike
* rip out local segments stuff.
*
* Revision 1.46 1994/10/27 19:43:07 john
* Disable the piglet option.
*
* Revision 1.45 1994/10/27 18:51:42 john
* Added -piglet option that only loads needed textures for a
* mine. Only saved ~1MB, and code still doesn't free textures
* before you load a new mine.
*
* Revision 1.44 1994/10/20 12:47:22 matt
* Replace old save files (MIN/SAV/HOT) with new LVL files
*
* Revision 1.43 1994/10/19 16:46:40 matt
* Made tmap overrides for robots remap texture numbers
*
* Revision 1.42 1994/10/03 23:37:01 mike
* Adapt to changed fuelcen_activate parameters.
*
* Revision 1.41 1994/09/23 22:14:49 matt
* Took out obsolete structure fields
*
* Revision 1.40 1994/08/01 11:04:11 yuan
* New materialization centers.
*
* Revision 1.39 1994/07/21 19:01:47 mike
* Call Lsegment stuff.
------------------------------------------------------------------------
main/gamemine.h:
* Revision 1.1 1995/05/16 15:57:02 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:28:50 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.15 1994/11/17 11:39:34 matt
* Ripped out code to load old mines
*
* Revision 1.14 1994/10/19 16:46:40 matt
* Made tmap overrides for robots remap texture numbers
*
* Revision 1.13 1994/09/23 22:14:37 matt
* Took out obsolete structure fields
*
* Revision 1.12 1994/07/22 12:36:32 matt
* Cleaned up editor/game interactions some more.
*
* Revision 1.11 1994/06/01 11:21:37 yuan
* Added controlcentertriggers to the gamesave.
*
* Revision 1.10 1994/05/10 12:14:26 yuan
* Game save/load... Demo levels 1-5 added...
* High scores fixed...
*
* Revision 1.9 1994/05/04 18:25:05 yuan
* Working on gamesave.
*
* Revision 1.8 1994/05/03 15:53:27 yuan
* Readded structure field groups for backward compatibility...
*
* Revision 1.7 1994/05/03 11:36:26 yuan
* Stabilizing gamesave stuff.
*
* Revision 1.6 1994/04/28 11:01:32 yuan
* Added objects in structure.
*
* Revision 1.5 1994/04/06 18:30:03 john
* Added Refueling segments.
*
* Revision 1.4 1994/03/17 18:06:53 yuan
* Removed switch code... Now we just have Walls, Triggers, and Links...
*
* Revision 1.3 1994/03/01 18:12:24 yuan
* Wallswitches, triggers, and more!
*
* Revision 1.2 1994/02/10 15:36:01 matt
* Various changes to make editor compile out.
*
* Revision 1.1 1994/02/09 17:11:45 matt
* Initial revision
------------------------------------------------------------------------
main/gamesave.c:
* Revision 1.3 1996/02/21 13:59:17 allender
* check Data folder when can't open a level file from a hog
*
* Revision 1.2 1995/10/31 10:23:23 allender
* shareware stuff
*
* Revision 1.1 1995/05/16 15:25:37 allender
* Initial revision
*
* Revision 2.2 1995/04/23 14:53:12 john
* Made some mine structures read in with no structure packing problems.
*
* Revision 2.1 1995/03/20 18:15:43 john
* Added code to not store the normals in the segment structure.
*
* Revision 2.0 1995/02/27 11:29:50 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.207 1995/02/23 10:17:36 allender
* fixed parameter mismatch with compute_segment_center
*
* Revision 1.206 1995/02/22 14:51:17 allender
* fixed some things that I missed
*
* Revision 1.205 1995/02/22 13:31:38 allender
* remove anonymous unions from object structure
*
* Revision 1.204 1995/02/01 20:58:08 john
* Made editor check hog.
*
* Revision 1.203 1995/01/28 17:40:34 mike
* correct level names (use rdl, sdl) for dumpmine stuff.
*
* Revision 1.202 1995/01/25 20:03:46 matt
* Moved matrix check to avoid orthogonalizing an uninitialize matrix
*
* Revision 1.201 1995/01/20 16:56:53 mike
* remove some mprintfs.
*
* Revision 1.200 1995/01/15 19:42:13 matt
* Ripped out hostage faces for registered version
*
* Revision 1.199 1995/01/05 16:59:09 yuan
* Make it so if editor is loaded, don't get error from typo
* in filename.
*
* Revision 1.198 1994/12/19 12:49:46 mike
* Change fgets to cfgets. fgets was getting a pointer mismatch warning.
*
* Revision 1.197 1994/12/12 01:20:03 matt
* Took out object size hack for green claw guys
*
* Revision 1.196 1994/12/11 13:19:37 matt
* Restored calls to fix_object_segs() when debugging is turned off, since
* it's not a big routine, and could fix some possibly bad problems.
*
* Revision 1.195 1994/12/10 16:17:24 mike
* fix editor bug that was converting transparent walls into rock.
*
* Revision 1.194 1994/12/09 14:59:27 matt
* Added system to attach a fireball to another object for rendering purposes,
* so the fireball always renders on top of (after) the object.
*
* Revision 1.193 1994/12/08 17:19:02 yuan
* Cfiling stuff.
*
* Revision 1.192 1994/12/02 20:01:05 matt
* Always give vulcan cannon powerup same amount of ammo, regardless of
* how much it was saved with
*
* Revision 1.191 1994/11/30 17:45:57 yuan
* Saving files now creates RDL/SDLs instead of CDLs.
*
* Revision 1.190 1994/11/30 17:22:14 matt
* Ripped out hostage faces in shareware version
*
* Revision 1.189 1994/11/28 00:09:30 allender
* commented out call to newdemo_record_start_demo in load_level...what is
* this doing here anyway?????
*
* Revision 1.188 1994/11/27 23:13:48 matt
* Made changes for new mprintf calling convention
*
* Revision 1.187 1994/11/27 18:06:20 matt
* Cleaned up LVL/CDL file loading
*
* Revision 1.186 1994/11/25 22:46:29 matt
* Allow ESC out of compiled/normal menu (esc=compiled).
*
* Revision 1.185 1994/11/23 12:18:35 mike
* move level names here...a more logical place than dumpmine.
*
* Revision 1.184 1994/11/21 20:29:19 matt
* If hostage info is bad, fix it.
*
* Revision 1.183 1994/11/21 20:26:07 matt
* Fixed bug, I hope
*
* Revision 1.182 1994/11/21 20:20:37 matt
* Fixed stupid mistake
*
* Revision 1.181 1994/11/21 20:18:40 matt
* Fixed (hopefully) totally bogus writing of hostage data
*
* Revision 1.180 1994/11/20 14:11:56 matt
* Gracefully handle two hostages having same id
*
* Revision 1.179 1994/11/19 23:55:05 mike
* remove Assert, put in comment for Matt.
*
* Revision 1.178 1994/11/19 19:53:24 matt
* Added code to full support different hostage head clip & message for
* each hostage.
*
* Revision 1.177 1994/11/19 15:15:21 mike
* remove unused code and data
*
* Revision 1.176 1994/11/19 10:28:28 matt
* Took out write routines when editor compiled out
*
* Revision 1.175 1994/11/17 20:38:25 john
* Took out warning.
*
* Revision 1.174 1994/11/17 20:36:34 john
* Made it so that saving a mine will write the .cdl even
* if .lvl gets error.
*
* Revision 1.173 1994/11/17 20:26:19 john
* Made the game load whichever of .cdl or .lvl exists,
* and if they both exist, prompt the user for which one.
*
* Revision 1.172 1994/11/17 20:11:20 john
* Fixed warning.
*
* Revision 1.171 1994/11/17 20:09:26 john
* Added new compiled level format.
*
* Revision 1.170 1994/11/17 14:57:21 mike
* moved segment validation functions from editor to main.
*
* Revision 1.169 1994/11/17 11:39:21 matt
* Ripped out code to load old mines
*
* Revision 1.168 1994/11/16 11:24:53 matt
* Made attack-type robots have smaller radius, so they get closer to player
*
* Revision 1.167 1994/11/15 21:42:47 mike
* better error messages.
*
* Revision 1.166 1994/11/15 15:30:41 matt
* Save ptr to name of level being loaded
*
* Revision 1.165 1994/11/14 20:47:46 john
* Attempted to strip out all the code in the game
* directory that uses any ui code.
*
* Revision 1.164 1994/11/14 14:34:23 matt
* Fixed up handling when textures can't be found during remap
*
* Revision 1.163 1994/11/10 14:02:49 matt
* Hacked in support for player ships with different textures
*
* Revision 1.162 1994/11/06 14:38:17 mike
* Remove an apparently unnecessary mprintf.
*
* Revision 1.161 1994/10/30 14:11:28 mike
* ripout local segments stuff.
*
* Revision 1.160 1994/10/28 12:10:41 matt
* Check that was supposed to happen only when editor was in was happening
* only when editor was out.
*
* Revision 1.159 1994/10/27 11:25:32 matt
* Only do connectivity error check when editor in
*
* Revision 1.158 1994/10/27 10:54:00 matt
* Made connectivity error checking put up warning if errors found
*
* Revision 1.157 1994/10/25 10:50:54 matt
* Vulcan cannon powerups now contain ammo count
*
* Revision 1.156 1994/10/23 02:10:43 matt
* Got rid of obsolete hostage_info stuff
*
* Revision 1.155 1994/10/22 18:57:26 matt
* Added call to check_segment_connections()
*
* Revision 1.154 1994/10/21 12:19:23 matt
* Clear transient objects when saving (& loading) games
*
* Revision 1.153 1994/10/21 11:25:10 mike
* Use new constant IMMORTAL_TIME.
*
* Revision 1.152 1994/10/20 12:46:59 matt
* Replace old save files (MIN/SAV/HOT) with new LVL files
*
* Revision 1.151 1994/10/19 19:26:32 matt
* Fixed stupid bug
*
* Revision 1.150 1994/10/19 16:46:21 matt
* Made tmap overrides for robots remap texture numbers
*
* Revision 1.149 1994/10/18 08:50:27 yuan
* Fixed correct variable this time.
*
* Revision 1.148 1994/10/18 08:45:02 yuan
* Oops. forgot load function.
*
* Revision 1.147 1994/10/18 08:42:10 yuan
* Avoid the int3.
*
* Revision 1.146 1994/10/17 21:34:57 matt
* Added support for new Control Center/Main Reactor
*
* Revision 1.145 1994/10/15 19:06:34 mike
* Fix bug, maybe, having to do with something or other, ...
*
* Revision 1.144 1994/10/12 21:07:33 matt
* Killed unused field in object structure
*
* Revision 1.143 1994/10/06 14:52:55 mike
* Put check in to detect possibly bogus walls in last segment which leaked through an earlier check
* due to misuse of Highest_segment_index.
*
* Revision 1.142 1994/10/05 22:12:44 mike
* Put in cleanup for matcen/fuelcen links.
*
* Revision 1.141 1994/10/03 11:30:05 matt
* Make sure player in a valid segment before saving
*
* Revision 1.140 1994/09/28 11:14:41 mike
* Better error messaging on bogus mines: Only bring up dialog box if a "real" (level??.*) level.
*
* Revision 1.139 1994/09/28 09:22:58 mike
* Comment out a mprintf.
*
* Revision 1.138 1994/09/27 17:08:36 mike
* Message boxes when you load bogus mines.
*
* Revision 1.137 1994/09/27 15:43:45 mike
* Move the dump stuff to dumpmine.
*
* Revision 1.136 1994/09/27 00:02:31 mike
* Dump text files (".txm") when loading a mine, showing all kinds of useful mine info.
*
* Revision 1.135 1994/09/26 11:30:41 matt
* Took out code which loaded bogus player structure
*
* Revision 1.134 1994/09/26 11:18:44 john
* Fixed some conflicts with newseg.
*
* Revision 1.133 1994/09/26 10:56:58 matt
* Fixed inconsistancies in lifeleft for immortal objects
*
* Revision 1.132 1994/09/25 23:41:10 matt
* Changed the object load & save code to read/write the structure fields one
* at a time (rather than the whole structure at once). This mean that the
* object structure can be changed without breaking the load/save functions.
* As a result of this change, the local_object data can be and has been
* incorporated into the object array. Also, timeleft is now a property
* of all objects, and the object structure has been otherwise cleaned up.
------------------------------------------------------------------------
main/gamesave.h:
* Revision 1.1 1995/05/16 15:57:10 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:30:25 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.11 1994/11/23 12:19:32 mike
* detail level menu.
*
* Revision 1.10 1994/10/20 12:47:30 matt
* Replace old save files (MIN/SAV/HOT) with new LVL files
*
* Revision 1.9 1994/09/27 17:08:47 mike
* Message boxes when you load bogus mines.
*
* Revision 1.8 1994/09/27 15:43:05 mike
* Prototype write_game_text.
*
* Revision 1.7 1994/09/14 15:46:39 matt
* Added function load_mine_only()
*
* Revision 1.6 1994/07/22 12:36:28 matt
* Cleaned up editor/game interactions some more.
*
* Revision 1.5 1994/07/20 13:38:14 matt
* Added get_level_name() prototype
*
* Revision 1.4 1994/06/20 22:19:41 john
* Added Gamesave_num_org_robots.
*
* Revision 1.3 1994/06/14 11:32:49 john
* Made Newdemo record & restore the current mine.
*
* Revision 1.2 1994/05/14 17:16:25 matt
* Got rid of externs in source (non-header) files
*
* Revision 1.1 1994/05/14 16:01:26 matt
* Initial revision
------------------------------------------------------------------------
main/gameseg.c:
* Revision 1.9 1995/11/08 16:26:04 allender
* minor bug fix in find_connected_distance
*
* Revision 1.8 1995/10/12 17:36:55 allender
* made trace_segs only recurse 100 times max
*
* Revision 1.7 1995/10/11 18:29:01 allender
* removed Int3 from trace_segs
*
* Revision 1.6 1995/10/11 14:13:54 allender
* put in stack check code into trace-segs
*
* Revision 1.5 1995/09/23 09:40:25 allender
* put in casts in extract_shortpos to try and solve shortpos problem
* with appletalk
*
* Revision 1.4 1995/09/20 14:26:50 allender
* added flag to swap bytes on extract shortpot
*
* Revision 1.3 1995/08/12 12:01:27 allender
* added flag to create_shortpos to swap bytes
*
* Revision 1.2 1995/06/06 10:42:07 allender
* made shortpos routines swap bytes when extracting and making shortpos structures
*
* Revision 1.1 1995/05/16 15:25:46 allender
* Initial revision
*
* Revision 2.2 1995/03/20 18:15:39 john
* Added code to not store the normals in the segment structure.
*
* Revision 2.1 1995/03/08 12:11:39 allender
* fix shortpos reading/writing
*
* Revision 2.0 1995/02/27 11:29:21 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.78 1995/02/22 13:52:22 allender
* remove anonymous unions from object structure
*
* Revision 1.77 1995/02/22 13:24:47 john
* Removed the vecmat anonymous unions.
*
* Revision 1.76 1995/02/13 20:35:01 john
* Lintized
*
* Revision 1.75 1995/02/09 13:10:51 mike
* remove an annoying mprintf.
*
* Revision 1.74 1995/02/05 17:49:28 rob
* Added assert to gameseg.c.
*
* Revision 1.73 1995/02/02 00:49:26 mike
* new automap segment-depth functionality.
*
* Revision 1.72 1995/01/16 21:06:51 mike
* Move function pick_random_point_in_segment from fireball.c to gameseg.c.
*
* Revision 1.71 1994/12/21 19:54:32 matt
* Added error checking
*
* Revision 1.70 1994/12/11 21:34:09 matt
* Changed assert() to int3()
*
* Revision 1.69 1994/12/01 21:04:37 matt
* Several important changes:
* (1) Checking against triangulated sides has been standardized a bit
* (2) Code has been added to de-triangulate some sides
* (3) BIG ONE: the tolerance for checking a point against a plane has
* been drastically relaxed
*
*
* Revision 1.67 1994/11/27 23:12:21 matt
* Made changes for new mprintf calling convention
*
* Revision 1.66 1994/11/26 22:51:40 matt
* Removed editor-only fields from segment structure when editor is compiled
* out, and padded segment structure to even multiple of 4 bytes.
*
* Revision 1.65 1994/11/22 16:55:38 mike
* use memset in place of loop to clear array.
*
* Revision 1.64 1994/11/19 15:20:37 mike
* rip out unused code and data
*
* Revision 1.63 1994/11/18 18:31:48 matt
* Fixed code again (and maybe for real)
*
* Revision 1.62 1994/11/18 16:54:24 matt
* Fixed extract_orient_from_segment()
*
* Revision 1.61 1994/11/17 14:56:50 mike
* moved segment validation functions from editor to main.
*
* Revision 1.60 1994/11/16 23:38:53 mike
* new improved boss teleportation behavior.
*
* Revision 1.59 1994/10/30 14:12:46 mike
* rip out local segments stuff.
*
* Revision 1.58 1994/10/27 10:53:39 matt
* Made connectivity error checking put up warning if errors found
*
* Revision 1.57 1994/10/25 21:19:26 mike
* debugging code.
*
* Revision 1.56 1994/10/25 11:26:09 mike
* *** empty log message ***
*
* Revision 1.55 1994/10/22 22:36:08 matt
* Improved error finding routine
*
* Revision 1.54 1994/10/22 18:56:51 matt
* Fixed obscure bug in segment trace code
* Added error find routine, check_segment_connections()
*
* Revision 1.53 1994/10/17 14:05:19 matt
* Don't give recursion assert if doing lighting
*
* Revision 1.52 1994/10/15 19:03:48 mike
* Don't do exhaustive search in smooth lighting.
*
* Revision 1.51 1994/10/12 09:46:44 mike
* Add debug code for trapping exhaustive searches.
*
* Revision 1.50 1994/10/11 20:50:41 matt
* Made find_point_seg() take -1 as segnum, meaning to search all segments
*
* Revision 1.49 1994/10/11 17:40:31 matt
* Fixed bug that caused segment trace to only go through sides you can fly through
*
* Revision 1.48 1994/10/10 14:48:16 matt
* Fixed mistake that caused odd pauses and occasional int3's
*
* Revision 1.47 1994/10/09 23:50:41 matt
* Made find_hitpoint_uv() work with triangulated sides
*
* Revision 1.46 1994/10/08 23:06:52 matt
* trace_segs() didn't know about external walls
*
* Revision 1.45 1994/10/07 22:18:57 mike
* Put in asserts to trap bad segnums.
*
* Revision 1.44 1994/10/06 14:08:07 matt
* Added new function, extract_orient_from_segment()
*
* Revision 1.43 1994/10/04 16:24:11 mike
* Set global Connected_segment_distance for debug reasons for aipath.c.
*
* Revision 1.42 1994/10/04 09:18:42 mike
* Comment out a variable definition, preventing a warning message.
*
* Revision 1.41 1994/10/03 23:43:42 mike
* Put in a warning for overrunning point_segs buffer.
*
* Revision 1.40 1994/10/03 20:55:43 rob
* Added velocity to shortpos.
*
* Revision 1.39 1994/09/27 11:46:06 rob
* re-fixed that same bug (ugh).
*
* Revision 1.38 1994/09/27 10:10:51 rob
* Fixed bug in extract_shortpos (obj_relink added).
*
* Revision 1.37 1994/09/25 23:41:02 matt
* Changed the object load & save code to read/write the structure fields one
* at a time (rather than the whole structure at once). This mean that the
* object structure can be changed without breaking the load/save functions.
* As a result of this change, the local_object data can be and has been
* incorporated into the object array. Also, timeleft is now a property
* of all objects, and the object structure has been otherwise cleaned up.
*
* Revision 1.36 1994/09/22 19:03:05 mike
* Add shortpos manipulation functions create_shortpos and extract_shortpos.
*
* Revision 1.35 1994/09/19 21:21:16 mike
* Minor optimization to find_connected_distance.
*
* Revision 1.34 1994/09/19 21:05:25 mike
* Write function find_connected_distance,
* returns distance between two points as travellable through the mine.
*
* Revision 1.33 1994/08/30 15:07:15 matt
* Changed find_point_seg() to deal with some infinite recursion problems.
*
* Revision 1.32 1994/08/11 18:58:32 mike
* Use ints in place of shorts for optimization.
*
* Revision 1.31 1994/08/04 00:20:09 matt
* Cleaned up fvi & physics error handling; put in code to make sure objects
* are in correct segment; simplified segment finding for objects and points
*
* Revision 1.30 1994/08/03 16:46:12 mike
* not much...
*
* Revision 1.29 1994/08/02 20:41:31 matt
* Fixed bug in get_side_verts()
*
* Revision 1.28 1994/08/02 19:04:25 matt
* Cleaned up vertex list functions
*
* Revision 1.27 1994/08/01 10:39:44 matt
* find_new_seg() now will look through any kind of wall but a totally solid one
*
* Revision 1.26 1994/07/28 19:15:59 matt
* Fixed yet another bug in get_seg_masks()
------------------------------------------------------------------------
main/gameseg.h:
* Revision 1.1 1995/05/16 15:57:18 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:31:20 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.24 1995/02/01 16:34:03 john
* Linted.
*
* Revision 1.23 1995/01/16 21:06:36 mike
* Move function pick_random_point_in_segment from fireball.c to gameseg.c.
*
* Revision 1.22 1994/11/23 12:18:59 mike
* prototype for level names.
*
* Revision 1.21 1994/11/17 14:56:59 mike
* moved segment validation functions from editor to main.
*
* Revision 1.20 1994/11/16 23:38:46 mike
* new improved boss teleportation behavior.
*
* Revision 1.19 1994/10/30 14:12:14 mike
* rip out local segments stuff.
*
* Revision 1.18 1994/10/09 23:51:07 matt
* Made find_hitpoint_uv() work with triangulated sides
*
* Revision 1.17 1994/10/06 14:08:22 matt
* Added new function, extract_orient_from_segment()
*
* Revision 1.16 1994/09/19 21:05:52 mike
* Prototype for find_connected_distance.
*
* Revision 1.15 1994/08/11 18:58:45 mike
* Change shorts to ints.
*
* Revision 1.14 1994/08/04 00:21:09 matt
* Cleaned up fvi & physics error handling; put in code to make sure objects
* are in correct segment; simplified segment finding for objects and points
*
* Revision 1.13 1994/08/02 19:04:25 matt
* Cleaned up vertex list functions
*
* Revision 1.12 1994/07/21 19:01:53 mike
* lsegment stuff.
*
* Revision 1.11 1994/07/07 09:31:13 matt
* Added comments
*
* Revision 1.10 1994/06/14 12:21:20 matt
* Added new function, find_point_seg()
*
* Revision 1.9 1994/05/29 23:17:38 matt
* Move find_object_seg() from physics.c to gameseg.c
* Killed unused find_point_seg()
*
* Revision 1.8 1994/05/20 11:56:57 matt
* Cleaned up find_vector_intersection() interface
* Killed check_point_in_seg(), check_player_seg(), check_object_seg()
*
* Revision 1.7 1994/03/17 18:07:38 yuan
* Removed switch code... Now we just have Walls, Triggers, and Links...
*
* Revision 1.6 1994/02/22 18:14:44 yuan
* Added new wall system
*
* Revision 1.5 1994/02/17 11:33:22 matt
* Changes in object system
*
* Revision 1.4 1994/02/16 13:48:33 mike
* enable editor to compile out.
*
* Revision 1.3 1994/02/14 12:05:07 mike
* change segment data structure.
*
* Revision 1.2 1994/02/10 16:07:20 mike
* separate editor from game based on EDITOR flag.
*
* Revision 1.1 1994/02/09 15:45:38 mike
* Initial revision
------------------------------------------------------------------------
main/gameseq.c:
* Revision 1.1 1995/12/05 16:02:05 allender
* Initial revision
*
* Revision 1.14 1995/11/03 12:55:30 allender
* shareware changes
*
* Revision 1.13 1995/10/31 10:23:07 allender
* shareware stuff
*
* Revision 1.12 1995/10/18 18:25:02 allender
* call auto_select_weapon after initing ammo since that may
* change the secondary weapon status
*
* Revision 1.11 1995/10/17 13:17:11 allender
* added closebox when entering pilot name
*
* Revision 1.10 1995/09/24 10:56:59 allender
* new players must be looked for in Players directory
*
* Revision 1.9 1995/09/18 08:08:08 allender
* remove netgame binding if at endgame
*
* Revision 1.8 1995/09/14 14:13:01 allender
* initplayerobject have void return
*
* Revision 1.7 1995/08/31 12:54:42 allender
* try and fix bug
*
* Revision 1.6 1995/08/26 16:25:40 allender
* put return values on needed functions
*
* Revision 1.5 1995/08/14 09:26:28 allender
* added byteswap header files
*
* Revision 1.4 1995/08/01 13:57:42 allender
* macified player file stuff -- players stored in seperate folder
*
* Revision 1.3 1995/06/08 12:54:37 allender
* new function for calculating a segment based checksum since the old way
* is byte order dependent
*
* Revision 1.2 1995/06/02 07:42:10 allender
* removed duplicate extern for network_endlevel_poll2
*
* Revision 1.1 1995/05/16 15:25:56 allender
* Initial revision
*
* Revision 2.10 1995/12/19 15:48:25 john
* Made screen reset when loading new level.
*
* Revision 2.9 1995/07/07 16:47:52 john
* Fixed bug with reactor time..
*
* Revision 2.8 1995/06/15 12:14:18 john
* Made end game, win game and title sequences all go
* on after 5 minutes automatically.
*
* Revision 2.7 1995/05/26 16:16:25 john
* Split SATURN into define's for requiring cd, using cd, etc.
* Also started adding all the Rockwell stuff.
*
* Revision 2.6 1995/03/24 13:11:20 john
* Added save game during briefing screens.
*
* Revision 2.5 1995/03/23 17:56:20 allender
* added code to record old laser level and weapons when player gets
* new ship
*
* Revision 2.4 1995/03/21 08:39:14 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.3 1995/03/15 14:33:33 john
* Added code to force the Descent CD-rom in the drive.
*
* Revision 2.2 1995/03/06 16:47:26 mike
* destination saturn
*
* Revision 2.1 1995/03/06 15:23:23 john
* New screen techniques.
*
* Revision 2.0 1995/02/27 11:28:53 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.310 1995/02/14 10:48:09 mike
* zero bonus if you are a cheater.
*
* Revision 1.309 1995/02/11 19:17:08 rob
* Fixed bug in laser fire rate after demo playback.
*
* Revision 1.308 1995/02/11 14:34:08 rob
* Added include of netmisc.c
*
* Revision 1.307 1995/02/11 14:29:04 rob
* Fixes for invul. controlcen.
*
* Revision 1.306 1995/02/11 13:47:00 mike
* fix cheats.
*
* Revision 1.305 1995/02/11 13:10:52 rob
* Fixed end of anarchy mission problems.
*
* Revision 1.304 1995/02/11 12:46:12 mike
* initialize Robot_firing_enabled, part of AHIMSA cheat.
*
* Revision 1.303 1995/02/11 12:42:03 john
* Added new song method, with FM bank switching..
*
* Revision 1.302 1995/02/10 17:39:29 matt
* Changed secret exit message to be centered
*
* Revision 1.301 1995/02/10 16:17:33 mike
* init Last_level_path_shown.
*
* Revision 1.300 1995/02/09 22:18:22 john
* Took out between level saves.
*
* Revision 1.299 1995/02/09 12:11:42 rob
* Get rid of high scores thing for multiplayer games.
*
* Revision 1.298 1995/02/08 20:34:24 rob
* Took briefing screens back OUT of coop games (per Interplay request)
*
* Revision 1.297 1995/02/08 19:20:09 rob
* Moved checksum calc.
*
* Revision 1.296 1995/02/05 14:39:24 rob
* Changed object mapping to be more efficient.
*
* Revision 1.295 1995/02/02 19:05:38 john
* Made end level menu for 27 not overwrite descent title..
*
* Revision 1.294 1995/02/02 16:36:42 adam
* *** empty log message ***
*
* Revision 1.293 1995/02/02 15:58:02 john
* Added turbo mode cheat.
*
* Revision 1.292 1995/02/02 15:29:34 matt
* Changed & localized secret level text
*
* Revision 1.291 1995/02/02 10:50:03 adam
* messed with secret level message
*
* Revision 1.290 1995/02/02 01:20:28 adam
* changed endgame song temporarily.
*
* Revision 1.289 1995/02/01 23:19:43 rob
* Fixed up endlevel stuff for multiplayer.
* Put in palette fades around areas that didn't have them before.
*
* Revision 1.288 1995/02/01 17:12:34 mike
* Make score come after endgame screens.
*
* Revision 1.287 1995/01/30 18:34:30 rob
* Put briefing screens back into coop games.
*
* Revision 1.286 1995/01/27 13:07:59 rob
* Removed erroneous warning message.
*
* Revision 1.285 1995/01/27 11:47:43 rob
* Removed new secret level menu from multiplayer games.
*
* Revision 1.284 1995/01/26 22:11:11 mike
* Purple chromo-blaster (ie, fusion cannon) spruce up (chromification)
*
* Revision 1.283 1995/01/26 16:55:13 rob
* Removed ship bonus from cooperative endgame.
*
* Revision 1.282 1995/01/26 16:45:24 mike
* Add autofire fusion cannon stuff.
*
* Revision 1.281 1995/01/26 14:44:44 rob
* Removed unnecessary #ifdefs around mprintfs.
* Changed NumNetPlayerPositions to be independant of MaxNumNetPlayers to
* accomodate 4-player robo-archy games with 8 start positions.
*
* Revision 1.280 1995/01/26 12:19:01 rob
* Changed network_do_frame call.
*
* Revision 1.279 1995/01/26 00:35:03 matt
* Changed numbering convention for HMP files for levels
*
* Revision 1.278 1995/01/25 16:07:59 matt
* Added message (prototype) when going to secret level
*
* Revision 1.277 1995/01/22 18:57:23 matt
* Made player highest level work with missions
*
* Revision 1.276 1995/01/21 23:13:08 matt
* Made high scores with (not work, really) with loaded missions
* Don't give player high score when quit game
*
* Revision 1.275 1995/01/21 17:17:39 john
* *** empty log message ***
*
* Revision 1.274 1995/01/21 17:15:38 john
* Added include for state.h
*
* Revision 1.273 1995/01/21 16:21:14 matt
* Fixed bugs in secret level sequencing
*
* Revision 1.272 1995/01/20 22:47:29 matt
* Mission system implemented, though imcompletely
*
* Revision 1.271 1995/01/19 17:00:48 john
* Made save game work between levels.
*
* Revision 1.270 1995/01/17 17:49:10 rob
* Added key syncing for coop.
*
* Revision 1.269 1995/01/17 14:27:37 john
* y
*
* Revision 1.268 1995/01/17 13:36:33 john
* Moved pig loading into StartNewLevelSub.
*
* Revision 1.267 1995/01/16 16:53:55 john
* Added code to save cheat state during save game.
*
* Revision 1.266 1995/01/15 19:42:10 matt
* Ripped out hostage faces for registered version
*
* Revision 1.265 1995/01/15 16:55:06 john
* Improved mine texture parsing.
*
* Revision 1.264 1995/01/15 11:56:24 john
* Working version of paging.
*
* Revision 1.263 1995/01/14 19:16:40 john
* First version of new bitmap paging code.
*
* Revision 1.262 1995/01/13 17:38:58 yuan
* Removed Int3() for number players check.
*
* Revision 1.261 1995/01/12 12:09:52 yuan
* Added coop object capability.
*
* Revision 1.260 1995/01/05 17:16:08 yuan
* Removed Int3s.
*
* Revision 1.259 1995/01/05 11:34:29 john
* Took out endlevel save stuff for registered.
*
* Revision 1.258 1995/01/04 19:00:16 rob
* Added some debugging for two bugs.
*
* Revision 1.257 1995/01/04 13:18:18 john
* Added cool 6 game save.
*
* Revision 1.256 1995/01/04 08:46:18 rob
* JOHN CHECKED IN FOR ROB !!!
*
* Revision 1.255 1995/01/02 20:07:35 rob
* Added score syncing.
* Get rid of endlevel score for coop games (put it back in elsewhere)
*
* Revision 1.254 1995/01/02 16:17:43 mike
* init super boss.
*
* Revision 1.253 1994/12/21 21:08:47 rob
* fixed a bug in coop player ship positions.
*
* Revision 1.252 1994/12/21 12:57:08 rob
* Handle additional player ships in mines.
------------------------------------------------------------------------
main/gameseq.h:
* Revision 1.4 1995/10/31 10:22:55 allender
* shareware stuff
*
* Revision 1.3 1995/09/14 14:13:14 allender
* initplayerobject have void return
*
* Revision 1.2 1995/08/24 15:36:17 allender
* fixed prototypes warnings
*
* Revision 1.1 1995/05/16 15:57:26 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:32:03 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.41 1995/02/07 10:51:54 rob
* fix typo.
*
* Revision 1.40 1995/02/06 20:10:16 rob
* Extern'ed DoEndLevelScoreGlitz.
*
* Revision 1.39 1995/02/01 16:34:13 john
* Linted.
*
* Revision 1.38 1995/01/27 11:15:03 rob
* Added extern for player position vars.
*
* Revision 1.37 1995/01/20 22:47:38 matt
* Mission system implemented, though imcompletely
*
* Revision 1.36 1995/01/17 13:36:08 john
* Moved pig loading into StartNewLevelSub.
*
* Revision 1.35 1995/01/04 12:21:28 john
* *** empty log message ***
*
* Revision 1.34 1995/01/04 12:20:47 john
* Declearations to work better with game state save.
*
*
* Revision 1.33 1994/12/08 09:46:35 matt
* Made level name len a multiple of 4 for alignment
*
* Revision 1.32 1994/11/29 16:33:29 rob
* Added new defines for last_secret_level based on shareware or not shareware.
*
* Revision 1.31 1994/11/26 15:30:20 matt
* Allow escape out of change pilot menu
*
* Revision 1.30 1994/11/21 17:29:38 matt
* Cleaned up sequencing & game saving for secret levels
*
* Revision 1.29 1994/11/21 15:55:03 matt
* Corrected LAST_LEVEL
*
* Revision 1.28 1994/11/20 22:12:43 mike
* set LAST_LEVEL based on SHAREWARE.
*
* Revision 1.27 1994/11/09 10:55:51 matt
* Cleaned up initialization for editor -> game transitions
*
* Revision 1.26 1994/11/08 17:50:48 rob
* ADded prototype for StartNewLEvel.
*
*
* Revision 1.25 1994/11/07 17:50:57 rob
* Added extern prototype for init_player_stats_level called for
* network games.
*
* Revision 1.24 1994/10/25 15:40:03 yuan
* *** empty log message ***
*
* Revision 1.23 1994/10/22 00:08:52 matt
* Fixed up problems with bonus & game sequencing
* Player doesn't get credit for hostages unless he gets them out alive
*
* Revision 1.22 1994/10/18 18:57:08 matt
* Added main menu option to enter new player name
*
* Revision 1.21 1994/10/07 23:37:32 matt
* Added prototype
*
* Revision 1.20 1994/10/07 16:02:53 matt
* Loading saved game no longer clears players weapons & other stats
*
* Revision 1.19 1994/10/06 14:12:46 matt
* Added flash effect when player appears
*
* Revision 1.18 1994/10/03 13:34:44 matt
* Added new (and hopefully better) game sequencing functions
*
* Revision 1.17 1994/09/30 15:19:53 matt
* Added new game sequencing functions, but left them disabled for now.
*
* Revision 1.16 1994/09/28 17:24:34 matt
* Added first draft of game save/load system
*
* Revision 1.15 1994/09/27 12:29:42 matt
* Changed level naming
*
* Revision 1.14 1994/09/02 11:53:55 mike
* Rename init_player_stats to init_player_stats_game.
*
* Revision 1.13 1994/08/31 20:57:34 matt
* Cleaned up endlevel/death code
*
* Revision 1.12 1994/08/23 18:45:06 yuan
* Added level 10 capability.. (LEDGES)
*
* Revision 1.11 1994/08/18 10:47:38 john
* Cleaned up game sequencing and player death stuff
* in preparation for making the player explode into
* pieces when dead.
*
* Revision 1.10 1994/08/15 15:24:45 john
* Made players know who killed them; Disabled cheat menu
* during net player; fixed bug with not being able to turn
* of invulnerability; Made going into edit/starting new leve
* l drop you out of a net game; made death dialog box.
*
* Revision 1.9 1994/08/13 12:20:56 john
* Made the networking uise the Players array.
*
* Revision 1.8 1994/07/22 12:36:24 matt
* Cleaned up editor/game interactions some more.
*
* Revision 1.7 1994/07/19 20:15:33 matt
* Name for each level now saved in the .SAV file & stored in Current_level_name
*
* Revision 1.6 1994/07/02 13:49:33 matt
* Cleaned up includes
*
* Revision 1.5 1994/07/02 13:09:52 matt
* Moved player stats struct from gameseq.h to player.h
*
* Revision 1.4 1994/07/01 16:35:35 yuan
* Added key system
*
* Revision 1.3 1994/06/26 14:07:35 matt
* Added prototypes
*
* Revision 1.2 1994/06/24 17:03:56 john
* Added VFX support. Also took all game sequencing stuff like
* EndGame out and put it into gameseq.c
*
* Revision 1.1 1994/06/24 14:13:53 john
* Initial revision
------------------------------------------------------------------------
main/gauges.c:
* Revision 1.15 1995/10/31 10:22:37 allender
* shareware stuff
*
* Revision 1.14 1995/10/26 14:11:05 allender
* do copy of weapon boxes in cockpit correctly
*
* Revision 1.13 1995/10/21 22:54:56 allender
* fixed up player names on hud
*
* Revision 1.12 1995/10/12 17:39:27 allender
* fixed status bar lives display
*
* Revision 1.11 1995/09/22 15:21:46 allender
* fixed hud problems (reticle and kill lists) for
* non pixel doubled mode
*
* Revision 1.10 1995/09/13 11:38:47 allender
* show KB left in heap instead of piggy cache
*
* Revision 1.9 1995/09/04 15:52:28 allender
* fix vulcan ammo count to update without overwritting itself
*
* Revision 1.8 1995/08/31 14:11:20 allender
* worked on hud kill list for non pixel doubled mode
*
* Revision 1.7 1995/08/24 16:05:05 allender
* more gauge placement -- still not done!
*
* Revision 1.6 1995/08/18 15:44:56 allender
* put in PC gauges for keys, lives, and reticle when pixel doubling
*
* Revision 1.5 1995/08/18 10:24:47 allender
* added proper support for cockpit mode -- still needs
*
* Revision 1.4 1995/07/26 16:56:34 allender
* more gauge stuff for status bar. still problem
* with ship
*
* Revision 1.3 1995/07/17 08:55:57 allender
* fix up for large status bar. Still needs some work though
*
* Revision 1.2 1995/06/20 09:54:29 allender
* stopgap measure to get status bar "working" until real mac
* status bar gets added
*
* Revision 1.1 1995/05/16 15:26:05 allender
* Initial revision
*
* Revision 2.7 1995/12/19 16:18:33 john
* Made weapon info align with canvas width, not 315.
*
* Revision 2.6 1995/03/21 14:39:25 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.5 1995/03/14 12:31:25 john
* Prevent negative shields from printing.
*
* Revision 2.4 1995/03/10 12:57:58 allender
* move rear view text up four pixels up when playing back demo
*
* Revision 2.3 1995/03/09 11:47:51 john
* Added HUD for VR helmets.
*
* Revision 2.2 1995/03/06 15:23:26 john
* New screen techniques.
*
* Revision 2.1 1995/02/27 13:13:45 john
* Removed floating point.
*
* Revision 2.0 1995/02/27 11:29:06 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.203 1995/02/11 01:56:45 mike
* move up weapons text on fullscreen hud, missiles was offscreen.
*
* Revision 1.202 1995/02/09 13:23:34 rob
* Added reticle names in demo playback.
*
* Revision 1.201 1995/02/08 19:20:46 rob
* Show cloaked teammates on H
* UD. Get rid of show ID's in anarchy option.
*
* Revision 1.200 1995/02/07 21:09:00 mike
* add flashing to invulnerability and cloak on fullscreen.
*
* Revision 1.199 1995/02/02 21:55:57 matt
* Added new colored key icons for fullscreen
*
* Revision 1.198 1995/01/30 17:17:07 rob
* Fixed teammate names on hud.
*
* Revision 1.197 1995/01/28 17:40:49 mike
* fix gauge fontcolor.
*
* Revision 1.196 1995/01/27 17:03:14 mike
* fix placement of weapon info in multiplayer fullscreen, as per AP request.
*
* Revision 1.195 1995/01/27 11:51:23 rob
* Put deaths tally into cooperative mode
*
* Revision 1.194 1995/01/27 11:43:24 adam
* fiddled with key display
*
* Revision 1.193 1995/01/25 23:38:35 mike
* fix keys on fullscreen.
*
* Revision 1.192 1995/01/24 22:03:28 mike
* Lotsa hud stuff, put a lot of messages up.
*
* Revision 1.191 1995/01/23 16:47:21 rob
* Fixed problem with playing extra life noise in coop.
*
* Revision 1.190 1995/01/22 16:00:46 mike
* remove unneeded string.
*
* Revision 1.189 1995/01/22 15:58:22 mike
* localization
*
* Revision 1.188 1995/01/20 17:19:45 rob
* Fixing colors of hud kill list players.
*
* Revision 1.187 1995/01/20 09:19:18 allender
* record player flags when in CM_FULL_SCREEN
*
* Revision 1.186 1995/01/19 16:29:09 allender
* made demo recording of weapon change be in this file for shareware only
*
* Revision 1.185 1995/01/19 15:00:33 allender
* code to record shield, energy, and ammo in fullscreen
*
* Revision 1.184 1995/01/19 13:43:13 matt
* Fixed "cheater" message on HUD
*
* Revision 1.183 1995/01/18 16:11:58 mike
* Don't show added scores of 0.
*
* Revision 1.182 1995/01/17 17:42:39 allender
* do ammo counts in demo recording
*
* Revision 1.181 1995/01/16 17:26:25 rob
* Fixed problem with coloration of team kill list.
*
* Revision 1.180 1995/01/16 17:22:39 john
* Made so that KB and framerate don't collide.
*
* Revision 1.179 1995/01/16 14:58:31 matt
* Changed score_added display to print "Cheater!" when cheats enabled
*
* Revision 1.178 1995/01/15 19:42:07 matt
* Ripped out hostage faces for registered version
*
* Revision 1.177 1995/01/15 19:25:07 mike
* show vulcan ammo and secondary ammo in fullscreen view.
*
* Revision 1.176 1995/01/15 13:16:12 john
* Made so that paging always happens, lowmem just loads less.
* Also, make KB load print to hud.
*
* Revision 1.175 1995/01/14 19:17:32 john
* First version of piggy paging.
*
* Revision 1.174 1995/01/05 21:25:23 rob
* Re-did some changes lost due to RCS weirdness.
*
* Revision 1.173 1995/01/05 12:22:34 rob
* Don't show player names for cloaked players.
*
* Revision 1.172 1995/01/04 17:14:50 allender
* make init_gauges work properly on demo playback
*
* Revision 1.171 1995/01/04 15:04:42 allender
* new demo calls for registered version
*
* Revision 1.167 1995/01/03 13:03:57 allender
* pass score points instead of total points. Added ifdef for
* multi_send_score
*
* Revision 1.166 1995/01/03 11:45:02 allender
* add hook to record player score
*
* Revision 1.165 1995/01/03 11:25:19 allender
* remove newdemo stuff around score display
*
* Revision 1.163 1995/01/02 21:03:53 rob
* Fixing up the hud-score-list for coop games.
*
* Revision 1.162 1994/12/31 20:54:40 rob
* Added coop mode HUD score list.
* Added more generic system for player names on HUD.
*
* Revision 1.161 1994/12/30 20:13:01 rob
* Ifdef reticle names on shareware.
* Added robot reticle naming.
*
* Revision 1.160 1994/12/29 17:53:51 mike
* move up energy/shield in fullscreen to get out of way of kill list.
*
* Revision 1.159 1994/12/29 16:44:05 mike
* add energy and shield showing.
*
* Revision 1.158 1994/12/28 16:34:29 mike
* make warning beep go away on Player_is_dead.
*
* Revision 1.157 1994/12/28 10:00:43 allender
* change in init_gauges to for multiplayer demo playbacks
*
* Revision 1.156 1994/12/27 11:06:46 allender
* removed some previous code to for demo playback stuff
*
* Revision 1.155 1994/12/23 14:23:06 john
* Added floating reticle for VR helments.
*
* Revision 1.154 1994/12/21 12:56:41 allender
* on multiplayer demo playback, show kills and deaths
*
* Revision 1.153 1994/12/19 20:28:42 rob
* Get rid of kill list in coop games.
*
* Revision 1.152 1994/12/14 18:06:44 matt
* Removed compile warnings
*
* Revision 1.151 1994/12/14 15:21:28 rob
* Made gauges align in status_bar net game.
*
* Revision 1.150 1994/12/12 17:20:33 matt
* Don't get bonus points when cheating
*
* Revision 1.149 1994/12/12 16:47:00 matt
* When cheating, get no score. Change level cheat to prompt for and
* jump to new level.
*
* Revision 1.148 1994/12/12 12:05:45 rob
* Grey out players who are disconnected.
*
* Revision 1.147 1994/12/09 16:19:48 yuan
* kill matrix stuff.
*
* Revision 1.146 1994/12/09 16:12:34 rob
* Fixed up the status bar kills gauges for net play.
*
* Revision 1.145 1994/12/09 01:55:34 rob
* Added kills list to HUD/status bar.
* Added something for Mark.
*
* Revision 1.144 1994/12/08 21:03:30 allender
* pass old player flags to record_player_flags
*
* Revision 1.143 1994/12/07 22:49:33 mike
* no homing missile warning during endlevel sequence.
*
* Revision 1.142 1994/12/06 13:55:31 matt
* Use new rounding func, f2ir()
*
* Revision 1.141 1994/12/03 19:03:37 matt
* Fixed vulcan ammo HUD message
*
* Revision 1.140 1994/12/03 18:43:18 matt
* Fixed (hopefully) claok gauge
*
* Revision 1.139 1994/12/03 14:26:21 yuan
* Fixed dumb bug
*
* Revision 1.138 1994/12/03 14:17:30 yuan
* Localization 320
------------------------------------------------------------------------
main/gauges.h:
* Revision 1.3 1995/08/23 21:37:13 allender
* fix mcc compiler warmings
*
* Revision 1.2 1995/08/18 15:45:24 allender
* upped max gauges
*
* Revision 1.1 1995/05/16 15:57:34 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:28:45 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.27 1994/12/14 18:06:39 matt
* Added prototype
*
* Revision 1.26 1994/12/09 16:19:52 yuan
* kill matrix stuff.
*
* Revision 1.25 1994/10/25 11:07:34 mike
* Prototype play_homing_warning.
*
* Revision 1.24 1994/10/24 16:34:39 mike
* Increase MAX_GAUGE_BMS from 56 to 80...
*
* Revision 1.23 1994/10/21 20:43:47 mike
* Prototype add_bonus_points_to_score.
*
* Revision 1.22 1994/10/14 15:56:33 mike
* Prototype update_laser_weapon_info.
*
* Revision 1.21 1994/10/13 15:17:26 mike
* Remove afterburner references.
*
* Revision 1.20 1994/10/05 17:09:46 matt
* Added functional reticle
*
* Revision 1.19 1994/10/04 21:41:29 matt
* Added cloaked player gauge effect, and different ship bitmap for each player
*
* Revision 1.18 1994/09/26 13:29:40 matt
* Added extra life each 100,000 points, and show icons on HUD for num lives
*
* Revision 1.17 1994/09/20 11:56:08 matt
* Added prototype
*
* Revision 1.16 1994/09/20 00:11:03 matt
* Finished gauges for Status Bar, including hostage video display.
*
* Revision 1.15 1994/09/17 23:57:18 matt
* Got some, but not all, off the status bar gauges working
*
* Revision 1.14 1994/09/16 13:08:46 mike
* Prototype say_afterburner_status.
*
* Revision 1.13 1994/09/14 16:27:03 mike
* Prototype player_dead_message();
*
*
* Revision 1.12 1994/07/20 17:34:43 yuan
* Some minor bug fixes and new key gauges...
*
* Revision 1.11 1994/07/14 14:46:02 yuan
* Added score effect.
*
* Revision 1.10 1994/07/12 16:22:00 yuan
* Increased number of maximum gauges.
*
* Revision 1.9 1994/07/11 20:10:36 yuan
* Numerical gauges.
*
* Revision 1.8 1994/07/10 18:01:28 yuan
* Added new gauges.
*
* Revision 1.7 1994/06/21 15:08:22 john
* Made demo record HUD message and cleaned up the HUD code.
*
* Revision 1.6 1994/06/21 12:40:46 yuan
* Fixing HUD message.
*
* Revision 1.5 1994/06/21 12:11:56 yuan
* Fixed up menus and added HUDisplay messages.
*
* Revision 1.4 1994/04/28 21:34:24 mike
* prototype check_erase_gauge
*
* Revision 1.3 1994/04/06 14:42:46 yuan
* Adding new powerups.
*
* Revision 1.2 1993/12/05 22:48:58 matt
* Reworked include files in an attempt to cut down on build times
*
* Revision 1.1 1993/12/05 21:07:55 matt
* Initial revision
------------------------------------------------------------------------
main/hostage.c:
* Revision 1.1 1995/05/16 15:26:24 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:28:36 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.65 1995/02/22 13:45:54 allender
* remove anonymous unions from object structure
*
* Revision 1.64 1995/02/13 20:34:57 john
* Lintized
*
* Revision 1.63 1995/01/15 19:41:48 matt
* Ripped out hostage faces for registered version
*
* Revision 1.62 1995/01/14 19:16:53 john
* First version of new bitmap paging code.
*
* Revision 1.61 1994/12/19 16:35:09 john
* Made hoastage playback end when ship dies.
*
* Revision 1.60 1994/12/06 16:30:41 yuan
* Localization
*
* Revision 1.59 1994/11/30 17:32:46 matt
* Put hostage_face_clip array back in so editor would work
*
* Revision 1.58 1994/11/30 17:22:13 matt
* Ripped out hostage faces in shareware version
*
* Revision 1.57 1994/11/30 16:11:25 matt
* Use correct constant for hostage voice
*
* Revision 1.56 1994/11/27 23:15:19 matt
* Made changes for new mprintf calling convention
*
* Revision 1.55 1994/11/19 19:53:44 matt
* Added code to full support different hostage head clip & message for
* each hostage.
*
* Revision 1.54 1994/11/19 16:35:15 matt
* Got rid of unused code, & made an array smaller
*
* Revision 1.53 1994/11/14 12:42:03 matt
* Increased palette flash when hostage rescued
*
* Revision 1.52 1994/10/28 14:43:09 john
* Added sound volumes to all sound calls.
*
* Revision 1.51 1994/10/23 02:10:57 matt
* Got rid of obsolete hostage_info stuff
*
* Revision 1.50 1994/10/22 00:08:44 matt
* Fixed up problems with bonus & game sequencing
* Player doesn't get credit for hostages unless he gets them out alive
*
* Revision 1.49 1994/10/20 22:52:49 matt
* Fixed compiler warnings
*
* Revision 1.48 1994/10/20 21:25:44 matt
* Took out silly scale down/scale up code for hostage anim
*
* Revision 1.47 1994/10/20 12:47:28 matt
* Replace old save files (MIN/SAV/HOT) with new LVL files
*
* Revision 1.46 1994/10/04 15:33:33 john
* Took out the old PLAY_SOUND??? code and replaced it
* with direct calls into digi_link_??? so that all sounds
* can be made 3d.
*
* Revision 1.45 1994/09/28 23:10:46 matt
* Made hostage rescue do palette flash
*
* Revision 1.44 1994/09/20 00:11:00 matt
* Finished gauges for Status Bar, including hostage video display.
*
* Revision 1.43 1994/09/15 21:24:19 matt
* Changed system to keep track of whether & what cockpit is up
* Made hostage clip not queue when no cockpit
*
*
* Revision 1.42 1994/08/25 13:45:19 matt
* Made hostage vclips queue
*
* Revision 1.41 1994/08/14 23:15:06 matt
* Added animating bitmap hostages, and cleaned up vclips a bit
*
* Revision 1.40 1994/08/12 22:41:11 john
* Took away Player_stats; add Players array.
*
* Revision 1.39 1994/07/14 22:06:35 john
* Fix radar/hostage vclip conflict.
*
* Revision 1.38 1994/07/12 18:40:21 yuan
* Tweaked location of radar and hostage screen...
* Still needs work.
*
*
* Revision 1.37 1994/07/07 09:52:17 john
* Moved hostage screen.
*
* Revision 1.36 1994/07/06 15:23:52 john
* Revamped hostage sound.
*
* Revision 1.35 1994/07/06 15:14:54 john
* Added hostage sound effect picking.
*
* Revision 1.34 1994/07/06 13:25:33 john
* Added compress hostages functions.
*
* Revision 1.33 1994/07/06 12:52:59 john
* Fixed compiler warnings.
*
* Revision 1.32 1994/07/06 12:43:50 john
* Made generic messages for hostages.
*
* Revision 1.31 1994/07/06 10:55:07 john
* New structures for hostages.
*
* Revision 1.30 1994/07/05 12:49:09 john
* Put functionality of New Hostage spec into code.
*
* Revision 1.29 1994/07/02 13:08:47 matt
* Increment stats when hostage rescued
*
* Revision 1.28 1994/07/01 18:07:46 john
* y
*
* Revision 1.27 1994/07/01 18:07:03 john
* *** empty log message ***
*
* Revision 1.26 1994/07/01 17:55:26 john
* First version of not-working hostage system.
*
* Revision 1.25 1994/06/27 15:53:21 john
* #define'd out the newdemo stuff
*
*
* Revision 1.24 1994/06/20 16:08:52 john
* Added volume control; made doors 3d sounds.
*
* Revision 1.23 1994/06/16 10:15:32 yuan
* Fixed location of face.
*
* Revision 1.22 1994/06/15 15:05:33 john
* *** empty log message ***
*
* Revision 1.21 1994/06/14 21:15:20 matt
* Made rod objects draw lighted or not depending on a parameter, so the
* materialization effect no longer darkens.
*
* Revision 1.20 1994/06/08 18:16:26 john
* Bunch of new stuff that basically takes constants out of the code
* and puts them into bitmaps.tbl.
*
* Revision 1.19 1994/06/02 19:30:08 matt
* Moved texture-mapped rod drawing stuff (used for hostage & now for the
* materialization center) to object.c
------------------------------------------------------------------------
main/hostage.h:
* Revision 1.1 1995/05/16 15:57:57 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:27:50 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.23 1995/01/15 19:42:06 matt
* Ripped out hostage faces for registered version
*
* Revision 1.22 1994/12/19 16:35:07 john
* Made hoastage playback end when ship dies.
*
* Revision 1.21 1994/11/30 17:22:12 matt
* Ripped out hostage faces in shareware version
*
* Revision 1.20 1994/11/19 19:53:43 matt
* Added code to full support different hostage head clip & message for
* each hostage.
*
* Revision 1.19 1994/11/19 16:35:28 matt
* Got rid of unused code, & made an array smaller
*
* Revision 1.18 1994/10/23 02:10:57 matt
* Got rid of obsolete hostage_info stuff
*
* Revision 1.17 1994/09/20 00:10:37 matt
* Finished gauges for Status Bar, including hostage video display.
*
* Revision 1.16 1994/09/01 10:41:24 matt
* Sizes for powerups now specified in bitmaps.tbl; blob bitmaps now plot
* correctly if width & height of bitmap are different.
*
* Revision 1.15 1994/08/14 23:15:14 matt
* Added animating bitmap hostages, and cleaned up vclips a bit
*
* Revision 1.14 1994/07/14 22:06:51 john
* Fix radar/hostage vclip conflict.
*
* Revision 1.13 1994/07/14 22:05:41 john
* Made radar display not conflict with hostage
* vclip talking.
*
* Revision 1.12 1994/07/06 13:41:46 matt
* Added support for bitmap hostages
*
* Revision 1.11 1994/07/06 12:43:36 john
* Made generic messages for hostages.
*
* Revision 1.10 1994/07/06 10:55:09 john
* New structures for hostages.
*
* Revision 1.9 1994/07/05 12:48:47 john
* Put functionality of New Hostage spec into code.
*
* Revision 1.8 1994/07/01 17:55:14 john
* First version of not-working hostage system.
*
* Revision 1.7 1994/06/15 14:57:10 john
* Added triggers to demo recording.
*
* Revision 1.6 1994/06/08 18:15:49 john
* Bunch of new stuff that basically takes constants out of the code
* and puts them into bitmaps.tbl.
*
* Revision 1.5 1994/05/02 12:43:06 yuan
* Fixed warnings.
*
* Revision 1.4 1994/04/06 14:42:46 yuan
* Adding new powerups.
*
* Revision 1.3 1994/04/01 11:15:14 yuan
* Added multiple bitmap functionality to all objects...
* (hostages, powerups, lasers, etc.)
* Hostages and powerups are implemented in the object system,
* just need to finish function call to "affect" player.
*
* Revision 1.2 1994/03/31 12:04:35 matt
* Added prototypes for 2 funcs
*
* Revision 1.1 1994/03/31 11:39:24 matt
* Initial revision
------------------------------------------------------------------------
main/hud.c:
* Revision 1.4 1995/08/24 16:03:09 allender
* fix up message placement
*
* Revision 1.3 1995/08/18 10:25:21 allender
* added support for pixel doubling using PC game font
*
* Revision 1.2 1995/08/12 11:33:22 allender
* removed #ifdef NEWDEMO -- always in
*
* Revision 1.1 1995/05/16 15:26:32 allender
* Initial revision
*
* Revision 2.2 1995/03/30 16:36:40 mike
* text localization.
*
* Revision 2.1 1995/03/06 15:23:50 john
* New screen techniques.
*
* Revision 2.0 1995/02/27 11:30:41 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.27 1995/01/23 16:51:30 mike
* Show hud messages on 3d if window in three largest sizes.
*
* Revision 1.26 1995/01/17 17:42:45 rob
* Made message timeout for HUD messages longer.
*
* Revision 1.25 1995/01/04 11:39:03 rob
* Made HUD text get out of the way of large HUD messages.
*
* Revision 1.24 1995/01/01 14:20:32 rob
* longer timer for hud messages.
*
*
* Revision 1.23 1994/12/15 13:04:34 mike
* Replace Players[Player_num].time_total references with GameTime.
*
* Revision 1.22 1994/12/13 12:55:12 mike
* move press any key to continue message when you are dead to bottom of window.
*
* Revision 1.21 1994/12/07 17:08:01 rob
* removed unnecessary debug info.
*
* Revision 1.20 1994/12/07 16:24:16 john
* Took out code that kept track of messages differently for different
* screen modes... I made it so they just draw differently depending on screen mode.
*
* Revision 1.19 1994/12/07 15:42:57 rob
* Added a bunch of debug stuff to look for HUD message problems in net games...
*
* Revision 1.18 1994/12/06 16:30:35 yuan
* Localization
*
* Revision 1.17 1994/12/05 00:32:36 mike
* fix randomness of color on status bar hud messages.
*
* Revision 1.16 1994/11/19 17:05:53 rob
* Moved dead_player_message down to avoid overwriting HUD messages.
*
* Revision 1.15 1994/11/18 23:37:56 john
* Changed some shorts to ints.
*
* Revision 1.14 1994/11/12 16:38:25 mike
* clear some annoying debug messages.
*
* Revision 1.13 1994/11/11 15:36:39 mike
* write hud messages on background if 3d window small enough
*
* Revision 1.12 1994/10/20 09:49:31 mike
* Reduce number of messages.
*
* Revision 1.11 1994/10/17 10:49:15 john
* Took out some warnings.
*
* Revision 1.10 1994/10/17 10:45:13 john
* Made the player able to abort death by pressing any button or key.
*
* Revision 1.9 1994/10/13 15:17:33 mike
* Remove afterburner references.
*
* Revision 1.8 1994/10/11 12:06:32 mike
* Only show message advertising death sequence abort after player exploded.
*
* Revision 1.7 1994/10/10 17:21:53 john
* Made so instead of saying too many messages, it scrolls off the
* oldest message.
*
* Revision 1.6 1994/10/07 23:05:39 john
* Fixed bug with HUD not drawing stuff sometimes...
* ( I had a circular buffer that I was stepping thru
* to draw text that went: for (i=first;i<last;i++)...
* duh!! last could be less than first.)
* /
*
* Revision 1.5 1994/09/16 13:08:20 mike
* Arcade stuff, afterburner stuff.
*
* Revision 1.4 1994/09/14 16:26:57 mike
* player_dead_message.
*
* Revision 1.3 1994/08/18 16:35:45 john
* Made gauges messages stay up a bit longer.
*
* Revision 1.2 1994/08/18 12:10:21 john
* Made HUD messages scroll.
*
* Revision 1.1 1994/08/18 11:22:09 john
* Initial revision
------------------------------------------------------------------------
main/inferno.c:
* Revision 1.1 1995/12/05 15:57:49 allender
* Initial revision
*
* Revision 1.19 1995/11/07 17:03:12 allender
* added splash screen for descent contest
*
* Revision 1.18 1995/10/31 10:22:22 allender
* shareware stuff
*
* Revision 1.17 1995/10/18 01:53:07 allender
* mouse click to leave do not distribute screen
*
* Revision 1.16 1995/10/17 12:00:12 allender
* mouse click gets past endgame screen
*
* Revision 1.15 1995/10/12 17:40:12 allender
* read config file after digi initialized
*
* Revision 1.14 1995/10/05 10:38:22 allender
* changed key_getch at exit to be key_inkey and moved
* mouse init until after macintosh windowing init call
*
* Revision 1.13 1995/09/18 17:01:04 allender
* put gr_init call before render buffer stuff
*
* Revision 1.12 1995/08/31 15:50:53 allender
* call init for appletalk, and change name of intro screens
*
* Revision 1.11 1995/08/26 16:26:19 allender
* whole bunch 'o stuff!!
*
* Revision 1.10 1995/07/12 21:48:18 allender
* removed Int3 from beginning of program
*
* Revision 1.9 1995/07/05 16:45:48 allender
* removed hide_cursor call
*
* Revision 1.8 1995/06/20 16:44:57 allender
* game now renders in 640x480 at all times. Changed code
* to call game_init_render_buffers with right params
*
* Revision 1.7 1995/06/13 13:07:55 allender
* change macintosh initialzation. Mac windows now init'ed through gr_init.
*
* Revision 1.6 1995/06/08 16:36:53 allender
* "ifdef" profile include
*
* Revision 1.5 1995/06/07 08:08:18 allender
* dont' make memory info show at end of program
*
* Revision 1.4 1995/06/02 07:47:40 allender
* removed network initialzation for now
*
* Revision 1.3 1995/05/26 06:54:52 allender
* put digi_init after timer and key stuff since I was testing stuff
* that needed the keyboard handler installed
*
* Revision 1.2 1995/05/19 11:28:09 allender
* removed printf
*
* Revision 1.1 1995/05/16 15:26:39 allender
* Initial revision
*
* Revision 2.36 1996/01/05 16:52:16 john
* Improved 3d stuff.
*
* Revision 2.35 1995/10/07 13:20:06 john
* Added new modes for LCDBIOS, also added support for -JoyNice,
* and added Shift+F1-F4 to controls various stereoscopic params.
*
* Revision 2.34 1995/06/26 11:30:57 john
* Made registration/copyright screen go away after 5 minutes.
*
* Revision 2.33 1995/05/31 14:26:55 unknown
* Fixed ugly spacing.
*
* Revision 2.32 1995/05/26 16:15:28 john
* Split SATURN into define's for requiring cd, using cd, etc.
* Also started adding all the Rockwell stuff.
*
* Revision 2.31 1995/05/11 13:30:01 john
* Changed 3dbios detection to work like Didde Kim wanted it to.
*
* Revision 2.30 1995/05/08 13:53:50 john
* Added code to read vipport environemnt variable.
*
* Revision 2.29 1995/05/08 11:26:18 john
* Reversed eyes in 3dmax mode.
*
* Revision 2.28 1995/05/08 11:24:06 john
* Made 3dmax work like Kasan wants it to.
*
* Revision 2.27 1995/04/23 16:06:25 john
* Moved rinvul into modem/null modem menu.
*
* Revision 2.26 1995/04/12 13:39:26 john
* Fixed bug with -lowmem not working.
*
* Revision 2.25 1995/04/09 14:43:00 john
* Made Dynamic sockets not print Msockets for help.
*
* Revision 2.24 1995/04/07 16:11:33 john
* Fixed problem with VFX display when using setup.
*
* Revision 2.23 1995/04/06 15:40:51 john
* Synced VFX with setup #'s.
*
* Revision 2.22 1995/04/06 12:12:53 john
* Fixed some bugs with 3dmax.
*
* Revision 2.21 1995/03/30 16:36:51 mike
* text localization.
*
* Revision 2.20 1995/03/29 15:33:52 john
* Added code to parse descent.net file.
*
* Revision 2.19 1995/03/28 20:08:21 john
* Took away alternate server thing.
*
* Revision 2.18 1995/03/27 09:43:08 john
* Added VR Settings in config file.
*
* Revision 2.17 1995/03/23 19:02:21 john
* Added descent.net file use.
*
* Revision 2.16 1995/03/23 12:25:11 john
* Moved IPX stuff into BIOS lib.
*
* Revision 2.15 1995/03/21 16:52:34 john
* Added 320x100.
*
* Revision 2.14 1995/03/21 14:40:33 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.13 1995/03/16 23:13:35 john
* Fixed bug with piggy paging in bitmap not checking for disk
* error, hence bogifying textures if you pull the CD out.
*
* Revision 2.12 1995/03/16 21:45:22 john
* Made all paged modes have incompatible menus!
*
* Revision 2.11 1995/03/15 15:19:34 john
* Took out code that changes to exe dir.
*
* Revision 2.10 1995/03/15 14:33:37 john
* Added code to force the Descent CD-rom in the drive.
*
* Revision 2.9 1995/03/15 11:41:27 john
* Better Saturn CD-ROM support.
*
* Revision 2.8 1995/03/14 18:24:46 john
* Force Destination Saturn to use CD-ROM drive.
*
* Revision 2.7 1995/03/14 16:22:35 john
* Added cdrom alternate directory stuff.
*
* Revision 2.6 1995/03/13 15:17:19 john
* Added alternate hogfile directory.
*
* Revision 2.5 1995/03/10 13:05:35 john
* Added code so that palette is correct for VFX1 helmets.
*
* Revision 2.4 1995/03/07 15:12:43 john
* Fixed VFX,3dmax support.
*
* Revision 2.3 1995/03/07 14:19:35 mike
* More destination saturn stuff.
*
* Revision 2.2 1995/03/06 16:47:34 mike
* destination saturn
*
* Revision 2.1 1995/03/06 15:24:06 john
* New screen techniques.
*
* Revision 2.0 1995/02/27 11:31:29 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.295 1995/02/23 12:02:14 john
* Made mono windows smaller.
*
* Revision 1.294 1995/02/16 17:35:00 john
* Added code to allow dynamic socket changing.
*
* Revision 1.293 1995/02/14 19:29:29 john
* Locked down critical error handler.
*
* Revision 1.292 1995/02/14 15:29:20 john
* Added CR-LF to last line of menu help text.
*
* Revision 1.291 1995/02/14 11:39:01 john
* Added polled/bios joystick readers.
*
* Revision 1.290 1995/02/13 20:35:03 john
* Lintized
*
* Revision 1.289 1995/02/11 16:20:02 john
* Added code to make the default mission be the one last played.
*
* Revision 1.288 1995/02/11 15:54:13 rob
* changed cinvul to rinvul.
*
* Revision 1.287 1995/02/11 14:48:43 rob
* Added max of 314 seconds to control invul. times
*
* Revision 1.286 1995/02/11 12:42:01 john
* Added new song method, with FM bank switching..
*
* Revision 1.285 1995/02/11 11:36:11 rob
* Added cinvul option.
*
* Revision 1.284 1995/02/10 16:07:45 matt
* Took 'registered' out of printed info at startup
*
* Revision 1.283 1995/02/09 22:00:59 john
* Added i-glasses tracking.
*
* Revision 1.282 1995/02/02 11:11:27 john
* Added -nocyberman switch.
*
* Revision 1.281 1995/02/01 16:35:14 john
* Linted.
*
* Revision 1.280 1995/01/31 02:04:25 matt
* Fixed up cmdline help
*
* Revision 1.279 1995/01/30 16:25:55 john
* Put back in graphical screen at program end.
*
* Revision 1.278 1995/01/28 17:05:50 matt
* Changed imbedded copyright to use comma instead of hyphen
*
* Revision 1.277 1995/01/28 15:57:26 john
* Made joystick calibration be only when wrong detected in
* menu or joystick axis changed.
*
* Revision 1.276 1995/01/25 14:37:49 john
* Made joystick only prompt for calibration once...
*
* Revision 1.275 1995/01/24 18:21:00 john
* Added Adam's text warning.
*
* Revision 1.274 1995/01/22 15:57:20 john
* Took out code that printed warning out as game exited.
*
* Revision 1.273 1995/01/22 13:31:35 matt
* Added load of mission 0, so there's always a default mission
*
* Revision 1.272 1995/01/19 17:00:41 john
* Made save game work between levels.
*
* Revision 1.271 1995/01/18 11:47:57 adam
* changed copyright notice
*
* Revision 1.270 1995/01/15 13:42:42 john
* Moved low_mem cutoff higher.
*
* Revision 1.269 1995/01/12 18:53:50 john
* Put ifdef EDITOR around the code that checked for
* a 800x600 mode, because this trashed some people's
* computers (maybe) causing the mem allocation error in
* mouse.c that many users reported.
*
* Revision 1.268 1995/01/12 11:41:42 john
* Added external control reading.
*
* Revision 1.267 1995/01/06 10:26:55 john
* Added -nodoscheck command line switch.
*
* Revision 1.266 1995/01/05 16:59:30 yuan
* Don't show orderform in editor version.
*
* Revision 1.265 1994/12/28 15:33:51 john
* Added -slowjoy option.
*
* Revision 1.264 1994/12/15 16:44:15 matt
* Added trademark notice
*
* Revision 1.263 1994/12/14 20:13:59 john
* Reduced physical mem requments to 2 MB.
*
* Revision 1.262 1994/12/14 19:06:17 john
* Lowered physical memory requments to 2 MB.
*
* Revision 1.261 1994/12/14 09:41:29 allender
* change to drive and directory (if needed) of command line invocation
* so descent can be started from anywhere
*
* Revision 1.260 1994/12/13 19:08:59 john
* Updated memory requirements.
*
* Revision 1.259 1994/12/13 17:30:33 john
* Made the timer rate be changed right after initializing it.
*
* Revision 1.258 1994/12/13 02:46:25 matt
* Added imbedded copyright
*
* Revision 1.257 1994/12/13 02:06:46 john
* Added code to check stack used by descent... initial
* check showed stack used 35k/50k, so we decided it wasn't
* worth pursuing any more.
*
* Revision 1.256 1994/12/11 23:17:54 john
* Added -nomusic.
* Added RealFrameTime.
* Put in a pause when sound initialization error.
* Made controlcen countdown and framerate use RealFrameTime.
*
* Revision 1.255 1994/12/10 00:56:51 matt
* Added -nomusic to command-line help
*
* Revision 1.254 1994/12/08 11:55:11 john
* Took out low memory print.
*
* Revision 1.253 1994/12/08 11:51:00 john
* Made strcpy only copy corect number of chars,.
*
* Revision 1.252 1994/12/08 00:38:29 matt
* Cleaned up banner messages
*
* Revision 1.251 1994/12/07 19:14:52 matt
* Cleaned up command-line options and command-line help message
*
* Revision 1.250 1994/12/06 19:33:28 john
* Fixed text of message to make more sense.
*
* Revision 1.249 1994/12/06 16:30:55 john
* Neatend mem message,..
*
* Revision 1.248 1994/12/06 16:17:35 john
* Added better mem checking/printing.
*
* Revision 1.247 1994/12/06 14:14:37 john
* Added code to set low mem based on memory.
*
* Revision 1.246 1994/12/05 12:29:09 allender
* removed ifdefs around -norun option
*
* Revision 1.245 1994/12/05 00:03:30 matt
* Added -norun option to exit after writing pig
*
* Revision 1.244 1994/12/04 14:47:01 john
* MAde the intro and menu be the same song.
*
* Revision 1.243 1994/12/04 14:36:42 john
* Added menu music.
*
* Revision 1.242 1994/12/02 13:50:17 yuan
* Localization.
*
* Revision 1.241 1994/12/01 17:28:30 adam
* added end-shareware stuff
*
* Revision 1.240 1994/11/30 12:10:57 adam
* added support for PCX titles/brief screens
*
* Revision 1.239 1994/11/29 15:47:33 matt
* Moved error_init to start of game, so error message prints last
*
* Revision 1.238 1994/11/29 14:19:22 jasen
* reduced dos mem requirments.
*
* Revision 1.237 1994/11/29 03:46:35 john
* Added joystick sensitivity; Added sound channels to detail menu. Removed -maxchannels
* command line arg.
*
* Revision 1.236 1994/11/29 02:50:18 john
* Increased the amount a joystick has to be off before
* asking if they want to recalibrate their joystick.
*
* Revision 1.235 1994/11/29 02:01:29 john
* Corrected some of the Descent command line help items.
*
* Revision 1.234 1994/11/29 01:39:56 john
* Fixed minor bug with vfx_light help not wrapping correctly.
*
* Revision 1.233 1994/11/28 21:34:17 john
* Reduced dos mem rqment to 70k.
*
* Revision 1.232 1994/11/28 21:20:38 john
* First version with memory checking.
*
* Revision 1.231 1994/11/28 20:06:21 rob
* Removed old serial param command line options.
* Added -noserial and -nonetwork to help listing.
*
* Revision 1.230 1994/11/27 23:15:24 matt
* Made changes for new mprintf calling convention
*
* Revision 1.229 1994/11/27 20:50:51 matt
* Don't set mem stuff if no debug
*
* Revision 1.228 1994/11/27 18:46:21 matt
* Cleaned up command-line switches a little
*
* Revision 1.227 1994/11/21 17:48:00 matt
* Added text to specifiy whether shareware or registered version
*
* Revision 1.226 1994/11/21 14:44:20 john
* Fixed some bugs with setting volumes even when -nosound was used. Duh!
*
* Revision 1.225 1994/11/21 13:53:42 matt
* Took out dos extender copyright
*
* Revision 1.224 1994/11/21 09:46:54 john
* Added -showmeminfo parameter.
*
* Revision 1.223 1994/11/20 22:12:05 mike
* Make some stuff dependent on SHAREWARE.
*
* Revision 1.222 1994/11/20 21:14:09 john
* Changed -serial to -noserial. MAde a 1 sec delay
* before leaving title screen. Clear keyboard buffer
* before asking for player name.
*
* Revision 1.221 1994/11/19 15:20:20 mike
* rip out unused code and data
*
* Revision 1.220 1994/11/17 19:14:29 adam
* prevented order screen from coming up when -notitles is used
*
* Revision 1.219 1994/11/16 11:34:39 john
* Added -nottitle switch.
*
* Revision 1.218 1994/11/16 10:05:53 john
* Added verbose messages.
*
* Revision 1.217 1994/11/15 20:12:34 john
* Added back in inferno and parallax screens.
*
* Revision 1.216 1994/11/15 18:35:30 john
* Added verbose setting.
*
* Revision 1.215 1994/11/15 17:47:44 john
* Added ordering info screen.
*
* Revision 1.214 1994/11/15 08:57:44 john
* Added MS-DOS version checking and -nonetwork option.
*
* Revision 1.213 1994/11/15 08:34:32 john
* Added better error messages for IPX init.
*
* Revision 1.212 1994/11/14 20:14:18 john
* Fixed some warnings.
*
* Revision 1.211 1994/11/14 19:50:49 john
* Added joystick cal values to descent.cfg.
*
* Revision 1.210 1994/11/14 17:56:44 allender
* make call to ReadConfigFile at startup
*
* Revision 1.209 1994/11/14 11:41:55 john
* Fixed bug with editor/game sequencing.
*
* Revision 1.208 1994/11/13 17:05:11 john
* Made the callsign entry be a list box and gave the ability
* to delete players.
*
* Revision 1.207 1994/11/13 15:39:22 john
* Added critical error handler to game. Took out -editor command line
* option because it didn't work anymore and wasn't worth fixing. Made scores
* not use MINER enviroment variable on release version, and made scores
* not print an error if there is no descent.hi.
*
* Revision 1.206 1994/11/10 20:53:29 john
* Used new sound install parameters.
*
* Revision 1.205 1994/11/10 11:07:52 mike
* Set default detail level.
*
* Revision 1.204 1994/11/09 13:45:43 matt
* Made -? work again for help
*
* Revision 1.203 1994/11/09 10:55:58 matt
* Cleaned up initialization for editor -> game transitions
*
* Revision 1.202 1994/11/07 21:35:47 matt
* Use new function iff_read_into_bitmap()
*
* Revision 1.201 1994/11/05 17:22:16 john
* Fixed lots of sequencing problems with newdemo stuff.
*
* Revision 1.200 1994/11/05 14:05:44 john
* Fixed fade transitions between all screens by making
* gr_palette_fade_in and out keep track of whether the palette is
* faded in or not. Then, wherever the code needs to fade out, it
* just calls gr_palette_fade_out and it will fade out if it isn't
* already. The same with fade_in.
* This eliminates the need for all the flags like Menu_fade_out,
* game_fade_in palette, etc.
*
* Revision 1.199 1994/11/04 14:36:30 allender
* change Auto_demo meaning to mean autostart from menu only. Use
* FindArgs when searching for AutoDemo from command line. also,
* set N_Players to 1 when starting in editor mode.
*
* Revision 1.198 1994/11/02 11:59:49 john
* Moved menu out of game into inferno main loop.
*
* Revision 1.197 1994/11/01 17:57:39 mike
* -noscreens option to bypass all screens.
*
* Revision 1.196 1994/10/28 15:42:34 allender
* don't register player if Autodemo is on
*
* Revision 1.195 1994/10/28 10:58:01 matt
* Added copyright notice for DOS4GW
*
* Revision 1.194 1994/10/20 21:26:48 matt
* Took out old serial name/number code, and put up message if this
* is a marked version.
*
* Revision 1.193 1994/10/19 09:52:14 allender
* Print out who descent.exe belongs to if descent.exe is stamped.
*
* Revision 1.192 1994/10/18 16:43:05 allender
* Added check for identifier stamp and time after which descent will
* no longer run.
*
* Revision 1.191 1994/10/17 13:07:17 john
* Moved the descent.cfg info into the player config file.
*
* Revision 1.190 1994/10/04 10:26:31 matt
* Support new menu fade in
*
* Revision 1.189 1994/10/03 22:58:46 matt
* Changed some values of game_mode
*
* Revision 1.188 1994/10/03 18:55:39 rob
* Changed defaults for com port settings.
*
* Revision 1.187 1994/10/03 13:34:47 matt
* Added new (and hopefully better) game sequencing functions
*
* Revision 1.186 1994/09/30 12:37:28 john
* Added midi,digi volume to configuration.
*
* Revision 1.185 1994/09/30 10:08:48 john
* Changed sound stuff... made it so the reseting card doesn't hang,
* made volume change only if sound is installed.
*
* Revision 1.184 1994/09/28 17:25:00 matt
* Added first draft of game save/load system
*
* Revision 1.183 1994/09/28 16:18:23 john
* Added capability to play midi song.
*
* Revision 1.182 1994/09/28 11:31:18 john
* Made text output unbuffered.
*
* Revision 1.181 1994/09/27 19:23:44 john
* Added -nojoystick and -nomouse
*
* Revision 1.180 1994/09/24 16:55:29 rob
* No longer open COM port immediately upon program start.
* No longer set Network_active is serial_active is set.
*
* Revision 1.179 1994/09/24 14:16:30 mike
* Support new game mode constants.
*
* Revision 1.178 1994/09/22 17:52:31 rob
* Added Findargs hooks for -serial, -speed, and -com.
*
* Revision 1.177 1994/09/22 16:14:11 john
* Redid intro sequecing.
*
* Revision 1.176 1994/09/21 16:32:58 john
* Made mouse and keyboard init after bm_init. Why?
* Because it seems to work better under virtual
* memory.
*
* Revision 1.175 1994/09/21 16:27:52 john
* Added mouse_init
*
* Revision 1.174 1994/09/20 15:14:10 matt
* New message for new VFX switches
*
* Revision 1.173 1994/09/16 16:14:27 john
* Added acrade sequencing.
*
* Revision 1.172 1994/09/16 11:49:52 john
* Added first version of arcade joystick support;
* Also fixed some bugs in kconfig.c, such as reading non-present
* joysticks, which killed frame rate, and not reading key_down_time
* when in slide mode or bank mode.
*
* Revision 1.171 1994/09/15 16:11:35 john
* Added support for VFX1 head tracking. Fixed bug with memory over-
* write when using stereo mode.
*
* Revision 1.170 1994/09/12 19:38:23 john
* Made some stuff that prints to the DOS screen go to the
* mono instead, since it really is debugging info.
*
* Revision 1.169 1994/08/29 21:18:28 john
* First version of new keyboard/oystick remapping stuff.
*
* Revision 1.168 1994/08/26 13:02:00 john
* Put high score system in.
*
* Revision 1.167 1994/08/24 19:00:23 john
* Changed key_down_time to return fixed seconds instead of
* milliseconds.
*
* Revision 1.166 1994/08/18 16:24:20 john
* changed socket to channel in text.
*
* Revision 1.165 1994/08/18 16:16:51 john
* Added support for different sockets.
*
* Revision 1.164 1994/08/18 10:47:53 john
* *** empty log message ***
*
* Revision 1.163 1994/08/12 09:15:54 john
* *** empty log message ***
*
* Revision 1.162 1994/08/12 03:11:19 john
* Made network be default off; Moved network options into
* main menu. Made starting net game check that mines are the
* same.
*
* Revision 1.161 1994/08/10 19:57:05 john
* Changed font stuff; Took out old menu; messed up lots of
* other stuff like game sequencing messages, etc.
*
* Revision 1.160 1994/08/05 16:30:23 john
* Added capability to turn off network.
*
* Revision 1.159 1994/08/04 19:42:51 matt
* Moved serial number & name (and version name) from inferno.c to inferno.ini
*
* Revision 1.158 1994/08/03 10:30:23 matt
* Change cybermaxx switches, updated command-line help, and added serial number system
*
* Revision 1.157 1994/07/29 18:30:10 matt
* New parms (lack of parms, actually) for g3_init()
*
* Revision 1.156 1994/07/24 00:39:25 matt
* Added more text to TEX file; make NewGame() take a start level; made game
* load/save menus use open/close window funcs.
*
* Revision 1.155 1994/07/21 21:31:27 john
* First cheapo version of VictorMaxx tracking.
*
* Revision 1.154 1994/07/21 18:15:34 matt
* Ripped out a bunch of unused stuff
*
* Revision 1.153 1994/07/21 17:59:10 matt
* Cleaned up initial mode game/editor code
*
* Revision 1.152 1994/07/21 13:11:19 matt
* Ripped out remants of old demo system, and added demo only system that
* disables object movement and game options from menu.
*
* Revision 1.151 1994/07/20 15:58:27 john
* First installment of ipx stuff.
*
* Revision 1.150 1994/07/15 16:04:24 matt
* Changed comment for milestone 3 version
*
* Revision 1.149 1994/07/15 13:59:24 matt
* Fixed stupid mistake I make in the last revision
*
* Revision 1.148 1994/07/15 13:20:15 matt
* Updated comand-line help
*
* Revision 1.147 1994/07/14 23:29:43 matt
* Open two mono debug messages, one for errors & one for spew
*
* Revision 1.146 1994/07/09 22:48:05 matt
* Added localizable text
*
* Revision 1.145 1994/07/02 13:49:47 matt
* Cleaned up includes
*
* Revision 1.144 1994/06/30 20:04:43 john
* Added -joydef support.
*
* Revision 1.143 1994/06/24 17:01:44 john
* Add VFX support; Took Game Sequencing, like EndGame and stuff and
* took it out of game.c and into gameseq.c
------------------------------------------------------------------------
main/joydefs.c:
* Revision 1.10 1995/10/18 22:21:21 allender
* fixed bug with gravis mousestick and call key_flush when
* calibrating joystick since it used keystrokes for the trigger
* (at least most of them do)
*
* Revision 1.9 1995/10/17 13:12:32 allender
* fixed up controller support for mac world
*
* Revision 1.8 1995/10/15 19:27:04 allender
* new Dave Denhart controller code
*
* Revision 1.7 1995/10/15 16:14:59 allender
* fixed axis value for Thrustmaster rudders
*
* Revision 1.6 1995/09/13 11:39:39 allender
* made joystick cal menu all text so buttons will work properly
*
* Revision 1.5 1995/09/01 13:13:13 allender
* added close box on controls menu
*
* Revision 1.4 1995/08/18 10:22:47 allender
* if thrustmaster choosen, set joystick at thrustmaster type
* for proper reading in joyc.c
*
* Revision 1.3 1995/07/26 17:00:34 allender
* put back in code to make joysticks work
*
* Revision 1.2 1995/07/17 08:52:21 allender
* put back in code that was taken out previously
*
* Revision 1.1 1995/05/16 15:26:48 allender
* Initial revision
*
* Revision 2.2 1995/06/30 12:30:22 john
* Added -Xname command line.
*
* Revision 2.1 1995/04/06 12:13:20 john
* Made so you can calibrate Gravis Gamepad.
*
* Revision 2.0 1995/02/27 11:30:27 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.71 1995/02/12 02:06:10 john
* Fixed bug with joystick incorrectly asking for
* calibration.
*
* Revision 1.70 1995/01/28 15:58:07 john
* Made joystick calibration be only when wrong detected in
* menu or joystick axis changed.
*
* Revision 1.69 1995/01/25 14:37:55 john
* Made joystick only prompt for calibration once...
*
* Revision 1.68 1995/01/24 16:34:29 john
* Made so that if you reconfigure joystick and
* add or subtract an axis, it asks for a recalibration
* upon leaving.
*
* Revision 1.67 1994/12/29 11:08:51 john
* Fixed Thrustmaster and Logitech Wingman extreme
* Hat by reading the y2 axis during the center stage
* of the calibration, and using 75, 50, 27, and 3 %
* as values for the 4 positions.
*
* Revision 1.66 1994/12/15 18:17:39 john
* Fixed warning with previous.
*
* Revision 1.65 1994/12/15 18:15:48 john
* Made the joy cal only write the .cfg file, not
* the player file.
*
* Revision 1.64 1994/12/13 14:43:35 john
* Took out the code in kconfig to build direction array.
* Called kc_set_controls after selecting a new control type.
*
* Revision 1.63 1994/12/10 12:08:47 john
* Changed some delays to use TICKER instead of timer_get_fixed_seconds.
*
* Revision 1.62 1994/12/09 11:01:07 mike
* force calibration of joystick on joystick selection from Controls... menu.
*
* Revision 1.61 1994/12/07 21:50:27 john
* Put stop/start time around joystick delay.
*
* Revision 1.60 1994/12/07 19:34:39 john
* Added delay.
*
* Revision 1.59 1994/12/07 18:12:14 john
* NEatened up joy cal.,
*
* Revision 1.58 1994/12/07 17:07:51 john
* Fixed up joy cal.
*
* Revision 1.57 1994/12/07 16:48:53 yuan
* localization
*
* Revision 1.56 1994/12/07 16:05:55 john
* Changed the way joystick calibration works.
*
* Revision 1.55 1994/12/06 20:15:22 john
* Took out code that unpauses songs that were never paused.
*
* Revision 1.54 1994/12/06 15:14:09 yuan
* Localization
*
* Revision 1.53 1994/12/05 16:29:16 john
* Took out music pause around the cheat menu.
*
* Revision 1.52 1994/12/04 12:39:10 john
* MAde so that FCS calibration doesn't ask for axis #2.
*
* Revision 1.51 1994/12/03 15:14:59 john
* Took out the delay mentioned previosuly cause it would
* cause bigger problems than it helps, especially with netgames.
*
* Revision 1.50 1994/12/03 14:16:14 john
* Put a delay between screens in joy cal to keep Yuan from
* double hitting.
*
* Revision 1.49 1994/12/03 11:04:06 john
* Changed newmenu code a bit to fix bug with bogus
* backgrounds occcasionally.
*
* Revision 1.48 1994/12/02 11:03:44 yuan
* Localization.
*
* Revision 1.47 1994/12/02 10:50:33 yuan
* Localization
*
* Revision 1.46 1994/12/01 12:21:59 john
* Added code to calibrate 2 joysticks separately.
*
* Revision 1.45 1994/12/01 11:52:31 john
* Added message when you select FCS to say that if
* you have WCS, see manuel.
*
* Revision 1.44 1994/11/29 02:26:28 john
* Made the prompts for upper-left, lower right for joy
* calibration more obvious.
*
* Revision 1.43 1994/11/26 13:13:59 matt
* Changed "none" option to "keyboard only"
*
* Revision 1.42 1994/11/21 19:35:13 john
* Replaced calls to joy_init with if (joy_present)
*
* Revision 1.41 1994/11/21 19:28:34 john
* Changed warning for no joystick to use nm_messagebox..
*
* Revision 1.40 1994/11/21 19:06:25 john
* Made it so that it only stops sound when your in game mode.
*
* Revision 1.39 1994/11/21 11:47:18 john
* Made sound pause during joystick calibration.
*
* Revision 1.38 1994/11/10 20:34:18 rob
* Removed menu-specific network mode support in favor in new stuff
* in newmenu.c
*
* Revision 1.37 1994/11/08 21:21:38 john
* Made Esc exit joystick calibration.
*
* Revision 1.36 1994/11/08 15:14:42 john
* Added more calls so net doesn't die in net game.
*
* Revision 1.35 1994/11/08 14:59:12 john
* Added code to respond to network while in menus.
*
* Revision 1.34 1994/10/24 19:56:32 john
* Made the new user setup prompt for config options.
*
* Revision 1.33 1994/10/22 14:11:52 mike
* Suppress compiler warning message.
*
* Revision 1.32 1994/10/19 12:44:24 john
* Added hours field to player structure.
*
* Revision 1.31 1994/10/17 13:07:13 john
* Moved the descent.cfg info into the player config file.
*
* Revision 1.30 1994/10/13 21:41:12 john
* MAde Esc exit out of joystick calibration.
*
* Revision 1.29 1994/10/13 19:22:27 john
* Added separate config saves for different devices.
* Made all the devices work together better, such as mice won't
* get read when you're playing with the joystick.
*
* Revision 1.28 1994/10/13 11:40:18 john
* Took out warnings.
*
* Revision 1.27 1994/10/13 11:35:23 john
* Made Thrustmaster FCS Hat work. Put a background behind the
* keyboard configure. Took out turn_sensitivity. Changed sound/config
* menu to new menu. Made F6 be calibrate joystick.
*
* Revision 1.26 1994/10/11 21:29:03 matt
* Made a bunch of menus have good initial selected values
*
* Revision 1.25 1994/10/11 17:08:39 john
* Added sliders for volume controls.
*
* Revision 1.24 1994/10/10 17:59:21 john
* Neatend previous.
*
* Revision 1.23 1994/10/10 17:57:59 john
* Neatend previous.
*
* Revision 1.22 1994/10/10 17:56:11 john
* Added messagebox that tells that config has been saved.
*
* Revision 1.21 1994/09/30 12:37:26 john
* Added midi,digi volume to configuration.
*
* Revision 1.20 1994/09/22 16:14:14 john
* Redid intro sequecing.
*
* Revision 1.19 1994/09/19 18:50:15 john
* Added switch to disable joystick.
*
* Revision 1.18 1994/09/12 11:47:36 john
* Made stupid cruise work better. Make kconfig values get
* read/written to disk.
*
* Revision 1.17 1994/09/10 15:46:47 john
* First version of new keyboard configuration.
*
* Revision 1.16 1994/09/06 19:35:44 john
* Fixed bug that didn';t load new size .cal file.
*
* Revision 1.15 1994/09/06 14:51:58 john
* Added sensitivity adjustment, fixed bug with joystick button not
* staying down.
*
* Revision 1.14 1994/09/02 16:13:47 john
* Made keys fill in position.
*
* Revision 1.13 1994/08/31 17:58:50 john
* Made a bit simpler.
*
* Revision 1.12 1994/08/31 14:17:54 john
* *** empty log message ***
*
* Revision 1.11 1994/08/31 14:10:56 john
* Made keys not work when KEY_DELETE pressed.
*
* Revision 1.10 1994/08/31 13:40:47 mike
* Change constant
*
* Revision 1.9 1994/08/31 12:56:27 john
* *** empty log message ***
*
* Revision 1.8 1994/08/30 20:38:29 john
* Add more config stuff..
*
* Revision 1.7 1994/08/30 16:37:25 john
* Added menu options to set controls.
*
* Revision 1.6 1994/08/30 09:27:18 john
* *** empty log message ***
*
* Revision 1.5 1994/08/30 09:12:01 john
* *** empty log message ***
*
* Revision 1.4 1994/08/29 21:18:32 john
* First version of new keyboard/oystick remapping stuff.
*
* Revision 1.3 1994/08/24 19:00:29 john
* Changed key_down_time to return fixed seconds instead of
* milliseconds.
*
* Revision 1.2 1994/08/17 16:50:37 john
* Added damaging fireballs, missiles.
*
* Revision 1.1 1994/08/17 10:07:12 john
* Initial revision
------------------------------------------------------------------------
main/joydefs.h:
* Revision 2.0 1995/02/27 11:32:12 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.12 1995/01/25 14:37:52 john
* Made joystick only prompt for calibration once...
*
* Revision 1.11 1994/10/13 11:35:43 john
* Made Thrustmaster FCS Hat work. Put a background behind the
* keyboard configure. Took out turn_sensitivity. Changed sound/config
* menu to new menu. Made F6 be calibrate joystick.
*
* Revision 1.10 1994/09/10 15:46:49 john
* First version of new keyboard configuration.
*
* Revision 1.9 1994/09/06 14:51:29 john
* Added sensitivity adjustment, fixed bug with joystick button not
* staying down.
*
* Revision 1.8 1994/08/31 12:56:29 john
* *** empty log message ***
*
* Revision 1.7 1994/08/30 16:37:07 john
* Added menu options to set controls.
*
* Revision 1.6 1994/08/29 21:18:33 john
* First version of new keyboard/oystick remapping stuff.
*
* Revision 1.5 1994/08/24 19:00:30 john
* Changed key_down_time to return fixed seconds instead of
* milliseconds.
*
* Revision 1.4 1994/08/17 16:50:04 john
* Added damaging fireballs, missiles.
*
* Revision 1.3 1994/07/01 10:55:18 john
* Added analog joystick throttle
*
* Revision 1.2 1994/06/30 20:04:46 john
* Added -joydef support.
*
* Revision 1.1 1994/06/30 18:08:12 john
* Initial revision
------------------------------------------------------------------------
main/kconfig.c:
* Revision 1.18 1995/10/29 20:14:10 allender
* don't read mouse 30x/sec. Still causes problems -- left with
* exposure at > 60 frame/s
*
* Revision 1.17 1995/10/27 14:16:35 allender
* don't set lastreadtime when doing mouse stuff if we didn't
* read mouse this frame
*
* Revision 1.16 1995/10/24 18:10:22 allender
* get mouse stuff working right this time?
*
* Revision 1.15 1995/10/23 14:50:50 allender
* corrected values for control type in kc_set_controls
*
* Revision 1.14 1995/10/21 16:36:54 allender
* fix up mouse read time
*
* Revision 1.13 1995/10/20 00:46:53 allender
* fix up mouse reading problem
*
* Revision 1.12 1995/10/19 13:36:38 allender
* mouse support in kconfig screens
*
* Revision 1.11 1995/10/18 21:06:06 allender
* removed Int3 in cruise stuff -- was in there for debugging and
* now not needed
*
* Revision 1.10 1995/10/17 13:12:47 allender
* fixed config menus so buttons don't get configured
*
* Revision 1.9 1995/10/15 23:07:55 allender
* added return key as second button for primary fire
*
* Revision 1.8 1995/09/05 08:49:47 allender
* change 'PADRTN' label to 'ENTER'
*
* Revision 1.7 1995/09/01 15:38:22 allender
* took out cap of reading controls max 25 times/sec
*
* Revision 1.6 1995/09/01 13:33:59 allender
* erase all old text
*
* Revision 1.5 1995/08/18 10:20:55 allender
* keep controls reading to 25 times/s max so fast
* frame rates don't mess up control reading
*
* Revision 1.4 1995/07/28 15:43:13 allender
* make mousebutton control primary fire
*
* Revision 1.3 1995/07/26 17:04:32 allender
* new defaults and make joystick main button work correctly
*
* Revision 1.2 1995/07/17 08:51:03 allender
* fixed up configuration menus to look right
*
* Revision 1.1 1995/05/16 15:26:56 allender
* Initial revision
*
* Revision 2.11 1995/08/23 16:08:04 john
* Added version 2 of external controls that passes the ship
* position and orientation the drivers.
*
* Revision 2.10 1995/07/07 16:48:01 john
* Fixed bug with new interface.
*
* Revision 2.9 1995/07/03 15:02:32 john
* Added new version of external controls for Cybermouse absolute position.
*
* Revision 2.8 1995/06/30 12:30:28 john
* Added -Xname command line.
*
* Revision 2.7 1995/03/30 16:36:56 mike
* text localization.
*
* Revision 2.6 1995/03/21 14:39:31 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.5 1995/03/16 10:53:07 john
* Move VFX center to Shift+Z instead of Enter because
* it conflicted with toggling HUD on/off.
*
* Revision 2.4 1995/03/10 13:47:24 john
* Added head tracking sensitivity.
*
* Revision 2.3 1995/03/09 18:07:06 john
* Fixed bug with iglasses tracking not "centering" right.
* Made VFX have bright headlight lighting.
*
* Revision 2.2 1995/03/08 15:32:39 john
* Made VictorMaxx head tracking use Greenleaf code.
*
* Revision 2.1 1995/03/06 15:23:31 john
* New screen techniques.
*
* Revision 2.0 1995/02/27 11:29:26 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.105 1995/02/22 14:11:58 allender
* remove anonymous unions from object structure
*
* Revision 1.104 1995/02/13 12:01:56 john
* Fixed bug with buggin not mmaking player faster.
*
* Revision 1.103 1995/02/09 22:00:46 john
* Added i-glasses tracking.
*
* Revision 1.102 1995/01/24 21:25:47 john
* Fixed bug with slide/bank on not working with
* Cyberman heading.,
*
* Revision 1.101 1995/01/24 16:09:56 john
* Fixed bug with Wingman extreme customize text overwriting title.
*
* Revision 1.100 1995/01/24 12:37:46 john
* Made Esc exit key define menu.
*
* Revision 1.99 1995/01/23 23:54:43 matt
* Made keypad enter work
*
* Revision 1.98 1995/01/23 16:42:00 john
* Made the external controls always turn banking off, leveling off
* and passed automap state thru to the tsr.
*
* Revision 1.97 1995/01/12 11:41:33 john
* Added external control reading.
*
* Revision 1.96 1995/01/05 10:43:58 mike
* Handle case when timer_get_fixed_seconds() goes negative. Happens at 9.1
* hours. Previously, joystick would stop functioning. Now will work.
*
* Revision 1.95 1994/12/29 11:17:38 john
* Took out some warnings and mprintf.
*
* Revision 1.94 1994/12/29 11:07:41 john
* Fixed Thrustmaster and Logitech Wingman extreme
* Hat by reading the y2 axis during the center stage
* of the calibration, and using 75, 50, 27, and 3 %
* as values for the 4 positions.
*
* Revision 1.93 1994/12/27 12:16:20 john
* Fixed bug with slide on not working with joystick or mouse buttons.
*
* Revision 1.92 1994/12/20 10:34:15 john
* Made sensitivity work for mouse & joystick and made
* it only affect, pitch, heading, and roll.
*
* Revision 1.91 1994/12/16 00:11:23 matt
* Made delete key act normally when debug out
*
* Revision 1.90 1994/12/14 17:41:15 john
* Added more buttons so that Yoke would work.
*
* Revision 1.89 1994/12/13 17:25:35 allender
* Added Assert for bogus time for joystick reading.
*
* Revision 1.88 1994/12/13 14:48:01 john
* Took out some debugging mprintf's
*
*
* Revision 1.87 1994/12/13 14:43:02 john
* Took out the code in kconfig to build direction array.
* Called kc_set_controls after selecting a new control type.
*
* Revision 1.86 1994/12/13 01:11:32 john
* Fixed bug with message clearing overwriting
* right border.
*
* Revision 1.85 1994/12/12 00:35:58 john
* Added or thing for keys.
*
* Revision 1.84 1994/12/09 17:08:06 john
* Made mouse a bit less sensitive.
*
* Revision 1.83 1994/12/09 16:04:00 john
* Increased mouse sensitivity.
*
* Revision 1.82 1994/12/09 00:41:26 mike
* fix hang in automap print screen
*
* Revision 1.81 1994/12/08 11:50:37 john
* Made strcpy only copy corect number of chars,.
*
* Revision 1.80 1994/12/07 16:16:06 john
* Added command to check to see if a joystick axes has been used.
*
* Revision 1.79 1994/12/07 14:52:28 yuan
* Localization 492
*
* Revision 1.78 1994/12/07 13:37:40 john
* Made the joystick thrust work in reverse.
*
* Revision 1.77 1994/12/07 11:28:24 matt
* Did a little localization support
*
* Revision 1.76 1994/12/04 12:30:03 john
* Made the Thrustmaster stick read every frame, not every 10 frames,
* because it uses analog axis as buttons.
*
* Revision 1.75 1994/12/03 22:35:25 yuan
* Localization 412
*
* Revision 1.74 1994/12/03 15:39:24 john
* Made numeric keypad move in conifg.
*
* Revision 1.73 1994/12/01 16:23:39 john
* Fixed include mistake.
*
* Revision 1.72 1994/12/01 16:07:57 john
* Fixed bug that disabled joystick in automap because it used gametime, which is
* paused during automap. Fixed be used timer_Get_fixed_seconds instead of GameTime.
*
* Revision 1.71 1994/12/01 12:30:49 john
* Made Ctrl+D delete, not Ctrl+E
*
* Revision 1.70 1994/12/01 11:52:52 john
* Added default values for GamePad.
*
* Revision 1.69 1994/11/30 00:59:12 mike
* optimizations.
*
* Revision 1.68 1994/11/29 03:45:50 john
* Added joystick sensitivity; Added sound channels to detail menu. Removed -maxchannels
* command line arg.
*
* Revision 1.67 1994/11/27 23:13:44 matt
* Made changes for new mprintf calling convention
*
* Revision 1.66 1994/11/27 19:52:12 matt
* Made screen shots work in a few more places
*
* Revision 1.65 1994/11/22 16:54:50 mike
* autorepeat on missiles.
*
* Revision 1.64 1994/11/21 11:16:17 rob
* Changed calls to GameLoop to calls to multi_menu_poll and changed
* conditions under which they are called.
*
* Revision 1.63 1994/11/19 15:14:48 mike
* remove unused code and data
*
* Revision 1.62 1994/11/18 23:37:56 john
* Changed some shorts to ints.
*
* Revision 1.61 1994/11/17 13:36:35 rob
* Added better network hook in kconfig menu.
*
* Revision 1.60 1994/11/14 20:09:13 john
* Made Tab be default for automap.
*
* Revision 1.59 1994/11/13 16:34:07 matt
* Fixed victormaxx angle conversions
*
* Revision 1.58 1994/11/12 14:47:05 john
* Added support for victor head tracking.
*
* Revision 1.57 1994/11/08 15:14:55 john
* Added more calls so net doesn't die in net game.
*
* Revision 1.56 1994/11/07 14:01:07 john
* Changed the gamma correction sequencing.
*
* Revision 1.55 1994/11/01 16:40:08 john
* Added Gamma correction.
*
* Revision 1.54 1994/10/25 23:09:26 john
* Made the automap key configurable.
*
* Revision 1.53 1994/10/25 13:11:59 john
* Made keys the way Adam speced 'em for final game.
*
* Revision 1.52 1994/10/24 17:44:22 john
* Added stereo channel reversing.
*
* Revision 1.51 1994/10/22 13:23:18 john
* Made default rear view key be R.
*
* Revision 1.50 1994/10/22 13:20:09 john
* Took out toggle primary/secondary weapons. Fixed black
* background for 'axes' and 'buttons' text.
*
* Revision 1.49 1994/10/21 15:20:15 john
* Made PrtScr do screen dump, not F2.
*
* Revision 1.48 1994/10/21 13:41:36 john
* Allowed F2 to screen dump.
*
* Revision 1.47 1994/10/17 13:07:05 john
* Moved the descent.cfg info into the player config file.
*
* Revision 1.46 1994/10/14 15:30:22 john
* Added Cyberman default positions.
*
* Revision 1.45 1994/10/14 15:24:54 john
* Made Cyberman work with config.
*
* Revision 1.44 1994/10/14 12:46:04 john
* Added the ability to reset all to default.
*
* Revision 1.43 1994/10/14 12:18:31 john
* Made mouse invert axis always be 0 or 1.
*
* Revision 1.42 1994/10/14 12:16:03 john
* Changed code so that by doing DEL+F12 saves the current kconfig
* values as default. Added support for drop_bomb key. Took out
* unused slots for keyboard. Made keyboard use control_type of 0
* save slots.
*
* Revision 1.41 1994/10/13 21:27:02 john
* Made axis invert value always be 0 or 1.
*
* Revision 1.40 1994/10/13 20:18:15 john
* Added some more system keys, such as F? and CAPSLOCK.
*
* Revision 1.39 1994/10/13 19:22:29 john
* Added separate config saves for different devices.
* Made all the devices work together better, such as mice won't
* get read when you're playing with the joystick.
*
* Revision 1.38 1994/10/13 15:41:57 mike
* Remove afterburner.
------------------------------------------------------------------------
main/kconfig.h:
* Revision 1.1 1995/05/16 15:58:27 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:29:38 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.23 1995/01/12 11:41:44 john
* Added external control reading.
*
* Revision 1.22 1994/12/07 16:15:30 john
* Added command to check to see if a joystick axes has been used.
*
* Revision 1.21 1994/11/29 03:46:29 john
* Added joystick sensitivity; Added sound channels to detail menu. Removed -maxchannels
* command line arg.
*
* Revision 1.20 1994/11/22 16:54:45 mike
* autorepeat on missiles.
*
* Revision 1.19 1994/11/07 14:01:27 john
* Changed the gamma correction sequencing.
*
* Revision 1.18 1994/11/01 16:40:02 john
* Added Gamma correction.
*
* Revision 1.17 1994/10/25 23:09:24 john
* Made the automap key configurable.
*
* Revision 1.16 1994/10/24 19:56:51 john
* Made the new user setup prompt for config options.
*
* Revision 1.15 1994/10/24 17:44:18 john
* Added stereo channel reversing.
*
* Revision 1.14 1994/10/22 13:19:33 john
* Took out toggle primary/secondary weapons. Fixed black
* background for 'axes' and 'buttons' text.
*
* Revision 1.13 1994/10/17 13:06:51 john
* Moved the descent.cfg info into the player config file.
*
* Revision 1.12 1994/10/14 12:14:47 john
* Changed code so that by doing DEL+F12 saves the current kconfig
* values as default. Added support for drop_bomb key. Took out
* unused slots for keyboard. Made keyboard use control_type of 0
* save slots.
*
* Revision 1.11 1994/10/13 19:21:33 john
* Added separate config saves for different devices.
* Made all the devices work together better, such as mice won't
* get read when you're playing with the joystick.
*
* Revision 1.10 1994/10/13 15:18:41 john
* Started ripping out old afterburner, show message, show automap
* keys in the keyboard config stuff.
*
* Revision 1.9 1994/10/13 11:35:27 john
* Made Thrustmaster FCS Hat work. Put a background behind the
* keyboard configure. Took out turn_sensitivity. Changed sound/config
* menu to new menu. Made F6 be calibrate joystick.
*
* Revision 1.8 1994/10/06 14:10:50 matt
* New function reset_cruise()
*
* Revision 1.7 1994/10/03 14:58:25 john
* Added rear_view_down_state so that the rear view can
* work like the automap.
*
* Revision 1.6 1994/09/30 12:37:25 john
* Added midi,digi volume to configuration.
*
* Revision 1.5 1994/09/19 18:49:59 john
* Added switch to disable joystick.
*
* Revision 1.4 1994/09/15 16:11:21 john
* Added support for VFX1 head tracking. Fixed bug with memory over-
* write when using stereo mode.
*
* Revision 1.3 1994/09/12 11:47:38 john
* Made stupid cruise work better. Make kconfig values get
* read/written to disk.
*
* Revision 1.2 1994/09/10 15:46:55 john
* First version of new keyboard configuration.
*
* Revision 1.1 1994/09/10 13:51:40 john
* Initial revision
------------------------------------------------------------------------
main/kmatrix.c:
* Revision 1.6 1995/09/24 10:57:48 allender
* made any key move off of kill matrix screen as text indicates it should
*
* Revision 1.5 1995/08/18 08:33:05 allender
* fixed text problem with top level player names
*
* Revision 1.4 1995/07/26 17:03:05 allender
* sort of fixed spacing for mac
*
* Revision 1.3 1995/06/06 15:36:14 allender
* be sure to bitblt to screen inside of kmatrix loop
*
* Revision 1.2 1995/06/02 07:47:15 allender
* removed bogus include files
*
* Revision 1.1 1995/05/16 15:27:07 allender
* Initial revision
*
* Revision 2.3 1995/05/02 17:01:22 john
* Fixed bug with kill list not showing up in VFX mode.
*
* Revision 2.2 1995/03/21 14:38:20 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.1 1995/03/06 15:22:54 john
* New screen techniques.
*
* Revision 2.0 1995/02/27 11:25:56 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.19 1995/02/15 14:47:23 john
* Added code to keep track of kills during endlevel.
*
* Revision 1.18 1995/02/08 11:00:06 rob
* Moved string to localized file
*
* Revision 1.17 1995/02/01 23:45:55 rob
* Fixed string.
*
* Revision 1.16 1995/01/30 21:47:11 rob
* Added a line of instructions.
*
* Revision 1.15 1995/01/20 16:58:43 rob
* careless careless careless...
*
*
* Revision 1.14 1995/01/20 13:43:48 rob
* Longer time to view.
*
* Revision 1.13 1995/01/20 13:42:34 rob
* Fixed sorting bug.
*
* Revision 1.12 1995/01/19 17:35:21 rob
* Fixed coloration of player names in team mode.
*
* Revision 1.11 1995/01/16 21:26:15 rob
* Fixed it!!
*
* Revision 1.10 1995/01/16 18:55:41 rob
* Added include of network.h
*
* Revision 1.9 1995/01/16 18:22:35 rob
* Fixed problem with signs.
*
* Revision 1.8 1995/01/12 16:07:51 rob
* ADded sorting before display.
*
* Revision 1.7 1995/01/04 08:46:53 rob
* JOHN CHECKED IN FOR ROB !!!
*
* Revision 1.6 1994/12/09 20:17:20 yuan
* Touched up
*
* Revision 1.5 1994/12/09 19:46:35 yuan
* Localized the sucker.
*
* Revision 1.4 1994/12/09 19:24:58 rob
* Yuan's fix to the centering.
*
* Revision 1.3 1994/12/09 19:02:37 yuan
* Cleaned up a bit.
*
* Revision 1.2 1994/12/09 16:19:46 yuan
* kill matrix stuff.
*
* Revision 1.1 1994/12/09 15:08:58 yuan
* Initial revision
------------------------------------------------------------------------
main/kmatrix.h:
* Revision 1.1 1995/05/16 15:58:35 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:28:51 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.3 1995/02/15 14:47:39 john
* Added code to keep track of kills during endlevel.
*
* Revision 1.2 1994/12/09 16:19:46 yuan
* kill matrix stuff.
*
* Revision 1.1 1994/12/09 15:58:33 yuan
* Initial revision
------------------------------------------------------------------------
main/laser.c:
* Revision 1.1 1993/11/29 17:19:02 john
* Initial revision
------------------------------------------------------------------------
main/laser.h:
* Revision 1.1 1995/05/16 15:58:43 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:32:27 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.50 1995/02/01 21:03:44 john
* Lintified.
*
* Revision 1.49 1995/02/01 16:34:11 john
* Linted.
*
* Revision 1.48 1995/01/31 16:16:16 mike
* Separate smart blobs for robot and player.
*
* Revision 1.47 1995/01/27 17:02:55 mike
* Add LASER_ID -- why wasn't this added in June?
*
* Revision 1.46 1995/01/25 10:53:27 mike
* make badass damage go through grates.
*
* Revision 1.45 1994/12/12 17:17:32 mike
* make boss cloak/teleport when get hit, make quad laser 3/4 as powerful.
*
* Revision 1.44 1994/12/04 16:17:23 mike
* spruce up homing missile behavior.
*
* Revision 1.43 1994/12/03 12:48:30 mike
* make homing missile tracking not frame rate dependent (more-or-less)
*
* Revision 1.42 1994/10/12 08:04:54 mike
* Clean up proximity/homing mess.
*
* Revision 1.41 1994/10/09 20:07:04 rob
* Change prototype for do_laser_firing
*
* Revision 1.40 1994/10/09 00:15:48 mike
* Add constants for super mech missile, regular mech missile, silent spreadfire.
*
* Revision 1.39 1994/10/08 19:52:09 rob
* Added new weapon fire flags.
*
* Revision 1.38 1994/10/07 15:31:12 mike
* Prototypes for new laser functions which don't necessarily make sound.
*
* Revision 1.37 1994/10/05 17:08:29 matt
* Fixed a couple of small bugs, and made homing missiles alternate sides
*
* Revision 1.36 1994/09/28 14:28:55 rob
* Added firing of missiles on networks/serial.
*
* Revision 1.35 1994/09/24 14:17:02 mike
* Prototype do_laser_firing.
*
* Revision 1.34 1994/09/23 11:36:49 mike
* Prototype Laser_create_new_easy.
*
* Revision 1.33 1994/09/20 11:55:01 mike
* Fix bug.
*
* Revision 1.32 1994/09/20 11:48:34 mike
* Change spreadfire laser to use new bitmap. (Define SPREADFIRE_ID)
*
* Revision 1.31 1994/09/15 16:31:28 mike
* Prototype object_to_object_visibility.
*
* Revision 1.30 1994/09/10 17:31:40 mike
* Add thrust to weapons.
*
* Revision 1.29 1994/09/08 14:49:44 mike
* Bunch of IDs for new weapon types.
*
* Revision 1.28 1994/09/07 19:16:40 mike
* Homing missile.
*
* Revision 1.27 1994/09/07 15:59:47 mike
* Kill FLARE_MAX_TIME (now defined in bitmaps.tbl), add PROXIMITY_ID (shame!), prototype do_laser_firing, do_missile_firing.
*
* Revision 1.26 1994/09/03 15:22:41 mike
* Kill Projectile_player_fire prototype.
*
* Revision 1.25 1994/09/02 16:39:00 mike
* IDs for primary weapons.
*
* Revision 1.24 1994/09/02 11:55:54 mike
* Define some illegal constants.
*
* Revision 1.23 1994/08/25 18:12:06 matt
* Made player's weapons and flares fire from the positions on the 3d model.
* Also added support for quad lasers.
*
* Revision 1.22 1994/08/19 15:22:28 mike
* Define constant for MAX_LASER_LEVEL.
*
* Revision 1.21 1994/08/13 12:20:47 john
* Made the networking uise the Players array.
*
* Revision 1.20 1994/08/10 10:44:05 john
* Made net players fire..
*
* Revision 1.19 1994/06/27 18:30:57 mike
* Add flares.
*
* Revision 1.18 1994/06/09 15:32:37 mike
* Muzzle flash
*
* Revision 1.17 1994/05/19 09:09:00 mike
* Move a bunch of laser variables to bm.h, I think.
* Also, added Robot_laser_speed, instead of hard-coding Laser_speed/4.
*
* Revision 1.16 1994/05/14 17:16:20 matt
* Got rid of externs in source (non-header) files
*
* Revision 1.15 1994/05/13 20:27:39 john
* Version II of John's new object code.
*
* Revision 1.14 1994/04/20 15:06:47 john
* Neatend laser code and fixed some laser bugs.
*
* Revision 1.13 1994/04/01 13:35:15 matt
* Cleaned up laser code a bit; moved some code here object.c to laser.c
*
* Revision 1.12 1994/04/01 11:14:24 yuan
* Added multiple bitmap functionality to all objects...
* (hostages, powerups, lasers, etc.)
* Hostages and powerups are implemented in the object system,
* just need to finish function call to "affect" player.
*
* Revision 1.11 1994/03/31 09:10:09 matt
* Added #define to turn crosshair off
*
* Revision 1.10 1994/02/17 11:33:15 matt
* Changes in object system
*
* Revision 1.9 1994/01/06 11:56:01 john
* Made lasers be lines, not purple blobs
*
* Revision 1.8 1994/01/05 10:53:35 john
* New object code by John.
*
* Revision 1.7 1993/12/08 14:21:36 john
* Added ExplodeObject
*
* Revision 1.6 1993/12/08 11:28:54 john
* Made lasers look like bolts.
*
* Revision 1.5 1993/12/01 13:12:40 john
* made lasers frame-rate independant
*
* Revision 1.4 1993/11/30 19:00:42 john
* lasers working kinda
*
* Revision 1.3 1993/11/29 19:44:53 john
* *** empty log message ***
*
* Revision 1.2 1993/11/29 17:44:55 john
* *** empty log message ***
*
* Revision 1.1 1993/11/29 17:19:19 john
* Initial revision
------------------------------------------------------------------------
main/lighting.c:
* Revision 1.4 1995/09/20 14:26:12 allender
* more optimizations(?) ala MK
*
* Revision 1.2 1995/07/05 21:27:31 allender
* new and improved lighting code by MK!
*
* Revision 2.1 1995/07/24 13:21:56 john
* Added new lighting calculation code to speed things up.
*
* Revision 2.0 1995/02/27 11:27:33 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.43 1995/02/22 13:57:10 allender
* remove anonymous union from object structure
*
* Revision 1.42 1995/02/13 20:35:07 john
* Lintized
*
* Revision 1.41 1995/02/04 21:43:40 matt
* Changed an assert() to an int3() and deal with the bad case
*
* Revision 1.40 1995/01/15 20:48:27 mike
* support light field for powerups.
*
* Revision 1.39 1994/12/15 13:04:19 mike
* Replace Players[Player_num].time_total references with GameTime.
*
* Revision 1.38 1994/11/28 21:50:41 mike
* optimizations.
*
* Revision 1.37 1994/11/28 01:32:33 mike
* lighting optimization.
*
* Revision 1.36 1994/11/15 12:01:00 john
* Changed a bunch of code that uses timer_get_milliseconds to
* timer_get_fixed_Seconds.
*
* Revision 1.35 1994/10/31 21:56:07 matt
* Fixed bug & added error checking
*
* Revision 1.34 1994/10/21 11:24:57 mike
* Trap divide overflows in lighting.
*
* Revision 1.33 1994/10/08 14:49:11 matt
* If viewer changed, don't do smooth lighting hack
*
* Revision 1.32 1994/09/25 23:41:07 matt
* Changed the object load & save code to read/write the structure fields one
* at a time (rather than the whole structure at once). This mean that the
* object structure can be changed without breaking the load/save functions.
* As a result of this change, the local_object data can be and has been
* incorporated into the object array. Also, timeleft is now a property
* of all objects, and the object structure has been otherwise cleaned up.
*
* Revision 1.31 1994/09/25 15:45:15 matt
* Added OBJ_LIGHT, a type of object that casts light
* Added generalized lifeleft, and moved it to local_object
*
* Revision 1.30 1994/09/11 15:48:27 mike
* Use vm_vec_mag_quick in place of vm_vec_mag in point_dist computation.
*
* Revision 1.29 1994/09/08 21:44:49 matt
* Made lighting ramp 4x as fast; made only static (ambient) light ramp
* up, but not headlight & dynamic light
*
* Revision 1.28 1994/09/02 14:00:07 matt
* Simplified explode_object() & mutliple-stage explosions
*
* Revision 1.27 1994/08/29 19:06:44 mike
* Make lighting proportional to square of distance, not linear.
*
* Revision 1.26 1994/08/25 18:08:38 matt
* Made muzzle flash cast 3x as much light
*
* Revision 1.25 1994/08/23 16:38:31 mike
* Key weapon light off bitmaps.tbl.
*
* Revision 1.24 1994/08/13 12:20:44 john
* Made the networking uise the Players array.
*
* Revision 1.23 1994/08/12 22:42:18 john
* Took away Player_stats; added Players array.
*
* Revision 1.22 1994/07/06 10:19:22 matt
* Changed include
*
* Revision 1.21 1994/06/28 13:20:22 mike
* Oops, fixed a dumb typo.
*
* Revision 1.20 1994/06/28 12:53:25 mike
* Change lighting function for flares, make brighter and asynchronously flicker.
*
* Revision 1.19 1994/06/27 18:31:15 mike
* Add flares.
*
* Revision 1.18 1994/06/20 13:41:17 matt
* Added time-based gradual lighting hack for objects
* Took out strobing robots
*
* Revision 1.17 1994/06/19 16:25:54 mike
* Optimize lighting.
*
* Revision 1.16 1994/06/17 18:08:08 mike
* Make robots cast more and variable light.
*
* Revision 1.15 1994/06/13 15:15:55 mike
* Fix phantom light, every 64K milliseconds, muzzle flash would flash again.
------------------------------------------------------------------------
main/lighting.h:
* Revision 1.1 1995/05/16 15:58:51 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:27:52 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.6 1994/11/28 21:50:56 mike
* optimizations.
*
* Revision 1.5 1994/06/07 16:51:58 matt
* Made object lighting work correctly; changed name of Ambient_light to
* Dynamic_light; cleaned up polygobj object rendering a little.
*
* Revision 1.4 1994/05/31 18:41:35 matt
* Added comments
*
* Revision 1.3 1994/05/23 15:00:08 mike
* Change MIN_LIGHT_DIST.
*
* Revision 1.2 1994/05/22 15:30:09 mike
* First version.
*
* Revision 1.1 1994/05/22 15:16:44 mike
* Initial revision
------------------------------------------------------------------------
main/menu.h:
* Revision 1.1 1995/05/16 15:59:14 allender
* Initial revision
*
* Revision 2.1 1995/03/06 16:47:41 mike
* destination saturn
*
* Revision 2.0 1995/02/27 11:29:47 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.34 1994/12/12 00:16:16 john
* Added auto-leveling flag.
*
* Revision 1.33 1994/12/07 20:04:26 mike
* set Max_debris_objects.
*
* Revision 1.32 1994/11/14 17:23:19 rob
* ADded extern for default difficulty settings.
*
* Revision 1.31 1994/11/10 11:08:29 mike
* detail level stuff.
*
* Revision 1.30 1994/11/05 14:05:53 john
* Fixed fade transitions between all screens by making gr_palette_fade_in and out keep
* track of whether the palette is faded in or not. Then, wherever the code needs to fade out,
* it just calls gr_palette_fade_out and it will fade out if it isn't already. The same with fade_in.
* This eliminates the need for all the flags like Menu_fade_out, game_fade_in palette, etc.
*
* Revision 1.29 1994/11/02 11:59:44 john
* Moved menu out of game into inferno main loop.
*
* Revision 1.28 1994/10/17 20:30:59 john
* Made the text for the difficulty labels global so that
* the high score screen can print "rookie" or whatever.
*
* Revision 1.27 1994/10/04 10:47:09 matt
* Made main menu remember selected item
*
* Revision 1.26 1994/08/10 19:55:19 john
* Changed font stuff; Took out old menu; messed up lots of
* other stuff like game sequencing messages, etc.
*
* Revision 1.25 1994/06/23 18:54:09 matt
* Cleaned up game start/menu interaction, and improved main menu a little
*
* Revision 1.24 1994/06/21 12:11:50 yuan
* Fixed up menus and added HUDisplay messages.
*
* Revision 1.23 1994/06/20 23:15:16 yuan
* Color switching capability for the menus.
*
* Revision 1.22 1994/06/20 22:02:25 yuan
* Made menu GREEN by POPULAR DEMAND!!
*
* Revision 1.21 1994/06/20 21:05:48 yuan
* Fixed up menus.
*
* Revision 1.20 1994/06/20 19:19:29 yuan
* Tidied up the menu and the "message blocks" between levels, etc.
*
* Revision 1.19 1994/06/17 18:01:10 john
* A bunch of new stuff by John
*
* Revision 1.18 1994/05/16 09:37:22 matt
* Got rid of global continue_flag
*
* Revision 1.17 1994/05/14 17:14:51 matt
* Got rid of externs in source (non-header) files
*
* Revision 1.16 1994/05/10 12:14:26 yuan
* Game save/load... Demo levels 1-5 added...
* High scores fixed...
*
* Revision 1.15 1994/05/05 09:21:21 yuan
* *** empty log message ***
*
* Revision 1.14 1994/04/29 14:55:40 mike
* Change some menu colors.
*
* Revision 1.13 1994/04/28 18:04:36 yuan
* Gamesave added.
* Trigger problem fixed (seg pointer is replaced by index now.)
*
* Revision 1.12 1994/02/18 11:55:01 yuan
* Fixed menu to be called from game.
*
* Revision 1.11 1994/02/10 17:45:39 yuan
* Integrated some hacks which still need to be fixed.
*
* Revision 1.10 1994/02/01 22:50:23 yuan
* Final menu version for demo
*
* Revision 1.9 1994/02/01 11:50:17 yuan
* Moved quit message down just a tiny bit
*
* Revision 1.8 1994/01/31 17:30:16 yuan
* Fixed quit not disappearing problem
*
* Revision 1.7 1994/01/31 12:25:20 yuan
* New menu stuff
*
* Revision 1.6 1994/01/26 13:14:04 john
* *** empty log message ***
*
* Revision 1.5 1993/12/29 16:44:44 yuan
* Added some function definitions
*
* Revision 1.4 1993/12/13 18:53:12 yuan
* Fixed dependency problem
*
* Revision 1.3 1993/12/12 13:53:51 yuan
* Added menu and -g flag
*
* Revision 1.2 1993/12/10 16:07:17 yuan
* Working on menu system. Updated the title screen.
*
* Revision 1.1 1993/12/10 12:45:27 yuan
* Initial revision
------------------------------------------------------------------------
main/mglobal.c:
* Revision 1.1 1995/12/05 16:03:10 allender
* Initial revision
*
* Revision 1.3 1995/10/10 11:49:41 allender
* removed malloc of static data now in ai module
*
* Revision 1.2 1995/07/12 12:48:52 allender
* malloc out edge_list global here, not static in automap.c
*
* Revision 1.1 1995/05/16 15:27:40 allender
* Initial revision
*
* Revision 2.2 1995/03/14 18:24:37 john
* Force Destination Saturn to use CD-ROM drive.
*
* Revision 2.1 1995/03/06 16:47:23 mike
* destination saturn
*
* Revision 2.0 1995/02/27 11:30:00 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.43 1995/01/19 17:00:53 john
* Made save game work between levels.
*
* Revision 1.42 1994/12/05 14:23:53 adam
* changed default detail to max, not custom
*
* Revision 1.41 1994/11/19 15:15:07 mike
* remove unused code and data
*
* Revision 1.40 1994/11/03 10:13:19 yuan
* Added #include "game.h"
*
* Revision 1.39 1994/11/03 10:09:59 matt
* Properly initialize detail & difficulty levels
*
* Revision 1.38 1994/10/30 14:11:21 mike
* rip out local segments stuff.
*
* Revision 1.37 1994/10/26 15:21:30 mike
* detail level.
*
* Revision 1.36 1994/09/22 10:46:12 mike
* Add difficulty levels.
*
* Revision 1.35 1994/09/13 11:19:11 mike
* Add Next_missile_fire_time.
*
* Revision 1.34 1994/08/31 19:25:34 mike
* GameTime and laser-firing limiting stuff added.
*
* Revision 1.33 1994/08/11 18:58:53 mike
* Add Side_to_verts_int.
*
* Revision 1.32 1994/07/21 19:01:38 mike
* Add Lsegment.
*
* Revision 1.31 1994/07/21 13:11:24 matt
* Ripped out remants of old demo system, and added demo only system that
* disables object movement and game options from menu.
*
* Revision 1.30 1994/06/17 18:06:48 matt
* Made password be treated as lowercase, since cmdline parsing converts
* everything to lowercase.
*
* Revision 1.29 1994/03/15 16:33:04 yuan
* Cleaned up bm-loading code.
* (Fixed structures too)
*
* Revision 1.28 1994/02/17 11:32:45 matt
* Changes in object system
*
* Revision 1.27 1994/02/16 17:08:43 matt
* Added needed include of 3d.h
*
* Revision 1.26 1994/02/16 13:47:58 mike
* fix bugs so editor can compile out.
*
* Revision 1.25 1994/02/11 21:52:13 matt
* Made password protection selectable by #define (and thus INFERNO.INI)
*
* Revision 1.24 1994/02/10 15:35:56 matt
* Various changes to make editor compile out.
*
* Revision 1.23 1994/02/02 12:34:29 mike
* take out BATS encryption.
*
* Revision 1.22 1994/01/21 16:08:11 matt
* Added FrameCount variable
*
* Revision 1.21 1994/01/06 17:13:10 john
* Added Video clip functionality
*
* Revision 1.20 1993/12/08 17:45:08 matt
* Changed password again
*
* Revision 1.19 1993/12/08 17:41:05 matt
* Changed password
*
* Revision 1.18 1993/12/08 10:55:10 mike
* Add free_obj_list
*
* Revision 1.17 1993/12/07 13:46:38 john
* Added Explosion bitmap array
*
* Revision 1.16 1993/12/06 18:40:35 matt
* Changed object loading & handling
*
* Revision 1.15 1993/12/05 22:47:48 matt
* Reworked include files in an attempt to cut down on build times
*
* Revision 1.14 1993/12/01 11:44:11 matt
* Chagned Frfract to FrameTime
*
* Revision 1.13 1993/12/01 00:27:11 yuan
* Implemented new bitmap structure system...
* overall bitmap scheme still needs some work.
*
* Revision 1.12 1993/11/19 17:21:59 matt
* Changed the bitmap number of object class UNICLASS
* Removed static initialization for objects
*
* Revision 1.11 1993/11/18 13:51:47 mike
* Add Classes, Class_views, Objects
*
* Revision 1.10 1993/11/04 18:52:36 matt
* Made Vertices[] and Segment_points[] use same constant for size, since
* they must be the same size anyway
*
* Revision 1.9 1993/11/04 14:01:06 matt
* Mucked with include files
*
* Revision 1.8 1993/10/26 13:58:42 mike
* Add password protection.
*
* Revision 1.7 1993/10/14 18:05:50 mike
* Change Side_to_verts to use MAX_SIDES_PER_SEGMENT in place of CONNECTIVITY
*
* Revision 1.6 1993/10/12 13:57:19 john
* added texture[]
*
* Revision 1.5 1993/10/12 09:58:15 mike
* Move Side_to_verts here from eglobal.c, since it is needed in the game.
*
* Revision 1.4 1993/10/09 15:52:30 mike
* Move test_pos, test_orient here from render.c.
*
* Revision 1.3 1993/10/02 18:15:45 mike
* Killed include of segment.h, which gets included by inferno.h.
*
* Revision 1.2 1993/09/23 17:54:24 mike
* Add Segment_points
*
* Revision 1.1 1993/09/23 15:01:50 mike
* Initial revision
------------------------------------------------------------------------
main/mission.c:
* Revision 1.4 1995/10/31 10:21:40 allender
* no mission support in shareware
*
* Revision 1.3 1995/10/21 22:53:04 allender
* moved missions to data folder
*
* Revision 1.2 1995/09/13 08:47:29 allender
* made to work with Chris' direct stuff
*
* Revision 1.1 1995/05/16 15:27:48 allender
* Initial revision
*
* Revision 2.9 1995/05/26 16:16:32 john
* Split SATURN into define's for requiring cd, using cd, etc.
* Also started adding all the Rockwell stuff.
*
* Revision 2.8 1995/03/20 15:49:31 mike
* Remove eof char from comment which confused make depend, causing
* no mission.obj: line in makefile. Pretty stupid tool, huh?
*
* Revision 2.7 1995/03/20 12:12:11 john
* Added ifdef SATURN.
*
* Revision 2.6 1995/03/15 14:32:49 john
* Added code to force the Descent CD-rom in the drive.
*
* Revision 2.5 1995/03/15 11:41:15 john
* Better Saturn CD-ROM support.
*
* Revision 2.4 1995/03/14 18:24:14 john
* Force Destination Saturn to use CD-ROM drive.
*
* Revision 2.3 1995/03/07 14:19:41 mike
* More destination saturn stuff.
*
* Revision 2.2 1995/03/06 23:09:03 mike
* more saturn stuff: make briefings work for saturn mission.
*
* Revision 2.1 1995/03/06 16:47:48 mike
* destination saturn
*
* Revision 2.0 1995/02/27 11:27:49 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.14 1995/02/15 11:30:37 john
* Fixed bug with potential mem overwrite on line 160.
*
* Revision 1.13 1995/02/10 17:53:20 matt
* Changed mission name again
*
* Revision 1.12 1995/02/10 17:35:38 matt
* Changed name of built-in mission
*
* Revision 1.11 1995/02/07 17:13:51 allender
* removed return statement in load_mission so that built in mission will
* actually set the Current_mission_name and _filename
*
* Revision 1.10 1995/01/31 01:19:45 matt
* Made build_mission_list() sort missions by name
*
* Revision 1.9 1995/01/30 13:49:58 allender
* changed build_mission_list in load_mission_by_name to include
* anarchy levels.
*
* Revision 1.8 1995/01/30 13:03:51 matt
* Fixed dumb mistake
*
* Revision 1.7 1995/01/30 12:55:22 matt
* Added vars to point to mission names
*
* Revision 1.6 1995/01/22 18:57:28 matt
* Made player highest level work with missions
*
* Revision 1.5 1995/01/22 14:13:08 matt
* Added flag in mission list for anarchy-only missions
*
* Revision 1.4 1995/01/21 23:13:12 matt
* Made high scores with (not work, really) with loaded missions
* Don't give player high score when quit game
*
* Revision 1.3 1995/01/21 16:27:12 matt
* Made endlevel briefing work with missions
*
* Revision 1.2 1995/01/20 22:47:50 matt
* Mission system implemented, though imcompletely
*
* Revision 1.1 1995/01/20 13:42:19 matt
* Initial revision
------------------------------------------------------------------------
main/mission.h:
* Revision 1.1 1995/05/16 15:59:22 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:31:35 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.6 1995/01/30 12:55:41 matt
* Added vars to point to mission names
*
* Revision 1.5 1995/01/22 18:57:21 matt
* Made player highest level work with missions
*
* Revision 1.4 1995/01/22 14:13:21 matt
* Added flag in mission list for anarchy-only missions
*
* Revision 1.3 1995/01/21 23:13:12 matt
* Made high scores with (not work, really) with loaded missions
* Don't give player high score when quit game
*
* Revision 1.2 1995/01/20 22:47:53 matt
* Mission system implemented, though imcompletely
*
* Revision 1.1 1995/01/20 13:42:26 matt
* Initial revision
------------------------------------------------------------------------
main/modem.h:
* Revision 1.2 1995/09/05 14:06:40 allender
* checkpoint again
*
* Revision 1.1 1995/05/16 15:59:29 allender
* Initial revision
*
* Revision 2.1 1995/03/21 14:40:38 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.0 1995/02/27 11:31:34 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.18 1994/11/22 17:12:05 rob
* Starting working on secret level fix for modem games.
*
* Revision 1.17 1994/11/17 16:43:17 rob
* Added prototype for com_level_sync function.
*
* Revision 1.16 1994/11/15 21:30:32 rob
* Added prototype for new menu hook.
*
* Revision 1.15 1994/10/07 16:15:33 rob
* Changed calls to multi_send_position.
*
* Revision 1.14 1994/10/07 12:52:24 rob
* Fixed some problems.
*
* Revision 1.13 1994/10/07 11:25:47 rob
* Tried to fix modem to work with new multi stuff. Still a bit jacked up, tho.
*
* Revision 1.12 1994/10/05 19:14:50 rob
* Exported macros and arrays to support network object mapping.
*
* Revision 1.11 1994/10/05 17:48:59 rob
* Several changes, most to end_of_level sequencing.
*
* Revision 1.10 1994/10/05 14:22:54 rob
* Added com_end_level.
*
* Revision 1.9 1994/09/30 18:37:22 rob
* Another day's worth of work. Mostly menus, error checking. Added
* level checksums during sync, carrier detect during all com calls,
* generic com_abort() procedure for bailing out, and nm_messagebox
* handling of QUIT instead of HUD message (which never gets seen).
*
* Revision 1.8 1994/09/29 20:55:16 rob
* Lots of changes.
*
* Revision 1.7 1994/09/29 16:09:20 rob
* Added explode stuff.
*
* Revision 1.6 1994/09/28 14:31:08 rob
* Added serial setup menu.
*
* Revision 1.5 1994/09/27 15:02:49 rob
* Null modem basic routines working. Sending DEAD messages and
* missiles still need to be done.
*
* Revision 1.4 1994/09/24 16:52:33 rob
* Added stubbed funcs for startup and stop of serial games.
*
* Revision 1.3 1994/09/24 14:47:31 rob
* New function protos.
*
* Revision 1.2 1994/09/22 17:53:29 rob
* First revision, not yet functional.
*
* Revision 1.1 1994/09/22 12:39:25 rob
* Initial revision
------------------------------------------------------------------------
main/morph.c:
* Revision 1.5 1995/08/23 21:36:10 allender
* mcc compiler warnings fixed
*
* Revision 1.4 1995/08/12 11:34:19 allender
* removed #ifdef NEWDEMO -- always in
*
* Revision 1.3 1995/07/28 15:39:51 allender
* removed fixdiv thing
*
* Revision 1.2 1995/07/28 15:21:23 allender
* inverse magnitude fixup thing
*
* Revision 1.1 1995/05/16 15:28:05 allender
* Initial revision
*
* Revision 2.1 1995/02/27 18:26:33 john
* Fixed bug that was caused by externing Polygon_models, and I had
* changed the type of it in polyobj.c, thus causing page faults.
*
* Revision 2.0 1995/02/27 11:27:44 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.35 1995/02/22 14:45:37 allender
* remove anonymous unions from object structure
*
* Revision 1.34 1995/01/14 19:16:52 john
* First version of new bitmap paging code.
*
* Revision 1.33 1995/01/03 20:38:36 john
* Externed MAX_MORPH_OBJECTS
*
* Revision 1.32 1994/11/17 15:34:04 matt
* Attempt #4 to fix morph bug
*
* Revision 1.31 1994/11/15 10:57:14 matt
* Tried again to fix morph
*
* Revision 1.30 1994/11/14 14:06:45 matt
* Fixed stupid bug
*
* Revision 1.29 1994/11/14 11:55:13 matt
* Added divide overflow check
*
* Revision 1.28 1994/09/26 17:28:14 matt
* Made new multiple-object morph code work with the demo system
*
* Revision 1.27 1994/09/26 15:39:56 matt
* Allow multiple simultaneous morphing objects
*
* Revision 1.26 1994/09/11 22:44:59 mike
* quick on vecmat function.
*
* Revision 1.25 1994/08/26 15:36:00 matt
* Made eclips usable on more than one object at a time
*
* Revision 1.24 1994/07/25 00:02:46 matt
* Various changes to accomodate new 3d, which no longer takes point numbers
* as parms, and now only takes pointers to points.
*
* Revision 1.23 1994/07/12 12:39:58 matt
* Revamped physics system
*
* Revision 1.22 1994/06/28 11:54:51 john
* Made newdemo system record/play directly to/from disk, so
* we don't need the 4 MB buffer anymore.
*
* Revision 1.21 1994/06/27 15:53:01 john
* #define'd out the newdemo stuff
*
*
* Revision 1.20 1994/06/16 14:30:19 matt
* Moved morph record data call to reder routine
*
* Revision 1.19 1994/06/16 13:57:23 matt
* Added support for morphing objects in demos
*
* Revision 1.18 1994/06/16 12:24:23 matt
* Made robot lighting not mess with Lighting_on so robots now night
* according to this variable.
*
* Revision 1.17 1994/06/14 16:55:01 matt
* Got rid of physics_object speed field
*
* Revision 1.16 1994/06/08 21:16:29 matt
* Made objects spin while morphing
*
* Revision 1.15 1994/06/08 18:21:53 matt
* Made morphing objects light correctly
*
* Revision 1.14 1994/06/07 16:50:49 matt
* Made object lighting work correctly; changed name of Ambient_light to
* Dynamic_light; cleaned up polygobj object rendering a little.
*
* Revision 1.13 1994/06/01 16:33:59 yuan
* Fixed bug.
*
*
* Revision 1.12 1994/06/01 16:29:08 matt
* If morph_frame called on object this isn't the morph object, kill it.
*
* Revision 1.11 1994/06/01 12:46:34 matt
* Added needed include
*
* Revision 1.10 1994/05/31 22:12:41 matt
* Set lighting for morph objects
* Don't let another object start morph while one is morphing, unless
* that one dies.
*
* Revision 1.9 1994/05/31 18:49:53 john
* Took out debugging printf's that Matt left in.
*
* Revision 1.8 1994/05/30 22:50:22 matt
* Added morph effect for robots
------------------------------------------------------------------------
main/morph.h:
* Revision 1.2 1995/08/23 21:35:58 allender
* fix mcc compiler warnings
*
* Revision 1.1 1995/05/16 15:59:37 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:32:19 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.9 1995/01/04 12:20:46 john
* Declearations to work better with game state save.
*
*
* Revision 1.8 1995/01/03 20:38:44 john
* Externed MAX_MORPH_OBJECTS
*
* Revision 1.7 1994/09/26 17:28:33 matt
* Made new multiple-object morph code work with the demo system
*
* Revision 1.6 1994/09/26 15:40:17 matt
* Allow multiple simultaneous morphing objects
*
* Revision 1.5 1994/06/28 11:55:19 john
* Made newdemo system record/play directly to/from disk, so
* we don't need the 4 MB buffer anymore.
*
* Revision 1.4 1994/06/16 13:57:40 matt
* Added support for morphing objects in demos
*
* Revision 1.3 1994/06/08 18:22:03 matt
* Made morphing objects light correctly
*
* Revision 1.2 1994/05/30 22:50:25 matt
* Added morph effect for robots
*
* Revision 1.1 1994/05/30 12:04:19 matt
* Initial revision
------------------------------------------------------------------------
main/multi.h:
* Revision 2.3 1995/04/03 08:49:50 john
* Added code to get someone's player struct.
*
* Revision 2.2 1995/03/27 12:59:17 john
* Initial version of multiplayer save games.
*
* Revision 2.1 1995/03/21 14:39:06 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.0 1995/02/27 11:28:34 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.74 1995/02/11 11:36:42 rob
* Added new var.
*
* Revision 1.73 1995/02/08 18:17:41 rob
* Added prototype for reset function.
*
* Revision 1.72 1995/02/05 14:37:42 rob
* Made object mapping more efficient.
*
* Revision 1.71 1995/02/01 18:07:36 rob
* Change object mapping to int functions.
*
* Revision 1.70 1995/02/01 12:55:00 rob
* Changed message type.
*
* Revision 1.69 1995/01/31 12:46:12 rob
* Fixed a bug with object overflow handling.
*
* Revision 1.68 1995/01/27 11:15:13 rob
* removed extern of variable no longer in multi.c
*
* Revision 1.67 1995/01/24 11:53:13 john
* Added better macro defining code.
*
* Revision 1.66 1995/01/24 11:32:03 john
* Added new defining macro method.
*
* Revision 1.65 1995/01/23 17:17:06 john
* Added multi_sending_message.
*
* Revision 1.64 1995/01/23 16:02:42 rob
* Added prototype for mission select function.
*
* Revision 1.63 1995/01/18 19:01:21 rob
* Added new message for hostage door sync.
*
* Revision 1.62 1995/01/14 18:39:57 rob
* Added new message type for dropping robot powerups.
*
* Revision 1.61 1995/01/12 21:41:13 rob
* Fixed incompat. with 1.0 and 1.1.
*
* Revision 1.60 1995/01/04 21:40:55 rob
* Added new type for boss actions in coop.
*
* Revision 1.59 1995/01/04 11:38:09 rob
* Fixed problem with lost character in messages.
*
* Revision 1.58 1995/01/03 20:12:44 rob
* Made max message length in shareware = 40.
*
* Revision 1.57 1995/01/03 14:27:25 rob
* ADded trigger messages.
*
* Revision 1.56 1995/01/02 20:08:21 rob
* Added robot creation.
*
* Revision 1.55 1995/01/02 14:41:30 rob
* Added score syncing.
*
* Revision 1.54 1994/12/21 21:02:01 rob
* Added new message type for ROBOT_FIRE
*
* Revision 1.53 1994/12/21 17:27:25 rob
* Changed the format for send_create_powerup messages.
*
*
* Revision 1.52 1994/12/20 20:41:39 rob
* ADded robot release message type.
*
* Revision 1.51 1994/12/19 19:00:12 rob
* Changed buf to multibuf so it can be safely externed.
*
* Revision 1.50 1994/12/19 16:41:14 rob
* Added new message types for robot support.
* Added prototype for external use of multi_send_data (from multibot.c)
*
* Revision 1.49 1994/12/11 13:30:13 rob
* Added new variables to get players out of nested menus.
*
* Revision 1.48 1994/12/11 01:58:57 rob
* Added variable to track menu deth..
*
* Revision 1.47 1994/12/08 12:41:17 rob
* Added audio taunts.
*
* Revision 1.46 1994/12/07 21:53:12 rob
* Fixing sequencing bugginess in modem/serial.
*
* Revision 1.45 1994/12/07 16:46:58 rob
* Added prototype.
*
* Revision 1.44 1994/12/01 12:22:31 rob
* Added de-cloak message for demo.
*
* Revision 1.43 1994/12/01 00:54:14 rob
* Added variable for tracking homing missiles.
*
* Revision 1.42 1994/11/30 16:04:39 rob
* Added show reticle name variable for team games.
*
* Revision 1.41 1994/11/29 19:33:38 rob
* Team support.
*
* Revision 1.40 1994/11/29 12:49:37 rob
* Added more team support stuff.
*
* Revision 1.39 1994/11/28 21:20:49 rob
* Cleaned up the .h file, removed an unused function.
*
* Revision 1.38 1994/11/28 21:04:50 rob
* Added support for network sound-casting.
*
* Revision 1.37 1994/11/28 14:02:08 rob
* Added protocol versioning for registered versus shareware.
*
* Revision 1.36 1994/11/28 13:30:04 rob
* Added a define for protocol version.
*
* Revision 1.35 1994/11/22 19:19:48 rob
* remove unused function.
*
* Revision 1.34 1994/11/22 18:47:34 rob
* Added hooks for modem support for secret levels.
*
* Revision 1.33 1994/11/22 17:10:50 rob
* Fix for secret levels in network play mode.
*
* Revision 1.32 1994/11/21 16:00:28 rob
* Added secret-level hooks.
*
* Revision 1.31 1994/11/18 18:28:50 rob
* Added new function for multiplayer score screen.
*
* Revision 1.30 1994/11/18 16:31:05 rob
* Added kill list timer variable.
*
* Revision 1.29 1994/11/17 16:38:15 rob
* Added creation of net powerups.
*
* Revision 1.28 1994/11/17 13:37:33 rob
* Added prototype for multi_new_game.
*
* Revision 1.27 1994/11/17 12:58:45 rob
* Added kill matrix.
*
* Revision 1.26 1994/11/16 20:35:24 rob
* Changed explosion hook.
*
* Revision 1.25 1994/11/15 21:31:13 rob
* Bumped max message size, was giving modem.c fits.
*
* Revision 1.24 1994/11/15 19:28:37 matt
* Added prototypes
*
* Revision 1.23 1994/11/14 17:22:19 rob
* Added extern for message macros.
*
* Revision 1.22 1994/11/11 18:16:44 rob
* Made multi_menu_poll return a value to exit menus.
*
* Revision 1.21 1994/11/11 11:06:19 rob
* Added prototype for multi_menu_poll.
*
* Revision 1.20 1994/11/10 21:48:41 rob
* Changed multi_endlevel to return an int.
*
* Revision 1.19 1994/11/08 17:48:14 rob
* Fixing endlevel stuff.
*
* Revision 1.18 1994/11/07 17:49:07 rob
* Changed prototype for object mapping funcs.
*
* Revision 1.17 1994/11/07 15:46:32 rob
* Changed the way remote object number mapping works, and it was a real
* pain in the ass.. I think it will work more reliably now.
*
* Revision 1.16 1994/11/04 19:53:01 rob
* Added a new message type for Player_leave 'explosions'.
* Added a prototype for function moved over from network.c
*
* Revision 1.15 1994/11/02 18:02:33 rob
* Added message type for control center firing.
*
* Revision 1.14 1994/11/02 11:38:00 rob
* Added player-in-process-of-dying explosions to network game.
*
* Revision 1.13 1994/11/01 19:31:44 rob
* Bumped max_net_create_objects to 20 to accomodate a fully equipped
* character blowing up.
*
* Revision 1.12 1994/10/31 13:48:02 rob
* Fixed bug in opening doors over network/modem. Added a new message
* type to multi.c that communicates door openings across the net.
* Changed includes in multi.c and wall.c to accomplish this.
*
* Revision 1.11 1994/10/09 20:08:20 rob
* Added some exported func prototypes.
* Changed max net message length to 25 (from 30).
* Removed some message types no longer used.
*
* Revision 1.10 1994/10/08 20:06:10 rob
* fixed a typo.
*
* Revision 1.9 1994/10/08 19:59:43 rob
* Moved MAX_MESSAGE_LEN to here.
*
* Revision 1.8 1994/10/07 23:09:54 rob
* Fixed some prototypes.
*
* Revision 1.7 1994/10/07 18:11:19 rob
* Added multi_do_death to multi.c.
*
* Revision 1.6 1994/10/07 16:14:32 rob
* Added new message type for player reappear
*
* Revision 1.5 1994/10/07 12:58:17 rob
* Added multi_leave_game.
*
* Revision 1.4 1994/10/07 12:17:17 rob
* Fixed some stuff in multi_do_frame and exported the message_length
* array.
*
* Revision 1.3 1994/10/07 11:10:17 john
* Added function to parse multiple messages into individual
* messages.
*
* Revision 1.2 1994/10/07 10:28:06 rob
* Headers and stuff for multi.c (obviously)
*
* Revision 1.1 1994/10/06 16:07:39 rob
* Initial revision
------------------------------------------------------------------------
main/multibot.h:
* Revision 1.2 1995/08/24 16:04:38 allender
* fix function prototype for compiler warning
*
* Revision 1.1 1995/05/16 15:59:53 allender
* Initial revision
*
* Revision 2.1 1995/03/21 14:40:18 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.0 1995/02/27 11:30:57 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.20 1995/02/06 18:18:05 rob
* Tweaking cooperative stuff.
*
* Revision 1.19 1995/02/04 16:49:50 rob
* Changed multi_send_robot_frame to return the number of robot positions that were sent.
*
* Revision 1.18 1995/02/04 12:29:32 rob
* Added buffered fire sends.
*
* Revision 1.17 1995/01/30 17:22:02 rob
* Added prototype for modem robot send function.
*
* Revision 1.16 1995/01/26 18:24:56 rob
* Reduced # of controlled bots.
*
* Revision 1.15 1995/01/25 19:26:35 rob
* Added define for robot laser agitation.
*
* Revision 1.14 1995/01/25 13:45:26 rob
* Added prototype of robot transfer fucm.
*
* Revision 1.13 1995/01/14 19:01:08 rob
* Added prototypes for new functionality.
*
* Revision 1.12 1995/01/12 16:41:53 rob
* Added new prototypes.
*
* Revision 1.11 1995/01/12 15:42:55 rob
* Fixing score awards for coop.
*
* Revision 1.10 1995/01/02 21:00:40 rob
* added robot matcen support.
*
* Revision 1.9 1994/12/31 21:03:53 rob
* More tweaking for robot behavior.
*
* Revision 1.8 1994/12/29 13:54:25 rob
* Ooops.. fixed a bug..
*
* Revision 1.7 1994/12/29 12:51:38 rob
* ADded proto for multi_robot_explode_sub
*
* Revision 1.6 1994/12/21 21:08:32 rob
* Added new functions for robot firing.
*
* Revision 1.5 1994/12/21 19:04:02 rob
* Fixing score accounting for multi robot games.
*
* Revision 1.4 1994/12/21 17:36:09 rob
* Added a new func.
*
* Revision 1.3 1994/12/21 11:12:02 rob
* Added new function and new vars.
*
* Revision 1.2 1994/12/19 16:41:42 rob
* first revision.
*
* Revision 1.1 1994/12/16 15:48:20 rob
* Initial revision
------------------------------------------------------------------------
main/netmisc.c:
* Revision 1.1 1995/05/16 15:28:41 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:27:24 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.3 1994/11/19 15:19:34 mike
* rip out unused code and data.
*
* Revision 1.2 1994/08/09 19:31:53 john
* Networking changes.
*
* Revision 1.1 1994/08/08 11:06:07 john
* Initial revision
------------------------------------------------------------------------
main/netmisc.h:
* Revision 1.1 1995/05/16 16:00:08 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:30:18 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.2 1994/08/09 19:31:54 john
* Networking changes.
*
* Revision 1.1 1994/08/08 11:18:40 john
* Initial revision
------------------------------------------------------------------------
main/network.h:
* Revision 1.7 1995/10/31 10:20:04 allender
* shareware stuff
*
* Revision 1.6 1995/09/21 14:31:18 allender
* new appltalk type packet which contains shortpos
*
* Revision 1.5 1995/09/18 08:07:08 allender
* added function prototype to remove netgame NBP
*
* Revision 1.4 1995/08/31 15:51:55 allender
* new prototypes for join and start games
*
* Revision 1.3 1995/07/26 17:02:29 allender
* implemented and working on mac
*
* Revision 1.2 1995/06/02 07:42:34 allender
* fixed prototype for network_endlevel_poll2
*
* Revision 1.1 1995/05/16 16:00:15 allender
* Initial revision
*
* Revision 2.2 1995/03/21 14:58:09 john
* *** empty log message ***
*
* Revision 2.1 1995/03/21 14:39:43 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.0 1995/02/27 11:29:48 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.72 1995/02/11 14:24:39 rob
* Added suppor for invul. cntrlcen.
*
* Revision 1.71 1995/02/08 19:18:43 rob
* Added extern for segments checksum.
*
* Revision 1.70 1995/02/08 11:01:16 rob
* Fixed a bug.
*
* Revision 1.69 1995/02/07 21:16:49 rob
* Added flag for automap.
*
* Revision 1.68 1995/02/06 18:18:33 rob
* Extern'ed Packet Urgent.
*
* Revision 1.67 1995/02/05 14:36:29 rob
* Moved defines to network.h.
*
* Revision 1.66 1995/02/01 16:34:09 john
* Linted.
*
* Revision 1.65 1995/01/30 21:14:35 rob
* Fixed a bug in join menu.
* Simplified mission load support.
*
* Revision 1.64 1995/01/30 18:19:40 rob
* Added mission title to gameinfo packet.
*
* Revision 1.63 1995/01/28 17:02:39 rob
* Fixed monitor syncing bug (minor 19).
*
* Revision 1.62 1995/01/27 11:15:25 rob
* removed extern of variable no longer in network.c
*
* Revision 1.61 1995/01/26 12:17:34 rob
* Added new param to network_do_frame.
*
* Revision 1.60 1995/01/22 17:32:11 rob
* Added mission support for network games.
*
* Revision 1.59 1995/01/17 17:10:33 rob
* Added some flags to netgame struct.
*
* Revision 1.58 1995/01/12 18:57:15 rob
* Added score resync stuff.
*
* Revision 1.57 1995/01/12 16:42:18 rob
* Added new prototypes.
*
* Revision 1.56 1995/01/05 12:12:10 rob
* Fixed a problem with packet size.
*
* Revision 1.55 1995/01/05 11:12:36 rob
* Reduced packet size by 1 byte just to be safe.
*
* Revision 1.54 1995/01/04 21:39:32 rob
* New framedata packet for registered.
*
* Revision 1.53 1995/01/04 08:47:04 rob
* JOHN CHECKED IN FOR ROB !!!
*
* Revision 1.52 1994/12/30 20:09:07 rob
* ADded a toggle for showing player names on HUD.
*
* Revision 1.51 1994/12/29 15:59:52 rob
* Centralized network disconnects.
*
* Revision 1.50 1994/12/09 21:21:57 rob
* rolled back changes.
*
* Revision 1.48 1994/12/05 22:59:27 rob
* added prototype for send_endlevel_packet.
*
* Revision 1.47 1994/12/05 21:47:34 rob
* Added a new field to netgame struct.
*
* Revision 1.46 1994/12/05 14:39:16 rob
* Added new variable to indicate new net game starting.
*
* Revision 1.45 1994/12/04 15:37:18 rob
* Fixed a typo.
*
* Revision 1.44 1994/12/04 15:30:42 rob
* Added new fields to netgame struct.
*
* Revision 1.43 1994/12/03 18:03:19 rob
* ADded team kill syncing.
*
* Revision 1.42 1994/12/01 21:21:27 rob
* Added new system for object sync on rejoin.
*
* Revision 1.41 1994/11/29 13:07:33 rob
* Changed structure defs to .h files.
*
* Revision 1.40 1994/11/22 17:10:48 rob
* Fix for secret levels in network play mode.
*
* Revision 1.39 1994/11/18 16:36:31 rob
* Added variable network_rejoined to enable random placement
* of rejoining palyers.
*
* Revision 1.38 1994/11/12 19:51:13 rob
* Changed prototype for network_send_data to pass
* urgent flag.
*
* Revision 1.37 1994/11/10 21:48:26 rob
* Changed net_endlevel to return an int.
*
* Revision 1.36 1994/11/10 20:32:49 rob
* Added extern for LastPacketTime.
*
* Revision 1.35 1994/11/09 11:36:34 rob
* ADded return value to network_level_sync for success/fail.
*
* Revision 1.34 1994/11/08 21:22:31 rob
* Added proto for network_endlevel_snyc
*
* Revision 1.33 1994/11/08 15:20:00 rob
* added proto for change_playernum_to
*
* Revision 1.32 1994/11/07 17:45:40 rob
* Added prototype for network_endlevel (called from multi.c)
*
* Revision 1.31 1994/11/04 19:52:37 rob
* Removed a function from network.h (network_show_player_list)
*
* Revision 1.30 1994/11/01 19:39:26 rob
* Removed a couple of variables that should be externed from multi.c
* (remnants of the changover)
*
* Revision 1.29 1994/10/31 19:18:24 rob
* Changed prototype for network_do_frame to add a parameter if you wish
* to force the frame to be sent. Important if this is a leave_game frame.
*
* Revision 1.28 1994/10/08 19:59:20 rob
* Removed network message variables.
*
* Revision 1.27 1994/10/08 11:08:38 john
* Moved network_delete_unused objects into multi.c,
* took out network callsign stuff and used Matt's net
* players[.].callsign stuff.
*
* Revision 1.26 1994/10/07 11:26:20 rob
* Changed network_start_frame to network_do_frame,.
*
*
* Revision 1.25 1994/10/05 13:58:10 rob
* Added a new function net_endlevel that is called after each level is
* completed. Currently it only does anything if SERIAL game is in effect.
*
* Revision 1.24 1994/10/04 19:34:57 rob
* export network_find_max_net_players.
*
* Revision 1.23 1994/10/04 17:31:10 rob
* Exported MaxNumNetPlayers.
*
* Revision 1.22 1994/10/03 22:57:30 matt
* Took out redundant definition of callsign_len
*
* Revision 1.21 1994/10/03 15:12:48 rob
* Boosted MAX_CREATE_OBJECTS to 15.
*
* Revision 1.20 1994/09/30 18:19:51 rob
* Added two new variables for tracking object creation.
*
* Revision 1.19 1994/09/27 15:03:18 rob
* Added prototype for network_delete_extra_objects used by modem.c
*
* Revision 1.18 1994/09/27 14:36:45 rob
* Added two new varaibles for network/serial weapon firing.
*
* Revision 1.17 1994/09/07 17:10:57 john
* Started adding code to sync powerups.
*
* Revision 1.16 1994/09/06 19:29:05 john
* Added trial version of rejoin function.
*
* Revision 1.15 1994/08/26 13:01:54 john
* Put high score system in.
*
* Revision 1.14 1994/08/25 18:12:04 matt
* Made player's weapons and flares fire from the positions on the 3d model.
* Also added support for quad lasers.
*
* Revision 1.13 1994/08/17 16:50:00 john
* Added damaging fireballs, missiles.
*
* Revision 1.12 1994/08/16 12:25:22 john
* Added hooks for sending messages.
*
* Revision 1.11 1994/08/13 12:20:18 john
* Made the networking uise the Players array.
*
* Revision 1.10 1994/08/12 22:41:27 john
* Took away Player_stats; add Players array.
*
* Revision 1.9 1994/08/12 03:10:22 john
* Made network be default off; Moved network options into
* main menu. Made starting net game check that mines are the
* same.
*
* Revision 1.8 1994/08/11 21:57:08 john
* Moved network options to main menu.
*
* Revision 1.7 1994/08/10 11:29:20 john
* *** empty log message ***
*
* Revision 1.6 1994/08/10 10:44:12 john
* Made net players fire..
*
* Revision 1.5 1994/08/09 19:31:46 john
* Networking changes.
*
* Revision 1.4 1994/08/05 16:30:26 john
* Added capability to turn off network.
*
* Revision 1.3 1994/08/05 16:11:43 john
* Psuedo working version of networking.
*
* Revision 1.2 1994/07/25 12:33:34 john
* Network "pinging" in.
*
* Revision 1.1 1994/07/20 16:09:05 john
* Initial revision
------------------------------------------------------------------------
main/newdemo.c:
* Revision 1.12 1995/10/31 10:19:43 allender
* shareware stuff
*
* Revision 1.11 1995/10/17 13:19:16 allender
* close boxes for demo save
*
* Revision 1.10 1995/10/05 10:36:07 allender
* fixed calls to digi_play_sample to account for differing volume and angle calculations
*
* Revision 1.9 1995/09/12 15:49:13 allender
* define __useAppleExts__ if not already defined
*
* Revision 1.8 1995/09/05 14:28:32 allender
* fixed previous N_players bug in newdemo_goto_end
*
* Revision 1.7 1995/09/05 14:16:51 allender
* added space to allowable demo filename characters
* and fixed bug with netgame demos N_players got getting
* set correctly
*
* Revision 1.6 1995/09/01 16:10:47 allender
* fixed bug with reading in N_players variable on
* netgame demo playback
*
* Revision 1.5 1995/08/24 16:04:11 allender
* fix signed byte problem
*
* Revision 1.4 1995/08/12 12:21:59 allender
* made call to create_shortpos not swap the shortpos
* elements
*
* Revision 1.3 1995/08/01 16:04:19 allender
* made random picking of demo work
*
* Revision 1.2 1995/08/01 13:56:56 allender
* demo system working on the mac
*
* Revision 1.1 1995/05/16 15:28:59 allender
* Initial revision
*
* Revision 2.7 1995/05/26 16:16:06 john
* Split SATURN into define's for requiring cd, using cd, etc.
* Also started adding all the Rockwell stuff.
*
* Revision 2.6 1995/03/21 14:39:38 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.5 1995/03/14 18:24:31 john
* Force Destination Saturn to use CD-ROM drive.
*
* Revision 2.4 1995/03/14 16:22:29 john
* Added cdrom alternate directory stuff.
*
* Revision 2.3 1995/03/10 12:58:33 allender
* only display rear view cockpit when cockpit mode was CM_FULL_COCKPIT.
*
* Revision 2.2 1995/03/08 16:12:15 allender
* changes for Destination Saturn
*
* Revision 2.1 1995/03/08 12:11:26 allender
* fix shortpos reading
*
* Revision 2.0 1995/02/27 11:29:40 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.189 1995/02/22 14:53:42 allender
* missed some anonymous stuff
*
* Revision 1.188 1995/02/22 13:24:53 john
* Removed the vecmat anonymous unions.
*
* Revision 1.187 1995/02/22 13:13:54 allender
* remove anonymous unions from object structure
*
* Revision 1.186 1995/02/14 15:36:41 allender
* fix fix for morph effect
*
* Revision 1.185 1995/02/14 11:25:48 allender
* save cockpit mode and restore after playback. get orientation for morph
* effect when object is morph vclip
*
* Revision 1.184 1995/02/13 12:18:14 allender
* change to decide about interpolating or not
*
* Revision 1.183 1995/02/12 00:46:23 adam
* don't decide to skip frames until after at least 10 frames have
* passed -- allender
*
* Revision 1.182 1995/02/11 22:34:01 john
* Made textures page in for newdemos before playback time.
*
* Revision 1.181 1995/02/11 17:28:32 allender
* strip frames from end of demo
*
* Revision 1.180 1995/02/11 16:40:35 allender
* start of frame stripping debug code
*
* Revision 1.179 1995/02/10 17:40:06 allender
* put back in wall_hit_process code to fix door problem
*
* Revision 1.178 1995/02/10 17:17:24 adam
* allender } fix
*
* Revision 1.177 1995/02/10 17:16:24 allender
* fix possible tmap problems
*
* Revision 1.176 1995/02/10 15:54:37 allender
* changes for out of space on device.
*
* Revision 1.175 1995/02/09 19:55:00 allender
* fix bug with morph recording -- force rendertype to RT_POLYOBJ when
* playing back since it won't render until fully morphed otherwise
*
* Revision 1.174 1995/02/07 17:15:35 allender
* DOH!!!!!
*
* Revision 1.173 1995/02/07 17:14:21 allender
* immediately return when loading bogus level stuff when reading a frame
*
* Revision 1.172 1995/02/02 11:15:03 allender
* after loading new level, read next frame (forward or back) always because
* of co-op ships showing up when level is loaded
*
* Revision 1.171 1995/02/02 10:24:16 allender
* removed cfile stuff. Use standard FILE functions for demo playback
*
* Revision 1.170 1995/01/30 13:54:32 allender
* support for missions
*
* Revision 1.169 1995/01/27 16:27:35 allender
* put game mode to demo_game_mode when sorting multiplayer kill (and score)
* list
*
* Revision 1.168 1995/01/27 09:52:25 allender
* minor changes because of object/segment linking problems
*
* Revision 1.167 1995/01/27 09:22:28 allender
* changed way multi-player score is recorded. Record difference, not
* actual
*
* Revision 1.166 1995/01/25 14:32:44 allender
* changed with recorded player flags. More checks for paused state
* during interpolation reading of objects
*
* Revision 1.165 1995/01/25 11:23:32 allender
* found bug with out of disk space problem
*
* Revision 1.164 1995/01/25 11:11:33 allender
* coupla' things. Fix problem with objects apparently being linked in
* the wrong segment. Put an Int3 in to check why demos will write to
* end of space on drive. close demo file if demo doens't start playing
* back. Put obj->type == OBJ_ROBOT around checking for boss cloaking
*
* Revision 1.163 1995/01/24 19:44:30 allender
* fix obscure problem with rewinding and having the wrong object linked
* to the wrong segments. will investigate further.
*
* Revision 1.162 1995/01/23 09:31:28 allender
* add team score in team mode playback
*
* Revision 1.161 1995/01/20 22:47:39 matt
* Mission system implemented, though imcompletely
*
* Revision 1.160 1995/01/20 09:30:37 allender
* don't call LoadLevel with bogus data
*
* Revision 1.159 1995/01/20 09:13:23 allender
* *&^%&*%$ typo
*
* Revision 1.158 1995/01/20 09:12:04 allender
* record team names during demo recoring in GM_TEAM
*
* Revision 1.157 1995/01/19 16:31:09 allender
* forgot to bump demo version for new weapon change stuff
*
* Revision 1.156 1995/01/19 16:29:33 allender
* added new byte for weapon change (old weapon) so rewinding works
* correctly for weapon changes in registered
*
* Revision 1.155 1995/01/19 15:00:05 allender
* remove code to take away blastable walls in multiplayer demo playbacks
*
* Revision 1.154 1995/01/19 11:07:05 allender
* put in psuedo cloaking for boss robots. Problem is that cloaking is
* time based, and that don't get done in demos, so bosses just disappear.
* oh well
*
* Revision 1.153 1995/01/19 09:42:29 allender
* record laser levels in demos
*
* Revision 1.152 1995/01/18 20:43:12 allender
* fix laser level stuff on goto-beginning and goto-end
*
* Revision 1.151 1995/01/18 20:28:18 allender
* cloak robots now cloak (except maybe for boss........) Put in function
* to deal with control center triggers
*
* Revision 1.150 1995/01/18 18:55:07 allender
* bug fix
*
* Revision 1.149 1995/01/18 18:49:03 allender
* lots 'o stuff....record laser level. Record beginning of door opening
* sequence. Fix some problems with control center stuff. Control center
* triggers now work in reverse
*
* Revision 1.148 1995/01/18 08:51:40 allender
* forgot to record ammo counts at beginning of demo
*
* Revision 1.147 1995/01/17 17:42:07 allender
* added primary and secondary ammo counts. Changed goto_end routine
* to be more efficient
*
* Revision 1.146 1995/01/17 13:46:35 allender
* fix problem with destroyed control center and rewinding a demo.
* Save callsign and restore after demo playback
*
* Revision 1.145 1995/01/12 10:21:53 allender
* fixes for 1.0 to 1.1 demo incompatibility
*
* Revision 1.144 1995/01/05 13:51:43 allender
* fixed type of player num variable
*
* Revision 1.143 1995/01/04 16:58:28 allender
* bumped up demo version number
*
* Revision 1.142 1995/01/04 14:59:02 allender
* added more information to end of demo for registered. Forced game mode
* to be GM_NORMAL on demo playback
*
* Revision 1.141 1995/01/03 17:30:47 allender
* fixed logic problem with cloak stuf
*
* Revision 1.140 1995/01/03 17:12:23 allender
* fix for getting cloak stuff at end of demo for shareware
*
* Revision 1.139 1995/01/03 15:20:24 allender
* fix goto_end for shareware -- changes to goto_end for registered
*
* Revision 1.138 1995/01/03 13:13:26 allender
* add } I forgot
*
* Revision 1.137 1995/01/03 13:10:29 allender
* make score work forwards and backwards
*
* Revision 1.136 1995/01/03 11:45:20 allender
* added code to record players scores
*
* Revision 1.135 1994/12/30 10:03:57 allender
* put cloak stuff at end of demo for fast forward to the end
*
* Revision 1.134 1994/12/29 17:02:55 allender
* spelling fix on SHAREWARE
*
* Revision 1.133 1994/12/29 16:43:41 allender
* lots of new multiplayer stuff. wrapped much code with SHAREWARE defines
*
* Revision 1.132 1994/12/28 14:15:01 allender
* added routines to deal with connecting and reconnecting players when
* recording multiplayer demos
*
* Revision 1.131 1994/12/21 12:57:59 allender
* bug fix
*
* Revision 1.130 1994/12/21 12:46:53 allender
* record multi player deaths and kills
*
* Revision 1.129 1994/12/19 16:37:27 allender
* pick good filename when trying to save in network play and player
* gets bumped out of menu by multi-player code
*
* Revision 1.128 1994/12/14 10:49:01 allender
* reset bad_read variable when starting demo playback
*
* Revision 1.127 1994/12/14 08:53:06 allender
* lowered watermark for out of space
*
* Revision 1.126 1994/12/14 08:49:52 allender
* put up warning when starting demo recording if not enough space and
* not let them record
*
* Revision 1.125 1994/12/13 00:01:37 allender
* CLOAK FIX -- (I'm tempted to take cloak out of game because I can't
* seem to get it right in demo playback)
*
* Revision 1.124 1994/12/12 14:51:21 allender
* more fixed to multiplayer cloak stuff
*
* Revision 1.123 1994/12/12 11:33:11 allender
* fixed rearview mode to work again
*
* Revision 1.122 1994/12/12 11:00:16 matt
* Added code to handle confusion with attached objects
*
* Revision 1.121 1994/12/12 00:31:29 allender
* give better warning when out of space when recording. Don't record
* until no space left. We have 500K watermark when we now stop recording
*
* Revision 1.120 1994/12/10 16:44:54 matt
* Added debugging code to track down door that turns into rock
*
* Revision 1.119 1994/12/09 18:46:15 matt
* Added code to handle odd error condition
*
* Revision 1.118 1994/12/09 17:27:37 allender
* force playernum to 0 when demo is done playing
*
* Revision 1.117 1994/12/09 16:40:39 allender
* yet more cloak stuff. Assign cloak/invuln time when starting demo
* if flags are set. Check cloak and invuln time when demo
* even when paused
*
* Revision 1.116 1994/12/09 14:59:22 matt
* Added system to attach a fireball to another object for rendering purposes,
* so the fireball always renders on top of (after) the object.
*
* Revision 1.115 1994/12/09 12:21:45 allender
* only allow valid chars when typing in demo filename
*
* Revision 1.114 1994/12/08 23:19:02 allender
* final(?) fix for getting cloak gauge to work on demo playback
* with forward and reverse
*
* Revision 1.113 1994/12/08 21:34:38 allender
* record old and new player flags to accuratedly record cloaking and
* decloaking
* ./
*
* Revision 1.112 1994/12/08 18:04:47 allender
* bashed playernum right after reading it in demo header so shields
* and energy are put in right place
*
* Revision 1.111 1994/12/08 17:10:07 allender
* encode playernum in demo header. Bash viewer segment to 0 if in
* bogus segnum. Don't link render objs for same reason
*
* Revision 1.110 1994/12/08 15:36:12 allender
* cloak stuff works forwards and backwards
*
* Revision 1.109 1994/12/08 13:46:03 allender
* don't record rearview anymore, but leave in case statement for playback
* purposes. change the way letterbox <--> cockpit transitions happen
*
* Revision 1.108 1994/12/08 12:36:06 matt
* Added new object allocation & deallocation functions so other code
* could stop messing around with internal object data structures.
*
* Revision 1.107 1994/12/08 11:19:04 allender
* handle out of space (more) gracefully then before
*
* Revision 1.106 1994/12/08 00:29:49 allender
* fixed bug that didn't load level on goto_beginning
*
* Revision 1.105 1994/12/08 00:11:51 mike
* change matrix interpolation.
*
* Revision 1.104 1994/12/07 23:46:37 allender
* changed invulnerability and cloak to work (almost) correctly both
* in single and multi player
*
* Revision 1.103 1994/12/07 11:48:49 adam
* BY ALLENDER -- added dampening of interpolation factor to 1 if greater
* than 1 (although I have not seen this happen). this is attempt to
* get wobbling problem solved
*
* Revision 1.102 1994/12/07 11:23:56 allender
* attempt at getting rid of wobbling on demo playback
*
* Revision 1.101 1994/12/06 19:31:17 allender
* moved blastable wall stuff code to where we load level during demo
* playback
*
* Revision 1.100 1994/12/06 19:21:51 allender
* multi games, destroy blastable walls. Do wall toggle when control center
* destroyed
*
* Revision 1.99 1994/12/06 16:54:48 allender
* fixed code so if demo automatically started from menu, don't bring up
* message if demo is too old
*
* Revision 1.98 1994/12/06 13:55:15 matt
* Use new rounding func, f2ir()
*
* Revision 1.97 1994/12/06 13:44:45 allender
* suppressed compiler warnings
*
* Revision 1.96 1994/12/06 13:38:03 allender
* removed recording of wall hit process. I think that all bases are covered
* elsewhere
*
* Revision 1.95 1994/12/06 12:57:35 allender
* added recording of multi_decloaking. Fixed some other cloaking code so
* that cloak should last as long as player was cloaked. We will lose the
* guage effect, but the time is probably more important on playback
*
* Revision 1.94 1994/12/05 23:37:17 matt
* Took out calls to warning() function
*
* Revision 1.93 1994/12/03 17:52:04 yuan
* Localization 380ish
*
* Revision 1.92 1994/12/02 12:53:39 allender
* fixed goto_beginning and goto_end on demo playback
*
* Revision 1.91 1994/12/01 12:01:49 allender
* added multi player cloak stuff
*
* Revision 1.90 1994/11/30 09:33:58 allender
* added field in header to tell what version (shareware or registered)
* demo was recorded with. Don't allow demo recorded on one to playback
* on the other
*
* Revision 1.89 1994/11/29 00:31:01 allender
* major changes -- added level recording feature which records level
* advancement. Changes to internal code to handle this.
*
* Revision 1.88 1994/11/27 23:13:54 matt
* Made changes for new mprintf calling convention
*
* Revision 1.87 1994/11/27 23:07:35 allender
* starting on code to get all level transitions recorded. not done yet
*
* Revision 1.86 1994/11/27 17:39:47 matt
* Don't xlate tmap numbers when editor compiled out
*
* Revision 1.85 1994/11/23 09:27:21 allender
* put up info box with message if demo version is too old or level
* cannot be loaded
*
* Revision 1.84 1994/11/22 19:37:39 allender
* fix array mistake
*
* Revision 1.83 1994/11/22 19:35:09 allender
* record player ship colors in multiplayer demo recordings
*
* Revision 1.82 1994/11/19 15:36:42 mike
* fix fix.
*
* Revision 1.81 1994/11/19 15:23:21 mike
* rip out unused code
*
* Revision 1.80 1994/11/16 14:51:49 rob
* Fixed network/demo incompatibility.
*
* Revision 1.79 1994/11/15 10:55:48 allender
* made start of demo playback read initial demo information so
* level will get loaded. Made demo record to single file which
* will get renamed. Added numerics after old filename so
* sequential filenames would be defaulted to
*
* Revision 1.78 1994/11/15 09:46:06 allender
* added versioning. Fixed problems with trying to interpolating a completely
* 0 orientation matrix
*
* Revision 1.77 1994/11/14 14:34:31 matt
* Fixed up handling when textures can't be found during remap
*
* Revision 1.76 1994/11/14 09:15:29 allender
* make ESC from file save menu exit w/o saving. Fix letterbox, rear view,
* to normal cockpit mode transition to work correctly when skipping and
* interpolating frames
*
* Revision 1.75 1994/11/11 16:22:07 allender
* made morphing objects record only the object being morphed.
*
* Revision 1.74 1994/11/08 14:59:19 john
* Added code to respond to network while in menus.
*
* Revision 1.73 1994/11/08 14:52:20 adam
* *** empty log message ***
*
* Revision 1.72 1994/11/07 15:47:04 allender
* prompt for filename when done recording demo
*
* Revision 1.71 1994/11/07 11:47:19 allender
* when interpolating frames, delete weapon, fireball, and debris objects
* from an inpolated frame if they don't appear in the next recorded
* frame
*
* Revision 1.70 1994/11/07 11:02:41 allender
* more with interpolation. I believe that I have it right now
*
* Revision 1.69 1994/11/07 08:47:40 john
* Made wall state record.
*
* Revision 1.68 1994/11/05 17:22:51 john
* Fixed lots of sequencing problems with newdemo stuff.
*
* Revision 1.67 1994/11/04 20:11:52 john
* Neatening up palette stuff with demos.
*
* Revision 1.66 1994/11/04 16:49:44 allender
* changed newdemo_do_interpolate to default to on
*
* Revision 1.65 1994/11/04 16:44:51 allender
* added filename support for demo recording. more auto demo stuff
*
* Revision 1.64 1994/11/04 13:05:31 allender
* fixing the lifeleft variable again. (I think I got it right this time)
*
* Revision 1.63 1994/11/04 11:37:37 allender
* commented out fprintfs and fixed compiler warning
*
* Revision 1.62 1994/11/04 11:33:50 allender
* added OBJ_FLARE and OBJ_LIGHT to obj->lifeleft recording
*
* Revision 1.61 1994/11/04 11:29:21 allender
* more interpolation stuff -- not done yet. Fixed so hostage vclips
* render correctly. Changed lifeleft to full precision, but only
* write it when object is fireball or weapon type of object
*
* Revision 1.60 1994/11/03 10:00:11 allender
* fixed divide by zero in calculating render time. more interpolation
* stuff which isn't quite done
*
* Revision 1.59 1994/11/02 17:10:59 allender
* never play recorded frames when interpolation is occuring
*
* Revision 1.58 1994/11/02 14:28:58 allender
* profile total playback time and average frame render time
*
* Revision 1.57 1994/11/02 14:09:03 allender
* record rear view. start of playback interpolation code -- this
* is not yet done
*
* Revision 1.56 1994/11/01 13:25:30 allender
* drop frames if playing back demo on slower machine
*
* Revision 1.55 1994/10/31 16:10:40 allender
* record letterbox mode on death seq, and then restore
*
* Revision 1.54 1994/10/29 16:01:38 allender
* added ND_STATE_NODEMOS to indicate that there are no demos currently
* available for playback
*
* Revision 1.53 1994/10/29 15:38:42 allender
* in newdemo_start_playback, make Newdemo_at_eof = 0
*
* Revision 1.52 1994/10/28 14:45:28 john
* fixed typo from last checkin.
*
* Revision 1.51 1994/10/28 14:42:55 john
* Added sound volumes to all sound calls.
*
* Revision 1.50 1994/10/28 14:31:57 allender
* homing missle and autodemo stuff
*
* Revision 1.49 1994/10/28 12:42:14 allender
* record homing distance
*
* Revision 1.48 1994/10/27 16:57:54 allender
* changed demo vcr to be able to play any number of frames by storing
* frame length (in bytes) in the demo file. Added blowing up monitors
*
* Revision 1.47 1994/10/26 16:50:50 allender
* put two functions inside of VCR_MODE ifdef
*
* Revision 1.46 1994/10/26 15:20:32 allender
* added CT_REMOTE as valid control type for recording
*
* Revision 1.45 1994/10/26 14:45:35 allender
* completed hacked in vcr demo playback stuff
*
* Revision 1.44 1994/10/26 13:40:52 allender
* vcr playback of demo stuff
*
* Revision 1.43 1994/10/26 08:51:57 allender
* record player weapon change
*
* Revision 1.42 1994/10/25 15:48:01 allender
* add shields, energy, and player flags to demo recording.
* ,
*
* Revision 1.41 1994/10/24 08:19:35 allender
* fixed compilation errors
*
* Revision 1.40 1994/10/23 19:17:08 matt
* Fixed bug with "no key" messages
*
* Revision 1.39 1994/10/22 14:15:08 mike
* Suppress compiler warnings.
*
* Revision 1.38 1994/10/21 15:24:55 allender
* compressed writing of object structures with specialized code
* to write out only pertinent object structures.
*
* Revision 1.37 1994/10/20 13:03:17 matt
* Replaced old save files (MIN/SAV/HOT) with new LVL files
*
* Revision 1.36 1994/09/28 23:13:10 matt
* Macroized palette flash system
*
* Revision 1.35 1994/09/26 17:28:32 matt
* Made new multiple-object morph code work with the demo system
*
* Revision 1.34 1994/09/10 13:31:54 matt
* Made exploding walls a type of blastable walls.
* Cleaned up blastable walls, making them tmap2 bitmaps.
*
* Revision 1.33 1994/08/15 18:05:28 john
* *** empty log message ***
*
* Revision 1.32 1994/08/15 17:56:38 john
* ,
*
* Revision 1.31 1994/08/10 09:44:54 john
* *** empty log message ***
*
* Revision 1.30 1994/07/22 12:35:48 matt
* Cleaned up editor/game interactions some more.
*
* Revision 1.29 1994/07/21 13:06:45 matt
* Ripped out remants of old demo system, and added demo only system that
* disables object movement and game options from menu.
*
* Revision 1.28 1994/07/18 16:22:44 john
* Made all file read/writes call the same routine.
*
* Revision 1.27 1994/07/14 22:38:27 matt
* Added exploding doors
*
* Revision 1.26 1994/07/05 12:49:04 john
* Put functionality of New Hostage spec into code.
*
* Revision 1.25 1994/06/29 11:05:38 john
* Made demos read in compressed.
*
* Revision 1.24 1994/06/29 09:14:06 john
* Made files write out uncompressed and read in compressed.
*
* Revision 1.23 1994/06/28 11:55:28 john
* Made newdemo system record/play directly to/from disk, so
* we don't need the 4 MB buffer anymore.
*
* Revision 1.22 1994/06/27 15:52:38 john
* #define'd out the newdemo stuff
*
*
* Revision 1.21 1994/06/22 00:29:04 john
* Fixed bug with playing demo then playing game without
* loading new mine.
*
* Revision 1.20 1994/06/22 00:14:23 john
* Attempted to fix sign.
*
* Revision 1.19 1994/06/21 23:57:54 john
* Hopefully fixed bug with negative countdowns.
*
* Revision 1.18 1994/06/21 23:47:44 john
* MAde Malloc always 4*1024*1024.
*
* Revision 1.17 1994/06/21 22:58:47 john
* Added error if out of memory.
*
* Revision 1.16 1994/06/21 22:15:48 john
* Added % done to demo recording.
*
*
* Revision 1.15 1994/06/21 19:45:55 john
* Added palette effects to demo recording.
*
* Revision 1.14 1994/06/21 15:08:54 john
* Made demo record HUD message and cleaned up the HUD code.
*
* Revision 1.13 1994/06/21 14:20:08 john
* Put in hooks to record HUD messages.
*
* Revision 1.12 1994/06/20 11:50:15 john
* Made demo record flash effect, and control center triggers.
*
* Revision 1.11 1994/06/17 18:01:33 john
* A bunch of new stuff by John
*
* Revision 1.10 1994/06/17 12:13:31 john
* More newdemo stuff; made editor->game transition start in slew mode.
*
* Revision 1.9 1994/06/16 13:14:36 matt
* Fixed typo
*
* Revision 1.8 1994/06/16 13:02:07 john
* Added morph hooks.
*
* Revision 1.7 1994/06/15 19:01:33 john
* Added the capability to make 3d sounds play just once for the
* laser hit wall effects.
*
* Revision 1.6 1994/06/15 14:56:59 john
* Added triggers to demo recording.
*
* Revision 1.5 1994/06/14 20:42:15 john
* Made robot matztn cntr not work until no robots or player are
* in the segment.
*
* Revision 1.4 1994/06/14 14:43:27 john
* Made doors work with newdemo system.
*
* Revision 1.3 1994/06/14 11:32:29 john
* Made Newdemo record & restore the current mine.
*
* Revision 1.2 1994/06/13 21:02:43 john
* Initial version of new demo recording system.
*
* Revision 1.1 1994/06/13 11:09:00 john
* Initial revision
------------------------------------------------------------------------
main/newdemo.h:
* Revision 1.1 1995/05/16 16:00:24 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:27:18 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.43 1995/01/19 09:41:43 allender
* prototype for laser level recording
*
* Revision 1.42 1995/01/18 18:48:49 allender
* added function prototype for door_open
*
* Revision 1.41 1995/01/17 17:42:31 allender
* new prototypes for ammo counts
*
* Revision 1.40 1995/01/04 15:04:27 allender
* added some different prototypes for registered
*
* Revision 1.39 1995/01/03 11:45:11 allender
* extern function definition
*
* Revision 1.38 1994/12/29 16:43:31 allender
* new function prototype
*
* Revision 1.37 1994/12/28 14:15:27 allender
* new function prototypes
*
* Revision 1.36 1994/12/21 12:46:41 allender
* new functions for multiplayer deaths and kills
*
* Revision 1.35 1994/12/12 11:32:55 allender
* added new record function to restore after in rearview mode
*
* Revision 1.34 1994/12/08 21:03:15 allender
* added new param to record_player_flags
*
* Revision 1.33 1994/12/08 13:47:01 allender
* removed function call to record_rearview
*
* Revision 1.32 1994/12/06 12:57:10 allender
* added new prototype for multi decloaking
*
* Revision 1.31 1994/12/01 11:46:34 allender
* added recording prototype for multi player cloak
*
* Revision 1.30 1994/11/27 23:04:22 allender
* function prototype for recording new levels
*
* Revision 1.29 1994/11/07 08:47:43 john
* Made wall state record.
*
* Revision 1.28 1994/11/05 17:22:53 john
* Fixed lots of sequencing problems with newdemo stuff.
*
* Revision 1.27 1994/11/04 16:48:49 allender
* extern Newdemo_do_interpolate variable
*
* Revision 1.26 1994/11/02 14:08:53 allender
* record rearview
*
* Revision 1.25 1994/10/31 13:35:04 allender
* added two record functions to save and restore cockpit state on
* death sequence
*
* Revision 1.24 1994/10/29 16:01:11 allender
* added ND_STATE_NODEMOS to indicate that there are no demos currently
* available for playback
*
* Revision 1.23 1994/10/28 12:41:58 allender
* add homing distance recording event
*
* Revision 1.22 1994/10/27 16:57:32 allender
* removed VCR_MODE stuff, and added monitor blowup effects
*
* Revision 1.21 1994/10/26 14:44:48 allender
* completed hacked in vcr type demo playback states
*
* Revision 1.20 1994/10/26 13:40:38 allender
* more vcr demo playback defines
*
* Revision 1.19 1994/10/26 08:51:26 allender
* record player weapon change
*
* Revision 1.18 1994/10/25 16:25:31 allender
* prototypes for shield, energy and flags
*
* Revision 1.17 1994/08/15 18:05:30 john
* *** empty log message ***
*
* Revision 1.16 1994/07/21 13:11:26 matt
* Ripped out remants of old demo system, and added demo only system that
* disables object movement and game options from menu.
*
* Revision 1.15 1994/07/05 12:49:02 john
* Put functionality of New Hostage spec into code.
*
* Revision 1.14 1994/06/27 15:53:12 john
* #define'd out the newdemo stuff
*
*
* Revision 1.13 1994/06/24 17:01:25 john
* Add VFX support; Took Game Sequencing, like EndGame and stuff and
* took it out of game.c and into gameseq.c
*
* Revision 1.12 1994/06/21 19:46:05 john
* Added palette effects to demo recording.
*
* Revision 1.11 1994/06/21 14:19:58 john
* Put in hooks to record HUD messages.
*
* Revision 1.10 1994/06/20 11:50:42 john
* Made demo record flash effect, and control center triggers.
*
* Revision 1.9 1994/06/17 18:01:29 john
* A bunch of new stuff by John
*
* Revision 1.8 1994/06/17 12:13:34 john
* More newdemo stuff; made editor->game transition start in slew mode.
*
* Revision 1.7 1994/06/16 13:02:02 john
* Added morph hooks.
*
* Revision 1.6 1994/06/15 19:01:42 john
* Added the capability to make 3d sounds play just once for the
* laser hit wall effects.
*
* Revision 1.5 1994/06/15 14:57:11 john
* Added triggers to demo recording.
*
* Revision 1.4 1994/06/14 20:42:19 john
* Made robot matztn cntr not work until no robots or player are
* in the segment.
*
* Revision 1.3 1994/06/14 14:43:52 john
* Made doors work with newdemo system.
*
* Revision 1.2 1994/06/13 21:02:44 john
* Initial version of new demo recording system.
*
* Revision 1.1 1994/06/13 15:51:09 john
* Initial revision
------------------------------------------------------------------------
main/newmenu.c:
* Revision 1.26 1996/04/14 21:07:35 allender
* some change for update
*
* Revision 1.25 1995/10/31 10:19:25 allender
* shareware stuff
*
* Revision 1.24 1995/10/27 11:09:04 allender
* always cd to descent dir before any menu processing --
* sanity check because of way mac does volume mounting and
* other file stuff
*
* Revision 1.23 1995/10/24 18:11:19 allender
* do_appl_quit saves and restores background -- don't
* do any special processing. fixed newmenu_do3 to pass width
* and height to ...do_4
*
* Revision 1.22 1995/10/21 23:26:25 allender
* can't do cmd-q in multiplayer games
*
* Revision 1.21 1995/10/21 22:53:25 allender
* menus need to be 8 byte multiple wide -- printscreen stuff
*
* Revision 1.20 1995/10/20 00:50:15 allender
* redbook stuff and make esc leave menu always
*
* Revision 1.19 1995/10/17 13:14:52 allender
* mouse support for other menus now operational -- dragging
* mouse will also move sliders
*
* Revision 1.18 1995/10/12 17:35:19 allender
* mouse support for pilot and demos
*
* Revision 1.17 1995/10/11 12:17:47 allender
* removed event loop processing
*
* Revision 1.16 1995/10/10 11:51:29 allender
* align menus to 8 byte boundry
*
* Revision 1.15 1995/10/05 14:09:36 allender
* lowered starting x location on menus to fixup network
* status screen chopping off characters
*
* Revision 1.14 1995/09/24 10:52:27 allender
* made close boxes work
* maybe some other minor stuff?
*
* Revision 1.13 1995/09/15 09:02:04 allender
* started putting mouse support in listboxes
*
* Revision 1.12 1995/09/13 08:50:14 allender
* close box in this rev? Worked on getting list box better
* looking
*
* Revision 1.11 1995/09/01 10:52:37 allender
* fixed up list boxes
*
* Revision 1.10 1995/08/24 16:23:08 allender
* mouse support for most menus
*
* Revision 1.9 1995/08/08 13:46:56 allender
* added macsys header file
*
* Revision 1.8 1995/08/01 16:03:54 allender
* added file list with Desalvo's directory stuff
*
* Revision 1.7 1995/07/26 17:03:37 allender
* show then hide cursor during newmenu operations -- not quite
* right yet
*
* Revision 1.6 1995/07/17 08:56:26 allender
* fixed up menus to look better with new high res fonts
*
* Revision 1.5 1995/07/12 10:35:52 allender
* removed old debug thing
*
* Revision 1.4 1995/06/23 10:23:21 allender
* menus should work in any resolution now
*
* Revision 1.3 1995/06/20 09:11:19 allender
* changed menu system to support 640x480 instead of 320x200
*
* Revision 1.2 1995/06/13 13:07:30 allender
* added special key to move 320x200 window to upper left corner of screen
*
* Revision 1.1 1995/05/16 15:29:13 allender
* Initial revision
*
* Revision 2.8 1995/05/26 16:16:28 john
* Split SATURN into define's for requiring cd, using cd, etc.
* Also started adding all the Rockwell stuff.
*
* Revision 2.7 1995/04/23 14:54:17 john
* Fixed bug with background breaking in first menu.
*
* Revision 2.6 1995/03/21 14:38:46 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.5 1995/03/15 14:33:29 john
* Added code to force the Descent CD-rom in the drive.
*
* Revision 2.4 1995/03/14 18:24:28 john
* Force Destination Saturn to use CD-ROM drive.
*
* Revision 2.3 1995/03/14 16:22:23 john
* Added cdrom alternate directory stuff.
*
* Revision 2.2 1995/03/06 18:30:51 john
* Fixed bug with newmenu trashing editor font.
*
* Revision 2.1 1995/03/06 15:23:17 john
* New screen techniques.
*
* Revision 2.0 1995/02/27 11:27:55 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.129 1995/02/11 16:19:56 john
* Added code to make the default mission be the one last played.
*
* Revision 1.128 1995/02/02 19:41:33 john
* Added 10 save game slots.
*
* Revision 1.127 1995/02/01 18:13:52 john
* Fixed some constants.
*
* Revision 1.126 1995/02/01 18:04:01 yuan
* Added 50 characters to list.
*
* Revision 1.125 1995/02/01 13:39:35 john
* Made menu text that changes not overwrite.
*
* Revision 1.124 1995/01/31 10:47:57 john
* Added menu that you can specify the width of the menu.
*
* Revision 1.123 1995/01/28 17:18:12 john
* Added file list box.
*
* Revision 1.122 1995/01/27 17:15:55 john
* Made prev comment actually work.
*
* Revision 1.121 1995/01/27 16:49:03 john
* *** empty log message ***
*
* Revision 1.120 1995/01/27 16:46:40 john
* Made so that input_menu only clears text if -empty-.
*
* Revision 1.119 1995/01/27 15:25:04 john
* Delete saved game when deleteing a pilot file.
*
* Revision 1.118 1995/01/25 16:36:09 john
* Made so that when you hit enter during
* game save, -empty- goes away.
*
* Revision 1.117 1995/01/24 16:59:30 john
* took out mono debugging text.
*
* Revision 1.116 1995/01/24 16:23:16 john
* Fixed some bugs with listboxes.
*
* Revision 1.115 1995/01/23 23:47:36 matt
* Made keypad enter work in menus
*
* Revision 1.114 1995/01/23 19:29:59 john
* Added scrolling listbox menus.
*
* Revision 1.113 1995/01/19 12:33:34 john
* Made keys jump to sliders, etc in menus.
*
* Revision 1.112 1995/01/15 14:33:08 rob
* Fixed problem with nested nm_messageboxes.
*
* Revision 1.111 1995/01/03 17:33:40 john
* Made scrolling textbox. Used it for scores cool saying.
*
* Revision 1.110 1994/12/28 10:42:58 john
* More VFX tweaking.
*
* Revision 1.109 1994/12/28 10:26:39 john
* Fixed some VFX problems.
*
* Revision 1.108 1994/12/15 23:18:10 john
* Added fix so that VFX mode doesn't hang.
*
* Revision 1.107 1994/12/15 12:19:55 john
* Made menu use clipped bitblt functions.
*
* Revision 1.106 1994/12/09 00:41:30 mike
* fix hang in automap print screen
*
* Revision 1.105 1994/12/08 10:01:34 john
* Changed the way the player callsign stuff works.
*
* Revision 1.104 1994/12/04 15:34:30 john
* Fixed bug with newmenu not restoring font properly.
*
* Revision 1.103 1994/12/03 17:47:09 john
* Fixed bug that didn't free filename mem when not .plr files found.
*
* Revision 1.102 1994/12/03 15:06:15 john
* If no pilot exists, bring up box asking for name.
*
* Revision 1.101 1994/12/03 11:04:02 john
* Changed newmenu code a bit to fix bug with bogus
* backgrounds occcasionally.
*
* Revision 1.100 1994/12/01 20:15:48 yuan
* Localization.
*
* Revision 1.99 1994/12/01 10:33:28 john
* Fixed bug with large menu backgrounds not drawing correctly.
*
* Revision 1.98 1994/12/01 02:41:56 john
* Fixed warnining.
*
* Revision 1.97 1994/11/30 22:52:43 john
* Fixed bug in code that made the backgrounds behind menus.
*
* Revision 1.96 1994/11/30 19:47:42 john
* Added a check for out o' memory when mallocing background.
*
* Revision 1.95 1994/11/30 19:39:10 john
* ..
*
* Revision 1.94 1994/11/30 19:38:27 john
* fixed bug with previous.
*
* Revision 1.93 1994/11/30 19:36:47 john
* Made Gravis Ultrasound work again. Made the scores blink
* at a constant rate. Revamped the newmenu background storage,
* which hopefully fixed some bugs. Made menus in ame not pause
* sound, except for the pause key. ^== Game!
*
* Revision 1.92 1994/11/30 18:06:05 matt
* When player types space in callsign, comes up as underscore
*
* Revision 1.91 1994/11/30 12:28:22 adam
* added PCX support
*
* Revision 1.90 1994/11/30 12:10:59 adam
* added support for PCX titles/brief screens
*
* Revision 1.89 1994/11/29 00:59:12 allender
* change newmenu_get_filename so demo files can be deleted too
*
* Revision 1.88 1994/11/27 21:16:18 allender
* made some return values in newmenu_get_filename 0 instead of -1
*
* Revision 1.87 1994/11/27 16:58:17 matt
* Made printscreen work all the time (not just when no ndebug) and made it
* work when getting a filename.
*
* Revision 1.86 1994/11/27 16:47:51 john
* Made the call to fade in palette only happen if it needs to be, just
* because I thought it might reduce code paging with vm in menus.
*
* Revision 1.85 1994/11/26 15:30:16 matt
* Allow escape out of change pilot menu
*
* Revision 1.84 1994/11/26 14:17:26 matt
* Player can now only enter valid chars for his name
*
* Revision 1.83 1994/11/23 14:13:17 allender
* if no demo files, displays less "techy" message
*
* Revision 1.82 1994/11/21 11:55:52 john
* Fixed some sound pausing in menus bugs.
*
* Revision 1.81 1994/11/19 15:14:58 mike
* remove unused code and data
*
* Revision 1.80 1994/11/18 23:37:54 john
* Changed some shorts to ints.
*
* Revision 1.79 1994/11/15 09:29:21 john
* Made it so that pressing a letter when selecting players moves to
* a matching choice.
*
* Revision 1.78 1994/11/14 17:12:28 adam
* *** empty log message ***
*
* Revision 1.77 1994/11/14 16:58:31 rob
* Tried to fix a problem with save demo dialog.
*
* Revision 1.76 1994/11/14 16:13:46 matt
* Fixed handling of players with DOS device names
*
* Revision 1.75 1994/11/13 18:12:53 matt
* Fixed handling of filenames that are the same as DOS devices
*
* Revision 1.74 1994/11/13 17:20:44 john
* Fixed text a bit.
*
* Revision 1.73 1994/11/13 17:18:22 john
* Changed wording of new pilot.
*
* Revision 1.72 1994/11/13 17:14:21 john
* Fixed bug with player list box.
*
* Revision 1.71 1994/11/13 17:12:48 john
* Fixed broken demo file list.
*
* Revision 1.70 1994/11/13 17:04:49 john
* Made the callsign entry be a list box and gave the ability
* to delete players.
*
* Revision 1.69 1994/11/13 15:38:03 john
* Added critical error handler to game. Took out -editor command line
* option because it didn't work anymore and wasn't worth fixing. Made scores
* not use MINER enviroment variable on release version, and made scores
* not print an error if there is no descent.hi.
*
* Revision 1.68 1994/11/11 18:17:03 rob
* Made multi_menu_poll return a value to exit menus.
*
* Revision 1.67 1994/11/11 11:07:06 rob
* Added include of multi.h
*
* Revision 1.66 1994/11/10 20:25:16 rob
* John's stuff to make network menus work.
*
* Revision 1.65 1994/11/08 14:51:39 john
* Added nm_messagebox1, (like the original, only you can pass a function).
*
* Revision 1.64 1994/11/08 08:30:39 john
* Fixed bug with centering titles.
*
* Revision 1.63 1994/11/08 08:27:00 john
* Made titles and subtitles center.
*
* Revision 1.62 1994/11/07 09:40:48 john
* Neatend file list box some.
*
* Revision 1.61 1994/11/05 17:22:41 john
* Fixed lots of sequencing problems with newdemo stuff.
*
* Revision 1.60 1994/11/05 15:04:08 john
* Added non-popup menu for the main menu, so that scores and credits don't have to save
* the background.
*
* Revision 1.59 1994/11/05 14:03:52 john
* Fixed fade transitions between all screens by making gr_palette_fade_in and out keep
* track of whether the palette is faded in or not. Then, wherever the code needs to fade out,
* it just calls gr_palette_fade_out and it will fade out if it isn't already. The same with fade_in.
* This eliminates the need for all the flags like Menu_fade_out, game_fade_in palette, etc.
*
* Revision 1.58 1994/11/04 20:11:50 john
* Neatening up palette stuff with demos.
*
* Revision 1.57 1994/11/04 13:49:24 allender
* fixed newmenu_get_filename to work with less than 10 files
*
* Revision 1.56 1994/11/03 19:37:44 john
* Added scrolling file list box
*
* Revision 1.55 1994/10/31 18:16:42 john
* Made Pad arrows work with menus.
*
* Revision 1.54 1994/10/28 14:54:25 john
* Added forward dec. for newmenu_close.
* .\
*
* Revision 1.53 1994/10/28 14:53:00 john
* Fixed hideous bug that would bomb if you called newmenu_draw_background
* before any menus were ever displayed.
*
* Revision 1.52 1994/10/24 19:56:53 john
* Made the new user setup prompt for config options.
*
* Revision 1.51 1994/10/24 15:15:49 john
* Made Esc exit nm_messagebox's,
* ,
*
* Revision 1.50 1994/10/21 15:20:20 john
* Made PrtScr do screen dump, not F2.
*
* Revision 1.49 1994/10/18 12:33:38 john
* Only used copy the item text into the saved_text field
* if it is an inputbox or inputbox_menu.
*
* Revision 1.48 1994/10/17 11:04:01 john
* Made backtab work also.
*
* Revision 1.47 1994/10/17 10:47:49 john
* MAde Tab work like down arrow.
*
* Revision 1.46 1994/10/17 10:45:10 john
* Made the player able to abort death by pressing any button or key.
*
* Revision 1.45 1994/10/13 21:52:02 john
* Made it so that if a messagebox has 1 choice, then
* Esc will return -1.
*
* Revision 1.44 1994/10/13 11:35:38 john
* Made Thrustmaster FCS Hat work. Put a background behind the
* keyboard configure. Took out turn_sensitivity. Changed sound/config
* menu to new menu. Made F6 be calibrate joystick.
*
* Revision 1.43 1994/10/11 17:18:52 john
* Fixed bug with sliders always starting at -1.
*
* Revision 1.42 1994/10/11 17:08:29 john
* Added sliders for volume controls.
*
* Revision 1.41 1994/10/06 16:04:40 john
* Made text items color differently than others. Adam
* is gonna make a diff colored font for these.
*
* Revision 1.40 1994/10/06 15:08:23 rob
* Allowed any negative key value to abort the menu and return.
*
* Revision 1.39 1994/10/04 10:26:06 matt
* Changed fade in to happen every time a global var is set
*
* Revision 1.38 1994/10/04 09:16:08 john
* If you pass -1 as choice in newmenu_do1, then
* no item is highlighted until you press up or
* down arrows.
*
* Revision 1.37 1994/10/03 23:44:37 matt
* Save & restore palette effect around menus & pause message
*
* Revision 1.36 1994/10/03 22:59:40 matt
* Re-enabled backspace to generate Int3()
*
* Revision 1.35 1994/10/03 19:11:21 matt
* Changed string input cursor to blinking underscore
*
* Revision 1.34 1994/10/03 14:44:15 john
* Added newmenu_do1, which allows you to pass the starting
* item to the menu system
*
* Revision 1.33 1994/09/30 11:51:21 john
* Added Matt's NM_TYPE_INPUT_MENU
*
* Revision 1.32 1994/09/28 17:22:56 matt
* Added extra space between subtitle and menu items
* Made shortcut key check ignore leading spaces in text
*
* Revision 1.31 1994/09/15 16:11:22 john
* Added support for VFX1 head tracking. Fixed bug with memory over-
* write when using stereo mode.
*
* Revision 1.30 1994/09/12 09:52:59 john
* Made global flush function that flushes keyboard,mouse, and joystick.
*
* Revision 1.29 1994/09/10 19:10:54 matt
* Fixed a few things (like arrow key handling) for menus with all
* text items, such as the key help message.
*
* Revision 1.28 1994/09/01 18:55:38 john
* freed scores.lbm
*
* Revision 1.27 1994/09/01 18:03:50 john
* Neatened up scores a bit.
*
* Revision 1.26 1994/08/30 20:38:13 john
* Passed citem in newmenu sub.
*
* Revision 1.25 1994/08/30 11:13:01 john
* Added beveled edges to menus.
*
* Revision 1.24 1994/08/26 13:01:58 john
* Put high score system in.
*
* Revision 1.23 1994/08/16 00:18:44 john
* Made pressing the first letter of a menu
* item move to it.
*
* Revision 1.22 1994/08/15 23:17:43 john
* *** empty log message ***
*
* Revision 1.21 1994/08/15 23:15:28 john
* Made 1 menu/checkbox return with any keypress.
*
* Revision 1.20 1994/08/12 10:18:23 john
* *** empty log message ***
*
* Revision 1.19 1994/08/12 10:09:11 john
* Made borders better.
*
* Revision 1.18 1994/08/12 03:11:16 john
* Made network be default off; Moved network options into
* main menu. Made starting net game check that mines are the
* same.
*
* Revision 1.17 1994/08/11 22:14:43 john
* Free'd up some memory that I forgot to free.
*
* Revision 1.16 1994/08/11 19:27:35 john
* Made the Backspace drop into the debugger only
* if you're not in an inputbox.
*
* Revision 1.15 1994/08/11 18:01:49 matt
* Added F2 and BACKSPACE keys to new menu system
*
* Revision 1.14 1994/08/11 14:25:58 john
* *** empty log message ***
*
* Revision 1.13 1994/08/11 14:25:40 john
* *** empty log message ***
*
* Revision 1.12 1994/08/11 13:47:02 john
* Made newmenu have subtitles, passed key through to
* the newmenu subfunctions.
*
* Revision 1.11 1994/08/11 12:45:08 john
* *** empty log message ***
*
* Revision 1.10 1994/08/11 12:25:45 john
* Made right_offset spacing different
*
* Revision 1.9 1994/08/11 12:09:49 john
* Made work with bitmapped fonts.
*
* Revision 1.8 1994/08/10 19:56:16 john
* Changed font stuff; Took out old menu; messed up lots of
* other stuff like game sequencing messages, etc.
*
* Revision 1.7 1994/07/27 16:12:23 john
* Changed newmenu system to have a callback function.
* /.
*
* Revision 1.6 1994/07/25 15:10:23 john
* *** empty log message ***
*
* Revision 1.5 1994/07/25 12:33:35 john
* Network "pinging" in.
*
* Revision 1.4 1994/07/24 18:21:27 john
* Took out first time stuff.
*
* Revision 1.3 1994/07/24 17:32:47 john
* Added percent item. Also neatend up a bit.
*
* Revision 1.2 1994/07/22 17:48:13 john
* Added new menuing system.
*
* Revision 1.1 1994/07/22 13:55:38 john
* Initial revision
------------------------------------------------------------------------
main/newmenu.h:
* Revision 1.3 1995/10/17 13:15:19 allender
* new call to nm_listbox for close_box
*
* Revision 1.2 1995/09/13 08:48:50 allender
* new prototype for newmenu -- have close box
*
* Revision 1.1 1995/05/16 16:00:32 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:32:28 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.24 1995/02/11 16:20:05 john
* Added code to make the default mission be the one last played.
*
* Revision 1.23 1995/01/31 10:21:41 john
* Added code to specify width, height.
*
* Revision 1.22 1995/01/28 17:09:21 john
* *** empty log message ***
*
* Revision 1.21 1995/01/23 18:38:43 john
* Added listbox function.
*
* Revision 1.20 1994/11/26 15:29:55 matt
* Allow escape out of change pilot menu
*
* Revision 1.19 1994/11/26 14:17:05 matt
* Player can now only enter valid chars for his name
*
* Revision 1.18 1994/11/18 16:17:13 mike
* prototype Max_linear_depth_objects.
*
* Revision 1.17 1994/11/08 14:51:17 john
* Added nm_messagebox1, (like the original, only you can pass a function).
*
* Revision 1.16 1994/11/05 14:31:45 john
* Added a new menu function for the background.
*
* Revision 1.15 1994/11/05 14:05:46 john
* Fixed fade transitions between all screens by making gr_palette_fade_in and out keep
* track of whether the palette is faded in or not. Then, wherever the code needs to fade out,
* it just calls gr_palette_fade_out and it will fade out if it isn't already. The same with fade_in.
* This eliminates the need for all the flags like Menu_fade_out, game_fade_in palette, etc.
*
* Revision 1.14 1994/11/03 19:37:35 john
* Added scrolling file list box
*
* Revision 1.13 1994/10/13 11:34:03 john
* Made Thrustmaster FCS Hat work. Put a background behind the
* keyboard configure. Took out turn_sensitivity. Changed sound/config
* menu to new menu. Made F6 be calibrate joystick.
*
* Revision 1.12 1994/10/11 17:08:32 john
* Added sliders for volume controls.
*
* Revision 1.11 1994/10/04 10:26:23 matt
* Changed fade in to happen every time a global var is set
*
* Revision 1.10 1994/10/03 14:43:56 john
* Added newmenu_do1, which allows you to pass the starting
* item to the menu system
*
* Revision 1.9 1994/09/30 11:51:33 john
* Added Matt's NM_TYPE_INPUT_MENU
*
* Revision 1.8 1994/08/30 20:38:28 john
* Passed citem in newmenu sub.
*
* Revision 1.7 1994/08/12 03:11:00 john
* Made network be default off; Moved network options into
* main menu. Made starting net game check that mines are the
* same.
*
* Revision 1.6 1994/08/11 13:47:05 john
* Made newmenu have subtitles, passed key through to
* the newmenu subfunctions.
*
* Revision 1.5 1994/07/27 16:12:24 john
* Changed newmenu system to have a callback function.
* /.
*
* Revision 1.4 1994/07/24 17:41:38 john
* *** empty log message ***
*
* Revision 1.3 1994/07/24 17:33:01 john
* Added percent item. Also neatend up a bit.
*
* Revision 1.2 1994/07/22 17:48:12 john
* Added new menuing system.
*
* Revision 1.1 1994/07/22 13:55:51 john
* Initial revision
------------------------------------------------------------------------
main/object.c:
* Revision 1.5 1995/10/26 14:08:03 allender
* optimization to do physics on objects that didn't render last
* frame only every so often
*
* Revision 1.4 1995/10/20 00:50:57 allender
* make alt texture for player ship work correctly when cloaked
*
* Revision 1.3 1995/09/14 14:11:32 allender
* fix_object_segs returns void
*
* Revision 1.2 1995/08/12 11:31:01 allender
* removed #ifdef NEWDEMO -- always in
*
* Revision 1.1 1995/05/16 15:29:23 allender
* Initial revision
*
* Revision 2.3 1995/06/15 12:30:51 john
* Fixed bug with multiplayer ships cloaking out wrongly.
*
* Revision 2.2 1995/05/15 11:34:53 john
* Fixed bug as Matt directed that fixed problems with the exit
* triggers being missed on slow frame rate computer.
*
* Revision 2.1 1995/03/21 14:38:51 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.0 1995/02/27 11:28:14 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.335 1995/02/22 12:57:30 allender
* remove anonymous unions from object structure
*
* Revision 1.334 1995/02/09 22:04:40 mike
* fix lifeleft on badass weapons.
*
* Revision 1.333 1995/02/08 12:54:00 matt
* Fixed object freeing code which was deleting some explosions it shouldn't
*
* Revision 1.332 1995/02/08 11:37:26 mike
* Check for failures in call to obj_create.
*
* Revision 1.331 1995/02/05 17:48:52 rob
* Changed assert in obj_relink, more robust.
*
* Revision 1.330 1995/02/05 13:39:48 mike
* remove invulnerability effect code (actually, comment out).
*
* Revision 1.329 1995/02/04 12:29:52 rob
* Get rid of potential assert error for explosion detachment.
*
* Revision 1.328 1995/02/01 18:15:57 rob
* Removed debugging output from engine glow change.
*
* Revision 1.327 1995/02/01 16:20:12 matt
* Made engine glow vary over a wider range, and made the glow be based
* on thrust/speed, without regard to direction.
*
* Revision 1.326 1995/01/29 14:46:24 rob
* Fixed invul. vclip to only appear on player who is invul.
*
* Revision 1.325 1995/01/29 13:48:16 mike
* Add invulnerability graphical effect viewable by other players.
*
* Revision 1.324 1995/01/29 11:39:25 mike
* Add invulnerability effect.
*
* Revision 1.323 1995/01/27 17:02:41 mike
* add more information to an Error call.
*
* Revision 1.322 1995/01/26 22:11:30 mike
* Purple chromo-blaster (ie, fusion cannon) spruce up (chromification)
*
* Revision 1.321 1995/01/25 20:04:10 matt
* Moved matrix check to avoid orthogonalizing an uninitialize matrix
*
* Revision 1.320 1995/01/25 12:11:35 matt
* Make sure orient matrix is orthogonal when resetting player object
*
* Revision 1.319 1995/01/21 21:46:22 mike
* Optimize code in Assert (and prevent warning message).
*
* Revision 1.318 1995/01/21 21:22:16 rob
* Removed HUD clear messages.
* Added more Asserts to try and find illegal control type bug.
*
* Revision 1.317 1995/01/15 15:34:30 matt
* When freeing object slots, don't free fireballs that will be deleting
* other objects.
*
* Revision 1.316 1995/01/14 19:16:48 john
* First version of new bitmap paging code.
*
* Revision 1.315 1995/01/12 18:53:37 john
* Fixed parameter passing error.
*
* Revision 1.314 1995/01/12 12:09:47 yuan
* Added coop object capability.
*
* Revision 1.313 1994/12/15 16:45:44 matt
* Took out slew stuff for release version
*
* Revision 1.312 1994/12/15 13:04:25 mike
* Replace Players[Player_num].time_total references with GameTime.
*
* Revision 1.311 1994/12/15 11:01:04 mike
* add Object_minus_one for debugging.
*
* Revision 1.310 1994/12/15 03:03:33 matt
* Added error checking for NULL return from object_create_explosion()
*
* Revision 1.309 1994/12/14 17:25:31 matt
* Made next viewer func based on release not ndebug
*
* Revision 1.308 1994/12/13 12:55:42 mike
* hostages on board messages for when you die.
*
* Revision 1.307 1994/12/12 17:18:11 mike
* make boss cloak/teleport when get hit, make quad laser 3/4 as powerful.
*
* Revision 1.306 1994/12/12 00:27:11 matt
* Added support for no-levelling option
*
* Revision 1.305 1994/12/11 22:41:14 matt
* Added command-line option, -nolevel, which turns off player ship levelling
*
* Revision 1.304 1994/12/11 22:03:23 mike
* free up object slots as necessary.
*
* Revision 1.303 1994/12/11 14:09:31 mike
* make boss explosion sounds softer.
*
* Revision 1.302 1994/12/11 13:25:11 matt
* Restored calls to fix_object_segs() when debugging is turned off, since
* it's not a big routine, and could fix some possibly bad problems.
*
* Revision 1.301 1994/12/11 12:38:25 mike
* make boss explosion sounds louder in create_small_fireball.
*
* Revision 1.300 1994/12/10 15:28:37 matt
* Added asserts for debugging
*
* Revision 1.299 1994/12/09 16:18:51 matt
* Fixed init_player_object, for editor
*
* Revision 1.298 1994/12/09 15:03:10 matt
* Two changes for Mike:
* 1. Do better placement of camera during death sequence (prevents hang)
* 2. Only record dodging information if the player fired in a frame
*
* Revision 1.297 1994/12/09 14:59:12 matt
* Added system to attach a fireball to another object for rendering purposes,
* so the fireball always renders on top of (after) the object.
*
* Revision 1.296 1994/12/08 20:05:07 matt
* Removed unneeded debug message
*
* Revision 1.295 1994/12/08 12:36:02 matt
* Added new object allocation & deallocation functions so other code
* could stop messing around with internal object data structures.
*
* Revision 1.294 1994/12/07 20:13:37 matt
* Added debris object limiter
*
* Revision 1.293 1994/12/06 16:58:38 matt
* Killed warnings
*
* Revision 1.292 1994/12/05 22:34:35 matt
* Make tmap_override objects use override texture as alt texture. This
* should have the effect of making simpler models use the override texture.
*
* Revision 1.291 1994/12/05 12:23:53 mike
* make camera start closer, but move away from player in death sequence.
*
* Revision 1.290 1994/12/02 11:11:18 mike
* hook sound effect to player small explosions (ctrlcen, too).
*
* Revision 1.289 1994/11/28 21:50:52 mike
* optimizations.
*
* Revision 1.288 1994/11/27 23:12:28 matt
* Made changes for new mprintf calling convention
*
* Revision 1.287 1994/11/27 20:35:50 matt
* Fixed dumb mistake
*
* Revision 1.286 1994/11/27 20:30:52 matt
* Got rid of warning
*
* Revision 1.285 1994/11/21 11:43:21 mike
* ndebug stuff.
*
* Revision 1.284 1994/11/19 15:19:37 mike
* rip out unused code and data.
*
* Revision 1.283 1994/11/18 23:41:59 john
* Changed some shorts to ints.
*
* Revision 1.282 1994/11/18 16:16:17 mike
* Separate depth on objects vs. walls.
*
* Revision 1.281 1994/11/18 12:05:35 rob
* Removed unnecessary invulnerability flag set in player death.
* (I hope its unnecessary.. its commented out if it proves crucial)
* fixes powerup dropping bug for net play.
*
* Revision 1.280 1994/11/16 20:36:34 rob
* Changed player explosion (small) code.
*
* Revision 1.279 1994/11/16 18:26:04 matt
* Clear tmap override on player, to fix "rock ship" bug
*
* Revision 1.278 1994/11/16 14:54:12 rob
* Moved hook for network explosions.
*
* Revision 1.277 1994/11/14 11:40:42 mike
* plot inner polygon on laser based on detail level.
*
* Revision 1.276 1994/11/10 14:02:59 matt
* Hacked in support for player ships with different textures
*
* Revision 1.275 1994/11/08 12:19:08 mike
* Make a generally useful function for putting small explosions on any object.
*
* Revision 1.274 1994/11/04 19:55:54 rob
* Changed calls to player_explode to accomodate new parameter.
*
* Revision 1.273 1994/11/02 21:54:27 matt
* Delete the camera when the death sequence is done
*
* Revision 1.272 1994/11/02 11:36:35 rob
* Added player-in-process-of-dying explosions to network play.
*
* Revision 1.271 1994/10/31 17:25:33 matt
* Fixed cloaked bug
*
* Revision 1.270 1994/10/31 16:11:19 allender
* on demo recording, store letterbox mode in demo.
*
* Revision 1.269 1994/10/31 10:36:18 mike
* Make cloak effect fadein/fadeout different for robots versus player.
*
* Revision 1.268 1994/10/30 14:11:44 mike
* rip out repair center stuff.
*
* Revision 1.267 1994/10/28 19:43:52 mike
* Boss cloaking effect.
*
* Revision 1.266 1994/10/27 11:33:42 mike
* Add Highest_ever_object_index -- high water mark in object creation.
*
* Revision 1.265 1994/10/25 10:51:12 matt
* Vulcan cannon powerups now contain ammo count
*
* Revision 1.264 1994/10/24 20:49:24 matt
* Made cloaked objects pulse
*
* Revision 1.263 1994/10/21 12:19:45 matt
* Clear transient objects when saving (& loading) games
*
* Revision 1.262 1994/10/21 11:25:23 mike
* Use new constant IMMORTAL_TIME.
*
* Revision 1.261 1994/10/19 16:50:35 matt
* If out of segment, put player in center of segment when checking objects
*
*
* Revision 1.260 1994/10/17 23:21:55 mike
* Clean up robot cloaking, move more to ai.c
*
* Revision 1.259 1994/10/17 21:34:49 matt
* Added support for new Control Center/Main Reactor
*
* Revision 1.258 1994/10/17 21:18:04 mike
* robot cloaking.
*
* Revision 1.257 1994/10/17 14:12:23 matt
* Cleaned up problems with player dying from mine explosion
*
* Revision 1.256 1994/10/15 19:04:31 mike
* Don't remove proximity bombs after you die.
*
* Revision 1.255 1994/10/14 15:57:00 mike
* Don't show ids in network mode.
* Fix, I hope, but in death sequence.
*
* Revision 1.254 1994/10/12 08:04:29 mike
* Don't decloak player on death.
*
* Revision 1.253 1994/10/11 20:36:16 matt
* Clear "transient" objects (weapons,explosions,etc.) when starting a level
*
* Revision 1.252 1994/10/11 12:24:09 matt
* Cleaned up/change badass explosion calls
*
* Revision 1.251 1994/10/08 19:30:20 matt
* Fixed (I hope) a bug in cloaking of multiplayer objects
*
* Revision 1.250 1994/10/08 14:03:15 rob
* Changed cloaking routine.
*
* Revision 1.249 1994/10/07 22:17:27 mike
* Asserts on valid segnum.
*
* Revision 1.248 1994/10/07 19:11:14 matt
* Added cool cloak transition effect
------------------------------------------------------------------------
main/object.h:
* Revision 1.6 1995/09/20 14:24:45 allender
* swap bytes on extractshortpos
*
* Revision 1.5 1995/09/14 14:11:42 allender
* fix_object_segs returns void
*
* Revision 1.4 1995/08/12 12:02:44 allender
* added flag to create_shortpos
*
* Revision 1.3 1995/07/12 12:55:08 allender
* move structures back to original form as found on PC because
* of network play
*
* Revision 1.2 1995/06/19 07:55:06 allender
* rearranged structure members for possible better alignment
*
* Revision 1.1 1995/05/16 16:00:40 allender
* Initial revision
*
* Revision 2.1 1995/03/31 12:24:10 john
* I had changed alt_textures from a pointer to a byte. This hosed old
* saved games, so I restored it to an int.
*
* Revision 2.0 1995/02/27 11:26:47 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.122 1995/02/22 12:35:53 allender
* remove anonymous unions
*
* Revision 1.121 1995/02/06 20:43:25 rob
* Extern'ed Dead_player_camera so it can be reset by multi.c
*
* Revision 1.120 1995/02/01 16:34:07 john
* Linted.
*
* Revision 1.119 1995/01/29 13:46:42 mike
* adapt to new create_small_fireball_on_object prototype.
*
* Revision 1.118 1995/01/26 22:11:27 mike
* Purple chromo-blaster (ie, fusion cannon) spruce up (chromification)
*
* Revision 1.117 1995/01/24 12:09:29 mike
* Boost MAX_OBJECTS from 250 to 350.
*
* Revision 1.116 1995/01/13 19:39:51 rob
* Removed outdated remote_info structure. (looking for cause of bugs
*
* Revision 1.115 1995/01/12 12:09:38 yuan
* Added coop object capability.
*
* Revision 1.114 1994/12/15 13:04:20 mike
* Replace Players[Player_num].time_total references with GameTime.
*
* Revision 1.113 1994/12/12 17:18:09 mike
* make boss cloak/teleport when get hit, make quad laser 3/4 as powerful.
*
* Revision 1.112 1994/12/09 14:58:42 matt
* Added system to attach a fireball to another object for rendering purposes,
* so the fireball always renders on top of (after) the object.
*
* Revision 1.111 1994/12/08 12:35:35 matt
* Added new object allocation & deallocation functions so other code
* could stop messing around with internal object data structures.
*
* Revision 1.110 1994/11/21 17:30:21 matt
* Increased max number of objects
*
* Revision 1.109 1994/11/18 23:41:52 john
* Changed some shorts to ints.
*
* Revision 1.108 1994/11/10 14:02:45 matt
* Hacked in support for player ships with different textures
*
* Revision 1.107 1994/11/08 12:19:27 mike
* Small explosions on objects.
*
* Revision 1.106 1994/10/25 10:51:17 matt
* Vulcan cannon powerups now contain ammo count
*
* Revision 1.105 1994/10/21 12:19:41 matt
* Clear transient objects when saving (& loading) games
*
* Revision 1.104 1994/10/21 11:25:04 mike
* Add IMMORTAL_TIME.
*
* Revision 1.103 1994/10/17 21:34:54 matt
* Added support for new Control Center/Main Reactor
*
* Revision 1.102 1994/10/14 18:12:28 mike
* Make egg dropping return object number.
*
* Revision 1.101 1994/10/12 21:07:19 matt
* Killed unused field in object structure
*
* Revision 1.100 1994/10/12 10:38:24 mike
* Add field OF_SILENT to obj->flags.
*
* Revision 1.99 1994/10/11 20:35:48 matt
* Clear "transient" objects (weapons,explosions,etc.) when starting a level
*
* Revision 1.98 1994/10/03 20:56:13 rob
* Added velocity to shortpos strucutre.
*
* Revision 1.97 1994/09/30 18:24:00 rob
* Added new control type CT_REMOTE for remote controlled objects.
* Also added a union struct 'remote_info' for this type.
*
* Revision 1.96 1994/09/28 09:23:05 mike
* Prototype Object_type_names.
*
* Revision 1.95 1994/09/25 23:32:37 matt
* Changed the object load & save code to read/write the structure fields one
* at a time (rather than the whole structure at once). This mean that the
* object structure can be changed without breaking the load/save functions.
* As a result of this change, the local_object data can be and has been
* incorporated into the object array. Also, timeleft is now a property
* of all objects, and the object structure has been otherwise cleaned up.
*
* Revision 1.94 1994/09/25 15:45:28 matt
* Added OBJ_LIGHT, a type of object that casts light
* Added generalized lifeleft, and moved it to local_object
*
* Revision 1.93 1994/09/24 17:41:19 mike
* Add stuff to Local_object structure for materialization centers.
*
* Revision 1.92 1994/09/24 13:16:50 matt
* Added (hacked in, really) support for overriding the bitmaps used on to
* texture map a polygon object, and using a new bitmap for all the faces.
*
* Revision 1.91 1994/09/22 19:02:14 mike
* Prototype functions extract_shortpos and create_shortpos which reside in
* gameseg.c, but are prototyped here to prevent circular dependencies.
*
* Revision 1.90 1994/09/15 21:47:14 mike
* Prototype dead_player_end().
*
* Revision 1.89 1994/09/15 16:34:47 mike
* Add danger_laser_num and danger_laser_signature to object_local to
* enable robots to efficiently (too efficiently!) avoid player fire.
*
* Revision 1.88 1994/09/11 22:46:19 mike
* Death_sequence_aborted prototyped.
*
* Revision 1.87 1994/09/09 20:04:30 mike
* Add vclips for weapons.
*
* Revision 1.86 1994/09/09 14:20:54 matt
* Added flag that says object uses thrust
*
* Revision 1.85 1994/09/08 14:51:32 mike
* Make a crucial name change to a field of local_object struct.
*
* Revision 1.84 1994/09/07 19:16:45 mike
* Homing missile.
*
* Revision 1.83 1994/09/06 17:05:43 matt
* Added new type for dead player
*
* Revision 1.82 1994/09/02 11:56:09 mike
* Add persistency (PF_PERSISTENT) to physics_info.
*
* Revision 1.81 1994/08/28 19:10:28 mike
* Add Player_is_dead.
*
* Revision 1.80 1994/08/18 15:11:44 mike
* powerup stuff.
*
* Revision 1.79 1994/08/15 15:24:54 john
* Made players know who killed them; Disabled cheat menu
* during net player; fixed bug with not being able to turn
* of invulnerability; Made going into edit/starting new leve
* l drop you out of a net game; made death dialog box.
*
* Revision 1.78 1994/08/14 23:15:12 matt
* Added animating bitmap hostages, and cleaned up vclips a bit
*
* Revision 1.77 1994/08/13 14:58:27 matt
* Finished adding support for miscellaneous objects
*
* Revision 1.76 1994/08/09 16:04:13 john
* Added network players to editor.
*
* Revision 1.75 1994/08/03 21:06:19 matt
* Added prototype for fix_object_segs(), and renamed now-unused spawn_pos
*
* Revision 1.74 1994/08/02 12:30:27 matt
* Added support for spinning objects
*
* Revision 1.73 1994/07/27 20:53:25 matt
* Added rotational drag & thrust, so turning now has momemtum like moving
*
* Revision 1.72 1994/07/27 19:44:21 mike
* Objects containing objects.
*
* Revision 1.71 1994/07/22 20:43:29 matt
* Fixed flares, by adding a physics flag that makes them stick to walls.
*
* Revision 1.70 1994/07/21 12:42:10 mike
* Prototype new find_object_seg and update_object_seg.
*
* Revision 1.69 1994/07/19 15:26:39 mike
* New ai_static structure.
*
* Revision 1.68 1994/07/13 00:15:06 matt
* Moved all (or nearly all) of the values that affect player movement to
* bitmaps.tbl
*
* Revision 1.67 1994/07/12 12:40:12 matt
* Revamped physics system
*
* Revision 1.66 1994/07/06 15:26:23 yuan
* Added chase mode.
------------------------------------------------------------------------
main/paging.c:
* Revision 1.5 1995/10/30 11:06:58 allender
* added change to paging code ala John -- check tmap_override
* when paging in robots
*
* Revision 1.4 1995/09/13 08:48:28 allender
* John's new paging code
*
* Revision 1.3 1995/08/18 10:20:31 allender
* changed hard coded black pixel value to use BM_XRGB
*
* Revision 1.2 1995/07/26 17:02:10 allender
* small fix to page in effect bitmaps correctly
*
* Revision 1.1 1995/05/16 15:29:35 allender
* Initial revision
*
* Revision 2.5 1995/10/07 13:18:21 john
* Added PSX debugging stuff that builds .PAG files.
*
* Revision 2.4 1995/08/24 13:40:03 john
* Added code to page in vclip for powerup disapperance and to
* fix bug that made robot makers not page in the correct bot
* textures.
*
* Revision 2.3 1995/07/26 12:09:19 john
* Made code that pages in weapon_info->robot_hit_vclip not
* page in unless it is a badass weapon. Took out old functionallity
* of using this if no robot exp1_vclip, since all robots have these.
*
* Revision 2.2 1995/07/24 13:22:11 john
* Made sure everything gets paged in at the
* level start. Fixed bug with robot effects not
* getting paged in correctly.
*
* Revision 2.1 1995/05/12 15:50:16 allender
* fix to check effects dest_bm_num > -1 before paging in
*
* Revision 2.0 1995/02/27 11:27:39 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.18 1995/02/22 14:12:28 allender
* remove anonyous union from object structure
*
* Revision 1.17 1995/02/11 22:54:15 john
* Made loading for pig not show up for demos.
*
* Revision 1.16 1995/02/11 22:37:04 john
* Made cockpit redraw.
*
* Revision 1.15 1995/01/28 16:29:35 john
* *** empty log message ***
*
* Revision 1.14 1995/01/27 17:16:18 john
* Added code to page in all the weapons.
*
* Revision 1.13 1995/01/24 21:51:22 matt
* Clear the boxed message to fix a mem leakage
*
* Revision 1.12 1995/01/23 13:00:46 john
* Added hostage vclip paging.
*
* Revision 1.11 1995/01/23 12:29:52 john
* Added code to page in eclip on robots, dead control center,
* gauges bitmaps, and weapon pictures.
*
* Revision 1.10 1995/01/21 12:54:15 adam
* *** empty log message ***
*
* Revision 1.9 1995/01/21 12:41:29 adam
* changed orb to loading box
*
* Revision 1.8 1995/01/18 15:09:02 john
* Added start/stop time around paging.
* Made paging clear screen around globe.
*
* Revision 1.7 1995/01/18 10:37:00 john
* Added code to page in exploding monitors.
*
* Revision 1.6 1995/01/17 19:03:35 john
* Added cool spinning orb during loading.
*
* Revision 1.5 1995/01/17 14:49:26 john
* Paged in weapons.
*
* Revision 1.4 1995/01/17 12:14:07 john
* Made walls, object explosion vclips load at level start.
*
* Revision 1.3 1995/01/15 13:23:24 john
* First working version
*
* Revision 1.2 1995/01/15 11:56:45 john
* Working version of paging.
*
* Revision 1.1 1995/01/15 11:33:37 john
* Initial revision
------------------------------------------------------------------------
main/paging.h:
* Revision 1.1 1995/05/16 16:00:48 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:30:12 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.2 1995/01/15 11:56:39 john
* Working version of paging.
*
* Revision 1.1 1995/01/15 11:33:52 john
* Initial revision
------------------------------------------------------------------------
main/physics.c:
* Revision 1.5 1995/10/12 17:28:08 allender
* put in code to move and object to center of segment in
* do_physics sim when fvi fails with bad point
*
* Revision 1.4 1995/08/23 21:32:44 allender
* fix mcc compiler warnings
*
* Revision 1.3 1995/07/28 15:38:56 allender
* removed isqrt thing -- not required here
*
* Revision 1.2 1995/07/28 15:13:29 allender
* fixed vector magnitude thing
*
* Revision 1.1 1995/05/16 15:29:42 allender
* Initial revision
*
* Revision 2.2 1995/03/24 14:48:54 john
* Added cheat for player to go thru walls.
*
* Revision 2.1 1995/03/20 18:15:59 john
* Added code to not store the normals in the segment structure.
*
* Revision 2.0 1995/02/27 11:32:06 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.213 1995/02/22 13:40:48 allender
* remove anonymous unions from object structure
*
* Revision 1.212 1995/02/22 13:24:42 john
* Removed the vecmat anonymous unions.
*
* Revision 1.211 1995/02/06 19:46:59 matt
* New function (untested), set_thrust_from_velocity()
*
* Revision 1.210 1995/02/02 16:26:12 matt
* Changed assert that was causing a problem
*
* Revision 1.209 1995/02/02 14:07:00 matt
* Fixed confusion about which segment you are touching when you're
* touching a wall. This manifested itself in spurious lava burns.
*
* Revision 1.208 1995/02/01 21:03:24 john
* Lintified.
*
* Revision 1.207 1995/01/25 13:53:35 rob
* Removed an Int3 from multiplayer games.
*
* Revision 1.206 1995/01/23 17:30:47 rob
* Removed Int3 on bogus sim time.
*
* Revision 1.205 1995/01/17 11:08:56 matt
* Disable new-ish FVI edge checking for all objects except the player,
* since it was causing problems with the fusion cannon.
*
* Revision 1.204 1995/01/05 09:43:49 matt
* Took out int3s from new code
*
* Revision 1.203 1995/01/04 22:19:23 matt
* Added hack to keep player from squeezing through closed walls/doors
*
* Revision 1.202 1995/01/02 12:38:48 mike
* physics hack to crazy josh not get hung up on proximity bombs. Matt notified via email.
*
* Revision 1.201 1994/12/13 15:39:22 mike
* #ifndef NDEBUG some code.
*
* Revision 1.200 1994/12/13 13:28:34 yuan
* Fixed type.
*
* Revision 1.199 1994/12/13 13:25:00 matt
* Made bump hack compile out if so desired
*
* Revision 1.198 1994/12/13 12:02:39 matt
* Added hack to bump player a little if stuck
*
* Revision 1.197 1994/12/12 00:32:23 matt
* When objects other than player go out of mine, jerk to center of segment
*
* Revision 1.196 1994/12/10 22:52:42 mike
* make physics left-the-mine checking always be in.
*
* Revision 1.195 1994/12/08 00:53:01 mike
* oops...phys rot bug.
*
* Revision 1.194 1994/12/07 12:54:54 mike
* tweak rotvel applied from collisions.
*
* Revision 1.193 1994/12/07 00:36:08 mike
* fix phys_apply_rot for robots -- ai was bashing effect in next frame.
*
* Revision 1.192 1994/12/05 17:23:10 matt
* Made a bunch of debug code compile out
*
* Revision 1.191 1994/12/05 16:30:10 matt
* Was illegally changing an object's segment...shoot me.
*
* Revision 1.190 1994/12/05 11:58:51 mike
* fix stupid apply_force_rot() bug.
*
* Revision 1.189 1994/12/05 09:42:17 mike
* fix 0 mag problem when object applies force to itself.
*
* Revision 1.188 1994/12/04 22:48:40 matt
* Physics & FVI now only build seglist for player objects, and they
* responsilby deal with buffer full conditions
*
* Revision 1.187 1994/12/04 22:14:07 mike
* apply instantaneous rotation to an object due to a force blow.
*
* Revision 1.186 1994/12/04 18:51:30 matt
* When weapons get stuck, delete them!
*
* Revision 1.185 1994/12/04 18:38:56 matt
* Added better handling of point-not-in-seg problem
*
* Revision 1.184 1994/11/27 23:13:42 matt
* Made changes for new mprintf calling convention
*
* Revision 1.183 1994/11/25 23:46:18 matt
* Fixed drag problems with framerates over 60Hz
*
* Revision 1.182 1994/11/25 22:15:52 matt
* Added asserts to try to trap frametime < 0 bug
*
* Revision 1.181 1994/11/21 11:42:44 mike
* ndebug stuff.
*
* Revision 1.180 1994/11/19 15:15:04 mike
* remove unused code and data
*
* Revision 1.179 1994/11/16 11:25:22 matt
* Abort physics if negative frametime
*
* Revision 1.178 1994/10/05 19:50:41 rob
* Removed a non-critical Int3 where an object's segnum is checked.
* Left mprintf message.
*
* Revision 1.177 1994/10/03 22:57:50 matt
* Fixed problem with matrix corruption of non-moving (but rotating) objects
*
* Revision 1.176 1994/09/28 09:23:28 mike
* Add useful information to mprintf(1,... error messages.
*
* Revision 1.175 1994/09/21 17:16:54 mike
* Make objects stuck in doors go away when door opens.
*
* Revision 1.174 1994/09/12 14:19:06 matt
* Drag & thrust now handled differently
*
* Revision 1.173 1994/09/09 14:21:12 matt
* Use new thrust flag
*
* Revision 1.172 1994/09/08 16:21:57 matt
* Cleaned up player-hit-wall code, and added object scrape handling
* Also added weapon-on-weapon hit sound
*
* Revision 1.171 1994/09/02 12:30:37 matt
* Fixed weapons which go through objects
*
* Revision 1.170 1994/09/02 11:55:14 mike
* Kill redefinition of a constant which is properly defined in object.h
*
* Revision 1.169 1994/09/02 11:35:01 matt
* Fixed typo
*
* Revision 1.168 1994/09/02 11:32:48 matt
* Fixed object/object collisions, so you can't fly through robots anymore.
* Cleaned up object damage system.
*
* Revision 1.167 1994/08/30 21:58:15 matt
* Made phys_apply_force() do nothing to an object if it's not a phys object
*
* Revision 1.166 1994/08/26 10:47:01 john
* New version of controls.
*
* Revision 1.165 1994/08/25 21:53:57 mike
* Prevent counts of -1 which eventually add up to a positive number in do_ai_frame, causing
* the too-many-retries behavior.
*
* Revision 1.164 1994/08/25 18:43:33 john
* First revision of new control code.
*
* Revision 1.163 1994/08/17 22:18:05 mike
* Make robots which have rotvel or rotthrust, but not movement, move.
*
* Revision 1.162 1994/08/13 17:31:18 mike
* retry count stuff.
*
* Revision 1.161 1994/08/11 18:59:16 mike
* *** empty log message ***
*
* Revision 1.160 1994/08/10 19:53:47 mike
* Debug code (which is still in...)
* and adapt to changed interface to create_path_to_player.
*
* Revision 1.159 1994/08/08 21:38:43 matt
* Cleaned up a code a little and optimized a little
*
* Revision 1.158 1994/08/08 15:21:50 mike
* Trap retry count >= 4, but don't do AI hack unless >= 6.
*
* Revision 1.157 1994/08/08 11:47:15 matt
* Cleaned up fvi and physics a little
*
* Revision 1.156 1994/08/05 10:10:10 yuan
* Commented out debug stuff that was killing framerate.
*
* Revision 1.155 1994/08/04 19:12:36 matt
* Changed a bunch of vecmat calls to use multiple-function routines, and to
* allow the use of C macros for some functions
*
* Revision 1.154 1994/08/04 16:33:57 mike
* Kill a pile of RCS stuff.
* Call create_path_to_player for a stuck object.
*
* Revision 1.153 1994/08/04 00:21:02 matt
* Cleaned up fvi & physics error handling; put in code to make sure objects
* are in correct segment; simplified segment finding for objects and points
*
* Revision 1.152 1994/08/01 16:25:34 matt
* Check for moved_time == 0 when computing hit speed
*
* Revision 1.151 1994/08/01 13:30:32 matt
* Made fvi() check holes in transparent walls, and changed fvi() calling
* parms to take all input data in query structure.
*
* Revision 1.150 1994/07/29 23:41:46 matt
* Fixed turn banking, which changed when I added rotational velocity
*
* Revision 1.149 1994/07/27 20:53:23 matt
* Added rotational drag & thrust, so turning now has momemtum like moving
------------------------------------------------------------------------
main/physics.h:
* Revision 1.2 1995/08/23 21:33:04 allender
* fix mcc compiler warnings
*
* Revision 1.1 1995/05/16 16:00:56 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:33:06 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.29 1995/02/06 19:47:18 matt
* New function (untested), set_thrust_from_velocity()
*
* Revision 1.28 1994/12/04 22:14:20 mike
* apply instantaneous rotation to an object due to a force blow.
*
* Revision 1.27 1994/08/01 13:29:42 matt
* Made fvi() check holes in transparent walls, and changed fvi() calling
* parms to take all input data in query structure.
*
* Revision 1.26 1994/07/28 12:35:22 matt
* Added prototype
*
* Revision 1.25 1994/07/13 21:48:05 matt
* FVI() and physics now keep lists of segments passed through which the
* trigger code uses.
*
* Revision 1.24 1994/06/30 19:01:55 matt
* Moved flying controls code from physics.c to controls.c
*
* Revision 1.23 1994/06/16 14:14:20 mike
* Change physics_lookahead to return hit_info.
*
* Revision 1.22 1994/06/09 09:58:43 matt
* Moved find_vector_intersection() from physics.c to new file fvi.c
*
* Revision 1.21 1994/05/20 16:11:07 matt
* Added new parm, ignore_obj, to find_vector_intersection()
*
* Revision 1.20 1994/05/20 15:16:58 matt
* Added new fvi return type; took out some troublesome (and troubling) asserts
------------------------------------------------------------------------
main/piggy.c:
* Revision 1.16 1995/11/09 17:27:47 allender
* put in missing quote on new gauge name
*
* Revision 1.15 1995/11/08 17:28:03 allender
* add PC gauges to gauge list of non-substitutatble bitmaps
*
* Revision 1.14 1995/11/08 15:14:49 allender
* fixed horrible bug where the piggy cache size was incorrect
* for mac shareware
*
* Revision 1.13 1995/11/03 12:53:37 allender
* shareware changes
*
* Revision 1.12 1995/10/21 22:25:14 allender
* added bald guy cheat
*
* Revision 1.11 1995/10/20 22:42:15 allender
* changed load path of descent.pig to :data:descent.pig
*
* Revision 1.10 1995/10/20 00:08:01 allender
* put in event loop calls when loading data (hides it nicely
* from user) so TM can get it's strokes stuff
*
* Revision 1.9 1995/09/13 08:48:01 allender
* added lower memory requirement to load alternate bitmaps
*
* Revision 1.8 1995/08/16 09:39:13 allender
* moved "loading" text up a little
*
* Revision 1.7 1995/08/08 13:54:26 allender
* added macsys header file
*
* Revision 1.6 1995/07/12 12:49:56 allender
* total hack for bitmaps > 512 bytes wide -- check these by name
*
* Revision 1.5 1995/07/05 16:47:05 allender
* kitchen stuff
*
* Revision 1.4 1995/06/23 08:55:28 allender
* make "loading data" text y loc based off of curcanv
*
* Revision 1.3 1995/06/08 14:08:52 allender
* PPC aligned data sets
*
* Revision 1.2 1995/05/26 06:54:27 allender
* removed refences to sound data at end of pig file (since they will
* now be Macintosh snd resources for effects
*
* Revision 1.1 1995/05/16 15:29:51 allender
* Initial revision
*
* Revision 2.10 1995/10/07 13:17:26 john
* Made all bitmaps paged out by default.
*
* Revision 2.9 1995/04/14 14:05:24 john
* *** empty log message ***
*
* Revision 2.8 1995/04/12 13:39:37 john
* Fixed bug with -lowmem not working.
*
* Revision 2.7 1995/03/29 23:23:17 john
* Fixed major bug with sounds not building into pig right.
*
* Revision 2.6 1995/03/28 18:05:00 john
* Fixed it so you don't have to delete pig after changing bitmaps.tbl
*
* Revision 2.5 1995/03/16 23:13:06 john
* Fixed bug with piggy paging in bitmap not checking for disk
* error, hence bogifying textures if you pull the CD out.
*
* Revision 2.4 1995/03/14 16:22:27 john
* Added cdrom alternate directory stuff.
*
* Revision 2.3 1995/03/06 15:23:20 john
* New screen techniques.
*
* Revision 2.2 1995/02/27 13:13:40 john
* Removed floating point.
*
* Revision 2.1 1995/02/27 12:31:25 john
* Made work without editor.
*
* Revision 2.0 1995/02/27 11:28:02 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.85 1995/02/09 12:54:24 john
* Made paged out bitmaps have bm_data be a valid pointer
* instead of NULL, in case anyone accesses it.
*
* Revision 1.84 1995/02/09 12:50:59 john
* Bullet-proofed the piggy loading code.
*
* Revision 1.83 1995/02/07 17:08:51 john
* Added some error handling stuff instead of asserts.
*
* Revision 1.82 1995/02/03 17:06:48 john
* Changed sound stuff to allow low memory usage.
* Also, changed so that Sounds isn't an array of digi_sounds, it
* is a ubyte pointing into GameSounds, this way the digi.c code that
* locks sounds won't accidentally unlock a sound that is already playing, but
* since it's Sounds[soundno] is different, it would erroneously be unlocked.
*
* Revision 1.81 1995/02/02 21:56:39 matt
* Added data for new gauge bitmaps
*
* Revision 1.80 1995/02/01 23:31:57 john
* Took out loading bar.
*
* Revision 1.79 1995/01/28 15:13:18 allender
* bumped up Piggy_bitmap_cache_size
*
* Revision 1.78 1995/01/26 12:30:43 john
* Took out prev.
*
* Revision 1.77 1995/01/26 12:12:17 john
* Made buffer be big for bitmaps.
*
* Revision 1.76 1995/01/25 20:15:38 john
* Made editor allocate all mem.
*
* Revision 1.75 1995/01/25 14:52:56 john
* Made bitmap buffer be 1.5 MB.
*
* Revision 1.74 1995/01/22 16:03:19 mike
* localization.
*
* Revision 1.73 1995/01/22 15:58:36 mike
* localization
*
* Revision 1.72 1995/01/18 20:51:20 john
* Took out warnings.
*
* Revision 1.71 1995/01/18 20:47:21 john
* Added code to allocate sounds & bitmaps into diff
* buffers, also made sounds not be compressed for registered.
*
* Revision 1.70 1995/01/18 15:08:41 john
* Added start/stop time around paging.
* Made paging clear screen around globe.
*
* Revision 1.69 1995/01/18 10:07:51 john
*
* Took out debugging mprintfs.
*
* Revision 1.68 1995/01/17 14:27:42 john
* y
*
* Revision 1.67 1995/01/17 12:14:39 john
* Made walls, object explosion vclips load at level start.
*
* Revision 1.66 1995/01/15 13:15:44 john
* Made so that paging always happens, lowmem just loads less.
* Also, make KB load print to hud.
*
* Revision 1.65 1995/01/15 11:56:28 john
* Working version of paging.
*
* Revision 1.64 1995/01/14 19:17:07 john
* First version of new bitmap paging code.
*
* Revision 1.63 1994/12/15 12:26:44 john
* Added -nolowmem function.
*
* Revision 1.62 1994/12/14 21:12:26 john
* Fixed bug with page fault when exiting and using
* -nosound.
*
* Revision 1.61 1994/12/14 11:35:31 john
* Evened out thermometer for pig read.
*
* Revision 1.60 1994/12/14 10:51:00 john
* Sped up sound loading.
*
* Revision 1.59 1994/12/14 10:12:08 john
* Sped up pig loading.
*
* Revision 1.58 1994/12/13 09:14:47 john
* *** empty log message ***
*
* Revision 1.57 1994/12/13 09:12:57 john
* Made the bar always fill up.
*
* Revision 1.56 1994/12/13 03:49:08 john
* Made -lowmem not load the unnecessary bitmaps.
*
* Revision 1.55 1994/12/06 16:06:35 john
* Took out piggy sorting.
*
* Revision 1.54 1994/12/06 15:11:14 john
* Fixed bug with reading pigs.
*
* Revision 1.53 1994/12/06 14:14:47 john
* Added code to set low mem based on memory.
*
* Revision 1.52 1994/12/06 14:01:10 john
* Fixed bug that was causing -lowmem all the time..
*
* Revision 1.51 1994/12/06 13:33:48 john
* Added lowmem option.
*
* Revision 1.50 1994/12/05 19:40:10 john
* If -nosound or no sound card selected, don't load sounds from pig.
*
* Revision 1.49 1994/12/05 12:17:44 john
* Added code that locks/unlocks digital sounds on demand.
*
* Revision 1.48 1994/12/05 11:39:03 matt
* Fixed little mistake
*
* Revision 1.47 1994/12/05 09:29:22 john
* Added clength to the sound field.
*
* Revision 1.46 1994/12/04 15:27:15 john
* Fixed my stupid bug that looked at -nosound instead of digi_driver_card
* to see whether or not to lock down sound memory.
*
* Revision 1.45 1994/12/03 14:17:00 john
* Took out my debug mprintf.
*
* Revision 1.44 1994/12/03 13:32:37 john
* Fixed bug with offscreen bitmap.
*
* Revision 1.43 1994/12/03 13:07:13 john
* Made the pig read/write compressed sounds.
*
* Revision 1.42 1994/12/03 11:48:51 matt
* Added option to not dump sounds to pigfile
*
* Revision 1.41 1994/12/02 20:02:20 matt
* Made sound files constant match constant for table
*
* Revision 1.40 1994/11/29 11:03:09 adam
* upped # of sounds
*
* Revision 1.39 1994/11/27 23:13:51 matt
* Made changes for new mprintf calling convention
*
* Revision 1.38 1994/11/20 18:40:34 john
* MAde the piggy.lst and piggy.all not dump for release.
*
* Revision 1.37 1994/11/19 23:54:45 mike
* up number of bitmaps for shareware version.
*
* Revision 1.36 1994/11/19 19:53:05 mike
* change MAX_BITMAP_FILES
*
* Revision 1.35 1994/11/19 10:42:56 matt
* Increased number of bitmaps for non-shareware version
*
* Revision 1.34 1994/11/19 09:11:52 john
* Added avg_color to bitmaps saved in pig.
*
* Revision 1.33 1994/11/19 00:07:05 john
* Fixed bug with 8 char sound filenames not getting read from pig.
*
* Revision 1.32 1994/11/18 22:24:54 john
* Added -bigpig command line that doesn't rle your pig.
*
* Revision 1.31 1994/11/18 21:56:53 john
* Added a better, leaner pig format.
*
* Revision 1.30 1994/11/16 12:06:16 john
* Fixed bug with calling .bbms abms.
*
* Revision 1.29 1994/11/16 12:00:56 john
* Added piggy.all dump.
*
* Revision 1.28 1994/11/10 21:16:02 adam
* nothing important
*
* Revision 1.27 1994/11/10 13:42:00 john
* Made sounds not lock down if using -nosound.
*
* Revision 1.26 1994/11/09 19:55:40 john
* Added full rle support with texture rle caching.
*
* Revision 1.25 1994/11/09 16:36:42 john
* First version with RLE bitmaps in Pig.
*
* Revision 1.24 1994/10/27 19:42:59 john
* Disable the piglet option.
*
* Revision 1.23 1994/10/27 18:51:40 john
* Added -piglet option that only loads needed textures for a
* mine. Only saved ~1MB, and code still doesn't free textures
* before you load a new mine.
*
* Revision 1.22 1994/10/25 13:11:42 john
* Made the sounds sort. Dumped piggy.lst.
*
* Revision 1.21 1994/10/06 17:06:23 john
* Took out rle stuff.
*
* Revision 1.20 1994/10/06 15:45:36 adam
* bumped MAX_BITMAP_FILES again!
*
* Revision 1.19 1994/10/06 11:01:17 yuan
* Upped MAX_BITMAP_FILES
*
* Revision 1.18 1994/10/06 10:44:45 john
* Added diagnostic message and psuedo run-length-encoder
* to see how much memory we would save by storing bitmaps
* in a RLE method. Also, I commented out the code that
* stores 4K bitmaps on a 4K boundry to reduce pig size
* a bit.
*
* Revision 1.17 1994/10/04 20:03:13 matt
* Upped maximum number of bitmaps
*
* Revision 1.16 1994/10/03 18:04:20 john
* Fixed bug with data_offset not set right for bitmaps
* that are 64x64 and not aligned on a 4k boundry.
*
* Revision 1.15 1994/09/28 11:30:55 john
* changed inferno.pig to descent.pig, changed the way it
* is read.
*
* Revision 1.14 1994/09/22 16:14:17 john
* Redid intro sequecing.
*
* Revision 1.13 1994/09/19 14:42:47 john
* Locked down sounds with Virtual memory.
*
* Revision 1.12 1994/09/10 17:31:52 mike
* Increase number of loadable bitmaps.
*
* Revision 1.11 1994/09/01 19:32:49 mike
* Boost texture map allocation.
*
* Revision 1.10 1994/08/16 11:51:02 john
* Added grwased pigs.
*
* Revision 1.9 1994/07/06 09:18:03 adam
* upped bitmap #s
*
* Revision 1.8 1994/06/20 22:02:15 matt
* Fixed bug from last change
*
* Revision 1.7 1994/06/20 21:33:18 matt
* Made bm.h not include sounds.h, to reduce dependencies
*
* Revision 1.6 1994/06/20 16:52:19 john
* cleaned up init output a bit.
*
* Revision 1.5 1994/06/08 14:20:57 john
* Made piggy dump before going into game.
*
* Revision 1.4 1994/06/02 18:59:22 matt
* Clear selector field of bitmap loaded from pig file
*
* Revision 1.3 1994/05/06 15:31:41 john
* Made name field a bit longer.
*
* Revision 1.2 1994/05/06 13:02:44 john
* Added piggy stuff; worked on supertransparency
*
* Revision 1.1 1994/05/06 11:47:26 john
* Initial revision
------------------------------------------------------------------------
main/piggy.h:
* Revision 1.1 1995/05/16 16:01:04 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:31:21 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.10 1995/02/03 17:08:29 john
* Changed sound stuff to allow low memory usage.
* Also, changed so that Sounds isn't an array of digi_sounds, it
* is a ubyte pointing into GameSounds, this way the digi.c code that
* locks sounds won't accidentally unlock a sound that is already playing, but
* since it's Sounds[soundno] is different, it would erroneously be unlocked.
*
* Revision 1.9 1995/01/24 14:33:49 john
* *** empty log message ***
*
* Revision 1.8 1995/01/24 14:32:35 john
* Took out paging in code.
*
* Revision 1.7 1995/01/23 12:30:17 john
* Made debug code that mprintf what bitmap gets paged in.
*
* Revision 1.6 1995/01/17 14:11:37 john
* Added function that is called after level loaded.
*
* Revision 1.5 1995/01/14 19:16:58 john
* First version of new bitmap paging code.
*
* Revision 1.4 1994/10/27 18:51:57 john
* Added -piglet option that only loads needed textures for a
* mine. Only saved ~1MB, and code still doesn't free textures
* before you load a new mine.
*
* Revision 1.3 1994/06/08 14:20:47 john
* Made piggy dump before going into game.
*
* Revision 1.2 1994/05/06 13:02:40 john
* Added piggy stuff; worked on supertransparency
*
* Revision 1.1 1994/05/06 11:47:46 john
* Initial revision
------------------------------------------------------------------------
main/player.h:
* Revision 1.1 1995/05/16 16:01:11 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:30:25 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.41 1994/12/20 17:56:43 yuan
* Multiplayer object capability.
*
* Revision 1.40 1994/12/02 15:04:42 matt
* Fixed bogus weapon constants and arrays
*
* Revision 1.39 1994/11/25 22:47:08 matt
* Made saved game descriptions longer
*
* Revision 1.38 1994/11/21 17:29:38 matt
* Cleaned up sequencing & game saving for secret levels
*
* Revision 1.37 1994/11/17 12:57:13 rob
* Changed net_kills_level to net_killed_total.
*
* Revision 1.36 1994/11/14 17:20:33 rob
* Bumped player file version.
*
* Revision 1.35 1994/11/04 19:55:06 rob
* Changed a previously unused pad character to represent whether or not
* the player is connected to a net game (used to be objnum=-1 but we
* want to keep the objnum info in case of re-joins)
*
* Revision 1.34 1994/10/22 14:13:54 mike
* Add homing_object_dist field to player struct.
*
* Revision 1.33 1994/10/22 00:08:45 matt
* Fixed up problems with bonus & game sequencing
* Player doesn't get credit for hostages unless he gets them out alive
*
* Revision 1.32 1994/10/21 20:43:03 mike
* Add hostages_on_board to player struct.
*
* Revision 1.31 1994/10/19 20:00:00 john
* Added bonus points at the end of level based on skill level.
*
* Revision 1.30 1994/10/19 15:14:24 john
* Took % hits out of player structure, made %kills work properly.
*
* Revision 1.29 1994/10/19 12:12:27 john
* Added hour variable.
*
* Revision 1.28 1994/10/17 17:24:48 john
* Added starting_level to player struct.
*
* Revision 1.27 1994/10/13 15:42:02 mike
* Remove afterburner.
*
* Revision 1.26 1994/10/10 17:00:23 mike
* Lower number of players from 10 to 8.
*
* Revision 1.25 1994/10/09 14:53:26 matt
* Made player cockpit state & window size save/restore with saved games & automap
*
* Revision 1.24 1994/10/08 20:24:10 matt
* Added difficulty level to player structure for game load/save
*
* Revision 1.23 1994/10/05 17:39:53 rob
* Changed killer_objnum to a short (was char)
*
* Revision 1.22 1994/10/03 22:59:07 matt
* Limit callsign to 8 chars long, so we can use it as filename
*
* Revision 1.21 1994/09/23 10:14:30 mike
* Rename PLAYER_FLAGS_INVINCIBLE to PLAYER_FLAGS_INVULNERABLE.
* Add INVULNERABLE_TIME_MAX = 30 seconds.
*
* Revision 1.20 1994/09/21 20:44:22 matt
* Player explosion fireball now specified in bitmaps.tbl
*
* Revision 1.19 1994/09/21 12:27:37 mike
* Move CLOAK_TIME_MAX here from game.c
*
* Revision 1.18 1994/09/16 13:10:16 mike
* Add afterburner and cloak stuff.
*
* Revision 1.17 1994/09/11 20:30:26 matt
* Cleaned up thrust vars, changing a few names
*
* Revision 1.16 1994/09/09 14:22:45 matt
* Added extra gun for player
*
* Revision 1.15 1994/09/07 13:30:11 john
* Added code to tell how many packets were lost.
*
* Revision 1.14 1994/09/02 11:56:33 mike
* Alignment on the player struct.
*
* Revision 1.13 1994/08/25 18:12:05 matt
* Made player's weapons and flares fire from the positions on the 3d model.
* Also added support for quad lasers.
*
* Revision 1.12 1994/08/22 15:49:40 mike
* change spelling on num_missles -> num_missiles.
*
* Revision 1.11 1994/08/18 10:47:32 john
* Cleaned up game sequencing and player death stuff
* in preparation for making the player explode into
* pieces when dead.
*
* Revision 1.10 1994/08/17 16:50:05 john
* Added damaging fireballs, missiles.
*
* Revision 1.9 1994/08/15 00:24:10 john
* First version of netgame with players killing
* each other. still buggy...
*
* Revision 1.8 1994/08/12 22:41:26 john
* Took away Player_stats; add Players array.
*
* Revision 1.7 1994/08/09 17:53:25 adam
* *** empty log message ***
*
* Revision 1.6 1994/07/13 00:15:05 matt
* Moved all (or nearly all) of the values that affect player movement to
* bitmaps.tbl
*
* Revision 1.5 1994/07/08 21:44:17 matt
* Made laser powerups saturate correctly
*
* Revision 1.4 1994/07/07 14:59:02 john
* Made radar powerups.
*
*
* Revision 1.3 1994/07/02 13:49:39 matt
* Cleaned up includes
*
* Revision 1.2 1994/07/02 13:10:03 matt
* Moved player stats struct from gameseq.h to player.h
*
* Revision 1.1 1994/07/02 11:00:43 matt
* Initial revision
------------------------------------------------------------------------
main/playsave.c:
* Revision 1.1 1995/12/05 16:05:47 allender
* Initial revision
*
* Revision 1.10 1995/11/03 12:53:24 allender
* shareware changes
*
* Revision 1.9 1995/10/31 10:19:12 allender
* shareware stuff
*
* Revision 1.8 1995/10/23 14:50:11 allender
* set control type for new player *before* calling kc_set_controls
*
* Revision 1.7 1995/10/21 22:25:31 allender
* *** empty log message ***
*
* Revision 1.6 1995/10/17 15:57:42 allender
* removed line setting wrong COnfig_control_type
*
* Revision 1.5 1995/10/17 13:16:44 allender
* new controller support
*
* Revision 1.4 1995/08/24 16:03:38 allender
* call joystick code when player file uses joystick
*
* Revision 1.3 1995/08/03 15:15:39 allender
* got player save file working (more to go for shareware)
*
* Revision 1.2 1995/08/01 13:57:20 allender
* macified the player file stuff -- in a seperate folder
*
* Revision 1.1 1995/05/16 15:30:00 allender
* Initial revision
*
* Revision 2.3 1995/05/26 16:16:23 john
* Split SATURN into define's for requiring cd, using cd, etc.
* Also started adding all the Rockwell stuff.
*
* Revision 2.2 1995/03/24 17:48:21 john
* Made player files from saturn excrement the highest level for
* normal descent levels.
*
* Revision 2.1 1995/03/21 14:38:49 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.0 1995/02/27 11:27:59 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.57 1995/02/13 20:34:55 john
* Lintized
*
* Revision 1.56 1995/02/13 13:23:24 john
* Fixed bug with new player joystick selection.
*
* Revision 1.55 1995/02/13 12:01:19 john
* Fixed bug with joystick throttle still asking for
* calibration with new pilots.
*
* Revision 1.54 1995/02/13 10:29:12 john
* Fixed bug with creating new player not resetting everything to default.
*
* Revision 1.53 1995/02/03 10:58:46 john
* Added code to save shareware style saved games into new format...
* Also, made new player file format not have the saved game array in it.
*
* Revision 1.52 1995/02/02 21:09:28 matt
* Let player start of level 8 if he made it to level 7 in the shareware
*
* Revision 1.51 1995/02/02 18:50:14 john
* Added warning for FCS when new pilot chooses.
*
* Revision 1.50 1995/02/02 11:21:34 john
* Made joystick calibrate when new user selects.
*
* Revision 1.49 1995/02/01 18:06:38 rob
* Put defaults macros into descent.tex
*
* Revision 1.48 1995/01/25 14:37:53 john
* Made joystick only prompt for calibration once...
*
* Revision 1.47 1995/01/24 19:37:12 matt
* Took out incorrect mprintf
*
* Revision 1.46 1995/01/22 18:57:22 matt
* Made player highest level work with missions
*
* Revision 1.45 1995/01/21 16:36:05 matt
* Made starting level system work for now, pending integration with
* mission code.
*
* Revision 1.44 1995/01/20 22:47:32 matt
* Mission system implemented, though imcompletely
*
* Revision 1.43 1995/01/04 14:58:39 rob
* Fixed for shareware build.
*
* Revision 1.42 1995/01/04 11:36:43 rob
* Added compatibility with older shareware pilot files.
*
* Revision 1.41 1995/01/03 11:01:58 rob
* fixed a default macro.
*
* Revision 1.40 1995/01/03 10:44:06 rob
* Added default taunt macros.
*
* Revision 1.39 1994/12/13 10:01:16 allender
* pop up message box when unable to correctly save player file
*
* Revision 1.38 1994/12/12 11:37:14 matt
* Fixed auto leveling defaults & saving
*
* Revision 1.37 1994/12/12 00:26:59 matt
* Added support for no-levelling option
*
* Revision 1.36 1994/12/10 19:09:54 matt
* Added assert for valid player number when loading game
*
* Revision 1.35 1994/12/08 10:53:07 rob
* Fixed a bug in highest_level tracking.
*
* Revision 1.34 1994/12/08 10:01:36 john
* Changed the way the player callsign stuff works.
*
* Revision 1.33 1994/12/07 18:30:38 rob
* Load highest level along with player (used to be only if higher)
* Capped at LAST_LEVEL in case a person loads a registered player in shareware.
*
* Revision 1.32 1994/12/03 16:01:12 matt
* When player file has bad version, force player to choose another
*
* Revision 1.31 1994/12/02 19:54:00 yuan
* Localization.
*
* Revision 1.30 1994/12/02 11:01:36 yuan
* Localization.
*
* Revision 1.29 1994/11/29 03:46:28 john
* Added joystick sensitivity; Added sound channels to detail menu. Removed -maxchannels
* command line arg.
*
* Revision 1.28 1994/11/29 01:10:23 john
* Took out code that allowed new players to
* configure keyboard.
*
* Revision 1.27 1994/11/25 22:47:10 matt
* Made saved game descriptions longer
*
* Revision 1.26 1994/11/22 12:10:42 rob
* Fixed file handle left open if player file versions don't
* match.
*
* Revision 1.25 1994/11/21 19:35:30 john
* Replaced calls to joy_init with if (joy_present)
*
* Revision 1.24 1994/11/21 17:29:34 matt
* Cleaned up sequencing & game saving for secret levels
*
* Revision 1.23 1994/11/21 11:10:01 john
* Fixed bug with read-only .plr file making the config file
* not update.
*
* Revision 1.22 1994/11/20 19:03:08 john
* Fixed bug with if not having a joystick, default
* player input device is cyberman.
*
* Revision 1.21 1994/11/17 12:24:07 matt
* Made an array the right size, to fix error loading games
*
* Revision 1.20 1994/11/14 17:52:54 allender
* add call to WriteConfigFile when player files gets written
*
* Revision 1.19 1994/11/14 17:19:23 rob
* Removed gamma, joystick calibration, and sound settings from player file.
* Added default difficulty and multi macros.
*
* Revision 1.18 1994/11/07 14:01:23 john
* Changed the gamma correction sequencing.
*
* Revision 1.17 1994/11/05 17:22:49 john
* Fixed lots of sequencing problems with newdemo stuff.
*
* Revision 1.16 1994/11/01 16:40:11 john
* Added Gamma correction.
*
* Revision 1.15 1994/10/24 19:56:50 john
* Made the new user setup prompt for config options.
*
* Revision 1.14 1994/10/24 17:44:21 john
* Added stereo channel reversing.
*
* Revision 1.13 1994/10/24 16:05:12 matt
* Improved handling of player names that are the names of DOS devices
*
* Revision 1.12 1994/10/22 00:08:51 matt
* Fixed up problems with bonus & game sequencing
* Player doesn't get credit for hostages unless he gets them out alive
*
* Revision 1.11 1994/10/19 19:59:57 john
* Added bonus points at the end of level based on skill level.
*
* Revision 1.10 1994/10/19 15:14:34 john
* Took % hits out of player structure, made %kills work properly.
*
* Revision 1.9 1994/10/19 12:44:26 john
* Added hours field to player structure.
*
* Revision 1.8 1994/10/17 17:24:34 john
* Added starting_level to player struct.
*
* Revision 1.7 1994/10/17 13:07:15 john
* Moved the descent.cfg info into the player config file.
*
* Revision 1.6 1994/10/09 14:54:31 matt
* Made player cockpit state & window size save/restore with saved games & automap
*
* Revision 1.5 1994/10/08 23:08:09 matt
* Added error check & handling for game load/save disk io
*
* Revision 1.4 1994/10/05 17:40:54 rob
* Bumped save_file_version to 5 due to change in player.h
*
* Revision 1.3 1994/10/03 23:00:54 matt
* New file version for shorter callsigns
*
* Revision 1.2 1994/09/28 17:25:05 matt
* Added first draft of game save/load system
*
* Revision 1.1 1994/09/27 14:39:12 matt
* Initial revision
------------------------------------------------------------------------
main/playsave.h:
* Revision 1.1 1995/05/16 16:01:19 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:31:24 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.10 1995/01/22 18:57:04 matt
* Made player highest level work with missions
*
* Revision 1.9 1994/12/12 11:37:15 matt
* Fixed auto leveling defaults & saving
*
* Revision 1.8 1994/12/08 10:01:37 john
* Changed the way the player callsign stuff works.
*
* Revision 1.7 1994/11/25 22:46:56 matt
* Made saved game descriptions longer
*
* Revision 1.6 1994/10/24 20:00:02 john
* Added prototype for read_player_file.
*
* Revision 1.5 1994/10/17 13:07:12 john
* Moved the descent.cfg info into the player config file.
*
* Revision 1.4 1994/10/09 14:54:32 matt
* Made player cockpit state & window size save/restore with saved games & automap
*
* Revision 1.3 1994/10/08 23:08:09 matt
* Added error check & handling for game load/save disk io
*
* Revision 1.2 1994/09/28 17:25:06 matt
* Added first draft of game save/load system
*
* Revision 1.1 1994/09/27 15:47:23 matt
* Initial revision
------------------------------------------------------------------------
main/polyobj.c:
* Revision 1.3 1995/10/25 14:07:07 allender
* removed load_poly_model function
*
* Revision 1.2 1995/09/14 14:10:20 allender
* two funtions should be void
*
* Revision 1.1 1995/05/16 15:30:08 allender
* Initial revision
*
* Revision 2.1 1995/05/26 16:10:37 john
* Support for new 4-byte align v8 pof files.
*
* Revision 2.0 1995/02/27 11:32:44 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.64 1995/01/14 19:16:43 john
* First version of new bitmap paging code.
*
* Revision 1.63 1994/12/14 18:06:54 matt
* Removed compile warnings
*
* Revision 1.62 1994/12/09 17:54:31 john
* Made the CFILE's close right after reading in data.
*
* Revision 1.61 1994/12/09 16:13:28 mike
* speedup pof file reading, but still horribly slow using hog file...problem somewhere else.
*
* Revision 1.60 1994/12/08 17:41:20 yuan
* Cfiling stuff.
*
* Revision 1.59 1994/11/21 11:02:19 matt
* Added error checking
*
* Revision 1.58 1994/11/14 11:32:49 matt
* Allow switching to simpler models even when alt_textures specified
*
* Revision 1.57 1994/11/13 21:15:24 matt
* Added basic support for more than one level of detail simplification
*
* Revision 1.56 1994/11/11 19:29:25 matt
* Added code to show low detail polygon models
*
* Revision 1.55 1994/11/10 14:02:57 matt
* Hacked in support for player ships with different textures
*
* Revision 1.54 1994/11/03 11:01:59 matt
* Made robot pics lighted
*
* Revision 1.53 1994/11/02 16:18:34 matt
* Moved draw_model_picture() out of editor
*
* Revision 1.52 1994/10/18 14:38:11 matt
* Restored assert now that bug is fixed
*
* Revision 1.51 1994/10/17 21:35:03 matt
* Added support for new Control Center/Main Reactor
*
* Revision 1.50 1994/10/14 17:46:23 yuan
* Made the soft Int3 only work in net mode.
*
* Revision 1.49 1994/10/14 17:43:47 yuan
* Added soft int3's instead of Asserts for some common network bugs.
*
* Revision 1.48 1994/10/14 17:09:04 yuan
* Made Assert on line 610 be if in an attempt
* to bypass.
*
* Revision 1.47 1994/09/09 14:23:42 matt
* Added glow code to polygon models for engine glow
*
* Revision 1.46 1994/08/26 18:03:30 matt
* Added code to remap polygon model numbers by matching filenames
*
* Revision 1.45 1994/08/26 15:35:58 matt
* Made eclips usable on more than one object at a time
*
* Revision 1.44 1994/08/25 18:11:58 matt
* Made player's weapons and flares fire from the positions on the 3d model.
* Also added support for quad lasers.
*
* Revision 1.43 1994/07/25 00:14:18 matt
* Made a couple of minor changes for the drivethrough
*
* Revision 1.42 1994/07/25 00:02:41 matt
* Various changes to accomodate new 3d, which no longer takes point numbers
* as parms, and now only takes pointers to points.
------------------------------------------------------------------------
main/polyobj.h:
* Revision 1.2 1995/09/14 14:10:30 allender
* two functions should be void
*
* Revision 1.1 1995/05/16 16:01:27 allender
* Initial revision
*
* Revision 2.1 1995/02/27 18:21:54 john
* Added extern for robot_points.
*
* Revision 2.0 1995/02/27 11:29:58 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.28 1995/01/12 12:10:16 adam
* *** empty log message ***
*
* Revision 1.27 1994/11/11 19:28:58 matt
* Added code to show low detail polygon models
*
* Revision 1.26 1994/11/10 14:03:05 matt
* Hacked in support for player ships with different textures
*
* Revision 1.25 1994/11/02 16:18:24 matt
* Moved draw_model_picture() out of editor
*
* Revision 1.24 1994/10/18 10:55:57 adam
* bumped MAX_POLYGON_OBJECTS up
*
* Revision 1.23 1994/10/17 21:35:01 matt
* Added support for new Control Center/Main Reactor
*
* Revision 1.22 1994/09/09 14:23:42 matt
* Added glow code to polygon models for engine glow
*
* Revision 1.21 1994/08/26 18:03:43 matt
* Added code to remap polygon model numbers by matching filenames
*
* Revision 1.20 1994/08/26 15:36:00 matt
* Made eclips usable on more than one object at a time
*
* Revision 1.19 1994/07/22 20:44:23 matt
* Killed unused fields in polygon model structure
*
* Revision 1.18 1994/06/16 17:52:11 matt
* Made submodels rotate around their centers, not their pivot points
*
* Revision 1.17 1994/06/14 12:22:05 matt
* Integrated with drive code, using #defines to switch versions
*
* Revision 1.16 1994/06/09 16:25:01 matt
* Fixed confusion with two constants, MAX_SUBOBJS & MAX_SUBMODELS, which
* were used for the same things, but had different values.
*
* Revision 1.15 1994/06/08 10:56:38 matt
* Improved debris: now get submodel size from new POF files; debris now has
* limited life; debris can now be blown up.
*
* Revision 1.14 1994/06/07 16:51:57 matt
* Made object lighting work correctly; changed name of Ambient_light to
* Dynamic_light; cleaned up polygobj object rendering a little.
*
* Revision 1.13 1994/05/26 21:08:59 matt
* Moved robot stuff out of polygon model and into robot_info struct
* Made new file, robot.c, to deal with robots
*
* Revision 1.12 1994/05/18 19:35:05 matt
* Added fields for the rest of the subobj data
*
* Revision 1.11 1994/05/16 16:17:13 john
* Bunch of stuff on my Inferno Task list May16-23
*
* Revision 1.10 1994/05/13 11:08:31 matt
* Added support for multiple gun positions on polygon models
*
* Revision 1.9 1994/04/29 09:18:04 matt
* Added support for multiple-piece explosions
*
* Revision 1.8 1994/04/28 18:44:18 matt
* Took out code for old-style (non-interpreted) objects.
*
* Revision 1.7 1994/03/25 16:54:38 matt
* draw_polygon_object() now takes pointer to animation data
*
* Revision 1.6 1994/03/15 17:44:33 matt
* Changed a bunch of names
*
* Revision 1.5 1994/03/07 20:02:29 matt
* Added pointer to normals in polyobj struct
* Added prototype for draw_polygon_object()
*
* Revision 1.4 1994/03/01 17:16:19 matt
* Lots of changes to support loadable binary ".pof" robot files
*
* Revision 1.3 1994/01/31 15:51:20 matt
* Added ptr for rgb table for robot colors
*
* Revision 1.2 1994/01/28 13:52:01 matt
* Added flesh to this previously skeletal file.
*
* Revision 1.1 1994/01/28 13:47:42 matt
* Initial revision
------------------------------------------------------------------------
main/powerup.c:
* Revision 1.2 1995/10/31 10:18:55 allender
* shareware stuff
*
* Revision 1.1 1995/05/16 15:30:16 allender
* Initial revision
*
* Revision 2.2 1995/03/24 13:50:36 john
* Added mega-wowie zowie to release.
*
* Revision 2.1 1995/03/21 14:38:39 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.0 1995/02/27 11:27:15 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.94 1995/02/22 13:46:03 allender
* remove anonymous unions from object structure
*
* Revision 1.93 1995/02/06 15:52:51 mike
* add mini megawow powerup for giving reasonable weapons.
*
* Revision 1.92 1995/01/23 22:49:59 mike
* drop energy instead of primary weapon if you have primary weapon
* (drop nothing if want to drop vulcan ammo and you are maxed out)
* if you have primary weapon and primary weapon there, get energy instead.
*
* Revision 1.91 1995/01/19 09:42:22 allender
* record laser levels for demos
*
* Revision 1.90 1994/12/31 12:28:01 rob
* Added sound for coop key grabs.
*
* Revision 1.89 1994/12/19 19:55:17 rob
* Fixing key semantics for coop game.
*
* Revision 1.88 1994/12/07 12:55:21 mike
* tweak vulcan amounts.
*
* Revision 1.87 1994/12/06 13:55:36 matt
* Made shield & energy powerup messages round to match HUD message
*
* Revision 1.86 1994/12/03 19:03:57 matt
* Fixed vulcan ammo HUD message
*
* Revision 1.85 1994/11/29 11:35:41 rob
* Added sound casting for grabbing powerups.
*
* Revision 1.84 1994/11/28 11:26:38 matt
* Cleaned up hud message printing for picking up weapons
*
* Revision 1.83 1994/11/27 23:14:01 matt
* Made changes for new mprintf calling convention
*
* Revision 1.82 1994/11/21 16:02:51 mike
* comment out unused powerups.
*
* Revision 1.81 1994/11/20 18:25:47 john
* Fixed some #ifndef RELEASE inconsistancies.
*
* Revision 1.80 1994/11/19 23:54:13 mike
* limit megawowiezowie to shareware powerups if in shareware version.
*
* Revision 1.79 1994/11/14 16:06:16 yuan
* Made cloak and invulnerability only picked up once.
*
* Revision 1.78 1994/11/07 17:41:06 mike
* messages for when you're fully stocked with missiles.
*
* Revision 1.77 1994/10/28 14:42:50 john
* Added sound volumes to all sound calls.
*
* Revision 1.76 1994/10/26 15:55:23 yuan
* Made vulcan cannon give 100 ammo if it has less than that.
*
* Revision 1.75 1994/10/26 15:54:57 yuan
* *** empty log message ***
*
* Revision 1.74 1994/10/25 14:31:25 allender
* Fixed bug where getting cloak powerup while cloaked resulted in
* player being cloaked forever.
*
* Revision 1.73 1994/10/25 10:51:21 matt
* Vulcan cannon powerups now contain ammo count
*
* Revision 1.72 1994/10/21 20:41:32 mike
* Fix silly backwards (- instead of +) bug in invulnerability powerup.
*
* Revision 1.71 1994/10/20 09:49:23 mike
* Fix up powerups in some way.
*
* Revision 1.70 1994/10/19 11:16:25 mike
* Limit amount of each type of ammo player can hold.
*
* Revision 1.69 1994/10/17 14:12:11 matt
* Added sound for powerup disappearance effect
*
* Revision 1.68 1994/10/17 14:07:04 mike
* Make shields and energy max out at 200.
*
* Revision 1.67 1994/10/16 12:43:37 mike
* Don't allow you to pick up a primary weapon, or invulnerability, you already have.
* Make cloak time additive.
*
* Revision 1.66 1994/10/15 19:05:30 mike
* Define constants for vulcan ammo amounts.
*
* Revision 1.65 1994/10/14 15:57:28 mike
* When you pick up a laser boost or quad_laser powerup, update weapon display.
*
* Revision 1.64 1994/10/13 10:57:51 adam
* fiddled with powerup disappearance
*
* Revision 1.63 1994/10/12 13:07:33 mike
* Make powerup play vclip when it goes away.
*
* Revision 1.62 1994/10/12 08:04:42 mike
* Make proximity powerup worth 4 bombs.
*
* Revision 1.61 1994/10/08 23:37:33 matt
* Don't pick up weapons you already have; also fixed auto_select bug
* for seconary weapons
*
* Revision 1.60 1994/10/08 15:41:00 mike
* Diminish palette effect due to powerups.
*
* Revision 1.59 1994/10/07 23:37:45 matt
* Made weapons select when pick up better one
*
* Revision 1.58 1994/10/07 22:09:20 rob
* Added network hook for grabbing the cloaking device.
------------------------------------------------------------------------
main/powerup.h:
* Revision 1.1 1995/05/16 16:01:35 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:27:35 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.34 1995/02/06 15:52:37 mike
* add mini megawow powerup for giving reasonable weapons.
*
* Revision 1.33 1995/01/30 17:14:11 mike
* halve rate of vulcan ammo consumption.
*
* Revision 1.32 1995/01/15 20:47:56 mike
* add lighting field to powerups.
*
* Revision 1.31 1994/12/12 21:39:58 matt
* Changed vulcan ammo: 10K max, 5K w/weapon, 1250 per powerup
*
* Revision 1.30 1994/12/07 12:55:26 mike
* tweak vulcan amounts.
*
* Revision 1.29 1994/12/02 20:06:46 matt
* Made vulcan ammo print at approx 25 times actual
*
* Revision 1.28 1994/10/26 15:56:27 yuan
* Made vulcan cannon give 100 ammo if it has less than that.
*
* Revision 1.27 1994/10/15 19:07:10 mike
* Define constants for amount of vulcan ammo per powerup.
*
* Revision 1.26 1994/09/26 13:29:38 matt
* Added extra life each 100,000 points, and show icons on HUD for num lives
*
* Revision 1.25 1994/09/22 19:00:25 mike
* Kill constants ENERGY_BOOST and SHIELD_BOOST: it's now difficulty level dependent.
*
* Revision 1.24 1994/09/20 19:46:11 mike
* Fix powerup number assignments.
*
* Revision 1.23 1994/09/02 11:53:34 mike
* Add the megawow powerup. If you don't know about it, that's because it's a secret.
*
* Revision 1.22 1994/09/01 10:41:35 matt
* Sizes for powerups now specified in bitmaps.tbl; blob bitmaps now plot
* correctly if width & height of bitmap are different.
*
* Revision 1.21 1994/08/31 19:26:14 mike
* Start adding new pile of powerups.
*
* Revision 1.20 1994/08/25 17:56:08 matt
* Added quad laser powerup
*
* Revision 1.19 1994/08/18 15:11:50 mike
* missile powerups.
*
* Revision 1.18 1994/08/09 17:54:33 adam
* upped no. of powerup types
*
* Revision 1.17 1994/08/09 17:53:39 adam
* *** empty log message ***
*
* Revision 1.16 1994/07/27 19:44:16 mike
* Objects containing objects.
*
* Revision 1.15 1994/07/26 18:31:32 mike
* Move some constants here from eobject.c.
*
* Revision 1.14 1994/07/20 17:35:03 yuan
* Some minor bug fixes and new key gauges...
*
* Revision 1.13 1994/07/12 15:53:23 john
* *** empty log message ***
*
* Revision 1.12 1994/07/12 15:30:47 mike
* Prototype diminish_towards_max.
*
* Revision 1.11 1994/07/07 14:59:04 john
* Made radar powerups.
*
*
* Revision 1.10 1994/07/01 16:35:40 yuan
* Added key system
*
* Revision 1.9 1994/06/29 19:43:33 matt
* Made powerup animation not happen in render routine
*
* Revision 1.8 1994/06/21 18:54:03 matt
* Added support for powerups that don't get picked up if not needed, but this
* feature is commented out at the end of do_powerup(), since the physics gave
* me all sorts of problems, with the player getting stuck on a powerup.
*
* Revision 1.7 1994/06/08 18:16:32 john
* Bunch of new stuff that basically takes constants out of the code
* and puts them into bitmaps.tbl.
*
* Revision 1.6 1994/05/18 13:26:30 yuan
* *** empty log message ***
*
* Revision 1.5 1994/05/17 17:01:48 yuan
* Added constant for boosts.
*
* Revision 1.4 1994/04/06 14:42:50 yuan
* Adding new powerups.
*
* Revision 1.3 1994/04/01 14:36:59 yuan
* John's head is an extra life...
*
* Revision 1.2 1994/04/01 11:15:22 yuan
* Added multiple bitmap functionality to all objects...
* (hostages, powerups, lasers, etc.)
* Hostages and powerups are implemented in the object system,
* just need to finish function call to "affect" player.
*
* Revision 1.1 1994/03/31 17:01:43 yuan
* Initial revision
------------------------------------------------------------------------
main/render.c:
* Revision 1.9 1995/11/20 17:17:48 allender
* *** empty log message ***
*
* Revision 1.8 1995/10/26 14:08:35 allender
* added assigment for physics optimization
*
* Revision 1.7 1995/09/22 14:28:46 allender
* changed render_zoom to make game match PC aspect
*
* Revision 1.6 1995/08/14 14:35:54 allender
* change transparency to 0
*
* Revision 1.5 1995/08/12 11:32:02 allender
* removed #ifdef NEWDEMO -- always in
*
* Revision 1.4 1995/07/05 16:48:31 allender
* kitchen stuff
*
* Revision 1.3 1995/06/23 10:22:54 allender
* fix outline mode
*
* Revision 1.2 1995/06/16 16:11:18 allender
* changed sort func to accept const parameters
*
* Revision 1.1 1995/05/16 15:30:24 allender
* Initial revision
*
* Revision 2.5 1995/12/19 15:31:36 john
* Made stereo mode only record 1 eye in demo.
*
* Revision 2.4 1995/03/20 18:15:53 john
* Added code to not store the normals in the segment structure.
*
* Revision 2.3 1995/03/13 16:11:05 john
* Maybe fixed bug that lighting didn't work with vr helmets.
*
* Revision 2.2 1995/03/09 15:33:49 john
* Fixed bug with iglasses timeout too long, and objects
* disappearing from left eye.
*
* Revision 2.1 1995/03/06 15:23:59 john
* New screen techniques.
*
* Revision 2.0 1995/02/27 11:31:01 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.252 1995/02/22 13:49:38 allender
* remove anonymous unions from object structure
*
* Revision 1.251 1995/02/11 15:07:26 matt
* Took out code which was mostly intended as part of a larger renderer
* change which never happened. This new code was causing problems with
* the level 4 control center.
*
* Revision 1.250 1995/02/07 16:28:53 matt
* Fixed problem with new code
*
* Revision 1.249 1995/02/06 14:38:58 matt
* Took out some code that didn't compile when editor in
*
* Revision 1.248 1995/02/06 13:45:25 matt
* Structural changes, plus small sorting improvements
*
* Revision 1.247 1995/02/02 15:59:26 matt
* Changed assert to int3.
*
* Revision 1.246 1995/02/01 21:02:27 matt
* Added partial fix for rendering bugs
* Ripped out laser hack system
*
* Revision 1.245 1995/01/20 15:14:30 matt
* Added parens to fix precedence bug
*
* Revision 1.244 1995/01/14 19:16:59 john
* First version of new bitmap paging code.
*
* Revision 1.243 1995/01/03 20:19:25 john
* Pretty good working version of game save.
*
* Revision 1.242 1994/12/29 13:51:05 john
* Made the floating reticle draw in the spot
* regardless of the eye offset.
*
* Revision 1.241 1994/12/23 15:02:55 john
* Tweaked floating reticle.
*
* Revision 1.240 1994/12/23 14:27:45 john
* Changed offset of floating reticle to line up with
* lasers a bit better.
*
* Revision 1.239 1994/12/23 14:22:50 john
* Added floating reticle for VR helments.
*
* Revision 1.238 1994/12/13 14:07:50 matt
* Fixed tmap_num2 bug in search mode
*
* Revision 1.237 1994/12/11 00:45:53 matt
* Fixed problem when object sort buffer got full
*
* Revision 1.236 1994/12/09 18:46:06 matt
* Added a little debugging
*
* Revision 1.235 1994/12/09 14:59:16 matt
* Added system to attach a fireball to another object for rendering purposes,
* so the fireball always renders on top of (after) the object.
*
* Revision 1.234 1994/12/08 15:46:54 matt
* Fixed buffer overflow that caused seg depth screwup
*
* Revision 1.233 1994/12/08 11:51:53 matt
* Took out some unused stuff
*
* Revision 1.232 1994/12/06 16:31:48 mike
* fix detriangulation problems.
*
* Revision 1.231 1994/12/05 15:32:51 matt
* Changed an assert to an int3 & return
*
* Revision 1.230 1994/12/04 17:28:04 matt
* Got rid of unused no_render_flag array, and took out box clear when searching
*
* Revision 1.229 1994/12/04 15:51:14 matt
* Fixed linear tmap transition for objects
*
* Revision 1.228 1994/12/03 20:16:50 matt
* Turn off window clip for objects
*
* Revision 1.227 1994/12/03 14:48:00 matt
* Restored some default settings
*
* Revision 1.226 1994/12/03 14:44:32 matt
* Fixed another difficult bug in the window clip system
*
* Revision 1.225 1994/12/02 13:19:56 matt
* Fixed rect clears at terminus of rendering
* Made a bunch of debug code compile out
*
* Revision 1.224 1994/12/02 11:58:21 matt
* Fixed window clip bug
*
* Revision 1.223 1994/11/28 21:50:42 mike
* optimizations.
*
* Revision 1.222 1994/11/28 01:32:15 mike
* turn off window clearing.
*
* Revision 1.221 1994/11/27 23:11:52 matt
* Made changes for new mprintf calling convention
*
* Revision 1.220 1994/11/20 15:58:55 matt
* Don't migrate the control center, since it doesn't move out of its segment
*
* Revision 1.219 1994/11/19 23:54:36 mike
* change window colors.
*
* Revision 1.218 1994/11/19 15:20:25 mike
* rip out unused code and data
*
* Revision 1.217 1994/11/18 13:21:24 mike
* Clear only view portals into rest of world based on value of Clear_window.
*
* Revision 1.216 1994/11/15 17:02:10 matt
* Re-added accidentally deleted variable
*
* Revision 1.215 1994/11/15 16:51:50 matt
* Made rear view only switch to rear cockpit if cockpit on in front view
*
* Revision 1.214 1994/11/14 20:47:57 john
* Attempted to strip out all the code in the game
* directory that uses any ui code.
*
* Revision 1.213 1994/11/11 15:37:07 mike
* write orange for background to show render bugs.
*
* Revision 1.212 1994/11/09 22:57:18 matt
* Keep tract of depth of segments rendered, for detail level optimization
*
* Revision 1.211 1994/11/01 23:40:14 matt
* Elegantly handler buffer getting full
*
* Revision 1.210 1994/10/31 22:28:13 mike
* Fix detriangulation bug.
*
* Revision 1.209 1994/10/31 11:48:56 mike
* Optimize detriangulation, speedup of about 4% in many cases, 0% in many.
*
* Revision 1.208 1994/10/30 20:08:34 matt
* For endlevel: added big explosion at tunnel exit; made lights in tunnel
* go out; made more explosions on walls.
*
* Revision 1.207 1994/10/27 14:14:35 matt
* Don't do light flash during endlevel sequence
*
* Revision 1.206 1994/10/11 12:05:42 mike
* Improve detriangulation.
*
* Revision 1.205 1994/10/07 15:27:00 john
* Commented out the code that moves your eye
* forward.
*
* Revision 1.204 1994/10/05 16:07:38 mike
* Don't detriangulate sides if in player's segment. Prevents player going behind a wall,
* though there are cases in which it would be ok to detriangulate these.
*
* Revision 1.203 1994/10/03 12:44:05 matt
* Took out unreferenced code
*
* Revision 1.202 1994/09/28 14:08:45 john
* Added Zoom stuff back in, but ifdef'd it out.
*
* Revision 1.201 1994/09/25 23:41:49 matt
* Changed the object load & save code to read/write the structure fields one
* at a time (rather than the whole structure at once). This mean that the
* object structure can be changed without breaking the load/save functions.
* As a result of this change, the local_object data can be and has been
* incorporated into the object array. Also, timeleft is now a property
* of all objects, and the object structure has been otherwise cleaned up.
*
* Revision 1.200 1994/09/25 15:50:10 mike
* Integrate my debug changes which shows how many textures were rendered
* this frame.
*
* Revision 1.199 1994/09/25 15:45:22 matt
* Added OBJ_LIGHT, a type of object that casts light
* Added generalized lifeleft, and moved it to local_object
*
* Revision 1.198 1994/09/15 21:23:32 matt
* Changed system to keep track of whether & what cockpit is up
*
* Revision 1.197 1994/09/15 16:30:12 mike
* Comment out call to object_render_targets, which did nothing.
*
* Revision 1.196 1994/09/07 22:25:51 matt
* Don't migrate through semi-transparent walls
*
* Revision 1.195 1994/09/07 19:16:21 mike
* Homing missile.
*
* Revision 1.194 1994/08/31 20:54:17 matt
* Don't do flash effect while whiting out
*
* Revision 1.193 1994/08/23 17:20:12 john
* Added rear-view cockpit.
*
* Revision 1.192 1994/08/22 14:36:35 john
* Made R key make a "reverse" view render.
*
* Revision 1.191 1994/08/19 20:09:26 matt
* Added end-of-level cut scene with external scene
*
* Revision 1.190 1994/08/10 19:56:17 john
* Changed font stuff; Took out old menu; messed up lots of
* other stuff like game sequencing messages, etc.
*
* Revision 1.189 1994/08/10 14:45:05 john
* *** empty log message ***
*
* Revision 1.188 1994/08/09 16:04:06 john
* Added network players to editor.
*
* Revision 1.187 1994/08/05 17:07:05 john
* Made lasers be two objects, one drawing after the other
* all the time.
*
* Revision 1.186 1994/08/05 10:07:57 matt
* Disable window check checking (i.e., always use window check)
*
* Revision 1.185 1994/08/04 19:11:30 matt
* Changed a bunch of vecmat calls to use multiple-function routines, and to
* allow the use of C macros for some functions
*
* Revision 1.184 1994/08/04 00:21:14 matt
* Cleaned up fvi & physics error handling; put in code to make sure objects
* are in correct segment; simplified segment finding for objects and points
*
* Revision 1.183 1994/08/02 19:04:28 matt
* Cleaned up vertex list functions
*
* Revision 1.182 1994/07/29 15:13:33 matt
* When window check turned off, cut render depth in half
*
* Revision 1.181 1994/07/29 11:03:50 matt
* Use highest_segment_index instead of num_segments so render works from
* the editor
*
* Revision 1.180 1994/07/29 10:04:34 mike
* Update Cursegp when an object is selected.
*
* Revision 1.179 1994/07/25 00:02:50 matt
* Various changes to accomodate new 3d, which no longer takes point numbers
* as parms, and now only takes pointers to points.
*
* Revision 1.178 1994/07/24 14:37:49 matt
* Added angles for player head
*
* Revision 1.177 1994/07/20 19:08:07 matt
* If in editor, don't move eye from center of viewer object
------------------------------------------------------------------------
main/render.h:
* Revision 1.1 1995/05/16 16:01:51 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:33:00 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.17 1994/11/30 12:33:33 mike
* prototype Clear_window.
*
* Revision 1.16 1994/11/02 16:19:52 matt
* Increased size of extra object buffer
*
* Revision 1.15 1994/07/25 00:02:49 matt
* Various changes to accomodate new 3d, which no longer takes point numbers
* as parms, and now only takes pointers to points.
*
* Revision 1.14 1994/07/24 14:37:42 matt
* Added angles for player head
*
* Revision 1.13 1994/06/24 17:01:34 john
* Add VFX support; Took Game Sequencing, like EndGame and stuff and
* took it out of game.c and into gameseq.c
*
* Revision 1.12 1994/06/16 10:55:57 matt
* Made a bunch of test code dependent on #defines
*
* Revision 1.11 1994/06/01 00:01:36 matt
* Added mine destruction flashing effect
*
* Revision 1.10 1994/05/22 18:47:36 mike
* make Render_list a globally accessible variable.
*
* Revision 1.9 1994/05/22 15:29:32 mike
* Separation of lighting from render.c to lighting.c.
*
* Revision 1.8 1994/05/14 17:59:39 matt
* Added extern.
*
* Revision 1.7 1994/05/14 17:15:17 matt
* Got rid of externs in source (non-header) files
*
* Revision 1.6 1994/02/17 11:32:41 matt
* Changes in object system
*
* Revision 1.5 1994/01/21 17:31:48 matt
* Moved code from render_frame() to caller, making code cleaner
*
* Revision 1.4 1994/01/06 09:46:12 john
* Added removable walls... all code that checked for
* children to see if a wall was a doorway, i changed
* to yuan's wall_is_doorway function that is in wall.c...
* doesn't work yet.
*
* Revision 1.3 1994/01/05 11:25:47 john
* Changed Player_zoom to Render_zoom
*
* Revision 1.2 1994/01/05 10:53:43 john
* New object code by John.
*
* Revision 1.1 1993/11/04 14:01:43 matt
* Initial revision
------------------------------------------------------------------------
main/robot.c:
* Revision 1.1 1995/05/16 15:30:34 allender
* Initial revision
*
* Revision 2.1 1995/03/07 16:52:02 john
* Fixed robots not moving without edtiro bug.
*
* Revision 2.0 1995/02/27 11:31:11 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.19 1995/02/22 13:58:09 allender
* remove anonymous unions from object structure
*
* Revision 1.18 1995/01/27 11:17:06 rob
* Avoid problems with illegal gun num.
*
* Revision 1.17 1994/11/19 15:15:02 mike
* remove unused code and data
*
* Revision 1.16 1994/11/05 16:41:31 adam
* upped MAX_ROBOT_JOINTS
*
* Revision 1.15 1994/09/26 15:29:29 matt
* Allow morphing objects to fire
*
* Revision 1.14 1994/06/20 14:31:02 matt
* Don't include joint zero in animation data
*
* Revision 1.13 1994/06/10 14:39:58 matt
* Increased limit of robot joints
*
* Revision 1.12 1994/06/10 10:59:18 matt
* Do error checking on list of angles
*
* Revision 1.11 1994/06/09 16:21:32 matt
* Took out special-case and test code.
*
* Revision 1.10 1994/06/07 13:21:14 matt
* Added support for new chunk-based POF files, with robot animation data.
*
* Revision 1.9 1994/06/01 17:58:24 mike
* Greater flinch effect.
*
* Revision 1.8 1994/06/01 14:59:25 matt
* Fixed calc_gun_position(), which was rotating the wrong way for the
* object orientation.
*
* Revision 1.7 1994/06/01 12:44:04 matt
* Added flinch state for test robot
*
* Revision 1.6 1994/05/31 19:17:24 matt
* Fixed test robot angles
*
* Revision 1.5 1994/05/30 19:43:50 mike
* Call set_test_robot.
*
*
* Revision 1.4 1994/05/30 00:02:44 matt
* Got rid of robot render type, and generally cleaned up polygon model
* render objects.
*
* Revision 1.3 1994/05/29 18:46:15 matt
* Added stuff for getting robot animation info for different states
*
* Revision 1.2 1994/05/26 21:09:15 matt
* Moved robot stuff out of polygon model and into robot_info struct
* Made new file, robot.c, to deal with robots
*
* Revision 1.1 1994/05/26 18:02:04 matt
* Initial revision
------------------------------------------------------------------------
main/robot.h:
* Revision 1.1 1995/05/16 16:01:59 allender
* Initial revision
*
* Revision 2.1 1995/03/07 16:52:00 john
* Fixed robots not moving without edtiro bug.
*
* Revision 2.0 1995/02/27 11:30:59 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.25 1994/11/30 14:02:44 mike
* fields for see/attack/claw sounds.
*
* Revision 1.24 1994/10/27 15:55:41 adam
* *** empty log message ***
*
* Revision 1.23 1994/10/20 15:17:03 mike
* Add boss flag.
*
* Revision 1.22 1994/10/20 09:51:00 adam
* *** empty log message ***
*
* Revision 1.21 1994/10/18 10:52:54 mike
* Support robots lunging as an attack_type.
*
* Revision 1.20 1994/10/17 21:19:02 mike
* robot cloaking.
*
* Revision 1.19 1994/09/27 00:03:39 mike
* Add score_value to robot_info struct.
*
* Revision 1.18 1994/09/22 19:01:12 mike
* Move NDL from here to game.h
*
* Revision 1.17 1994/09/22 15:46:55 mike
* Add default contained objects for robots.
*
* Revision 1.16 1994/09/22 10:46:57 mike
* Add difficulty levels.
*
* Revision 1.15 1994/09/15 16:34:16 mike
* Change rapidfire_count to a byte, add evade_speed, dum1, dum2.
*
* Revision 1.14 1994/09/09 14:21:58 matt
* Increased maximum number of games
*
* Revision 1.13 1994/08/25 18:12:13 matt
* Made player's weapons and flares fire from the positions on the 3d model.
* Also added support for quad lasers.
*
* Revision 1.12 1994/08/23 16:37:24 mike
* Add rapidfire_count to robot_info.
*
* Revision 1.11 1994/07/27 19:45:01 mike
* Objects containing objects.
*
* Revision 1.10 1994/07/12 12:40:01 matt
* Revamped physics system
*
* Revision 1.9 1994/06/21 12:17:12 mike
* Add circle_distance to robot_info.
*
* Revision 1.8 1994/06/09 16:22:28 matt
* Moved header for calc_gun_point() here, where it belongs
*
* Revision 1.7 1994/06/08 18:16:23 john
* Bunch of new stuff that basically takes constants out of the code
* and puts them into bitmaps.tbl.
*
* Revision 1.6 1994/06/03 11:38:09 john
* Made robots get their strength for RobotInfo->strength, which
* is read in from bitmaps.tbl
*
* Revision 1.5 1994/05/30 19:43:31 mike
* Add voluminous comment for robot_get_anim_state.
*
* Revision 1.4 1994/05/30 00:03:18 matt
* Got rid of robot render type, and generally cleaned up polygon model
* render objects.
*
* Revision 1.3 1994/05/29 18:46:37 matt
* Added stuff for getting robot animation info for different states
*
* Revision 1.2 1994/05/26 21:09:18 matt
* Moved robot stuff out of polygon model and into robot_info struct
* Made new file, robot.c, to deal with robots
*
* Revision 1.1 1994/05/26 18:02:12 matt
* Initial revision
------------------------------------------------------------------------
main/scores.c:
* Revision 1.1 1995/12/05 16:06:29 allender
* Initial revision
*
* Revision 1.3 1995/08/14 09:25:16 allender
* add byteswap header
*
* Revision 1.2 1995/07/14 13:45:17 allender
* fixed up high score code to work and look pretty good
* needs some work tho'
*
* Revision 1.1 1995/05/16 15:30:42 allender
* Initial revision
*
* Revision 2.2 1995/06/15 12:13:54 john
* Made end game, win game and title sequences all go
* on after 5 minutes automatically.
*
* Revision 2.1 1995/03/06 15:23:57 john
* New screen techniques.
*
* Revision 2.0 1995/02/27 11:30:53 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.109 1995/02/09 12:23:19 rob
* Added assert for length of filename.
*
* Revision 1.108 1995/01/03 17:33:24 john
* Made scrolling textbox. Used it for scores cool saying.
*
* Revision 1.107 1994/12/28 10:42:51 john
* More VFX tweaking.
*
* Revision 1.106 1994/12/28 10:26:19 john
* Fixed some VFX problems.
*
* Revision 1.105 1994/12/15 16:42:12 adam
* some fix
*
* Revision 1.104 1994/12/14 11:59:19 john
* Changed the default high scores.
*
* Revision 1.103 1994/12/09 00:41:12 mike
* fix hang in automap print screen
*
* Revision 1.102 1994/12/07 00:36:26 mike
* scores sequencing stuff.
*
* Revision 1.101 1994/12/06 15:14:21 yuan
* Localization
*
* Revision 1.100 1994/12/03 17:07:52 yuan
* Localization 368
*
* Revision 1.99 1994/12/03 14:49:27 mark
* Fixed john's bug with previous.
*
* Revision 1.98 1994/12/03 14:43:54 john
* Added enter, space to exit scores.
*
* Revision 1.97 1994/12/03 14:32:34 john
* Added integrated-super-deluxe-ctrl-r to reset high scores.
*
* Revision 1.96 1994/12/01 20:15:20 yuan
* Localization
*
* Revision 1.95 1994/11/30 19:36:36 john
* Made Gravis Ultrasound work again. Made the scores blink
* at a constant rate. Revamped the newmenu background storage,
* which hopefully fixed some bugs. Made menus in ame not pause
* sound, except for the pause key. ^== Game!
*
* Revision 1.94 1994/11/30 12:32:08 john
* Made secret levels print correctly.
*
* Revision 1.93 1994/11/30 12:06:47 mike
* fix bug: looper not initialized.
*
* Revision 1.92 1994/11/29 13:20:04 john
* changed the "Wow! You placed .." to something better.
*
* Revision 1.91 1994/11/29 01:35:38 john
* Made it so that even if you don't get a high score, you still show
* up on the chart..
*
* Revision 1.90 1994/11/23 17:29:29 mike
* fix xx-xx level bug in high scores.
*
* Revision 1.89 1994/11/22 16:55:27 mike
* allow high scores even in pudly trainee level.
*
* Revision 1.88 1994/11/21 17:28:33 john
* Changed default score values.
*
* Revision 1.87 1994/11/18 23:37:53 john
* Changed some shorts to ints.
*
* Revision 1.86 1994/11/13 15:39:24 john
* Added critical error handler to game. Took out -editor command line
* option because it didn't work anymore and wasn't worth fixing. Made scores
* not use MINER enviroment variable on release version, and made scores
* not print an error if there is no descent.hi.
*
* Revision 1.85 1994/11/06 10:15:58 john
* Took out kill % and hostage %
*
* Revision 1.84 1994/11/05 15:03:39 john
* Added non-popup menu for the main menu, so that scores and credits don't have to save
* the background.
*
* Revision 1.83 1994/11/05 14:05:57 john
* Fixed fade transitions between all screens by making gr_palette_fade_in and out keep
* track of whether the palette is faded in or not. Then, wherever the code needs to fade out,
* it just calls gr_palette_fade_out and it will fade out if it isn't already. The same with fade_in.
* This eliminates the need for all the flags like Menu_fade_out, game_fade_in palette, etc.
*
* Revision 1.82 1994/11/04 20:11:41 john
* Neatening up palette stuff with demos.
*
* Revision 1.81 1994/11/04 12:02:34 john
* Fixed fading transitions a bit more.
*
* Revision 1.80 1994/10/27 12:10:39 john
* Moved kill % a little to the right.
*
* Revision 1.79 1994/10/24 20:25:03 john
* Fixed bug with space at end of 1 line message.
* Made Enter go between the two input lines.
*
* Revision 1.78 1994/10/24 18:20:18 john
* Made the current high score flash.
*
* Revision 1.77 1994/10/24 13:37:22 mike
* Fix grammar error. --anal Mike.
*
* Revision 1.76 1994/10/22 13:19:19 john
* Made joy/mouse buttons leave score screen.
*
* Revision 1.75 1994/10/21 15:26:57 john
* Used PrtScr instead of F2.
*
* Revision 1.74 1994/10/21 13:54:21 matt
* Replace '1' with special wide '1' to make numbers line up
*
* Revision 1.73 1994/10/19 20:48:01 john
* Made so that people playing on wimp level
* can't get high scores.
*
* Revision 1.72 1994/10/19 15:14:05 john
* Took % hits out of player structure, made %kills work properly.
*
* Revision 1.71 1994/10/19 14:39:27 john
* Finished up; added keys to prtscr, int3.
*
* Revision 1.70 1994/10/19 12:44:09 john
* Added hours field to player structure.
*
* Revision 1.69 1994/10/19 11:25:21 john
* Looking good.
*
* Revision 1.68 1994/10/19 10:54:12 john
* Test version.
*
* Revision 1.67 1994/10/19 10:00:27 john
* *** empty log message ***
*
* Revision 1.66 1994/10/19 09:59:03 john
* Made cool saying have the potential to be up to 50 chars
*
* Revision 1.65 1994/10/19 09:53:30 john
* Working version of scores.
*
* Revision 1.64 1994/10/18 21:07:46 john
* Fixed bug that didn't print name correctly.
*
* Revision 1.63 1994/10/18 18:21:46 john
* NEw score system.
*
* Revision 1.62 1994/10/17 20:31:42 john
* Made the text for the difficulty labels global so that
* the high score screen can print "rookie" or whatever.
*
* Revision 1.61 1994/10/17 17:27:44 john
* Added starting_level to high score system.
*
* Revision 1.60 1994/10/17 16:56:35 john
* Added starting level to stats menu.
*
* Revision 1.59 1994/10/17 16:55:25 john
* Added starting level, but didn't hook it to anything.
*
* Revision 1.58 1994/10/17 16:47:17 john
* Added diff. level.
*
* Revision 1.57 1994/10/17 15:49:53 john
* Added stats screen.
*
* Revision 1.56 1994/10/03 23:02:29 matt
* After player added or not to scores, scores are now displayed
*
* Revision 1.55 1994/09/01 18:09:38 john
* Made commas in scores work correctly .
*
*
* Revision 1.54 1994/09/01 18:03:57 john
* Neatened up scores a bit.
*
* Revision 1.53 1994/08/26 14:27:37 john
* Made it prompt for name
*
* Revision 1.52 1994/08/26 13:03:17 john
* *** empty log message ***
*
* Revision 1.51 1994/08/26 13:01:52 john
* Put high score system in.
*
* Revision 1.50 1994/08/10 19:57:01 john
* Changed font stuff; Took out old menu; messed up lots of
* other stuff like game sequencing messages, etc.
*
* Revision 1.49 1994/07/25 15:40:27 matt
* Took out debugging code accidentally left in.
------------------------------------------------------------------------
main/scores.h:
* Revision 1.1 1995/05/16 16:02:07 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:31:53 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.13 1994/12/07 00:36:36 mike
* scores sequencing stuff.
*
* Revision 1.12 1994/11/28 11:26:09 matt
* Took out scores for weapons, which are no longer used
*
* Revision 1.11 1994/10/24 18:20:03 john
* Made the current high score flash.
*
* Revision 1.10 1994/10/18 18:21:36 john
* NEw score system.
*
* Revision 1.9 1994/10/03 23:01:58 matt
* New parms for scores_view()
*
*
* Revision 1.8 1994/09/27 16:10:37 adam
* changed scores of course
*
* Revision 1.7 1994/08/31 19:25:46 mike
* Add score values for new powerups.
*
* Revision 1.6 1994/08/26 16:00:18 mike
* enhanced (?) scoring.
*
* Revision 1.5 1994/08/26 13:01:45 john
* Put high score system in.
*
* Revision 1.4 1994/05/30 16:33:21 yuan
* Revamping high scores.
*
* Revision 1.3 1994/05/14 17:15:07 matt
* Got rid of externs in source (non-header) files
*
* Revision 1.2 1994/05/13 13:13:57 yuan
* Added player death...
*
* When you die, if just pops up a a message.
* When game is over, a message is popped up, and if you have a high score,
* you get to enter it.
*
* Revision 1.1 1994/05/13 10:22:16 yuan
* Initial revision
------------------------------------------------------------------------
main/screens.h:
* Revision 1.1 1995/05/16 16:02:15 allender
* Initial revision
*
* Revision 2.2 1995/03/14 12:14:00 john
* Made VR helmets have 4 resolutions to choose from.
*
* Revision 2.1 1995/03/06 15:24:09 john
* New screen techniques.
*
* Revision 2.0 1995/02/27 11:31:40 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.15 1994/08/10 19:56:45 john
* Changed font stuff; Took out old menu; messed up lots of
* other stuff like game sequencing messages, etc.
*
* Revision 1.14 1994/07/20 21:04:26 john
* Add VictorMax VR helment support.
*
* Revision 1.13 1994/06/24 17:01:28 john
* Add VFX support; Took Game Sequencing, like EndGame and stuff and
* took it out of game.c and into gameseq.c
*
* Revision 1.12 1994/04/20 20:30:03 john
* *** empty log message ***
*
* Revision 1.11 1994/03/30 21:12:05 yuan
* Use only 119 lines (saves 3 scanlines)
*
* Revision 1.10 1994/03/17 16:49:37 john
* *** empty log message ***
*
* Revision 1.9 1994/02/11 15:07:44 matt
* Added extern of Canv_game_offscrn
*
* Revision 1.8 1994/01/31 16:52:43 john
* redid cockpit bounds.
*
* Revision 1.7 1994/01/26 18:13:53 john
* Changed 3d constants..
*
* Revision 1.6 1994/01/25 17:11:46 john
* *** empty log message ***
*
* Revision 1.5 1994/01/25 11:43:25 john
* Changed game window size.
*
* Revision 1.4 1993/12/13 16:32:39 yuan
* Fixed menu system memory errors, and other bugs.
*
* Revision 1.3 1993/12/10 16:07:23 yuan
* Working on menu system. Updated the title screen.
*
* Revision 1.2 1993/12/09 21:27:46 matt
* Added 3d window sizing constants
*
* Revision 1.1 1993/12/06 09:50:33 matt
* Initial revision
------------------------------------------------------------------------
main/segment.h:
* Revision 1.4 1995/11/03 12:53:11 allender
* shareware changes
*
* Revision 1.3 1995/07/26 16:53:45 allender
* put sides and segment structure back the PC way for checksumming reasons
*
* Revision 1.2 1995/06/19 07:55:22 allender
* rearranged structure members for possible better alignment
*
* Revision 1.1 1995/05/16 16:02:22 allender
* Initial revision
*
* Revision 2.1 1995/03/20 18:15:22 john
* Added code to not store the normals in the segment structure.
*
* Revision 2.0 1995/02/27 11:26:49 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.89 1995/01/24 15:07:55 yuan
* *** empty log message ***
*
* Revision 1.88 1994/12/12 01:04:06 yuan
* Boosted MAX_GAME_VERTS.
*
* Revision 1.87 1994/12/11 16:18:14 mike
* add constants so we can detect too-large mines for game while in editor.
*
* Revision 1.86 1994/12/08 15:07:29 yuan
* *** empty log message ***
*
* Revision 1.85 1994/12/01 21:06:39 matt
* Moved plane tolerance constant to gameseg.c, the only file that used it.
*
* Revision 1.84 1994/11/27 14:01:41 matt
* Fixed segment structure so LVLs work
*
* Revision 1.83 1994/11/26 22:50:20 matt
* Removed editor-only fields from segment structure when editor is compiled
* out, and padded segment structure to even multiple of 4 bytes.
*
* Revision 1.82 1994/11/21 11:43:36 mike
* smaller segment and vertex buffers.
*
* Revision 1.81 1994/11/17 11:39:35 matt
* Ripped out code to load old mines
*
* Revision 1.80 1994/10/30 14:12:05 mike
* rip out local segments stuff.
*
* Revision 1.79 1994/10/27 11:33:58 mike
* lower number of segments by 100, saving 116K.
*
* Revision 1.78 1994/08/25 21:54:50 mike
* Add macro IS_CHILD to make checking for the presence of a child centralized.
*
* Revision 1.77 1994/08/11 18:58:16 mike
* Add prototype for Side_to_verts_int.
*
* Revision 1.76 1994/08/01 11:04:13 yuan
* New materialization centers.
*
* Revision 1.75 1994/07/25 00:04:19 matt
* Various changes to accomodate new 3d, which no longer takes point numbers
* as parms, and now only takes pointers to points.
*
* Revision 1.74 1994/07/21 19:01:30 mike
* new lsegment structure.
*
* Revision 1.73 1994/06/08 14:30:48 matt
* Added static_light field to segment structure, and padded side struct
* to be longword aligned.
*
* Revision 1.72 1994/05/19 23:25:17 mike
* Change MINE_VERSION to 15, DEFAULT_LIGHTING to 0
*
* Revision 1.71 1994/05/12 14:45:54 mike
* New segment data structure (!!), group, special, object, value = short.
*
* Revision 1.70 1994/05/03 11:06:46 mike
* Remove constants VMAG and UMAG which are editor specific..
*
* Revision 1.69 1994/04/18 10:40:28 yuan
* Increased segment limit to 1000
* (From 500)
------------------------------------------------------------------------
main/segpoint.h:
* Revision 1.1 1995/05/16 16:02:38 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:26:54 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.2 1994/02/16 17:14:40 matt
* Added include of 3d.h
*
* Revision 1.1 1993/12/06 09:51:37 matt
* Initial revision
------------------------------------------------------------------------
main/slew.c:
* Revision 1.1 1995/05/16 15:30:57 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:29:32 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.34 1995/02/22 14:23:28 allender
* remove anonymous unions from object structure
*
* Revision 1.33 1995/02/22 13:24:26 john
* Removed the vecmat anonymous unions.
*
* Revision 1.32 1994/09/10 15:46:42 john
* First version of new keyboard configuration.
*
* Revision 1.31 1994/08/31 18:29:58 matt
* Made slew work with new key system
*
* Revision 1.30 1994/08/31 14:10:48 john
* Made slew go faster.
*
* Revision 1.29 1994/08/29 19:16:38 matt
* Made slew object not have physics movement type, so slew objects don't
* get bumped.
*
* Revision 1.28 1994/08/24 18:59:59 john
* Changed key_down_time to return fixed seconds instead of
* milliseconds.
*
* Revision 1.27 1994/07/01 11:33:05 john
* Fixed bug with looking for stick even if one not present.
*
* Revision 1.26 1994/05/20 11:56:33 matt
* Cleaned up find_vector_intersection() interface
* Killed check_point_in_seg(), check_player_seg(), check_object_seg()
*
* Revision 1.25 1994/05/19 12:08:41 matt
* Use new vecmat macros and globals
*
* Revision 1.24 1994/05/14 17:16:18 matt
* Got rid of externs in source (non-header) files
*
* Revision 1.23 1994/05/03 12:26:38 matt
* Removed use of physics_info var rotvel, which wasn't used for rotational
* velocity at all.
*
* Revision 1.22 1994/02/17 11:32:34 matt
* Changes in object system
*
* Revision 1.21 1994/01/18 14:03:53 john
* made joy_get_pos use the new ints instead of
* shorts.
*
* Revision 1.20 1994/01/10 17:11:35 mike
* Add prototype for check_object_seg
*
* Revision 1.19 1994/01/05 10:53:38 john
* New object code by John.
*
* Revision 1.18 1993/12/22 15:32:50 john
* took out previos code that attempted to make
* modifiers cancel keydowntime.
*
* Revision 1.17 1993/12/22 11:41:56 john
* Made so that keydowntime recognizes editor special case!
*
* Revision 1.16 1993/12/14 18:13:52 matt
* Made slew work in editor even when game isn't in slew mode
*
* Revision 1.15 1993/12/07 23:53:39 matt
* Made slew work in editor even when game isn't in slew mode
*
* Revision 1.14 1993/12/05 22:47:49 matt
* Reworked include files in an attempt to cut down on build times
*
* Revision 1.13 1993/12/01 11:44:14 matt
* Chagned Frfract to FrameTime
*
* Revision 1.12 1993/11/08 16:21:42 john
* made stop_slew or whatever return an int
*
* Revision 1.11 1993/11/01 13:59:49 john
* more slew experiments.
------------------------------------------------------------------------
main/slew.h:
* Revision 1.1 1995/05/16 16:03:09 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:33:05 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.5 1994/12/15 16:43:58 matt
* Made slew functions compile out for release versions
*
* Revision 1.4 1994/02/17 11:32:41 matt
* Changes in object system
*
* Revision 1.3 1994/01/05 10:53:42 john
* New object code by John.
*
* Revision 1.2 1993/12/05 22:48:57 matt
* Reworked include files in an attempt to cut down on build times
*
* Revision 1.1 1993/12/05 20:20:16 matt
* Initial revision
------------------------------------------------------------------------
main/songs.c:
* Revision 1.5 1995/11/03 12:52:59 allender
* shareware changes
*
* Revision 1.4 1995/10/18 01:51:33 allender
* fixed up stuff for redbook
*
* Revision 1.3 1995/10/17 13:13:44 allender
* dont' add resource value to songs to play -- now done in digi
* code
*
* Revision 1.2 1995/07/17 08:50:35 allender
* make work with new music system
*
* Revision 1.1 1995/05/16 15:31:05 allender
* Initial revision
*
* Revision 2.1 1995/05/02 16:15:21 john
* Took out printf.
*
* Revision 2.0 1995/02/27 11:27:13 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.2 1995/02/11 12:42:12 john
* Added new song method, with FM bank switching..
*
* Revision 1.1 1995/02/11 10:20:33 john
* Initial revision
------------------------------------------------------------------------
main/songs.h:
* Revision 2.0 1995/02/27 11:30:52 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.6 1995/02/11 22:21:44 adam
* *** empty log message ***
*
* Revision 1.5 1995/02/11 19:10:49 adam
* *** empty log message ***
*
* Revision 1.4 1995/02/11 18:34:40 adam
* *** empty log message ***
*
* Revision 1.3 1995/02/11 18:04:51 adam
* upped songs
*
* Revision 1.2 1995/02/11 12:42:12 john
* Added new song method, with FM bank switching..
*
* Revision 1.1 1995/02/11 10:20:18 john
* Initial revision
------------------------------------------------------------------------
main/sounds.h:
* Revision 1.1 1995/05/16 16:03:32 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:27:32 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.41 1995/02/03 17:08:28 john
* Changed sound stuff to allow low memory usage.
* Also, changed so that Sounds isn't an array of digi_sounds, it
* is a ubyte pointing into GameSounds, this way the digi.c code that
* locks sounds won't accidentally unlock a sound that is already playing, but
* since it's Sounds[soundno] is different, it would erroneously be unlocked.
*
* Revision 1.40 1995/01/30 21:45:17 adam
* added weapon change sounds
*
* Revision 1.39 1995/01/30 21:11:57 mike
* Use new weapon selection sounds, different for primary and secondary.
*
* Revision 1.38 1995/01/26 17:02:58 mike
* make fusion cannon have more chrome, make fusion, mega rock you!
*
* Revision 1.37 1995/01/18 19:46:15 matt
* Added sound for invulnerability wearing off, and voice message for cheating
*
* Revision 1.36 1995/01/18 19:05:04 john
* Increased MAX_SOUNDS.
*
* Revision 1.35 1994/12/14 16:57:08 adam
* *** empty log message ***
*
* Revision 1.34 1994/12/08 21:31:40 adam
* *** empty log message ***
*
* Revision 1.33 1994/12/08 12:33:01 mike
* make boss dying more interesting.
*
* Revision 1.32 1994/12/04 21:39:40 matt
* Added sound constants for endlevel explosions
*
* Revision 1.31 1994/11/30 14:02:58 mike
* see/claw/attack sounds.
*
* Revision 1.30 1994/11/29 20:43:54 matt
* Deleted a bunch of unused constants
*
* Revision 1.29 1994/11/29 15:48:11 matt
* Cleaned up, & added new sounds
*
* Revision 1.28 1994/11/29 14:35:36 adam
* moved lava noise index
*
* Revision 1.27 1994/11/29 13:23:30 matt
* Cleaned up sound constants
*
* Revision 1.26 1994/11/29 13:01:04 rob
* ADded badass explosion define.
*
* Revision 1.25 1994/11/29 11:34:23 rob
* Added new HUD sounds.
*
* Revision 1.24 1994/11/15 16:52:01 mike
* hiss sound placeholder.
*
* Revision 1.23 1994/10/25 16:21:45 adam
* changed homing sound
*
* Revision 1.22 1994/10/23 00:27:34 matt
* Made exploding wall do one long sound, instead of lots of small ones
*
* Revision 1.21 1994/10/22 14:12:35 mike
* Add sound for missile tracking player.
*
* Revision 1.20 1994/10/11 12:25:21 matt
* Added "hot rocks" that create badass explosion when hit by weapons
*
* Revision 1.19 1994/10/10 20:57:50 matt
* Added sound for exploding wall (hostage door)
*
* Revision 1.18 1994/10/04 15:33:31 john
* Took out the old PLAY_SOUND??? code and replaced it
* with direct calls into digi_link_??? so that all sounds
* can be made 3d.
*
* Revision 1.17 1994/09/29 21:13:41 john
* Added Master volumes for digi and midi. Also took out panning,
* because it doesn't work with MasterVolume stuff.
*
* Revision 1.16 1994/09/29 00:42:29 matt
* Made hitting a locked door play a sound
*
* Revision 1.15 1994/09/20 19:14:34 john
* Massaged the sound system; used a better formula for determining
* which l/r balance, also, put in Mike's stuff that searches for a connection
* between the 2 sounds' segments, stopping for closed doors, etc.
*
* Revision 1.14 1994/07/06 15:23:59 john
* Revamped hostage sound.
*
* Revision 1.13 1994/06/21 19:13:27 john
* *** empty log message ***
*
* Revision 1.12 1994/06/21 12:09:54 adam
* *** empty log message ***
*
* Revision 1.11 1994/06/21 12:03:15 john
* Added more sounds.
*
* Revision 1.10 1994/06/20 22:01:54 matt
* Added prototype for Play3D()
*
* Revision 1.9 1994/06/20 21:06:06 yuan
* Fixed up menus.
*
* Revision 1.8 1994/06/17 12:21:54 mike
* Hook for robot hits player.
*
* Revision 1.7 1994/06/15 19:01:35 john
* Added the capability to make 3d sounds play just once for the
* laser hit wall effects.
*
* Revision 1.6 1994/06/08 11:43:03 john
* Enable 3D sound.
*
* Revision 1.5 1994/06/07 18:21:20 john
* Start changing sound to the new 3D system.
*
* Revision 1.4 1994/05/16 16:17:41 john
* Bunch of stuff on my Inferno Task list May16-23
*
* Revision 1.3 1994/05/09 21:11:38 john
* Sound changes; pass index instead of pointer to digi routines.
* Made laser sound cut off the last laser sound.
*
* Revision 1.2 1994/04/27 11:47:46 john
* First version.
*
* Revision 1.1 1994/04/26 10:44:36 john
* Initial revision
------------------------------------------------------------------------
main/state.c:
* Revision 1.7 1995/10/31 10:18:25 allender
* shareware stuff
*
* Revision 1.6 1995/10/21 22:25:45 allender
* put in creator code and file type for saved games.
* put save games in players folder
*
* Revision 1.5 1995/10/20 00:51:21 allender
* close boxes and proper mouse support on save game stuff
*
* Revision 1.4 1995/10/17 13:19:02 allender
* close boxes for load and save game
*
* Revision 1.3 1995/09/18 08:09:15 allender
* made larger thumbnail and handled NULL gr_bitmap pointers
* better
*
* Revision 1.2 1995/08/14 14:36:12 allender
* change transparency to 0
*
* Revision 1.1 1995/05/16 15:31:12 allender
* Initial revision
*
* Revision 2.14 1995/05/26 16:16:10 john
* Split SATURN into define's for requiring cd, using cd, etc.
* Also started adding all the Rockwell stuff.
*
* Revision 2.13 1995/04/06 15:12:20 john
* Fixed bug with lunacy not working.
*
* Revision 2.12 1995/04/04 13:33:05 john
* Removed multiplayer save.
*
* Revision 2.11 1995/03/31 13:42:10 john
* Made saved games from the bogus saturn version read in
* correctly.
*
* Revision 2.10 1995/03/31 12:45:28 john
* Fixed bug with previous.
*
* Revision 2.9 1995/03/31 12:24:40 john
* I had changed alt_textures from a pointer to a byte. This hosed old
* saved games, so I restored it to an int.
*
* Revision 2.8 1995/03/28 11:22:47 john
* Added cheats to save file. Changed lunacy text.
*
* Revision 2.7 1995/03/27 21:41:03 john
* Added code to verify that the proper multi save file
* is used when restoring a network game.
*
* Revision 2.6 1995/03/27 18:04:18 john
* Made multi save/restore require the -multisave command line arg.
*
* Revision 2.5 1995/03/27 17:01:52 john
* Made deafult choice work better.
*
* Revision 2.4 1995/03/27 15:49:44 john
* Added slots to save games.
*
* Revision 2.3 1995/03/27 12:59:19 john
* Initial version of multiplayer save games.
*
* Revision 2.2 1995/03/24 13:11:35 john
* Added save game during briefing screens.
*
* Revision 2.1 1995/03/21 14:38:36 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.0 1995/02/27 11:27:00 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.43 1995/02/22 14:32:41 allender
* remove anonymous unions from object structure
*
* Revision 1.42 1995/02/13 20:34:33 john
* Lintized
*
* Revision 1.41 1995/02/13 10:37:30 john
* Saved Buggin' cheat mode to save file.
*
* Revision 1.40 1995/02/09 10:24:25 john
* *** empty log message ***
*
* Revision 1.39 1995/02/09 10:22:20 john
* Fixed bug with callsign getting trashed if you copy somebody else
* 's save game file into your directory.
*
* Revision 1.38 1995/02/08 21:01:27 john
* Closed state file around the code that shows briefing screens so that the
* code works on machines with clean boot with only 5 file handles.
*
* Revision 1.37 1995/02/07 14:02:33 john
* Added code to verify game restore.
*
* Revision 1.36 1995/02/07 11:07:43 john
* Added hooks for confirm on game state restore.
*
* Revision 1.35 1995/02/03 11:27:36 john
* Made inbetween level save's thumbnail's have correct aspect.
*
* Revision 1.34 1995/02/03 10:58:43 john
* Added code to save shareware style saved games into new format...
* Also, made new player file format not have the saved game array in it.
*
* Revision 1.33 1995/02/02 19:40:52 john
* Added 10 save game slots.
*
* Revision 1.32 1995/02/02 12:23:20 john
* Made between level saves have picture.
*
* Revision 1.31 1995/01/31 11:21:43 john
* Added code for fixed with menus.
*
* Revision 1.30 1995/01/29 21:37:29 mike
* initialize variables on game load so you don't drain your energy when you fire.
*
* Revision 1.29 1995/01/29 13:47:58 mike
* Restore some variables on game load (in game).
*
* Revision 1.28 1995/01/26 10:46:57 john
* Fixed bug with state names getting hosed.
*
* Revision 1.27 1995/01/26 09:51:23 john
* Fixed bug with game descriptions getting hosed.
*
* Revision 1.26 1995/01/25 16:35:49 john
* Made so that when you hit enter during
* game save, -empty- goes away.
*
* Revision 1.25 1995/01/25 15:01:39 john
* Upped the save file version.
*
* Revision 1.24 1995/01/24 20:35:35 john
* *** empty log message ***
*
* Revision 1.23 1995/01/24 20:34:24 john
* Fixed bug with player stats not being set right for in
* between level saves.
*
* Revision 1.22 1995/01/23 10:39:03 john
* Added mission stuff to game saves.
*
* Revision 1.21 1995/01/22 16:07:12 mike
* localization.
*
* Revision 1.20 1995/01/22 15:58:32 mike
* localization
*
* Revision 1.19 1995/01/20 11:04:40 john
* Upped state save version.
*
* Revision 1.18 1995/01/19 17:00:44 john
* Made save game work between levels.
*
* Revision 1.17 1995/01/17 14:27:33 john
* *** empty log message ***
*
* Revision 1.16 1995/01/17 13:36:37 john
* Moved pig loading into StartNewLevelSub.
*
* Revision 1.15 1995/01/16 16:53:38 john
* Added code to save cheat state during save game.
*
* Revision 1.14 1995/01/15 16:55:22 john
* Improved mine texture parsing.
*
* Revision 1.13 1995/01/12 10:45:15 john
* Added difficulty level to save/restore game.
*
* Revision 1.12 1995/01/05 15:46:55 john
* Made weapons not rearm when starting a saved game.
*
* Revision 1.11 1995/01/05 11:51:45 john
* Added better Abort game menu.
* Made save state return success or nopt.
*
* Revision 1.10 1995/01/05 11:34:51 john
* Took out endlevel save stuff for registered.
*
* Revision 1.9 1995/01/04 18:19:52 john
* Added automap visited list saving.
*
* Revision 1.8 1995/01/04 17:29:56 john
* Made save/restore ALT+F?. Also made them not work
* in network mode, and if recording a demo, will
* quit recording.
*
* Revision 1.7 1995/01/04 13:18:31 john
* Added cool 6 game save.
*
* Revision 1.6 1995/01/03 20:38:46 john
* Saved morph objects.
*
* Revision 1.5 1995/01/03 20:19:29 john
* Pretty good working version of game save.
*
* Revision 1.4 1995/01/03 14:18:18 matt
* ifdefs added to compile code add. Added by Mike, I think.
*
* Revision 1.3 1994/12/29 18:40:19 john
* Initial version.
*
* Revision 1.2 1994/12/29 15:26:40 john
* Put in hooks for saving/restoring game state.
*
* Revision 1.1 1994/12/29 15:16:02 john
* Initial revision
------------------------------------------------------------------------
main/state.h:
* Revision 1.1 1995/05/16 16:03:40 allender
* Initial revision
*
* Revision 2.1 1995/03/27 21:40:35 john
* Added code to verify that the proper multi save file
* is used when restoring a network game.
*
* Revision 2.0 1995/02/27 11:28:44 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.6 1995/02/07 10:54:05 john
* *** empty log message ***
*
* Revision 1.5 1995/02/03 10:58:12 john
* Added code to save shareware style saved games into new format...
* Also, made new player file format not have the saved game array in it.
*
* Revision 1.4 1995/01/19 17:00:51 john
* Made save game work between levels.
*
* Revision 1.3 1995/01/05 11:51:44 john
* Added better Abort game menu.
* Made save state return success or nopt.
*
* Revision 1.2 1994/12/29 15:26:39 john
* Put in hooks for saving/restoring game state.
*
* Revision 1.1 1994/12/29 15:15:47 john
* Initial revision
------------------------------------------------------------------------
main/switch.c:
* Revision 1.2 1995/10/31 10:18:10 allender
* shareware stuff
*
* Revision 1.1 1995/05/16 15:31:21 allender
* Initial revision
*
* Revision 2.1 1995/03/21 14:39:08 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.0 1995/02/27 11:28:41 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.51 1995/01/31 15:26:23 rob
* Don't trigger matcens in anarchy games.
*
* Revision 1.50 1995/01/26 12:18:26 rob
* Changed network_do_frame call.
*
* Revision 1.49 1995/01/18 18:50:35 allender
* don't process triggers if in demo playback mode. Fix for Rob to only do
* multi_send_endlevel_start if in multi player game
*
* Revision 1.48 1995/01/13 11:59:40 rob
* Added palette fade after secret level exit.
*
* Revision 1.47 1995/01/12 17:00:41 rob
* Fixed a problem with switches and secret levels.
*
* Revision 1.46 1995/01/12 13:35:11 rob
* Added data flush after secret level exit.
*
* Revision 1.45 1995/01/03 15:25:11 rob
* Fixed a compile error.
*
* Revision 1.44 1995/01/03 15:12:02 rob
* Adding multiplayer switching.
*
* Revision 1.43 1994/11/29 16:52:12 yuan
* Removed some obsolete commented out code.
*
* Revision 1.42 1994/11/27 23:15:07 matt
* Made changes for new mprintf calling convention
*
* Revision 1.41 1994/11/22 18:36:45 rob
* Added new hook for endlevel for secret doors.
*
* Revision 1.40 1994/11/21 17:29:43 matt
* Cleaned up sequencing & game saving for secret levels
*
* Revision 1.39 1994/11/19 15:20:32 mike
* rip out unused code and data
*
* Revision 1.38 1994/10/25 16:09:52 yuan
* Fixed byte bug.
*
* Revision 1.37 1994/10/24 16:05:28 matt
* Removed clear of fuelcen_control_center_destroyed
*
* Revision 1.36 1994/10/08 14:21:13 matt
* Added include
*
* Revision 1.35 1994/10/07 12:34:09 matt
* Added code fot going to/from secret levels
*
* Revision 1.34 1994/10/05 15:16:10 rob
* Used to be that only player #0 could trigger switches, now only the
* LOCAL player can do it (and he's expected to tell the other guy with
* a com message if its important!)
*
* Revision 1.33 1994/09/24 17:42:03 mike
* Kill temporary version of function written by Yuan, replaced by MK.
*
* Revision 1.32 1994/09/24 17:10:00 yuan
* Added Matcen triggers.
*
* Revision 1.31 1994/09/23 18:02:21 yuan
* Completed wall checking.
*
* Revision 1.30 1994/08/19 20:09:41 matt
* Added end-of-level cut scene with external scene
*
* Revision 1.29 1994/08/18 10:47:36 john
* Cleaned up game sequencing and player death stuff
* in preparation for making the player explode into
* pieces when dead.
*
* Revision 1.28 1994/08/12 22:42:11 john
* Took away Player_stats; added Players array.
*
* Revision 1.27 1994/07/02 13:50:44 matt
* Cleaned up includes
*
* Revision 1.26 1994/06/27 16:32:25 yuan
* Commented out incomplete code...
*
* Revision 1.25 1994/06/27 15:53:27 john
* #define'd out the newdemo stuff
*
*
* Revision 1.24 1994/06/27 15:10:04 yuan
* Might mess up triggers.
*
* Revision 1.23 1994/06/24 17:01:43 john
* Add VFX support; Took Game Sequencing, like EndGame and stuff and
* took it out of game.c and into gameseq.c
*
* Revision 1.22 1994/06/16 16:20:15 john
* Made player start out in physics mode; Neatend up game loop a bit.
*
* Revision 1.21 1994/06/15 14:57:22 john
* Added triggers to demo recording.
*
* Revision 1.20 1994/06/10 17:44:25 mike
* Assert on result of find_connect_side == -1
*
* Revision 1.19 1994/06/08 10:20:15 yuan
* Removed unused testing.
*
*
* Revision 1.18 1994/06/07 13:10:48 yuan
* Fixed bug in check trigger... Still working on other bugs.
*
* Revision 1.17 1994/05/30 20:22:04 yuan
* New triggers.
*
* Revision 1.16 1994/05/27 10:32:46 yuan
* New dialog boxes (Walls and Triggers) added.
*
*
* Revision 1.15 1994/05/25 18:06:46 yuan
* Making new dialog box controls for walls and triggers.
*
* Revision 1.14 1994/05/10 19:05:32 yuan
* Made end of level flag rather than menu popping up
*
* Revision 1.13 1994/04/29 15:05:25 yuan
* Added menu pop-up at exit trigger.
------------------------------------------------------------------------
main/switch.h:
* Revision 1.1 1995/05/16 16:03:48 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:26:52 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.19 1995/01/12 17:00:36 rob
* Fixed a problem with switches and secret levels.
*
* Revision 1.18 1994/10/06 21:24:40 matt
* Added switch for exit to secret level
*
* Revision 1.17 1994/09/29 17:05:52 matt
* Removed unused constant
*
* Revision 1.16 1994/09/24 17:10:07 yuan
* Added Matcen triggers.
*
* Revision 1.15 1994/08/15 18:06:39 yuan
* Added external trigger.
*
* Revision 1.14 1994/06/16 16:20:52 john
* Made player start out in physics mode; Neatend up game loop a bit.
*
* Revision 1.13 1994/05/30 20:22:08 yuan
* New triggers.
*
* Revision 1.12 1994/05/27 10:32:44 yuan
* New dialog boxes (Walls and Triggers) added.
*
*
* Revision 1.11 1994/05/25 18:06:32 yuan
* Making new dialog box controls for walls and triggers.
*
* Revision 1.10 1994/04/28 18:04:40 yuan
* Gamesave added.
* Trigger problem fixed (seg pointer is replaced by index now.)
*
* Revision 1.9 1994/04/26 11:19:01 yuan
* Make it so a trigger can only be triggered every 5 seconds.
------------------------------------------------------------------------
main/terrain.c:
* Revision 1.1 1995/05/16 15:31:29 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:31:27 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.12 1994/12/03 00:18:00 matt
* Made endlevel sequence cut off early
* Made exit model and bit explosion always plot last (after all terrain)
*
* Revision 1.11 1994/11/27 23:13:46 matt
* Made changes for new mprintf calling convention
*
* Revision 1.10 1994/11/21 18:04:36 matt
* Fixed alloc/free problem with height array
*
* Revision 1.9 1994/11/21 17:30:42 matt
* Properly free light array
*
* Revision 1.8 1994/11/19 12:40:55 matt
* Added system to read endlevel data from file, and to make it work
* with any exit tunnel.
*
* Revision 1.7 1994/11/16 11:49:44 matt
* Added code to rotate terrain to match mine
*
* Revision 1.6 1994/11/02 16:22:59 matt
* Killed mprintf
*
* Revision 1.5 1994/10/30 20:09:19 matt
* For endlevel: added big explosion at tunnel exit; made lights in tunnel
* go out; made more explosions on walls.
*
* Revision 1.4 1994/10/27 21:15:07 matt
* Added better error handling
*
* Revision 1.3 1994/10/27 01:03:17 matt
* Made terrain renderer use aribtary point in height array as origin
*
* Revision 1.2 1994/08/19 20:09:44 matt
* Added end-of-level cut scene with external scene
*
* Revision 1.1 1994/08/17 20:20:49 matt
* Initial revision
------------------------------------------------------------------------
main/terrain.h:
* Revision 1.1 1995/05/16 16:03:56 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:32:53 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.3 1994/10/27 01:03:51 matt
* Made terrain renderer use aribtary point in height array as origin
*
* Revision 1.2 1994/08/19 20:09:45 matt
* Added end-of-level cut scene with external scene
*
* Revision 1.1 1994/08/17 20:33:36 matt
* Initial revision
------------------------------------------------------------------------
main/texmerge.c:
* Revision 1.1 1995/05/16 15:31:36 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:31:08 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.28 1995/01/14 19:16:56 john
* First version of new bitmap paging code.
*
* Revision 1.27 1994/12/14 18:21:58 yuan
* *** empty log message ***
*
* Revision 1.26 1994/12/13 09:50:08 john
* Added Asserts to stop if wall looks like door.
*
* Revision 1.25 1994/12/07 00:35:24 mike
* change how flat shading average color is computed for paste-ons.
*
* Revision 1.24 1994/11/19 15:20:29 mike
* rip out unused code and data
*
* Revision 1.23 1994/11/12 16:38:51 mike
* deal with avg_color in texture merging.
*
* Revision 1.22 1994/11/09 19:55:39 john
* Added full rle support with texture rle caching.
*
* Revision 1.21 1994/10/20 15:21:16 john
* Took out the texmerge caching.
*
* Revision 1.20 1994/10/10 19:00:57 john
* Made caching info print every 1000 frames.
*
* Revision 1.19 1994/10/10 18:41:21 john
* Printed out texture caching info.
*
* Revision 1.18 1994/08/11 18:59:02 mike
* Use new assembler version of merge functions.
*
* Revision 1.17 1994/06/09 12:13:14 john
* Changed selectors so that all bitmaps have a selector of
* 0, but inside the texture mapper they get a selector set.
*
* Revision 1.16 1994/05/14 17:15:15 matt
* Got rid of externs in source (non-header) files
*
* Revision 1.15 1994/05/09 17:21:09 john
* Took out mprintf with cache hits/misses.
*
* Revision 1.14 1994/05/05 12:55:07 john
* Made SuperTransparency work.
*
* Revision 1.13 1994/05/04 11:15:37 john
* Added Super Transparency
*
* Revision 1.12 1994/04/28 23:36:04 john
* Took out a debugging mprintf.
*
* Revision 1.11 1994/04/22 17:44:48 john
* Made top 2 bits of paste-ons pick the
* orientation of the bitmap.
*
* Revision 1.10 1994/03/31 12:05:51 matt
* Cleaned up includes
*
* Revision 1.9 1994/03/15 16:31:52 yuan
* Cleaned up bm-loading code.
* (And structures)
*
* Revision 1.8 1994/01/24 13:15:19 john
* Made caching work with pointers, not texture numbers,
* that way, the animated textures cache.
*
* Revision 1.7 1994/01/21 16:38:10 john
* Took out debug info.
*
* Revision 1.6 1994/01/21 16:28:43 john
* added warning to print cache hit/miss.
*
* Revision 1.5 1994/01/21 16:22:30 john
* Put in caching/
*
* Revision 1.4 1994/01/21 15:34:49 john
* *** empty log message ***
*
* Revision 1.3 1994/01/21 15:33:08 john
* *** empty log message ***
*
* Revision 1.2 1994/01/21 15:15:35 john
* Created new module texmerge, that merges textures together and
* caches the results.
*
* Revision 1.1 1994/01/21 14:55:29 john
* Initial revision
------------------------------------------------------------------------
main/texmerge.h:
* Revision 1.1 1995/05/16 16:04:03 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:28:05 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.4 1995/01/14 19:16:26 john
* First version of new bitmap paging code.
*
* Revision 1.3 1994/01/21 15:23:26 john
* made texmerge_close return void.
*
*
* Revision 1.2 1994/01/21 15:16:01 john
* Created new module texmerge, that merges textures together and
* caches the results.
*
* Revision 1.1 1994/01/21 15:03:36 john
* Initial revision
------------------------------------------------------------------------
main/text.c:
* Revision 1.1 1995/05/16 15:31:44 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:33:09 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.11 1994/12/14 12:53:23 matt
* Improved error handling
*
* Revision 1.10 1994/12/09 18:36:44 john
* Added code to make text read from hogfile.
*
* Revision 1.9 1994/12/08 20:56:34 john
* More cfile stuff.
*
* Revision 1.8 1994/12/08 17:20:06 yuan
* Cfiling stuff.
*
* Revision 1.7 1994/12/05 15:10:36 allender
* support encoded descent.tex file (descent.txb)
*
* Revision 1.6 1994/12/01 14:18:34 matt
* Now support backslash chars in descent.tex file
*
* Revision 1.5 1994/10/27 00:13:10 john
* Took out cfile.
*
* Revision 1.4 1994/07/11 15:33:49 matt
* Put in command-line switch to load different text files
*
* Revision 1.3 1994/07/10 09:56:25 yuan
* #include <stdio.h> added for FILE type.
*
* Revision 1.2 1994/07/09 22:48:14 matt
* Added localizable text
*
* Revision 1.1 1994/07/09 21:30:46 matt
* Initial revision
------------------------------------------------------------------------
main/text.h:
* Revision 1.3 1995/10/18 23:30:29 allender
* fixed horrendous misspelling
*
* Revision 1.2 1995/10/18 23:27:33 allender
* added new printscreen line to end of text string
*
* Revision 1.1 1995/05/16 16:04:11 allender
* Initial revision
*
* Revision 2.2 1995/03/30 16:36:22 mike
* text localization.
*
* Revision 2.1 1995/03/08 15:33:24 allender
* *** empty log message ***
*
* Revision 2.0 1995/02/27 11:30:21 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.63 1995/02/11 14:59:42 rob
* Added string for controlcen invul.
*
* Revision 1.62 1995/02/10 15:19:38 allender
* added text for bad write on demo write
*
* Revision 1.61 1995/02/08 10:59:11 rob
* Added string used in kill list view.
*
* Revision 1.60 1995/02/07 20:38:40 rob
* Added new localized strings for new multi options.
*
* Revision 1.59 1995/02/02 15:29:17 matt
* Changed & localized secret level text
*
* Revision 1.58 1995/02/02 12:24:14 adam
* added automap string
*
* Revision 1.57 1995/02/01 18:06:50 rob
* Localize default macros, other stuff frm network.c
*
* Revision 1.56 1995/01/30 15:29:53 rob
* Localizing.
*
* Revision 1.55 1995/01/30 13:54:25 allender
* added mission/demo text
*
* Revision 1.54 1995/01/24 22:03:22 mike
* text localization.
*
* Revision 1.53 1995/01/23 13:05:59 adam
* added save/load game text
*
* Revision 1.52 1995/01/22 15:58:42 mike
* localization
*
* Revision 1.51 1994/12/29 12:08:47 rob
* removed new text strings.
*
* Revision 1.50 1994/12/28 16:47:14 rob
* Added new com setup strings.
*
* Revision 1.49 1994/12/15 23:24:22 rob
* Added string for rejoin failure.
*
* Revision 1.48 1994/12/15 10:16:06 adam
* added lame trademark notice
*
* Revision 1.47 1994/12/14 18:21:23 yuan
* *** empty log message ***
*
* Revision 1.46 1994/12/14 16:57:01 matt
* Added text for hat2
*
* Revision 1.45 1994/12/14 08:50:12 allender
* *** empty log message ***
*
* Revision 1.44 1994/12/13 19:43:29 rob
* Added string.
*
* Revision 1.43 1994/12/13 12:54:45 mike
* add strings for hostages on board when you die.
*
* Revision 1.42 1994/12/13 10:04:09 allender
* *** empty log message ***
*
* Revision 1.41 1994/12/12 22:20:23 rob
* Added two new localized strings for modem.c
*
* Revision 1.40 1994/12/09 19:46:26 yuan
* Localized the sucker.
*
* Revision 1.39 1994/12/09 14:35:30 yuan
* Added localization string for Rob.
*
* Revision 1.38 1994/12/09 14:08:16 mike
* text message for remaining ships at end bonus.
*
* Revision 1.37 1994/12/09 00:28:26 rob
* Added "died in mine" string.
*
* Revision 1.36 1994/12/08 14:30:31 yuan
* Fixed off by one problem.
*
* Revision 1.35 1994/12/08 11:18:56 allender
* demo text string
*
* Revision 1.33 1994/12/07 19:14:33 matt
* Cleaned up command-line options and command-line help message
*
* Revision 1.32 1994/12/07 17:20:34 yuan
* Localization
*
* Revision 1.31 1994/12/07 16:49:15 yuan
* More localization
*
* Revision 1.30 1994/12/07 14:52:11 yuan
* Localization 492
*
* Revision 1.29 1994/12/07 11:28:12 matt
* Did a little localization support
*
* Revision 1.28 1994/12/06 18:29:31 mike
* Add text for cheat: Start at any level.
*
* Revision 1.27 1994/12/06 16:30:39 yuan
* Localization
*
* Revision 1.26 1994/12/06 15:14:55 yuan
* Fixed number of textstrings.
*
* Revision 1.25 1994/12/06 15:13:52 yuan
* Localization
*
* Revision 1.24 1994/12/06 13:46:24 adam
* *** empty log message ***
*
* Revision 1.23 1994/12/05 23:17:28 yuan
* Localization bugs fixed.
*
* Revision 1.22 1994/12/05 23:05:41 yuan
* Localization 425
*
* Revision 1.21 1994/12/05 22:42:27 rob
* Added new connect status strings
*
* Revision 1.20 1994/12/05 16:47:30 rob
* Added a new string.
*
*
* Revision 1.19 1994/12/03 22:35:17 yuan
* Localization 412
*
* Revision 1.18 1994/12/03 17:53:42 yuan
* 382.
------------------------------------------------------------------------
main/textures.h:
* Revision 1.1 1995/05/16 16:04:20 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:31:54 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.3 1994/03/15 16:32:56 yuan
* Cleaned up bm-loading code.
* (Fixed structures too)
*
* Revision 1.2 1993/12/05 22:49:53 matt
* Reworked include files in an attempt to cut down on build times
*
* Revision 1.1 1993/12/05 20:16:26 matt
* Initial revision
------------------------------------------------------------------------
main/titles.c:
* Revision 1.13 1995/11/03 12:52:23 allender
* shareware changes
*
* Revision 1.12 1995/10/31 10:17:56 allender
* shareware stuff
*
* Revision 1.11 1995/10/24 18:12:02 allender
* don't do special processing on do_appl_quit anymore
*
* Revision 1.10 1995/10/21 22:25:02 allender
* added bald guy cheat
*
* Revision 1.9 1995/10/17 13:14:30 allender
* mouse will now move through title stuff
*
* Revision 1.8 1995/10/15 23:00:34 allender
* made mouse move through screens and do event processing
* at title screens
*
* Revision 1.7 1995/10/10 11:52:10 allender
* use appropriate end01 file for registered
*
* Revision 1.6 1995/09/24 10:53:09 allender
* added cmd-q to quit during titles screens and briefing screens
*
* Revision 1.5 1995/08/25 15:39:37 allender
* save and resotre interpolation method during briefing screens
*
* Revision 1.4 1995/08/24 16:10:57 allender
* endgame screen changes, and fixups to other stuff
*
* Revision 1.3 1995/08/14 14:40:37 allender
* fixed up briefing screens to look correct.
* made robot canvas smaller for now for speec
*
* Revision 1.2 1995/06/13 13:07:05 allender
* do a bitblt during tight loops to get spinning robots and cursor flashing
*
* Revision 1.1 1995/05/16 15:31:52 allender
* Initial revision
*
* Revision 2.10 1995/06/15 12:14:16 john
* Made end game, win game and title sequences all go
* on after 5 minutes automatically.
*
* Revision 2.9 1995/06/14 17:25:48 john
* Fixed bug with VFX palette not getting loaded for credits, titles.
*
* Revision 2.8 1995/05/26 16:16:30 john
* Split SATURN into define's for requiring cd, using cd, etc.
* Also started adding all the Rockwell stuff.
*
* Revision 2.7 1995/03/24 13:11:36 john
* Added save game during briefing screens.
*
* Revision 2.6 1995/03/21 14:41:17 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.5 1995/03/15 14:33:45 john
* Added code to force the Descent CD-rom in the drive.
*
* Revision 2.4 1995/03/14 18:24:50 john
* Force Destination Saturn to use CD-ROM drive.
*
* Revision 2.3 1995/03/10 13:05:52 john
* Added code so that palette is correct for VFX1 helmets.
*
* Revision 2.2 1995/03/07 14:19:28 mike
* More destination saturn stuff.
*
* Revision 2.1 1995/03/06 15:24:16 john
* New screen techniques.
*
* Revision 2.0 1995/02/27 11:32:50 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.95 1995/02/12 04:07:19 matt
* After freeing Robot_canv, set ptr to NULL
*
* Revision 1.94 1995/02/11 12:41:57 john
* Added new song method, with FM bank switching..
*
* Revision 1.93 1995/02/11 09:51:59 john
* Stripped out all SVGA references.
*
* Revision 1.92 1995/02/07 09:56:10 john
* Fixed bug with wrong title screen drawing during save btwn lvls.
*
* Revision 1.91 1995/02/04 13:53:16 john
* Added code to display the correct titles between levels
* that have robot maps..
*
* Revision 1.90 1995/02/02 16:36:33 adam
* *** empty log message ***
*
* Revision 1.89 1995/02/02 12:23:30 john
* Made between level saves have picture.
*
* Revision 1.88 1995/02/02 01:50:16 adam
* rearranged robot briefings.
*
* Revision 1.87 1995/02/01 22:28:54 mike
* *** empty log message ***
*
* Revision 1.86 1995/02/01 17:12:21 mike
* Make score come after endgame screens.
*
* Revision 1.85 1995/02/01 14:04:17 adam
* mucked with screens
*
* Revision 1.84 1995/01/28 16:59:30 adam
* added hook for special first briefing music
*
* Revision 1.83 1995/01/21 17:04:35 mike
* fix endgame text bogosity.
*
* Revision 1.82 1995/01/21 16:26:29 matt
* Made endlevel briefing work with missions
*
* Revision 1.81 1995/01/21 13:15:20 adam
* added new robot briefings.
*
* Revision 1.80 1995/01/20 22:47:33 matt
* Mission system implemented, though imcompletely
*
* Revision 1.79 1995/01/20 14:57:52 mike
* support arbitrary number of screens/level.
*
* Revision 1.78 1995/01/15 14:29:12 john
* Made the exit door page in.
*
* Revision 1.77 1995/01/15 14:27:09 adam
* messed with endgame stuff
*
* Revision 1.76 1995/01/14 15:42:49 mike
* Make endgame for registered support 3 screens.
*
* Revision 1.75 1995/01/14 14:00:59 adam
* *** empty log message ***
*
* Revision 1.74 1995/01/09 11:28:53 mike
* Support new $O thingy for bitmaps which cycle and are not the exit door.
*
* Revision 1.73 1995/01/02 12:39:13 mike
* fix secret level sequencing.
*
* Revision 1.72 1994/12/12 19:44:14 rob
* Added kill matrix to end of game sequence.
*
* Revision 1.71 1994/12/09 22:32:57 adam
* messed with text positioning
*
* Revision 1.70 1994/12/09 14:08:37 mike
* make briefing text work with hog files.
*
* Revision 1.69 1994/12/09 00:41:47 mike
* fix hang in automap print screen.
*
* Revision 1.68 1994/12/08 20:56:36 john
* More cfile stuff.
*
* Revision 1.67 1994/12/08 17:19:11 yuan
* Cfiling stuff.
*
* Revision 1.66 1994/12/07 11:28:00 matt
* Did a localization suppport
*
* Revision 1.65 1994/12/06 17:10:23 yuan
* Fixed missing )
*
* Revision 1.64 1994/12/06 17:00:45 rob
* Fixed problem with finishing the game in modem/serial mode.
*
* Revision 1.63 1994/12/06 16:58:37 matt
* Killed warnings
*
* Revision 1.62 1994/12/06 15:54:28 mike
* fix guy at end...
------------------------------------------------------------------------
main/titles.h:
* Revision 2.0 1995/02/27 11:27:40 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.12 1995/02/02 12:23:29 john
* Made between level saves have picture.
*
* Revision 1.11 1995/01/21 16:27:11 matt
* Made endlevel briefing work with missions
*
* Revision 1.10 1995/01/20 22:48:02 matt
* Mission system implemented, though imcompletely
*
* Revision 1.9 1994/12/07 19:14:07 matt
* Kill briefing screen disable switch for release version
*
* Revision 1.8 1994/11/21 16:40:24 matt
* Added prototype
*
* Revision 1.7 1994/11/05 14:05:54 john
* Fixed fade transitions between all screens by making gr_palette_fade_in and out keep
* track of whether the palette is faded in or not. Then, wherever the code needs to fade out,
* it just calls gr_palette_fade_out and it will fade out if it isn't already. The same with fade_in.
* This eliminates the need for all the flags like Menu_fade_out, game_fade_in palette, etc.
*
* Revision 1.6 1994/11/01 17:57:48 mike
* Briefing screens.
*
* Revision 1.5 1994/10/31 22:28:04 mike
* briefing screens
*
* Revision 1.4 1994/09/16 16:14:31 john
* Added acrade sequencing.
*
* Revision 1.3 1994/06/22 00:26:53 matt
* Added support for Interplay's animating title sequence
*
* Revision 1.2 1994/06/17 12:13:36 john
* More newdemo stuff; made editor->game transition start in slew mode.
*
* Revision 1.1 1994/06/17 10:50:12 john
* Initial revision
------------------------------------------------------------------------
main/vclip.c:
* Revision 1.2 1995/09/14 14:14:31 allender
* return void in draw_vclip_object
*
* Revision 1.1 1995/05/16 15:32:00 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:32:41 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.8 1994/09/25 23:40:52 matt
* Changed the object load & save code to read/write the structure fields one
* at a time (rather than the whole structure at once). This mean that the
* object structure can be changed without breaking the load/save functions.
* As a result of this change, the local_object data can be and has been
* incorporated into the object array. Also, timeleft is now a property
* of all objects, and the object structure has been otherwise cleaned up.
*
* Revision 1.7 1994/09/25 15:45:26 matt
* Added OBJ_LIGHT, a type of object that casts light
* Added generalized lifeleft, and moved it to local_object
*
* Revision 1.6 1994/09/09 20:05:57 mike
* Add vclips for weapons.
*
* Revision 1.5 1994/06/14 21:14:35 matt
* Made rod objects draw lighted or not depending on a parameter, so the
* materialization effect no longer darkens.
*
* Revision 1.4 1994/06/08 18:16:24 john
* Bunch of new stuff that basically takes constants out of the code
* and puts them into bitmaps.tbl.
*
* Revision 1.3 1994/06/03 10:47:17 matt
* Made vclips (used by explosions) which can be either rods or blobs, as
* specified in BITMAPS.TBL. (This is for the materialization center effect).
*
* Revision 1.2 1994/05/11 09:25:25 john
* Abandoned new vclip system for now because each wallclip, vclip,
* etc, is different and it would be a huge pain to change all of them.
*
* Revision 1.1 1994/05/10 15:21:12 john
* Initial revision
------------------------------------------------------------------------
main/vclip.h:
* Revision 1.2 1995/09/14 14:14:45 allender
* return void in draw_vclip_object
*
* Revision 1.1 1995/05/16 16:04:35 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:32:42 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.33 1994/11/21 11:17:57 adam
* *** empty log message ***
*
* Revision 1.32 1994/10/12 13:07:07 mike
* Add VCLIP_POWERUP_DISAPPEARANCE.
*
* Revision 1.31 1994/10/12 10:23:54 adam
* *** empty log message ***
*
* Revision 1.30 1994/10/11 12:25:21 matt
* Added "hot rocks" that create badass explosion when hit by weapons
*
* Revision 1.29 1994/10/06 14:10:07 matt
* Added constant for player appearence effect
*
* Revision 1.28 1994/09/26 08:40:30 adam
* *** empty log message ***
*
* Revision 1.27 1994/09/10 17:30:57 mike
* move a prototype here, had been defined in object.c
*
* Revision 1.26 1994/09/09 20:04:25 mike
* Add weapon_vclip.
*
* Revision 1.25 1994/08/31 19:27:09 mike
* Increase max number of Vclips for new pile of weapon powerups.
*
* Revision 1.24 1994/08/14 23:14:43 matt
* Added animating bitmap hostages, and cleaned up vclips a bit
*
* Revision 1.23 1994/07/23 19:56:39 matt
* Took out unused constant
*
* Revision 1.22 1994/07/22 10:42:10 adam
* upped max no. of vclips
*
* Revision 1.21 1994/06/14 21:15:14 matt
* Made rod objects draw lighted or not depending on a parameter, so the
* materialization effect no longer darkens.
*
* Revision 1.20 1994/06/09 19:38:16 john
* Made each Vclip have its own sound... but only used in the
* materialization center.
*
* Revision 1.19 1994/06/09 11:46:26 john
* Took out unused vclip defines.
*
* Revision 1.18 1994/06/08 18:16:33 john
* Bunch of new stuff that basically takes constants out of the code
* and puts them into bitmaps.tbl.
*
* Revision 1.17 1994/06/08 12:49:01 mike
* Add light_value to vclip.
*
* Revision 1.16 1994/06/08 11:43:28 mike
* Allow 20 vclips, I think (anyway, more than it used to be, probably 12).
*
* Revision 1.15 1994/06/03 10:48:22 matt
* Made vclips (used by explosions) which can be either rods or blobs, as
* specified in BITMAPS.TBL. (This is for the materialization center effect).
*
* Revision 1.14 1994/06/01 17:21:08 john
* Added muzzle flash
*
* Revision 1.13 1994/06/01 10:34:02 john
* Added robot morphing effect.
*
* Revision 1.12 1994/05/16 16:17:38 john
* Bunch of stuff on my Inferno Task list May16-23
*
* Revision 1.11 1994/05/10 18:32:50 john
* *** empty log message ***
*
* Revision 1.10 1994/04/29 14:35:52 matt
* Added second kind of fireball
*
* Revision 1.9 1994/04/11 10:36:31 yuan
* Started adding types for exploding hostages.
*
* Revision 1.8 1994/04/07 16:27:43 yuan
* Added SUPERPIG the robot with 200 hit points.
* Now robots can take multiple hits before blowing up.
*
* Revision 1.7 1994/04/07 13:45:58 yuan
* Defined Pclips... maybe shouldn't be in this file.
*
* Revision 1.6 1994/03/28 20:58:22 yuan
* Added blood vclip constant
*
* Revision 1.5 1994/03/15 16:31:56 yuan
* Cleaned up bm-loading code.
* (And structures)
*
* Revision 1.4 1994/03/04 17:09:43 yuan
* New wall stuff
*
* Revision 1.3 1994/01/11 10:59:01 yuan
* Added effects
*
* Revision 1.2 1994/01/06 17:13:15 john
* Added Video clip functionality
*
* Revision 1.1 1994/01/06 15:10:15 john
* Initial revision
------------------------------------------------------------------------
main/wall.c:
* Revision 1.1 1995/05/16 15:32:08 allender
* Initial revision
*
* Revision 2.1 1995/03/21 14:39:04 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.0 1995/02/27 11:28:32 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.112 1995/02/22 13:53:07 allender
* remove anonymous unions from object structure
*
* Revision 1.111 1995/02/01 17:32:17 adam
* Took out a bogus int3.
*
* Revision 1.110 1995/02/01 17:20:24 john
* Lintized.
*
* Revision 1.109 1995/01/21 17:39:50 matt
* Cleaned up laser/player hit wall confusions
*
* Revision 1.108 1995/01/21 17:14:17 rob
* Fixed bug in multiplayer door-butting.
*
* Revision 1.107 1995/01/18 18:57:11 rob
* Added new hostage door hooks.
*
* Revision 1.106 1995/01/18 18:48:18 allender
* removed #ifdef newdemo's. Added function call to record a door that
* starts to open. This fixes the rewind problem
*
* Revision 1.105 1995/01/16 11:55:39 mike
* make control center (and robots whose id == your playernum) not able to open doors.
*
* Revision 1.104 1994/12/11 23:07:21 matt
* Fixed stuck objects & blastable walls
*
* Revision 1.103 1994/12/10 16:44:34 matt
* Added debugging code to track down door that turns into rock
*
* Revision 1.102 1994/12/06 16:27:05 matt
* Added debugging
*
* Revision 1.101 1994/12/02 10:50:27 yuan
* Localization
*
* Revision 1.100 1994/11/30 19:41:22 rob
* Put in a fix so that door opening sounds travel through the door.
*
* Revision 1.99 1994/11/28 11:59:50 yuan
* *** empty log message ***
*
* Revision 1.98 1994/11/28 11:25:45 matt
* Cleaned up key hud messages
*
* Revision 1.97 1994/11/27 23:15:11 matt
* Made changes for new mprintf calling convention
*
* Revision 1.96 1994/11/19 15:18:29 mike
* rip out unused code and data.
*
* Revision 1.95 1994/11/17 14:57:12 mike
* moved segment validation functions from editor to main.
*
* Revision 1.94 1994/11/07 08:47:30 john
* Made wall state record.
*
* Revision 1.93 1994/11/04 16:06:37 rob
* Fixed network damage of blastable walls.
*
* Revision 1.92 1994/11/02 21:54:01 matt
* Don't let objects with zero size keep door from shutting
*
* Revision 1.91 1994/10/31 13:48:42 rob
* Fixed bug in opening doors over network/modem. Added a new message
* type to multi.c that communicates door openings across the net.
* Changed includes in multi.c and wall.c to accomplish this.
*
* Revision 1.90 1994/10/28 14:42:41 john
* Added sound volumes to all sound calls.
*
* Revision 1.89 1994/10/23 19:16:55 matt
* Fixed bug with "no key" messages
------------------------------------------------------------------------
main/wall.h:
* Revision 1.1 1995/05/16 16:05:14 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:31:36 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.47 1994/11/19 15:20:35 mike
* rip out unused code and data
*
* Revision 1.46 1994/10/25 15:40:12 yuan
* MAX_WALLS pumped up
*
* Revision 1.45 1994/10/23 19:17:07 matt
* Fixed bug with "no key" messages
*
* Revision 1.44 1994/10/18 15:38:03 mike
* Define hidden walls.
*
* Revision 1.43 1994/10/04 13:32:26 adam
* commented out MAX_DOOR_ANIMS
*
* Revision 1.42 1994/10/04 13:31:21 adam
* upped MAX_WALL_ANIMS to 30
*
* Revision 1.41 1994/09/29 00:42:30 matt
* Made hitting a locked door play a sound
*
* Revision 1.40 1994/09/27 15:42:41 mike
* Prototype Wall_names.
*
* Revision 1.39 1994/09/23 22:15:32 matt
* Made doors not close on objects, made doors open again if shot while
* closing, and cleaned up walls/doors a bit.
*
* Revision 1.38 1994/09/22 15:31:33 matt
* Mucked with, and hopefully improved, exploding walls
*
* Revision 1.37 1994/09/21 17:17:05 mike
* Make objects stuck in doors go away when door opens.
*
* Revision 1.36 1994/09/13 21:10:46 matt
* Added wclips that use tmap1 instead of tmap2, saving lots of merging
*
* Revision 1.35 1994/09/13 20:11:08 yuan
* *** empty log message ***
*
* Revision 1.34 1994/09/10 13:31:53 matt
* Made exploding walls a type of blastable walls.
* Cleaned up blastable walls, making them tmap2 bitmaps.
*
* Revision 1.33 1994/08/17 12:55:34 matt
* Added external walls to wall_is_doorway
*
* Revision 1.32 1994/08/15 17:54:35 john
* *** empty log message ***
*
* Revision 1.31 1994/08/15 17:46:56 yuan
* Added external walls, fixed blastable walls.
*
* Revision 1.30 1994/08/05 21:17:21 matt
* Allow two doors to be linked together
*
* Revision 1.29 1994/08/01 10:39:10 matt
* Parenthesized parms to WID() macro
*
* Revision 1.28 1994/07/20 17:35:03 yuan
* Some minor bug fixes and new key gauges...
*
* Revision 1.27 1994/07/19 14:32:03 yuan
* Fixed keys bug... renumbered some constants.
*
* Revision 1.26 1994/07/14 22:38:29 matt
* Added exploding doors
*
* Revision 1.25 1994/07/11 15:08:43 yuan
* Wall anim file names stored in structure.
------------------------------------------------------------------------
main/weapon.c:
* Revision 1.2 1995/10/31 10:17:39 allender
* new shareware stuff
*
* Revision 1.1 1995/05/16 15:32:16 allender
* Initial revision
*
* Revision 2.1 1995/03/21 14:38:43 john
* Ifdef'd out the NETWORK code.
*
* Revision 2.0 1995/02/27 11:27:25 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.54 1995/02/15 15:21:48 mike
* make smart missile select if mega missiles used up.
*
*
* Revision 1.53 1995/02/12 02:12:30 john
* Fixed bug with state restore making weapon beeps.
*
* Revision 1.52 1995/02/09 20:42:15 mike
* change weapon autoselect, always autoselect smart, mega.
*
* Revision 1.51 1995/02/07 20:44:26 mike
* autoselect mega, smart when you pick them up.
*
* Revision 1.50 1995/02/07 13:32:25 rob
* Added include of multi.h
*
* Revision 1.49 1995/02/07 13:21:33 yuan
* Fixed 2nd typo
*
* Revision 1.48 1995/02/07 13:16:39 yuan
* Fixed typo.
*
* Revision 1.47 1995/02/07 12:53:12 rob
* Added network sound prop. to weapon switch.
*
* Revision 1.46 1995/02/06 15:53:17 mike
* don't autoselect smart or mega missile when you pick it up.
*
* Revision 1.45 1995/02/02 21:43:34 mike
* make autoselection better.
*
* Revision 1.44 1995/02/02 16:27:21 mike
* make concussion missiles trade up.
*
* Revision 1.43 1995/02/01 23:34:57 adam
* messed with weapon change sounds
*
* Revision 1.42 1995/02/01 17:12:47 mike
* Make smart missile, mega missile not auto-select.
*
* Revision 1.41 1995/02/01 15:50:54 mike
* fix bogus weapon selection sound code.
*
* Revision 1.40 1995/01/31 16:16:31 mike
* Separate smart blobs for robot and player.
*
* Revision 1.39 1995/01/30 21:12:11 mike
* Use new weapon selection sounds, different for primary and secondary.
*
* Revision 1.38 1995/01/29 13:46:52 mike
* Don't auto-select fusion cannon when you run out of energy.
*
* Revision 1.37 1995/01/20 11:11:13 allender
* record weapon changes again. (John somehow lost my 1.35 changes).
*
* Revision 1.36 1995/01/19 17:00:46 john
* Made save game work between levels.
*
* Revision 1.34 1995/01/09 17:03:48 mike
* fix autoselection of weapons.
*
* Revision 1.33 1995/01/05 15:46:31 john
* Made weapons not rearm when starting a saved game.
*
* Revision 1.32 1995/01/03 12:34:23 mike
* autoselect next lower weapon if run out of smart or mega missile.
*
* Revision 1.31 1994/12/12 21:39:37 matt
* Changed vulcan ammo: 10K max, 5K w/weapon, 1250 per powerup
*
* Revision 1.30 1994/12/09 19:55:04 matt
* Added weapon name in "not available in shareware" message
*
* Revision 1.29 1994/12/06 13:50:24 adam
* added shareware msg. when choosing 4 top weapons
*
* Revision 1.28 1994/12/02 22:07:13 mike
* if you gots 19 concussion missiles and you runs over 4, say you picks up 1, not 4, we do the math, see?
*
* Revision 1.27 1994/12/02 20:06:24 matt
* Made vulcan ammo print at approx 25 times actual
*
* Revision 1.26 1994/12/02 15:05:03 matt
* Fixed bogus weapon constants and arrays
*
* Revision 1.25 1994/12/02 10:50:34 yuan
* Localization
*
* Revision 1.24 1994/11/29 15:48:28 matt
* selecting weapon now makes sound
*
* Revision 1.23 1994/11/28 11:26:58 matt
* Cleaned up hud message printing for picking up weapons
*
* Revision 1.22 1994/11/27 23:13:39 matt
* Made changes for new mprintf calling convention
*
* Revision 1.21 1994/11/12 16:38:34 mike
* clean up default ammo stuff.
*
* Revision 1.20 1994/11/07 17:41:18 mike
* messages for when you try to fire a weapon you don't have or don't have ammo for.
*
* Revision 1.19 1994/10/21 20:40:05 mike
* fix double vulcan ammo.
*
* Revision 1.18 1994/10/20 09:49:05 mike
* kill messages no one liked...*sniff* *sniff*
*
* Revision 1.17 1994/10/19 11:17:07 mike
* Limit amount of player ammo.
*
* Revision 1.16 1994/10/12 08:04:18 mike
* Fix proximity/homing confusion.
*
* Revision 1.15 1994/10/11 18:27:58 matt
* Changed auto selection of secondary weapons
*
* Revision 1.14 1994/10/08 23:37:54 matt
* Don't pick up weapons you already have; also fixed auto_select bug
* for seconary weapons
*
* Revision 1.13 1994/10/08 14:55:47 matt
* Fixed bug that selected vulcan cannon when picked up ammo, even though
* you didn't have the weapon.
*
* Revision 1.12 1994/10/08 12:50:32 matt
* Fixed bug that let you select weapons you don't have
*
* Revision 1.11 1994/10/07 23:37:56 matt
* Made weapons select when pick up better one
*
* Revision 1.10 1994/10/07 16:02:08 matt
* Fixed problem with weapon auto-select
*
* Revision 1.9 1994/10/05 17:00:20 matt
* Made player_has_weapon() public and moved constants to header file
*
* Revision 1.8 1994/09/26 11:27:13 mike
* Fix auto selection of weapon when you run out of ammo.
*
* Revision 1.7 1994/09/13 16:40:45 mike
* Add rearm delay and missile firing delay.
*
* Revision 1.6 1994/09/13 14:43:12 matt
* Added cockpit weapon displays
*
* Revision 1.5 1994/09/03 15:23:06 mike
* Auto select next weaker weapon when one runs out, clean up code.
*
* Revision 1.4 1994/09/02 16:38:19 mike
* Eliminate a pile of arrays, associate weapon data with Weapon_info.
*
* Revision 1.3 1994/09/02 11:57:10 mike
* Add a bunch of stuff, I forget what.
*
* Revision 1.2 1994/06/03 16:26:32 john
* Initial version.
*
* Revision 1.1 1994/06/03 14:40:43 john
* Initial revision
------------------------------------------------------------------------
main/weapon.h:
* Revision 1.2 1995/09/14 14:07:10 allender
* fixed prototypes to have return value
*
* Revision 1.1 1995/05/16 16:05:22 allender
* Initial revision
*
* Revision 2.0 1995/02/27 11:31:10 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.44 1995/01/30 17:14:18 mike
* halve rate of vulcan ammo consumption.
*
* Revision 1.43 1995/01/19 17:45:04 mike
* damage_force removed, that information coming from strength field.
*
* Revision 1.42 1995/01/05 15:46:11 john
* Made weapons not rearm when starting a saved game.
*
* Revision 1.41 1995/01/04 12:20:27 john
* Declearations to work better with game state save.
*
*
* Revision 1.40 1994/12/13 12:54:16 mike
* fix proximity, homing flags, backwards!
*
* Revision 1.39 1994/12/11 16:17:57 mike
* change default weapon life so shots from ctrlcen on level 6 won't evaporate before they hit you.
*
* Revision 1.38 1994/12/09 19:55:26 matt
* Added weapon name in "not available in shareware" message
*
* Revision 1.37 1994/12/07 12:55:27 mike
* tweak vulcan amounts.
*
* Revision 1.36 1994/12/03 19:03:56 matt
* Fixed vulcan ammo HUD message
*
* Revision 1.35 1994/12/02 15:05:02 matt
* Fixed bogus weapon constants and arrays
*
* Revision 1.34 1994/11/29 14:26:05 john
* Again.
*
* Revision 1.33 1994/11/29 14:13:47 adam
* Changed the byte flash sound to short.
*
* Revision 1.32 1994/11/12 16:36:55 mike
* default ammo stuff.
*
* Revision 1.31 1994/10/21 10:55:24 adam
* upped MAX_WEAPON_TYPES to 30
*
* Revision 1.30 1994/10/19 11:16:37 mike
* Limit ammo amounts.
*
* Revision 1.29 1994/10/12 08:05:04 mike
* Clean up homing/proximity mess.
*
* Revision 1.28 1994/10/08 23:37:53 matt
* Don't pick up weapons you already have; also fixed auto_select bug
* for seconary weapons
*
* Revision 1.27 1994/10/07 23:37:56 matt
* Made weapons select when pick up better one
*
* Revision 1.26 1994/10/07 16:02:17 matt
* Fixed problem with weapon auto-select
*
* Revision 1.25 1994/10/05 17:07:44 matt
* Made player_has_weapon() public and moved constants to header file
*
* Revision 1.24 1994/09/30 21:50:49 mike
* Add homing_flag and 3 dummy bytes to weapon_info.
*
* Revision 1.23 1994/09/30 13:47:41 mike
* Make speed and strength be difficulty level based.
*
* Revision 1.22 1994/09/20 16:10:13 mike
* Prototype Primary_weapon_names and Secondary_weapon_names.
*
* Revision 1.21 1994/09/20 12:17:21 adam
* upped weapon types
*
* Revision 1.20 1994/09/13 16:40:29 mike
* Define REARM_TIME -- time it takes until you can fire a newly armed weapon.
*
* Revision 1.19 1994/09/13 14:43:03 matt
* Added cockpit weapon displays
*
* Revision 1.18 1994/09/11 15:50:34 mike
* Add matter and bounce to weapon_info.
*
* Revision 1.17 1994/09/10 17:32:17 mike
* Add thrust to weapon_info.
*
* Revision 1.16 1994/09/09 20:04:54 mike
* Add vclips for weapons.
*
* Revision 1.15 1994/09/07 15:59:14 mike
* Add default lifetimes to weapons, destroyable, lifetime, damage_radius, damage_force fields to weapons.
*
* Revision 1.14 1994/09/03 15:18:06 mike
* Add prototype for auto_select_weapon.
*
* Revision 1.13 1994/09/02 16:38:33 mike
* Move data from global arrays to Weapon_info.
*
* Revision 1.12 1994/09/02 11:54:59 mike
* Add a whole slew of constants for the whole slew of new weapons.
*
* Revision 1.11 1994/08/23 16:39:15 mike
* Add light to weapon struct
------------------------------------------------------------------------
maths/fixc.c:
* Revision 1.7 1995/09/22 14:08:16 allender
* fixed fix_atan2 to work correctly with doubles
*
* Revision 1.6 1995/08/31 15:43:49 allender
* *** empty log message ***
*
* Revision 1.5 1995/07/05 16:15:15 allender
* make fixmuldiv use doubles for PPC implementation
*
* Revision 1.4 1995/05/15 13:57:36 allender
* make fixmuldiv compile when compiling under 68k
*
* Revision 1.3 1995/05/11 13:02:59 allender
* some routines are now in assembly
*
* Revision 1.2 1995/05/04 20:04:45 allender
* use MPW fixdiv if compiling with MPW (why did I do this?)
*
* Revision 1.1 1995/04/17 11:37:54 allender
* Initial revision
*
*
* --- PC RCS Info ---
* Revision 1.1 1995/03/08 18:55:09 matt
* Initial revision
------------------------------------------------------------------------
maths/tables.c:
* Revision 1.2 1995/08/31 15:44:36 allender
* ..
*
* Revision 1.1 1995/04/17 11:38:04 allender
* Initial revision
------------------------------------------------------------------------
maths/vecmat.c:
* Revision 1.5 1995/10/30 11:08:16 allender
* fix check_vec to return if vector is the NULL vector
*
* Revision 1.4 1995/09/23 09:38:14 allender
* removed calls for PPC that are now handled in asm
*
* Revision 1.3 1995/08/31 15:50:24 allender
* fixing up of functions for PPC
*
* Revision 1.2 1995/07/05 16:40:21 allender
* some vecmat stuff might be using isqrt -- commented out
* for now
*
* Revision 1.1 1995/04/17 16:18:02 allender
* Initial revision
*
*
* --- PC RCS Information ---
* Revision 1.1 1995/03/08 15:56:50 matt
* Initial revision
------------------------------------------------------------------------
maths/vecmata.asm:
; Revision 1.54 1995/01/31 00:14:50 matt
; Took out int3 from dotprod overflow, since it saturates now
;
; Revision 1.53 1994/12/14 18:29:33 matt
; Made dotprod overflow check stay in, and return saturated value
;
; Revision 1.52 1994/12/14 12:34:13 matt
; Disabled now-unused vector_2_matrix_norm()
;
; Revision 1.51 1994/12/13 16:55:13 matt
; Ripped out optimization from last version, which was bogus
;
; Revision 1.50 1994/12/13 14:55:18 matt
; Use quick normalize in a couple of places where it was safe to do so
;
; Revision 1.49 1994/12/13 14:44:12 matt
; Added vm_vector_2_matrix_norm()
;
; Revision 1.48 1994/12/13 13:26:49 matt
; Fixed overflow check
;
; Revision 1.47 1994/12/03 15:39:54 matt
; Gracefully handle some vector_2_matrix problems
;
; Revision 1.46 1994/11/19 17:15:05 matt
; Assemble out some code not used in DESCENT
;
; Revision 1.45 1994/11/17 11:41:05 matt
; Put handling in extract_angles_from_matrix to deal with bad matrices
;
; Revision 1.44 1994/11/16 11:48:10 matt
; Added error checking to vm_extract_angles_matrix()
;
; Revision 1.43 1994/09/19 22:00:10 matt
; Fixed register trash
;
; Revision 1.42 1994/09/11 19:23:05 matt
; Added vm_vec_normalized_dir_quick()
;
; Revision 1.41 1994/08/14 13:28:38 matt
; Put in check for zero-length vector in extract angles
;
; Revision 1.40 1994/07/19 18:52:53 matt
; Added vm_vec_normalize_quick() and vm_vec_copy_normalize_quick()
;
; Revision 1.39 1994/06/16 18:24:22 matt
; Added vm_vec_mag_quick()
;
; Revision 1.38 1994/06/10 23:18:38 matt
; Added new code for vm_vec_ang_2_matrix() which may be better, but may
; not be.
;
; Revision 1.37 1994/05/22 18:17:29 mike
; Optimize vm_vec_dist_quick, using jns in place of abs_eax.
;
; Revision 1.36 1994/05/19 12:07:04 matt
; Fixed globals and macros and added a constant
;
; Revision 1.35 1994/05/19 09:19:00 matt
; Made vm_vec_normalized_dir() return mag of vector
;
; Revision 1.34 1994/05/18 22:28:01 matt
; Added function vm_vec_normalized_dir()
; Added C macros IS_ZERO_VEC(), vm_vec_zero(), and vm_set_identity()
; Added C global static vars vmd_zero_vector & vmd_identity_matrix
;
; Revision 1.33 1994/05/18 21:44:16 matt
; Added functions:
; vm_extract_angles_vector()
; vm_extract_angles_vector_normalized()
; vm_vec_copy_normalize()
;
; Revision 1.32 1994/05/13 12:41:51 matt
; Added new function, vm_vec_dist_quick(), which does an approximation.
;
; Revision 1.31 1994/05/04 17:41:31 mike
; Comment out debug_brk on null vector.
;
; Revision 1.30 1994/04/15 21:41:31 matt
; Check for foward vector straigt up in extract angles routine
;
; Revision 1.29 1994/03/30 15:45:05 matt
; Added two functions, vm_vec_scale_add() & vm_vec_scale_add2()
;
; Revision 1.28 1994/02/26 19:23:35 matt
; Do an int3 when we get a null vector when computing surface normal
;
; Revision 1.27 1994/02/10 18:29:45 matt
; Changed 'if DEBUG_ON' to 'ifndef NDEBUG'
;
; Revision 1.26 1994/02/10 18:28:55 matt
; Fixed bugs in extract angles function
;
; Revision 1.25 1994/01/31 22:46:07 matt
; Added vm_extract_angles_matrix() function
;
; Revision 1.24 1994/01/30 19:29:55 matt
; Put in debug_brk when vm_vec_2_matrix got zero-length vector
;
; Revision 1.23 1994/01/25 15:27:59 matt
; Added debugging check for dotprod overflow
;
; Revision 1.22 1994/01/24 11:52:59 matt
; Added checking for dest==src for several functions where this is not allowed
;
; Revision 1.21 1994/01/19 23:13:02 matt
; Fixed bug in vm_vec_ang_2_matrix()
;
; Revision 1.20 1994/01/04 12:33:43 mike
; Prevent divide overflow in vm_vec_scale2
;
; Revision 1.19 1993/12/21 19:46:26 matt
; Added function vm_dist_to_plane()
;
; Revision 1.18 1993/12/13 17:26:23 matt
; Added vm_vec_dist()
;
; Revision 1.17 1993/12/02 12:43:39 matt
; New functions: vm_vec_copy_scale(), vm_vec_scale2()
;
; Revision 1.16 1993/10/29 22:39:29 matt
; Changed matrix order, making direction vectors the rows
;
; Revision 1.15 1993/10/29 18:06:01 matt
; Fixed vm_vector_2_matrix() bug when forward vector was straight down
;
; Revision 1.14 1993/10/26 18:51:26 matt
; Fixed some register trashes in vm_vec_ang_2_matrix()
;
; Revision 1.13 1993/10/25 11:49:37 matt
; Made vm_vec_delta_ang() take optional forward vector to return signed delta
;
; Revision 1.12 1993/10/20 01:09:42 matt
; Added vm_vec_delta_ang(), vm_vec_delta_ang_norm(), and vm_vec_ang_2_matrix()
;
; Revision 1.11 1993/10/17 17:03:08 matt
; vm_vector_2_matrix() now takes optional right vector
;
; Revision 1.10 1993/10/10 18:11:42 matt
; Changed angles_2_matrix so that heading & bank rotate in the
; correct directions.
;
; Revision 1.9 1993/09/30 16:17:59 matt
; Fixed bug in vector_2_matrix() by adding another normalize
;
; Revision 1.8 1993/09/29 10:51:58 matt
; Fixed bad register trashes in crossprod, perp, & normal
;
; Revision 1.7 1993/09/28 12:16:46 matt
; Fixed bugs in cross product
; Added func vm_vector_2_matrix()
;
; Revision 1.6 1993/09/24 21:19:37 matt
; Added vm_vec_avg() and vm_vec_avg4()
;
; Revision 1.5 1993/09/20 18:15:07 matt
; Trap zero-length vectors in vm_vec_normalize(), vm_vec_perp(), and vm_vec_normal()
;
; Revision 1.4 1993/09/20 14:56:43 matt
; Fixed bug in vm_vec_normal(), made that routine normalize the results,
; and added new function vm_vec_perp().
;
; Revision 1.3 1993/09/20 10:12:06 mike
; no changes
;
; Revision 1.2 1993/09/17 11:10:33 matt
; Added vm_vec_add2() and vm_vec_sub2(), which take 2 args (dest==src0)
;
; Revision 1.1 1993/09/16 20:10:24 matt
; Initial revision
------------------------------------------------------------------------
misc/args.c:
* Revision 2.0 1995/02/27 11:31:22 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.9 1994/11/29 01:07:57 john
* Took out some unused vars.
*
* Revision 1.8 1994/11/29 01:04:30 john
* Took out descent.ini stuff.
*
* Revision 1.7 1994/09/20 19:29:15 matt
* Made args require exact (not substring), though still case insensitive.
*
* Revision 1.6 1994/07/25 12:33:11 john
* Network "pinging" in.
*
* Revision 1.5 1994/06/17 18:07:50 matt
* Took out printf
*
* Revision 1.4 1994/05/11 19:45:33 john
* *** empty log message ***
*
* Revision 1.3 1994/05/11 18:42:11 john
* Added Descent.ini config file.
*
* Revision 1.2 1994/05/09 17:03:30 john
* Split command line parameters into arg.c and arg.h.
* Also added /dma, /port, /irq to digi.c
*
* Revision 1.1 1994/05/09 16:49:11 john
* Initial revision
------------------------------------------------------------------------
misc/error.c:
* Revision 1.12 1994/12/07 18:49:39 matt
* error_init() can now take NULL as parm
*
* Revision 1.11 1994/11/29 15:42:07 matt
* Added newline before error message
*
* Revision 1.10 1994/11/27 23:20:39 matt
* Made changes for new mprintf calling convention
*
* Revision 1.9 1994/06/20 21:20:56 matt
* Allow NULL for warn func, to kill warnings
*
* Revision 1.8 1994/05/20 15:11:35 mike
* mprintf Warning message so you can actually see it.
*
* Revision 1.7 1994/02/10 18:02:38 matt
* Changed 'if DEBUG_ON' to 'ifndef NDEBUG'
*
* Revision 1.6 1993/10/17 18:19:10 matt
* If error_init() not called, Error() now prints the error message before
* calling exit()
*
* Revision 1.5 1993/10/14 15:29:11 matt
* Added new function clear_warn_func()
*
* Revision 1.4 1993/10/08 16:17:19 matt
* Made Assert() call function _Assert(), rather to do 'if...' inline.
*
* Revision 1.3 1993/09/28 12:45:25 matt
* Fixed wrong print call, and made Warning() not append a CR to string
*
* Revision 1.2 1993/09/27 11:46:35 matt
* Added function set_warn_func()
*
* Revision 1.1 1993/09/23 20:17:33 matt
* Initial revision
------------------------------------------------------------------------
texmap/ntmap.c:
* Revision 1.52 1995/03/14 15:13:06 john
* Increased MAX_Y_Pointers to 480.
*
* Revision 1.51 1995/02/23 14:25:09 john
* Added editor tmap.
*
* Revision 1.50 1995/02/20 18:22:58 john
* Put all the externs in the assembly modules into tmap_inc.asm.
* Also, moved all the C versions of the inner loops into a new module,
* scanline.c.
*
* Revision 1.49 1995/02/20 17:09:11 john
* Added code so that you can build the tmapper with no assembly!
*
* Revision 1.48 1995/01/06 11:11:30 mike
* even when not in editor, have 400 lines in texture map scanline table.
*
* Revision 1.47 1994/12/15 16:43:25 matt
* Took out code only needed by editor
*
* Revision 1.46 1994/12/09 22:35:37 mike
* fix bug in before call to asm_tmap_scanline_per causing write of pixel onto past right border onto left.
*
* Revision 1.45 1994/12/06 16:31:06 mike
* fix bug in asm_tmap_scanline_matt interface.
*
* Revision 1.44 1994/12/04 20:37:18 mike
* *** empty log message ***
*
* Revision 1.43 1994/12/02 23:30:04 mike
* optimizations.
*
* Revision 1.42 1994/11/30 00:57:43 mike
* optimizations.
*
* Revision 1.41 1994/11/28 13:34:27 mike
* optimizations.
*
* Revision 1.40 1994/11/28 01:30:01 mike
* kill warning.
*
* Revision 1.39 1994/11/28 01:28:59 mike
* optimizations.
*
* Revision 1.38 1994/11/21 14:08:07 john
* Took out all multiple instead of divide code.
*
* Revision 1.37 1994/11/19 15:21:52 mike
* rip out unused code.
*
* Revision 1.36 1994/11/14 11:42:51 mike
* optimization.
*
* Revision 1.35 1994/11/12 16:41:36 mike
* *** empty log message ***
*
* Revision 1.34 1994/11/10 21:28:41 mike
* remove call to init_interface_vars_to_assembler.
*
* Revision 1.33 1994/11/10 11:08:59 mike
* detail level stuff.
*
* Revision 1.32 1994/11/09 22:55:52 matt
* Added variable Current_seg_depth for detail level optimization
*
* Revision 1.31 1994/11/09 19:57:31 john
* Added texture rle caching.
*
* Revision 1.30 1994/11/09 19:54:48 mike
* Call flat shader if Tmap_flat_flag set.
*
* Revision 1.29 1994/11/02 21:33:31 john
* Added Burger Bill's optimization, ie.. 2 muls per 8 pixels.
*
* Revision 1.28 1994/11/02 11:32:16 john
* Added code for c callable inner loop and code to
* test dividing out z0.
*
* Revision 1.27 1994/10/28 20:54:32 matt
* Added error checking
*
* Revision 1.26 1994/10/25 11:20:20 mike
* fix bug in lighting overflow checking for one scanline tall linear texture maps.
*
* Revision 1.25 1994/08/03 15:40:33 mike
* Prevent divide overflows, decrease occurrence of precision-caused glitches.
*
* Revision 1.24 1994/07/27 09:31:16 mike
* Fix concave texture map problem, decrease occurrence of unimportant int 3.
*
* Revision 1.23 1994/06/17 12:23:31 mike
* Support non-lighted texture maps.
*
* Revision 1.22 1994/06/11 08:10:24 mike
* Fix mysterious hang bug, lighting value was out of range.
*
* Revision 1.21 1994/06/09 16:10:16 mike
* Change SC2000 from constant to variable.
------------------------------------------------------------------------
texmap/scanline.c:
* Revision 1.2 1995/02/20 18:23:39 john
* Added new module for C versions of inner loops.
*
* Revision 1.1 1995/02/20 17:42:27 john
* Initial revision
------------------------------------------------------------------------
texmap/scanline.h:
* Revision 1.2 1995/02/20 18:23:40 john
* Added new module for C versions of inner loops.
*
* Revision 1.1 1995/02/20 17:44:16 john
* Initial revision
------------------------------------------------------------------------
texmap/texmapl.h:
* Revision 1.14 1995/02/20 18:23:02 john
* Put all the externs in the assembly modules into tmap_inc.asm.
* Also, moved all the C versions of the inner loops into a new module,
* scanline.c.
*
* Revision 1.13 1995/02/20 17:09:16 john
* Added code so that you can build the tmapper with no assembly!
*
* Revision 1.12 1994/11/28 13:34:34 mike
* optimizations.
*
* Revision 1.11 1994/11/12 16:41:27 mike
* function prototype.
*
* Revision 1.10 1994/05/24 17:30:00 mike
* Prototype fix_recip, asm_tmap_scanline_lin_v.
*
* Revision 1.9 1994/04/21 15:04:26 mike
* Add prototype for texmapl.h
*
* Revision 1.8 1994/03/31 08:34:53 mike
* *** empty log message ***
*
* Revision 1.7 1994/03/22 20:37:04 mike
* *** empty log message ***
*
* Revision 1.6 1994/03/14 15:43:03 mike
* streamline code.
*
* Revision 1.5 1994/01/31 15:43:18 mike
* window_height, asm_tmap_scanline_lin_sky_v
*
* Revision 1.4 1994/01/21 21:12:27 mike
* Prototype asm_tmap_scanline_lin_sky
*
* Revision 1.3 1994/01/14 14:01:45 mike
* Add a bunch of variables.
*
* Revision 1.2 1993/11/22 10:25:11 mike
* *** empty log message ***
*
* Revision 1.1 1993/09/08 17:29:13 mike
* Initial revision
------------------------------------------------------------------------
texmap/tmap_flt.asm:
; Revision 1.10 1995/02/20 18:22:53 john
; Put all the externs in the assembly modules into tmap_inc.asm.
; Also, moved all the C versions of the inner loops into a new module,
; scanline.c.
;
; Revision 1.9 1995/02/20 17:08:51 john
; Added code so that you can build the tmapper with no assembly!
;
; Revision 1.8 1994/12/02 23:29:21 mike
; change jb/ja to jl/jg.
;
; Revision 1.7 1994/11/12 16:39:35 mike
; jae to ja.
;
; Revision 1.6 1994/08/09 11:27:53 john
; Added cthru mode.
;
; Revision 1.5 1994/07/08 17:43:11 john
; Added flat-shaded-zbuffered polygon.
;
; Revision 1.4 1994/04/08 16:25:43 mike
; optimize inner loop of flat shader.
;
; Revision 1.3 1994/03/31 08:34:20 mike
; Optimized (well, speeded-up) inner loop for tmap-based flat shader.
;
; Revision 1.2 1993/11/22 10:24:57 mike
; *** empty log message ***
;
; Revision 1.1 1993/09/08 17:29:46 mike
; Initial revision
------------------------------------------------------------------------
texmap/tmap_inc.asm:
; Revision 1.10 1995/02/20 18:22:52 john
; Put all the externs in the assembly modules into tmap_inc.asm.
; Also, moved all the C versions of the inner loops into a new module,
; scanline.c.
;
; Revision 1.9 1994/12/02 23:29:45 mike
; Add y_pointers.
;
; Revision 1.8 1994/11/12 16:39:36 mike
; jae to ja.
;
; Revision 1.7 1994/10/26 23:27:39 john
; Took out references to gr_inverse_table.
;
; Revision 1.6 1994/10/26 23:21:55 mike
; kill unused stuff.
;
; Revision 1.5 1994/07/27 18:39:20 john
; Took out references to blend table
;
; Revision 1.4 1994/01/31 15:40:17 mike
; Add window_height.
;
; Revision 1.3 1993/12/07 12:27:48 john
; Moved bmd_palette to gr_palette
;
; Revision 1.2 1993/11/22 10:24:10 mike
; *** empty log message ***
;
; Revision 1.1 1993/09/08 17:29:47 mike
; Initial revision
------------------------------------------------------------------------
texmap/tmap_lin.asm:
; Revision 1.3 1995/02/20 18:22:57 john
; Put all the externs in the assembly modules into tmap_inc.asm.
; Also, moved all the C versions of the inner loops into a new module,
; scanline.c.
;
; Revision 1.2 1995/02/20 17:09:10 john
; Added code so that you can build the tmapper with no assembly!
;
; Revision 1.1 1994/11/30 12:24:04 mike
; Initial revision
;
; Revision 1.6 1994/11/12 16:39:40 mike
; jae to ja.
;
; Revision 1.5 1994/02/10 21:24:43 matt
; Got rid of debug_on set
;
; Revision 1.4 1994/01/31 15:39:53 mike
; Write additional inner loop for transparency.
;
; Revision 1.3 1994/01/26 11:50:04 john
; Added transparency to linear unlighted texture mapper.
;
; Revision 1.2 1993/11/22 10:24:36 mike
; *** empty log message ***
;
; Revision 1.1 1993/09/08 17:29:50 mike
; Initial revision
------------------------------------------------------------------------
texmap/tmap_ll.asm:
; Revision 1.10 1995/02/20 18:22:54 john
; Put all the externs in the assembly modules into tmap_inc.asm.
; Also, moved all the C versions of the inner loops into a new module,
; scanline.c.
;
; Revision 1.9 1995/02/20 17:09:06 john
; Added code so that you can build the tmapper with no assembly!
;
; Revision 1.8 1994/11/19 23:52:56 mike
; rip out big unrolled loop to save 25K....remember when we cared more about speed?
;
; Revision 1.7 1994/11/12 16:39:41 mike
; jae to ja.
;
; Revision 1.6 1994/03/14 15:45:08 mike
; streamline code.
;
; Revision 1.5 1994/01/24 13:13:12 mike
; dithering.
;
; Revision 1.4 1994/01/14 14:02:47 mike
; *** empty log message ***
;
; Revision 1.3 1993/12/17 20:00:16 mike
; Change default setting of dither_intensity_lighting from 1 to 0
;
; Revision 1.2 1993/11/22 10:24:50 mike
; *** empty log message ***
;
; Revision 1.1 1993/09/08 17:29:52 mike
; Initial revision
------------------------------------------------------------------------
texmap/tmap_per.asm:
; Revision 1.26 1995/02/20 18:22:55 john
; Put all the externs in the assembly modules into tmap_inc.asm.
; Also, moved all the C versions of the inner loops into a new module,
; scanline.c.
;
; Revision 1.25 1995/02/20 17:09:08 john
; Added code so that you can build the tmapper with no assembly!
;
; Revision 1.24 1995/01/10 09:32:07 mike
; mostly fix garbage at end of scanline, but slow down by 1-4%.
;
; Revision 1.23 1994/12/02 23:29:57 mike
; optimizations.
;
; Revision 1.22 1994/11/30 00:57:00 mike
; optimization.
;
; Revision 1.21 1994/11/21 13:57:42 mike
; fix right side shear bug
;
; Revision 1.20 1994/11/12 16:41:09 mike
; jae -> ja.
;
; Revision 1.19 1994/10/27 19:40:00 john
; Made lighting table lookup be _gr_fade_table[eax] instead
; of fs:[eax], which gets rig of a segment override that
; supposedly costs 1 clock on a 486. Mainly, I wanted to verify
; that the only reason we need selectors is for the source texture
; data .
;
; Revision 1.18 1994/05/03 11:08:32 mike
; Trap divide overflows.
;
; Revision 1.17 1994/04/21 15:03:41 mike
; make faster.
;
; Revision 1.16 1994/04/08 16:46:57 john
; Made 32 fade levels. Hacked.
;
; Revision 1.15 1994/03/31 08:35:18 mike
; Fix quantized-by-4 bug in inner loop.
;
; Revision 1.14 1994/03/14 17:41:14 mike
; Fix bug in unlighted version.
;
; Revision 1.13 1994/03/14 15:45:14 mike
; streamline code.
;
; Revision 1.12 1994/01/14 14:01:58 mike
; *** empty log message ***
;
; Revision 1.11 1993/12/18 14:43:44 john
; Messed around with doing 1/z, the u*(1/z) and v*(1/z)
; (Went from 23 fps to 21 fps... not good! )
;
; Revision 1.10 1993/12/17 16:14:17 john
; Split lighted/nonlighted, so there is no cmp lighting
; in the inner loop.
;
; Revision 1.9 1993/12/17 12:34:29 john
; Made leftover bytes use linear approx instead of correct...
; should save about 8 divides per scanline on average.
; Also, took out anti-aliasing code and rearranged to
; order of some instructions to help on 486 pipelining.
; (The anti-aliasing code did *not* look good, so I
; figure there was no reason to keep it in. )
;
; Revision 1.8 1993/12/16 18:37:52 mike
; Align some stuff on 4 byte boundaries.
;
; Revision 1.7 1993/11/30 08:44:18 john
; Made selector set check for < 64*64 bitmaps.
;
; Revision 1.6 1993/11/23 17:25:26 john
; Added safety "and eax, 0fffh" in lighting lookup.
;
; Revision 1.5 1993/11/23 15:08:52 mike
; Fixed lighting bug.
;
; Revision 1.4 1993/11/23 14:38:50 john
; optimized NORMAL code by switching EBX and ESI, so BH can be used in
; the lighting process.
;
; Revision 1.3 1993/11/23 14:30:53 john
; Made the perspective tmapper do 1/8 divides; added lighting.
;
; Revision 1.2 1993/11/22 10:24:59 mike
; *** empty log message ***
;
; Revision 1.1 1993/09/08 17:29:53 mike
; Initial revision
------------------------------------------------------------------------
texmap/tmapfade.asm:
; Revision 1.6 1995/02/20 18:23:01 john
; Put all the externs in the assembly modules into tmap_inc.asm.
; Also, moved all the C versions of the inner loops into a new module,
; scanline.c.
;
; Revision 1.5 1995/02/20 17:09:15 john
; Added code so that you can build the tmapper with no assembly!
;
; Revision 1.4 1994/12/02 23:29:36 mike
; change jb/ja to jl/jg.
;
; Revision 1.3 1994/11/30 00:57:36 mike
; *** empty log message ***
;
; Revision 1.2 1994/10/06 18:38:49 john
; Added the ability to fade a scanline by calling gr_upoly_tmap
; with Gr_scanline_darkening_level with a value < MAX_FADE_LEVELS.
;
; Revision 1.1 1994/10/06 18:04:42 john
; Initial revision
------------------------------------------------------------------------
texmap/tmapflat.c:
* Revision 1.13 1995/02/20 18:23:24 john
* Added new module for C versions of inner loops.
*
* Revision 1.12 1995/02/20 17:09:17 john
* Added code so that you can build the tmapper with no assembly!
*
* Revision 1.11 1994/11/30 00:58:01 mike
* optimizations.
*
* Revision 1.10 1994/11/28 13:34:32 mike
* optimizations.
*
* Revision 1.9 1994/11/19 15:21:46 mike
* rip out unused code.
*
* Revision 1.8 1994/11/12 16:41:41 mike
* *** empty log message ***
*
* Revision 1.7 1994/11/09 23:05:12 mike
* do lighting on texture maps which get flat shaded instead.
*
* Revision 1.6 1994/10/06 19:53:07 matt
* Added function that takes same parms as draw_tmap(), but renders flat
*
* Revision 1.5 1994/10/06 18:38:12 john
* Added the ability to fade a scanline by calling gr_upoly_tmap
* with Gr_scanline_darkening_level with a value < MAX_FADE_LEVELS.
*
* Revision 1.4 1994/05/25 18:46:32 matt
* Added gr_upoly_tmap_ylr(), which generates ylr's for a polygon
*
* Revision 1.3 1994/04/08 16:25:58 mike
* Comment out some includes (of header files)
* call init_interface_vars_to_assembler.
*
* Revision 1.2 1994/03/31 08:33:44 mike
* Fixup flat shading version of texture mapper (get it?)
* (Or maybe not, I admit to not testing my code...hahahah!)
*
* Revision 1.1 1993/09/08 17:29:10 mike
* Initial revision
------------------------------------------------------------------------