diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 8fb1ce154..2a3d85f6a 100755 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -3,6 +3,7 @@ D1X-Rebirth Changelog 20070714 -------- SConstruct, main/game.c, main/inferno.c: removed old CD-Play code +SConstruct, d1x.ini, arch/sdl/init.c, arch/sdl/joy.c, main/args.c, main/args.h, main/config.c, main/game.c, main/game.h, main/gauges.c, main/hud.c, main/inferno.c, main/kconfig.c, main/kmatrix.c, main/laser.c, main/menu.c, main/multi.c, main/newdemo.c, main/newdemo.h, main/piggy.c, main/titles.c: Placing FindArg calls to seperated function, putting variables to a struct - frist step, not finished, yet; Large code cleanup 20070629 -------- diff --git a/SConstruct b/SConstruct index 049255015..2c86c7ef7 100755 --- a/SConstruct +++ b/SConstruct @@ -112,7 +112,6 @@ common_sources = [ 'main/hash.c', 'main/hostage.c', 'main/hud.c', -'main/hudlog.c', 'main/ignore.c', 'main/inferno.c', 'main/ip_base.cpp', @@ -246,7 +245,6 @@ editor_sources = [ # for linux arch_linux_sources = [ 'arch/linux/arch_ip.cpp', -'arch/linux/init.c', 'arch/linux/ipx_bsd.c', 'arch/linux/ipx_kali.c', 'arch/linux/linuxnet.c', @@ -269,7 +267,6 @@ else: arch_win32_sources = [ 'arch/win32/arch_ip.cpp', 'arch/win32/hmpfile.c', -'arch/win32/init.c', 'arch/win32/ipx_win.c', 'arch/win32/midi.c', 'arch/win32/mono.c', diff --git a/arch/linux/init.c b/arch/linux/init.c deleted file mode 100755 index a25f06d0f..000000000 --- a/arch/linux/init.c +++ /dev/null @@ -1,35 +0,0 @@ -// linux init.c - added Matt Mueller 9/6/98 -#include -#include -#include "text.h" -#include "event.h" -#include "error.h" -#include "joy.h" -#include "args.h" - -extern int Inferno_verbose; -extern void arch_sdl_init(); -extern void arch_svgalib_init(); -extern void key_init(); - -void arch_init_start() -{ - -} - -void arch_init() -{ - // Initialise the library -#ifdef __SDL__ - arch_sdl_init(); -#endif -#ifdef __SVGALIB__ - arch_svgalib_init(); -#endif - if (!FindArg( "-nojoystick" )) { - if (Inferno_verbose) printf( "\n%s", TXT_VERBOSE_6); - joy_init(); - } - - key_init(); -} diff --git a/arch/sdl/init.c b/arch/sdl/init.c index 566f078f0..db6e1deeb 100755 --- a/arch/sdl/init.c +++ b/arch/sdl/init.c @@ -6,6 +6,8 @@ #include "event.h" #include "error.h" #include "args.h" +#include "key.h" +#include "joy.h" extern void d_mouse_init(); @@ -16,21 +18,14 @@ void sdl_close() void arch_sdl_init() { - // Initialise the library -//edited on 01/03/99 by Matt Mueller - if we use SDL_INIT_EVERYTHING, cdrom is initialized even if -nocdaudio is used - if (SDL_Init( -#if SDL_VIDEO || SDL_GL - SDL_INIT_VIDEO -#else - 0 -#endif - )<0) { -//end edit -MM - Error("SDL library initialisation failed: %s.",SDL_GetError()); - } + if (SDL_Init(SDL_INIT_VIDEO)<0) + Error("SDL library initialisation failed: %s.",SDL_GetError()); - if (!FindArg("-nomouse")) - d_mouse_init(); - - atexit(sdl_close); + key_init(); + joy_init(); + + if (!FindArg("-nomouse")) + d_mouse_init(); + + atexit(sdl_close); } diff --git a/arch/sdl/joy.c b/arch/sdl/joy.c index 38df9ed0d..dfe9ec88d 100755 --- a/arch/sdl/joy.c +++ b/arch/sdl/joy.c @@ -429,10 +429,6 @@ int joy_get_scaled_reading( int raw, int axis_num ) #endif } -void joy_set_slow_reading( int flag ) -{ -} - typedef struct Button_info { ubyte ignore; ubyte state; diff --git a/arch/win32/init.c b/arch/win32/init.c deleted file mode 100755 index e3b32093c..000000000 --- a/arch/win32/init.c +++ /dev/null @@ -1,40 +0,0 @@ -/* - * - * mingw_init.c - Basically same as linux init.c - * - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include "types.h" -#include "console.h" -#include "text.h" -#include "event.h" -#include "error.h" -#include "joy.h" -#include "args.h" - -extern void arch_sdl_init(); -extern void key_init(); - -void arch_init_start() -{ - -} - -void arch_init() -{ - // Initialise the library - arch_sdl_init(); - - if (!FindArg( "-nojoystick" )) { - if (Inferno_verbose) printf( "\n%s", TXT_VERBOSE_6); - joy_init(); - } - - key_init(); -} diff --git a/d1x.ini b/d1x.ini index cb0e1f565..6d736f4e7 100755 --- a/d1x.ini +++ b/d1x.ini @@ -4,23 +4,20 @@ ;-nonicefps Disable CPU cycle freeing. Higher CPU load, but game may be smoother ;-maxfps Set maximum framerate (1-80) ;-missiondir Set alternate mission dir to instead of missions/ -;-hudlog Start hudlog immediately ;-lowmem Lowers animation detail for better performance with low memory ;-legacyhomers Activate original homing missiles (FPS and physics dependent) +;-pilot Select this pilot-file automatically +;-autodemo Start in demo mode Controls: -;-NoJoystick Disables joystick support ;-mouselook Activate mouselook. Works in singleplayer only ;-grabmouse Keeps the mouse from wandering out of the window Sound: -;-Volume Sets sound volume to v, where v is between 0 and 100 -;-NoSound Disables sound drivers -;-NoMusic Disables music; sound effects remain enabled -;-music_ext Use alternate external music files with extension (requires SDL_mixer) -;-jukebox Use jukebox for in-game music, load MP3/OGG files from directory (requires SDL_mixer) +;-nosound Disables sound drivers +;-nomusic Disables music; sound effects remain enabled Graphics: @@ -43,13 +40,6 @@ ;-gl_voodoo Force fullscreen mode only ;-fixedfont Do not scale fonts to current resolution - Quickstart: - -;-ini Option file (alternate to command line), defaults to d1x.ini -;-notitles Do not show titlescreens on startup -;-pilot Select this pilot-file automatically -;-autodemo Start in demo mode - Multiplayer: ;-mprofile Use multi game profile @@ -61,7 +51,6 @@ ;-noredundancy Do not send messages when picking up redundant items in multiplayer ;-playermessages View only messages from other players in multi - overrides -noredundancy ;-handicap Start game with shields. Must be < 100 for multi -;-hudlog_multi Start hudlog upon entering multiplayer games ;-msgcolorlevel To set message colorization level ; 0=none(old style) 1=color names in talk messages only(default) ; 2=also color names in kill/join/etc messages diff --git a/include/arch.h b/include/arch.h deleted file mode 100755 index 5f6fbc2db..000000000 --- a/include/arch.h +++ /dev/null @@ -1,11 +0,0 @@ -// architecture specific things -#ifndef _ARCH_H -#define _ARCH_H - -// called before anything else -void arch_init_start(); - -// called during startup -void arch_init(); - -#endif diff --git a/include/args.h b/include/args.h index 45d25914c..367a1315a 100755 --- a/include/args.h +++ b/include/args.h @@ -11,38 +11,9 @@ AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE. COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. */ /* - * $Source: /cvsroot/dxx-rebirth/d1x-rebirth/include/args.h,v $ - * $Revision: 1.1.1.1 $ - * $Author: zicodxx $ - * $Date: 2006/03/17 19:46:29 $ - * + * * Prototypes for accessing arguments. - * - * $Log: args.h,v $ - * Revision 1.1.1.1 2006/03/17 19:46:29 zicodxx - * initial import * - * Revision 1.1.1.1 1999/06/14 22:02:08 donut - * Import of d1x 1.37 source. - * - * 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 - * - * */ @@ -50,15 +21,35 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #ifndef _ARGS_H #define _ARGS_H -extern int Num_args; -extern char * Args[]; +extern int Num_args; +extern char * Args[]; extern int FindArg( char * s ); extern int FindResArg(char *prefix, int *sw, int *sh); -//added/edited on 1/11/99 by dph extern void InitArgs( int argc, char **argv ); -//end this section addition/change -dph -//added on 01/03/99 by Matt Mueller extern int Inferno_verbose; -//end addition -MM + +// Struct that keeps all variables used by FindArg +// Sys - System Options +// Ctl - Control Options +// Snd - Sound Options +// Gfx - Graphics Options +// Ogl - OpenGL Options +// Mpl - Multiplayer Options +// Dbg - Debugging/Undocumented Options +typedef struct Arg +{ + int SysFPSIndicator; + int SysUseNiceFPS; + int SysMaxFPS; + char *SysMissionDir; + int SysLowMem; + int SysLegacyHomers; + char *SysPilot; + int SysAutoDemo; + int CtlMouselook; + int CtlGrabMouse; +} __attribute__ ((packed)) Arg; + +extern struct Arg GameArg; #endif diff --git a/main/args.c b/main/args.c index 9d37fd2fb..4d787868e 100755 --- a/main/args.c +++ b/main/args.c @@ -11,85 +11,31 @@ AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE. COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. */ /* - * $Source: /cvsroot/dxx-rebirth/d1x-rebirth/main/args.c,v $ - * $Revision: 1.1.1.1 $ - * $Author: zicodxx $ - * $Date: 2006/03/17 19:42:49 $ - * + * * Functions for accessing arguments. - * - * $Log: args.c,v $ - * Revision 1.1.1.1 2006/03/17 19:42:49 zicodxx - * initial import * - * Revision 1.3 1999/08/05 22:53:41 sekmu - * - * D3D patch(es) from ADB - * - * Revision 1.2 1999/06/14 23:44:11 donut - * Orulz' svgalib/ggi/noerror patches. - * - * Revision 1.1.1.1 1999/06/14 22:05:15 donut - * Import of d1x 1.37 source. - * - * 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 - * - * */ - -#ifdef RCS -static char rcsid[] = "$Id: args.c,v 1.1.1.1 2006/03/17 19:42:49 zicodxx Exp $"; -#endif - #include #include #include #include "u_mem.h" #include "strio.h" -//added 6/15/99 - Owen Evans #include "strutil.h" -//end added - OE +#include "args.h" +#include "game.h" #define MAX_ARGS 200 int Num_args=0; char * Args[MAX_ARGS]; +struct Arg GameArg; + int FindArg( char * s ) { int i; #ifndef NDEBUG - printf("FindArg call: %s\n",s); + printf("FindArg: %s\n",s); #endif for (i=0; i0&&t<=80) + GameArg.SysMaxFPS=t; + else + GameArg.SysMaxFPS=80; + } + else + GameArg.SysMaxFPS=80; + + if ((t = FindArg("-missiondir"))) + GameArg.SysMissionDir = Args[t+1]; + else + GameArg.SysMissionDir = DESCENT_DATA_PATH "missions/"; + + if (FindArg("-lowmem")) + GameArg.SysLowMem = 1; + else + GameArg.SysLowMem = 0; + + if (FindArg("-legacyhomers")) + GameArg.SysLegacyHomers = 1; + else + GameArg.SysLegacyHomers = 0; + + if ((t = FindArg("-pilot"))) + GameArg.SysPilot = Args[t+1]; + else + GameArg.SysPilot = NULL; + + if (FindArg("-autodemo")) + GameArg.SysAutoDemo = 1; + else + GameArg.SysAutoDemo = 0; + + // Control Options + + if (FindArg("-mouselook")) + GameArg.CtlMouselook = 1; + else + GameArg.CtlMouselook = 0; + + if (FindArg("-grabmouse")) + GameArg.CtlGrabMouse = 1; + else + GameArg.CtlGrabMouse = 0; +} + +void args_exit(void) +{ + int i; + for (i=0; i< Num_args; i++ ) + free(Args[i]); +} + void InitArgs( int argc,char **argv ) { int i; @@ -174,7 +181,9 @@ void InitArgs( int argc,char **argv ) if ( Args[i][0] == '-' ) strlwr( Args[i] ); // Convert all args to lowercase } - AppendArgs(); + + AppendIniArgs(); + ReadCmdArgs(); atexit(args_exit); } diff --git a/main/cdplay.c b/main/cdplay.c deleted file mode 100755 index e7c89648c..000000000 --- a/main/cdplay.c +++ /dev/null @@ -1,216 +0,0 @@ -/* cdplay.c by Victor Rachels for better management of cd player */ - -#include -#include -#include - -#ifdef __DJGPP__ -#include "bcd.h" -//edited on 01/03/99 by Matt Mueller - should be ifdef'd for SDL, since SDL isn't linux specific -//I changed all the other ones too, but didn't feel like commenting them all -#elif defined __SDL__ -//end edit -MM -#include -#endif - -#include "args.h" - -#define MAX_TRACKS 20 - -int playlist[MAX_TRACKS]; -int cd_currenttrack = 1; -int cd_playing = 0; -int cd_used = 0; -int tracks_used = MAX_TRACKS; -#ifdef __SDL__ -SDL_CD *cdrom; -#endif -int nocdaudio=0; - -int cd_playtrack(int trackno) -{ - int track; -//added on 01/03/99 by Matt Mueller - if (nocdaudio) return 0; -//end addition -MM - - if(trackno > MAX_TRACKS || trackno < 0) - return 0; - track = playlist[trackno]; - -#ifdef __DJGPP__ - if(bcd_play_track(&track)) -#elif defined __SDL__ - if(CD_INDRIVE(SDL_CDStatus(cdrom)) && !SDL_CDPlayTracks(cdrom,track,0,1,0)) -#else - if(0) -#endif - cd_playing = 1; - else - cd_playing = 0; - - cd_used = 1; - return cd_playing; -} - -void cd_stop() -{ -#ifdef __DJGPP__ - bcd_stop(); -#elif defined __SDL__ - SDL_CDStop(cdrom); -#endif - cd_playing = 0; -} - -int cd_resume() -{ -//added on 01/03/99 by Matt Mueller - if (nocdaudio) return 0; -//end addition -MM - -#ifdef __DJGPP__ - if(bcd_resume()) -#elif defined __SDL__ - if(CD_INDRIVE(SDL_CDStatus(cdrom)) && !SDL_CDResume(cdrom)) -#else - if(0) -#endif - cd_playing = 1; - else - cd_playing = 0; - - cd_used = 1; - return cd_playing; -} - -void cd_playprev() -{ -//added on 01/03/99 by Matt Mueller - if (nocdaudio) return; -//end addition -MM - - cd_currenttrack--; - if(cd_currenttrack < 0) - cd_currenttrack = tracks_used-1; - cd_playtrack(cd_currenttrack); - cd_used = 1; -} - -void cd_playnext() -{ -//added on 01/03/99 by Matt Mueller - if (nocdaudio) return; -//end addition -MM - - cd_currenttrack++; - if(cd_currenttrack >= tracks_used) - cd_currenttrack = 0; - cd_playtrack(cd_currenttrack); - cd_used = 1; -} - -void cd_playtoggle() -{ -//added on 01/03/99 by Matt Mueller - if (nocdaudio) return; -//end addition -MM - -#ifdef __DJGPP__ - if(bcd_now_playing()) -#elif defined __SDL__ - if(SDL_CDStatus(cdrom)==CD_PLAYING) -#else - if(0) -#endif - { - cd_stop(); - cd_playing=0; - } - else if(!cd_used) - { - cd_currenttrack = 0; - cd_playtrack(cd_currenttrack); - } - else - { - cd_resume(); - } - cd_used = 1; -} - -void cd_cycle() -{ -//added on 01/03/99 by Matt Mueller - if (nocdaudio) return; -//end addition -MM - -#ifdef __DJGPP__ - if(cd_playing && !bcd_now_playing()) -#elif defined __SDL__ - if(cd_playing && SDL_CDStatus(cdrom)!=CD_PLAYING) -#else - if(cd_playing && 0) -#endif - cd_playnext(); -} - -void cd_playlist_reset() -{ - int i; - -//added on 01/03/99 by Matt Mueller - if (nocdaudio) return; -//end addition -MM - -#ifdef __DJGPP__ - tracks_used = bcd_get_audio_info(); -#elif defined __SDL__ - if(SDL_CDStatus(cdrom)>-1) - tracks_used = cdrom->numtracks; - else - tracks_used = 0; -#endif - for(i=0;i= 0 ) - { - atexit(SDL_Quit); - cdrom=SDL_CDOpen(0); - } -#endif - cd_playlist_reset(); - if((i=FindArg("-cdplaylist"))) - cd_playlist_set(Args[i+1]); - } -} diff --git a/main/cdplay.h b/main/cdplay.h deleted file mode 100755 index 072fc54c7..000000000 --- a/main/cdplay.h +++ /dev/null @@ -1,20 +0,0 @@ -/* cdplay.h by Victor Rachels for better management of cd player */ - -#ifndef _CDLIST_H -#define _CDLIST_H - -int cd_playtrack(int trackno); -int cd_resume(); - -void cd_playprev(); -void cd_playnext(); -void cd_playtoggle(); - -void cd_stop(); -void cd_cycle(); - -void cd_playlist_reset(); -void cd_playlist_set(char *newlist); - -void cd_init(); -#endif diff --git a/main/config.c b/main/config.c index 17f4ae931..6e9ce38ad 100755 --- a/main/config.c +++ b/main/config.c @@ -241,7 +241,6 @@ int ReadConfigFile() int joy_axis_min[JOY_NUM_AXES]; int joy_axis_center[JOY_NUM_AXES]; int joy_axis_max[JOY_NUM_AXES]; - int i; strcpy( config_last_player, "" ); @@ -381,16 +380,6 @@ int ReadConfigFile() digi_midi_type = 1; #endif - i = FindArg( "-volume" ); - - if ( i > 0 ) { - i = atoi( Args[i+1] ); - if ( i < 0 ) i = 0; - if ( i > 100 ) i = 100; - Config_digi_volume = (i*8)/100; - Config_midi_volume = (i*8)/100; - } - if ( Config_digi_volume > 8 ) Config_digi_volume = 8; if ( Config_midi_volume > 8 ) Config_midi_volume = 8; diff --git a/main/game.c b/main/game.c index 5fa6478ce..c77841925 100755 --- a/main/game.c +++ b/main/game.c @@ -103,8 +103,6 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "reorder.h" #include "hudmsg.h" #include "timer.h" -#include "cdplay.h" -#include "hudlog.h" #ifdef NETWORK #include "mlticntl.h" #endif @@ -184,7 +182,6 @@ int Debug_pause=0; //John's debugging pause system int Cockpit_mode=CM_FULL_COCKPIT; //set game.h for values int old_cockpit_mode=-1; int force_cockpit_redraw=0; -int framerate_on=0; int netplayerinfo_on=0; int PaletteRedAdd, PaletteGreenAdd, PaletteBlueAdd; int Dummy_var; @@ -214,9 +211,6 @@ grs_bitmap background_bitmap; int Game_aborted; void update_cockpits(int force_redraw); extern void newdemo_strip_frames(char *, int); -#ifndef RELEASE -int invulnerability=0; -#endif extern int HUD_nmessages; #define BACKGROUND_NAME "statback.pcx" @@ -556,7 +550,7 @@ int set_screen_mode(int sm) switch( Screen_mode ) { case SCREEN_MENU: /* give control back to the WM */ - if (FindArg("-grabmouse")) + if (GameArg.CtlGrabMouse) SDL_WM_GrabInput(SDL_GRAB_OFF); if (grd_curscreen->sc_mode != MENU_SCREEN_MODE) { @@ -566,7 +560,7 @@ int set_screen_mode(int sm) break; case SCREEN_GAME: /* keep the mouse from wandering in SDL */ - if (FindArg("-grabmouse") && (Newdemo_state != ND_STATE_PLAYBACK)) + if (GameArg.CtlGrabMouse && (Newdemo_state != ND_STATE_PLAYBACK)) SDL_WM_GrabInput(SDL_GRAB_ON); if (grd_curscreen->sc_mode != Game_screen_mode) @@ -578,7 +572,7 @@ int set_screen_mode(int sm) #ifdef EDITOR case SCREEN_EDITOR: /* give control back to the WM */ - if (FindArg("-grabmouse")) + if (GameArg.CtlGrabMouse) SDL_WM_GrabInput(SDL_GRAB_OFF); if (grd_curscreen->sc_mode != SM(800,600)) { @@ -773,7 +767,6 @@ void reset_time() } int maxfps=80; -int use_nice_fps=1; void calc_frame_time() { @@ -788,7 +781,7 @@ void calc_frame_time() while (FrameTime < f1_0 / maxfps) { - if (use_nice_fps) + if (GameArg.SysUseNiceFPS) timer_delay(f1_0 / maxfps - FrameTime); timer_value = timer_get_fixed_seconds(); FrameTime = timer_value - last_timer_value; @@ -1070,7 +1063,7 @@ void game_draw_hud_stuff() } } - if (framerate_on) + if (GameArg.SysFPSIndicator) show_framerate(); #ifdef NETWORK @@ -1835,14 +1828,14 @@ void game() game_flush_inputs(); } - if ( (Function_mode != FMODE_GAME) && Auto_demo && (Newdemo_state != ND_STATE_NORMAL) ) { + if ( (Function_mode != FMODE_GAME) && GameArg.SysAutoDemo && (Newdemo_state != ND_STATE_NORMAL) ) { int choice, fmode; fmode = Function_mode; Function_mode = FMODE_GAME; choice=nm_messagebox( NULL, 2, TXT_YES, TXT_NO, TXT_ABORT_AUTODEMO ); Function_mode = fmode; if (choice==0) { - Auto_demo = -1; + GameArg.SysAutoDemo = 0; newdemo_stop_playback(); Function_mode = FMODE_MENU; } else { @@ -1917,8 +1910,6 @@ extern void john_cheat_func_4(int); //called at the end of the program void close_game() { - close_hud_log(); - if (VR_offscreen_buffer) { gr_free_canvas(VR_offscreen_buffer); VR_offscreen_buffer = NULL; @@ -2226,11 +2217,6 @@ void HandleGameKey(int key) break; #endif - case KEY_ALTED+KEY_F8: -#ifdef NETWORK - mekh_hud_recall_msgs(); -#endif - break; #ifdef NETWORK case KEY_SHIFTED+KEY_F8: mekh_resend_last(); @@ -2266,9 +2252,6 @@ void HandleGameKey(int key) case KEYS_GR_TOGGLE_FULLSCREEN: gr_toggle_fullscreen_game(); break; - case KEY_CTRLED+KEY_ALTED+KEY_LAPOSTRO: - toggle_hud_log(); - break; case KEY_SHIFTED + KEY_ESC: //quick exit #ifdef EDITOR if (! SafetyCheck()) break; @@ -2408,7 +2391,7 @@ void HandleGameKey(int key) break; } case KEY_DEBUGGED+KEY_F: - framerate_on = !framerate_on; + GameArg.SysFPSIndicator = !GameArg.SysFPSIndicator; break; case KEY_DEBUGGED+KEY_SPACEBAR: // Toggle physics flying slew_stop(); @@ -2665,7 +2648,7 @@ void ReadControls() john_cheat_func_2(key); #ifdef FINAL_CHEATS - IMPLEMENT_CHEAT(frametime,framerate_on = !framerate_on;); + IMPLEMENT_CHEAT(frametime,GameArg.SysFPSIndicator = !GameArg.SysFPSIndicator;); IMPLEMENT_CHEAT(renderstats,gr_renderstats = !gr_renderstats;); if (Cheats_enabled) { if (!(Game_mode&GM_MULTI) && key == cheat_wowie[cheat_wowie_index]) { @@ -2944,11 +2927,6 @@ void GameLoop(int RenderFlag, int ReadControlsFlag ) Error ("Loading overlay -- error number: %d\n", (int)desc_id_exit_num); } - #ifndef RELEASE - if (invulnerability) - Players[Player_num].flags |= PLAYER_FLAGS_INVULNERABLE; - #endif - update_player_stats(); diminish_palette_towards_normal(); // Should leave palette effect up for as long as possible by putting right before render. do_cloak_stuff(); diff --git a/main/game.h b/main/game.h index d08806981..91d33f2d9 100755 --- a/main/game.h +++ b/main/game.h @@ -236,11 +236,10 @@ extern grs_canvas VR_screen_sub_pages[2]; // Two sub pages of VRAM if paging is extern grs_canvas *VR_offscreen_menu; // The offscreen data buffer for menus void game_init_render_buffers (int render_max_w, int render_max_h, int render_method); -extern int maxfps; -extern int use_nice_fps; extern int Allow_primary_cycle; extern int Allow_secondary_cycle; void vr_reset_display(); + #endif diff --git a/main/gauges.c b/main/gauges.c index 92df4faa6..6fa7098e2 100755 --- a/main/gauges.c +++ b/main/gauges.c @@ -1661,8 +1661,6 @@ rgb player_rgb[] = { {15,15,23}, {14,21,12}, {29,29,0}, }; -extern int hud_display_all; - //draw the reticle void show_reticle(int force_big_one) { @@ -1670,10 +1668,6 @@ void show_reticle(int force_big_one) int laser_ready,missile_ready,laser_ammo,missile_ammo; int cross_bm_num,primary_bm_num,secondary_bm_num; - - if (hud_display_all) - return; - x = grd_curcanv->cv_w/2; y = grd_curcanv->cv_h/2; diff --git a/main/hud.c b/main/hud.c index 6b66323ac..206fb6df3 100755 --- a/main/hud.c +++ b/main/hud.c @@ -25,8 +25,8 @@ static char rcsid[] = "$Id: hud.c,v 1.1.1.1 2006/03/17 19:42:04 zicodxx Exp $"; #include #include #include +#include -#include "hudlog.h" #include "hudmsg.h" #include "inferno.h" #include "game.h" @@ -44,117 +44,154 @@ static char rcsid[] = "$Id: hud.c,v 1.1.1.1 2006/03/17 19:42:04 zicodxx Exp $"; #include "screens.h" #include "text.h" #include "args.h" +#include "strutil.h" int hud_first = 0; int hud_last = 0; -int HUD_max_num_disp = 4; //max to display normally -int hudlog_first = 0; -int hudlog_num = 0; -int hud_display_all = 0; -int HUD_nmessages = 0; -fix HUD_message_timer = 0; // Time, relative to Players[Player_num].time (int.frac seconds.frac), at which to erase gauge message -char HUD_messages[HUD_MAX_NUM][HUD_MESSAGE_LENGTH+5]; +int HUD_max_num_disp = 3; //max to display normally +int HUD_nmessages = 0; +fix HUD_message_timer = 0; // Time, relative to Players[Player_num].time (int.frac seconds.frac), at which to erase gauge message +char HUD_messages[HUD_MAX_NUM][HUD_MESSAGE_LENGTH+5]; + char Displayed_background_message[HUD_MESSAGE_LENGTH] = ""; -int Last_msg_ycrd = -1; -int Last_msg_height = 6; -int HUD_color = -1; +int Last_msg_ycrd = -1; +int Last_msg_height = 6; +int HUD_color = -1; + int MSG_Playermessages = 0; int MSG_Noredundancy = 0; -// ----------------------------------------------------------------------------- +int Modex_hud_msg_count; + +// ---------------------------------------------------------------------------- void clear_background_messages(void) { - if ((Cockpit_mode == CM_STATUS_BAR) && (Last_msg_ycrd != -1) && (Screen_3d_window.cv_bitmap.bm_y >= 6)) { + if (((Cockpit_mode == CM_STATUS_BAR) || (Cockpit_mode == CM_FULL_SCREEN)) && (Last_msg_ycrd != -1) && (Screen_3d_window.cv_bitmap.bm_y >= 6)) { grs_canvas *canv_save = grd_curcanv; + gr_set_current_canvas(NULL); + gr_set_current_canvas(canv_save); - Displayed_background_message[0] = 0; + Last_msg_ycrd = -1; } + Displayed_background_message[0] = 0; + } void HUD_clear_messages() { + int i; HUD_nmessages = 0; - hud_first = hud_last; + hud_first = hud_last = 0; HUD_message_timer = 0; clear_background_messages(); + for (i = 0; i < HUD_MAX_NUM; i++) + sprintf(HUD_messages[i], "SlagelSlagel!!"); } + +extern int max_window_h; + +extern grs_canvas *print_to_canvas(char *s,grs_font *font, int fc, int bc, int double_flag); + // ----------------------------------------------------------------------------- +// print to buffer, double heights, and blit bitmap to screen +void modex_hud_message(int x, int y, char *s, grs_font *font, int color) +{ + grs_canvas *temp_canv; + + temp_canv = print_to_canvas(s, font, color, -1, 1); + + gr_bitmapm(x,y,&temp_canv->cv_bitmap); + + gr_free_canvas(temp_canv); +} + +extern int max_window_w; + +// ---------------------------------------------------------------------------- // Writes a message on the HUD and checks its timer. void HUD_render_message_frame() { int i, y,n; int h,w,aw; - int first,num; - if (hud_display_all){ - first=hudlog_first; - num=hudlog_num; - }else{ - first=hud_first; - num=HUD_nmessages; - } if (( HUD_nmessages < 0 ) || (HUD_nmessages > HUD_MAX_NUM)) Int3(); // Get Rob! - if ( num < 1 ) return; + if ( (HUD_nmessages < 1 ) && (Modex_hud_msg_count == 0)) + return; - if (HUD_nmessages > 0 ) { - HUD_message_timer -= FrameTime; + HUD_message_timer -= FrameTime; - if ( HUD_message_timer < 0 ) { - // Timer expired... get rid of oldest message... - if (hud_last!=hud_first) { - hud_first = (hud_first+1) % HUD_MAX_NUM; - HUD_message_timer = F1_0*2; - HUD_nmessages--; - clear_background_messages(); // If in status bar mode and no messages, then erase. - } + if ( HUD_message_timer < 0 ) { + // Timer expired... get rid of oldest message... + if (hud_last!=hud_first) { + int temp; + + //&HUD_messages[hud_first][0] is deing deleted...; + hud_first = (hud_first+1) % HUD_MAX_NUM; + HUD_message_timer = F1_0*2; + HUD_nmessages--; + if (HUD_nmessages == 0) + Modex_hud_msg_count = 2; + temp = Last_msg_ycrd; + clear_background_messages(); // If in status bar mode and no messages, then erase. + if (Modex_hud_msg_count) + Last_msg_ycrd = temp; } } - if (num > 0 ) { + if (HUD_nmessages > 0 ) { - gr_set_curfont( GAME_FONT ); if (HUD_color == -1) HUD_color = BM_XRGB(0,28,0); - y = 3; - gr_get_string_size("0", &w, &h, &aw ); - i= num - (grd_curcanv->cv_bitmap.bm_h-y)/(h+1);//fit as many as possible - if (i<0) i=0; - for (; ift_h/2; + } else + y = GAME_FONT->ft_h/2; + + for (i=0; i= HUD_MAX_NUM)) Int3(); // Get Rob!! if (!strcmp(HUD_messages[n], "This is a bug.")) Int3(); // Get Rob!! - gr_get_string_size(HUD_messages[n], &w, &h, &aw ); + gr_get_string_size(&HUD_messages[n][0], &w, &h, &aw ); gr_set_fontcolor( HUD_color, -1); - gr_printf((grd_curcanv->cv_bitmap.bm_w-w)/2,y, HUD_messages[n] ); + + gr_string((grd_curcanv->cv_bitmap.bm_w-w)/2,y, &HUD_messages[n][0] ); y += h+FONTSCALE_Y(1); } } + + gr_set_curfont( GAME_FONT ); } -void mekh_hud_recall_msgs() -{ - hud_display_all = !hud_display_all; -} +int PlayerMessage=1; -void HUD_init_message(char * format, va_list args) +// Call to flash a message on the HUD. Returns true if message drawn. +// (message might not be drawn if previous message was same) +int HUD_init_message_va(char * format, va_list args) { int temp, i; char *message = NULL; char *last_message=NULL; + time_t t; + struct tm *lt; + + Modex_hud_msg_count = 2; if ( (hud_last < 0) || (hud_last >= HUD_MAX_NUM)) Int3(); // Get Rob!! - message = HUD_messages[hud_last]; + // -- mprintf((0, "message timer: %7.3f\n", f2fl(HUD_message_timer))); + message = &HUD_messages[hud_last][0]; vsprintf(message,format,args); // clean message if necessary. @@ -164,17 +201,26 @@ void HUD_init_message(char * format, va_list args) if (message[i] == '%') message [i] = ' '; + // Added by Leighton + + if ((Game_mode & GM_MULTI) && FindArg("-noredundancy")) + if (!strnicmp ("You already",message,11)) + return 0; + + if ((Game_mode & GM_MULTI) && FindArg("-PlayerMessages") && PlayerMessage==0) + return 0; + if (HUD_nmessages > 0) { if (hud_last==0) - last_message = HUD_messages[HUD_MAX_NUM-1]; + last_message = &HUD_messages[HUD_MAX_NUM-1][0]; else - last_message = HUD_messages[hud_last-1]; + last_message = &HUD_messages[hud_last-1][0]; } temp = (hud_last+1) % HUD_MAX_NUM; - if ( temp==hudlog_first ) { - hudlog_first= (hudlog_first+1) % HUD_MAX_NUM; - hudlog_num--; + if ( temp==hud_first ) { + hud_first= (hud_first+1) % HUD_MAX_NUM; + hud_last--; } if ( HUD_nmessages>=HUD_max_num_disp){ // If too many messages, remove oldest message to make room @@ -184,7 +230,14 @@ void HUD_init_message(char * format, va_list args) if (last_message && (!strcmp(last_message, message))) { HUD_message_timer = F1_0*3; // 1 second per 5 characters - return; // ignore since it is the same as the last one + return 0; // ignore since it is the same as the last one + } + + if (strnicmp ("you",message,3)) { // block hudlog output messages beginning with you ("your ... maxed out", "you already have ...") + t=time(NULL); + lt=localtime(&t); + + printf("%02i:%02i:%02i %s\n",lt->tm_hour,lt->tm_min,lt->tm_sec,message); } hud_last = temp; @@ -197,45 +250,59 @@ void HUD_init_message(char * format, va_list args) #endif HUD_message_timer = F1_0*3; // 1 second per 5 characters HUD_nmessages++; - hudlog_num++; - hud_log_message(message); + return 1; } +int HUD_init_message(char * format, ... ) +{ + int ret; + va_list args; + + va_start(args, format); + ret = HUD_init_message_va(format, args); + va_end(args); + + return ret; +} + void player_dead_message(void) { - if (Player_exploded) { - if ( Players[Player_num].lives < 2 ) { - int x, y, w, h, aw; - gr_set_curfont(Gamefonts[GFONT_BIG_1]); - gr_get_string_size( TXT_GAME_OVER, &w, &h, &aw ); - w += 20; - h += 8; - x = (GWIDTH - w ) / 2; - y = (GHEIGHT - h ) / 2; - Gr_scanline_darkening_level = 2*7; - gr_setcolor( BM_XRGB(0,0,0) ); - gr_rect( x, y, x+w, y+h ); - Gr_scanline_darkening_level = GR_FADE_LEVELS; - - gr_string(0x8000, (GHEIGHT - FONTSCALE_Y(grd_curcanv->cv_font->ft_h))/2 + h/8, TXT_GAME_OVER ); - } - gr_set_curfont( GAME_FONT ); - if (HUD_color == -1) - HUD_color = BM_XRGB(0,28,0); - gr_set_fontcolor( HUD_color, -1); - gr_string(0x8000, GHEIGHT-FONTSCALE_Y(grd_curcanv->cv_font->ft_h+3)*((Newdemo_state == ND_STATE_RECORDING)?2:1), TXT_PRESS_ANY_KEY); - } + if (Player_exploded) { + if ( Players[Player_num].lives < 2 ) { + int x, y, w, h, aw; + gr_set_curfont( Gamefonts[GFONT_BIG_1] ); + gr_get_string_size( TXT_GAME_OVER, &w, &h, &aw ); + w += 20; + h += 8; + x = (GWIDTH - w ) / 2; + y = (GHEIGHT - h ) / 2; + + Gr_scanline_darkening_level = 2*7; + gr_setcolor( BM_XRGB(0,0,0) ); + gr_rect( x, y, x+w, y+h ); + Gr_scanline_darkening_level = GR_FADE_LEVELS; + + gr_string(0x8000, (GHEIGHT - FONTSCALE_Y(grd_curcanv->cv_font->ft_h))/2 + h/8, TXT_GAME_OVER ); + + } + gr_set_curfont( GAME_FONT ); + if (HUD_color == -1) + HUD_color = BM_XRGB(0,28,0); + gr_set_fontcolor( HUD_color, -1); + gr_string(0x8000, GHEIGHT-FONTSCALE_Y(grd_curcanv->cv_font->ft_h+3)*((Newdemo_state == ND_STATE_RECORDING)?2:1), TXT_PRESS_ANY_KEY); + } } void hud_message(int class, char *format, ...) { - va_list vp; - va_start(vp, format); - if ((!MSG_Noredundancy || (class & MSGC_NOREDUNDANCY)) && - (!MSG_Playermessages || !(Game_mode & GM_MULTI) || - (class & MSGC_PLAYERMESSAGES))) - HUD_init_message(format, vp); - va_end(vp); + va_list vp; + + va_start(vp, format); + if ((!MSG_Noredundancy || (class & MSGC_NOREDUNDANCY)) && + (!MSG_Playermessages || !(Game_mode & GM_MULTI) || + (class & MSGC_PLAYERMESSAGES))) + HUD_init_message_va(format, vp); + va_end(vp); } diff --git a/main/hudlog.c b/main/hudlog.c deleted file mode 100755 index fa7601f0b..000000000 --- a/main/hudlog.c +++ /dev/null @@ -1,202 +0,0 @@ -//hudlog.c added 11/01/98 Matthew Mueller - log messages and score grid to files. -#include -#include -#include -#ifndef _MSC_VER -#include -#else -#include -#define access(a,b) _access(a,b) -#endif -#include "hudmsg.h" -#include "multi.h" -#include "hudlog.h" -#include "strutil.h" - -//added on 9/5/99 by Victor Rachels for \ or / usage -#include "d_slash.h" -//end this section addition -VR - -int HUD_log_multi_autostart = 0; -int HUD_log_autostart = 0; -int fhudmulti = 0; -FILE *fhudlog=NULL; -char hudlogname[143]; - -void hud_log_check_multi_start(void){ -#ifdef NETWORK - if ((Game_mode & GM_MULTI) && HUD_log_multi_autostart){ - if (!fhudlog || !fhudmulti) - open_hud_log();//don't reopen the log file (for example, when changing levels in a multi player game) - } -#endif -} -void hud_log_check_multi_stop(void){ -#ifdef NETWORK - if (HUD_log_multi_autostart && fhudmulti){ - close_hud_log(); - } -#endif -} - -void open_hud_log(void){ - static int num=0; -//edited 02/06/99 Matthew Mueller - changed filename to include date - time_t t; - struct tm *lt; - - if (fhudlog)close_hud_log(); - -#ifdef NETWORK - fhudmulti = Game_mode & GM_MULTI; -#endif - - t=time(NULL); - lt=localtime(&t); - - do{ -// sprintf(hudlogname,"%shud%05d.log",hudlogdir,num++); - //edited 03/22/99 Matthew Mueller - tm_mon is 0 based. - sprintf(hudlogname,"%04d%02d%02d.%03d",lt->tm_year+1900,lt->tm_mon+1,lt->tm_mday,num++); - //end edit -MM -//end edit -MM - }while (!access(hudlogname,0)); - if (!(fhudlog=fopen(hudlogname,"w"))){ - hud_message(MSGC_GAME_FEEDBACK,"error opening %s",hudlogname); - return; - } - hud_message(MSGC_GAME_FEEDBACK,"logging messages to %s",hudlogname); -} - -static int recurse_flag=0; -void close_hud_log(void){ - if (fhudlog){ - ++recurse_flag; - kmatrix_log(1); - hud_message(MSGC_GAME_FEEDBACK,"closing hud log file"); - fclose(fhudlog); - fhudlog=NULL; - --recurse_flag; - } -} - -void toggle_hud_log(void){ - if (fhudlog)close_hud_log(); - else open_hud_log(); -} -void hud_log_message(char * message){ -// printf("hud_log_message %i %i %i %p: %s\n",recurse_flag,HUD_log_autostart,HUD_log_multi_autostart,fhudlog,message); - if (++recurse_flag==1){//avoid infinite loop. doh. - if (fhudlog){ -#ifdef NETWORK - if (HUD_log_multi_autostart && ((Game_mode & GM_MULTI) != fhudmulti)) - close_hud_log();//if we are using -hudlog_multi, presumably we would want multiplayer games in seperate log files than single player, so close the log file and let a new one be reopened if needed. -#endif - } - if (!fhudlog){ - if (HUD_log_autostart) - open_hud_log(); -#ifdef NETWORK - else if ((Game_mode & GM_MULTI) && HUD_log_multi_autostart){ - open_hud_log(); - } -#endif - } - } - --recurse_flag; - - if (strnicmp ("you",message,3)) { // block hudlog output messages beginning with you ("your ... maxed out", "you already have ...") - time_t t; - struct tm *lt; - t=time(NULL); - lt=localtime(&t); - //02/06/99 Matthew Mueller - added zero padding to hour - printf("%02i:%02i:%02i ",lt->tm_hour,lt->tm_min,lt->tm_sec); - if (fhudlog) - fprintf(fhudlog,"%02i:%02i:%02i ",lt->tm_hour,lt->tm_min,lt->tm_sec); - while (*message){ - if (*message>=0x01 && *message<=0x03){//filter out color codes - message++; - if (!*message)break; - }else if (*message>=0x04 && *message<=0x06){//filter out color reset code - }else{ - printf("%c",*message); - if (fhudlog) - fprintf(fhudlog,"%c",*message); - } - message++; - } - printf("\n"); - } - if (fhudlog){ - fprintf(fhudlog,"\n"); - //added 05/17/99 Matt Mueller - flush file to make sure it all gets out there - fflush(fhudlog); - //end addition -MM - } -//end edit -MM -} - -void kmatrix_print(FILE* out,int *sorted){ -#ifdef NETWORK - int i,j; - time_t t; - struct tm *lt; - t=time(NULL); - lt=localtime(&t); - //added 05/19/99 Matt Mueller - print mission name - fprintf(out,"Mission: "); -#ifndef SHAREWARE - if(!Netgame.mission_name) -#endif - fprintf(out,"Descent: First Strike\n"); -#ifndef SHAREWARE - else - fprintf(out,"%s\n",Netgame.mission_name); -#endif - //end addition -MM - fprintf(out,"%2i:%02i:%02i ",lt->tm_hour,lt->tm_min,lt->tm_sec); - for (j=0; j %s\n", "Set maximum framerate (1-80)"); printf( " -missiondir %s\n", "Set alternate mission dir to instead of missions/"); - printf( " -hudlog %s\n", "Start hudlog immediately"); printf( " -lowmem %s\n", "Lowers animation detail for better performance with low memory"); printf( " -legacyhomers %s\n", "Activate original homing missiles (FPS and physics dependent)"); + printf( " -pilot %s\n", "Select this pilot-file automatically"); + printf( " -autodemo %s\n", "Start in demo mode"); printf( "\n Controls:\n\n"); - printf( " -NoJoystick %s\n", "Disables joystick support"); printf( " -mouselook %s\n", "Activate mouselook. Works in singleplayer only"); printf( " -grabmouse %s\n", "Keeps the mouse from wandering out of the window"); printf( "\n Sound:\n\n"); - printf( " -Volume %s\n", "Sets sound volume to v, where v is between 0 and 100"); - printf( " -NoSound %s\n", "Disables sound drivers"); - printf( " -NoMusic %s\n", "Disables music; sound effects remain enabled"); + printf( " -nosound %s\n", "Disables sound drivers"); + printf( " -nomusic %s\n", "Disables music; sound effects remain enabled"); printf( "\n Graphics:\n\n"); printf( " -menux %s\n", "Set menu-resolution to by instead of game-resolution"); @@ -253,12 +232,6 @@ void show_commandline_help() printf( " -fixedfont %s\n", "Do not scale fonts to current resolution"); #endif // OGL - printf( "\n Quickstart:\n\n"); - printf( " -ini %s\n", "Option file (alternate to command line), defaults to d1x.ini"); - printf( " -notitles %s\n", "Do not show titlescreens on startup"); - printf( " -pilot %s\n", "Select this pilot-file automatically"); - printf( " -autodemo %s\n", "Start in demo mode"); - #ifdef NETWORK printf( "\n Multiplayer:\n\n"); printf( " -mprofile %s\n", "Use multi game profile "); @@ -270,7 +243,6 @@ void show_commandline_help() printf( " -noredundancy %s\n", "Do not send messages when picking up redundant items in multiplayer"); printf( " -playermessages %s\n", "View only messages from other players in multi - overrides -noredundancy"); printf( " -handicap %s\n", "Start game with shields. Must be < 100 for multi"); - printf( " -hudlog_multi %s\n", "Start hudlog upon entering multiplayer games"); printf( " -msgcolorlevel %s\n", "Level of colorization for hud messages\n\t\t\t0=none(old style)\n\t\t\t1=color names in talk messages only(default)\n\t\t\t2=also color names in kill/join/etc messages\n\t\t\t3=talk messages are fully colored, not just names"); #ifdef SUPPORTS_NET_IP printf( " -ip_nogetmyaddr %s\n", "Prevent autodetection of local ip address"); @@ -317,20 +289,14 @@ void show_commandline_help() } extern fix fixed_frametime; -extern int framerate_on; extern void vfx_set_palette_sub(ubyte *); -extern int mouselook; -extern int newhomers; -#ifndef RELEASE -extern int invulnerability; -#endif int Inferno_verbose = 0; int start_net_immediately = 0; int main(int argc,char **argv) { - int i,t; + int t; u_int32_t screen_mode = SM(640,480); error_init(NULL); @@ -344,9 +310,6 @@ int main(int argc,char **argv) if ( FindArg( "-verbose" ) ) Inferno_verbose = 1; - // Things to initialize before anything else - arch_init_start(); - if (!cfexist(DESCENT_DATA_PATH "descent.hog") || !cfexist(DESCENT_DATA_PATH "descent.pig")) Error("Could not find valid descent.hog and/or descent.pig in\n" #ifdef __unix__ @@ -372,10 +335,7 @@ int main(int argc,char **argv) printf("\nType 'd1x-rebirth-gl/sdl -help' for a list of command-line options.\n"); - if ((t = FindArg( "-missiondir" ))) - cfile_use_alternate_hogdir(Args[t+1]); - else - cfile_use_alternate_hogdir(DESCENT_DATA_PATH "missions/"); + cfile_use_alternate_hogdir(GameArg.SysMissionDir); if ((t=FindArg("-tmap"))) select_tmap(Args[t+1]); @@ -406,12 +366,6 @@ int main(int argc,char **argv) HUD_max_num_disp = t; } - if (FindArg("-hudlog_multi")) - HUD_log_multi_autostart = 1; - - if (FindArg("-hudlog")) - HUD_log_autostart = 1; - if (FindArg("-noredundancy")) MSG_Noredundancy = 1; @@ -427,12 +381,6 @@ int main(int argc,char **argv) handicap=t; } - if ((t = FindArg( "-maxfps" ))) { - t=atoi(Args[t+1]); - if (t>0&&t<=80) - maxfps=t; - } - #ifdef NETWORK if(FindArg( "-startnetgame" )) start_net_immediately = 1; @@ -449,38 +397,13 @@ int main(int argc,char **argv) if(FindArg( "-fastext" )) extfaster=1; - if (FindArg("-mouselook")) - mouselook=1; - else - mouselook=0; - - if (FindArg("-legacyhomers")) - newhomers = 0; - if (FindArg("-persistentdebris")) persistent_debris=1; - if ( FindArg( "-fps" )) - framerate_on = 1; - - if ( FindArg( "-nonicefps" )) - use_nice_fps = 0; - - if ( FindArg( "-autodemo" )) - Auto_demo = 1; - - #ifndef RELEASE - if ( FindArg( "-noscreens" ) ) - Skip_briefing_screens = 1; - - if ( FindArg( "-invulnerability") ) - invulnerability = 1; - #endif - if (Inferno_verbose) printf ("%s", TXT_VERBOSE_1); - arch_init(); + arch_sdl_init(); if (init_graphics()) return 1; @@ -542,16 +465,8 @@ int main(int argc,char **argv) gamefont_init(); // must load after palette data loaded. songs_play_song( SONG_TITLE, 1 ); -#ifndef QUICKSTART -#ifndef SHAREWARE - if ( !FindArg( "-notitles" ) ) -#endif - { - show_title_screen( "iplogo1.pcx", 1 ); - show_title_screen( "logo.pcx", 1 ); - } -#endif - + show_title_screen( "iplogo1.pcx", 1 ); + show_title_screen( "logo.pcx", 1 ); show_title_screen( "descent.pcx", 2 ); #ifdef SHAREWARE @@ -573,10 +488,8 @@ int main(int argc,char **argv) mprintf( (0, "\nInitializing 3d system..." )); g3_init(); mprintf( (0, "\nInitializing texture caching system..." )); - if (FindArg( "-lowmem" )) - texmerge_init( 10 ); // if we are low on mem, only use 10 cache bitmaps - else - texmerge_init( 9999 ); // otherwise, use as much as possible (its still limited by the #define in texmerge.c, so it won't actually use 9999) -MM + texmerge_init( 10 ); // 10 cache bitmaps + mprintf( (0, "\nRunning game...\n" )); #ifdef SCRIPT script_init(); @@ -589,17 +502,12 @@ int main(int argc,char **argv) Players[Player_num].callsign[0] = '\0'; key_flush(); -#ifdef QUICKSTART - strcpy(Players[Player_num].callsign, config_last_player); - read_player_file(); - Auto_leveling_on = Default_leveling_on; - write_player_file(); -#else - if((i=FindArg("-pilot"))) + + if(GameArg.SysPilot) { char filename[15]; int j; - snprintf(filename, 12, Args[i+1]); + snprintf(filename, 12, GameArg.SysPilot); for (j=0; filename[j] != '\0'; j++) { switch (filename[j]) { case ' ': @@ -624,7 +532,6 @@ int main(int argc,char **argv) else if(!RegisterPlayer()) Function_mode = FMODE_EXIT; -#endif gr_palette_fade_out( NULL, 32, 0 ); @@ -634,23 +541,6 @@ int main(int argc,char **argv) t = build_mission_list(0); // This also loads mission 0. #endif - -#ifdef QUICKSTART - Difficulty_level = Player_default_difficulty; - Skip_briefing_screens = 1; - - { - int default_mission = 0; - for (i=0;i=640 && SHEIGHT>=480?FONTSCALE_X(2):FONTSCALE_X(1))) @@ -2098,7 +2097,7 @@ void controls_read_all() mprintf( (1, "Bogus frame time of %.2f seconds\n", f2fl(FrameTime) )); // ZICO - remove clamp for pitch and heading if mouselook on and no multiplayer game - if ((Config_control_type != 5) || !mouselook || (Game_mode & GM_MULTI) ) { + if ((Config_control_type != 5) || !GameArg.CtlMouselook || (Game_mode & GM_MULTI) ) { if (Controls.pitch_time > FrameTime/2 ) Controls.pitch_time = FrameTime/2; if (Controls.heading_time > FrameTime ) Controls.heading_time = FrameTime; if (Controls.pitch_time < -FrameTime/2 ) Controls.pitch_time = -FrameTime/2; diff --git a/main/kmatrix.c b/main/kmatrix.c index 1cf9c7ea2..508df40ae 100755 --- a/main/kmatrix.c +++ b/main/kmatrix.c @@ -116,6 +116,7 @@ static char rcsid[] = "$Id: kmatrix.c,v 1.1.1.1 2006/03/17 19:44:38 zicodxx Exp #include #include #include +#include #include "error.h" #include "types.h" @@ -140,7 +141,6 @@ static char rcsid[] = "$Id: kmatrix.c,v 1.1.1.1 2006/03/17 19:44:38 zicodxx Exp #include "gauges.h" #include "pcx.h" #include "network.h" -#include "hudlog.h" #ifdef OGL #include "ogl_init.h" @@ -358,7 +358,5 @@ void kmatrix_view(int network) gr_palette_fade_out( gr_palette, 32, 0 ); game_flush_inputs(); - - kmatrix_log(0); } #endif diff --git a/main/laser.c b/main/laser.c index f42454f00..17dccbd7d 100755 --- a/main/laser.c +++ b/main/laser.c @@ -68,8 +68,6 @@ int Laser_rapid_fire = 0; int Laser_drop_vulcan_ammo = 0; -int newhomers = 1; - int find_homing_object_complete(vms_vector *curpos, object *tracker, int track_obj_type1, int track_obj_type2); //--------------------------------------------------------------------------------- @@ -1088,7 +1086,7 @@ void Laser_do_weapon_sequence(object *obj) } if (track_goal != -1) { - if (newhomers) + if (!GameArg.SysLegacyHomers) { fix turn_radius; diff --git a/main/menu.c b/main/menu.c index 75994eb00..c15b7a4f9 100755 --- a/main/menu.c +++ b/main/menu.c @@ -165,8 +165,7 @@ void autodemo_menu_check(int nitems, newmenu_item * items, int *last_key, int ci if ( do_auto_demo ) { curtime = timer_get_approx_seconds(); - //if ( ((keyd_time_when_last_pressed+i2f(20)) < curtime) && ((last_joy_time+i2f(20)) < curtime) && (!speedtest_on) ) { - if ( (((keyd_time_when_last_pressed+i2f(45)) < curtime) && (!speedtest_on)) || Auto_demo == 1 ) { + if ( (((keyd_time_when_last_pressed+i2f(45)) < curtime) && (!speedtest_on)) || GameArg.SysAutoDemo == 1 ) { keyd_time_when_last_pressed = curtime; // Reset timer so that disk won't thrash if no demos. newdemo_start_playback(NULL); // Randomly pick a file if (Newdemo_state == ND_STATE_PLAYBACK) { diff --git a/main/multi.c b/main/multi.c index 9aa637cab..8f01400dc 100755 --- a/main/multi.c +++ b/main/multi.c @@ -77,10 +77,6 @@ static char rcsid[] = "$Id: multi.c,v 1.1.1.1 2006/03/17 19:43:22 zicodxx Exp $" #include "ignore.h" //End addition by GRiM FisH -//added 11/01/98 Matt Mueller -#include "hudlog.h" -//end addition -MM - //added 11/01/98 Matt Mueller #include "pingstat.h" //end addition -MM @@ -1015,10 +1011,6 @@ multi_leave_game(void) if (!(Game_mode & GM_MULTI)) return; - //added 11/01/98 by Matthew Mueller - kmatrix_log(0); - //end addition -MM - if (Game_mode & GM_NETWORK) { mprintf((0, "Sending explosion message.\n")); diff --git a/main/newdemo.c b/main/newdemo.c index 6a4177198..840f8f88c 100755 --- a/main/newdemo.c +++ b/main/newdemo.c @@ -11,11 +11,6 @@ AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE. COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. */ - -#ifdef RCS -static char rcsid[] = "$Id: newdemo.c,v 1.1.1.1 2006/03/17 19:44:19 zicodxx Exp $"; -#endif - #include #include #include // for memset @@ -87,8 +82,6 @@ static char rcsid[] = "$Id: newdemo.c,v 1.1.1.1 2006/03/17 19:44:19 zicodxx Exp #include "editor/editor.h" #endif -//Does demo start automatically? -int Auto_demo = 0; void DoJasonInterpolate (fix recorded_time); #define ND_EVENT_EOF 0 // EOF diff --git a/main/newdemo.h b/main/newdemo.h index 8a5f5ca0e..a3e83dee3 100755 --- a/main/newdemo.h +++ b/main/newdemo.h @@ -11,165 +11,11 @@ AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE. COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. */ /* - * $Source: /cvsroot/dxx-rebirth/d1x-rebirth/main/newdemo.h,v $ - * $Revision: 1.1.1.1 $ - * $Author: zicodxx $ - * $Date: 2006/03/17 19:44:19 $ - * + * * . - * - * $Log: newdemo.h,v $ - * Revision 1.1.1.1 2006/03/17 19:44:19 zicodxx - * initial import * - * Revision 1.1.1.1 1999/06/14 22:12:47 donut - * Import of d1x 1.37 source. - * - * 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 - * - * */ - - #ifndef _NEWDEMO_H #define _NEWDEMO_H @@ -195,9 +41,6 @@ extern int Newdemo_game_mode; extern int Newdemo_vcr_state; extern sbyte Newdemo_do_interpolate; -//Does demo start automatically? -extern int Auto_demo; - // Functions called during recording process... extern void newdemo_record_start_demo(); extern void newdemo_record_start_frame(int frame_number, fix frame_time ); diff --git a/main/piggy.c b/main/piggy.c index adff88a4e..302c98eca 100755 --- a/main/piggy.c +++ b/main/piggy.c @@ -435,8 +435,6 @@ int Num_sound_files_new = 0; static BitmapFile AllBitmaps[ MAX_BITMAP_FILES ]; static SoundFile AllSounds[ MAX_SOUND_FILES ]; -int piggy_low_memory = 0; - #define DBM_FLAG_LARGE 128 // Flags added onto the flags struct in b #define DBM_FLAG_ABM 64 @@ -726,13 +724,7 @@ int piggy_init() if ( FindArg( "-bigpig" )) BigPig = 1; - if ( FindArg( "-lowmem" )) - piggy_low_memory = 1; - - if ( FindArg( "-nolowmem" )) - piggy_low_memory = 0; - - if (piggy_low_memory) + if (GameArg.SysLowMem) digi_lomem = 1; if ( (i=FindArg( "-piggy" )) ) { @@ -968,7 +960,7 @@ void piggy_bitmap_page_in( bitmap_index bitmap ) if ( GameBitmapOffset[i] == 0 ) return; // A read-from-disk bitmap!!! - if ( piggy_low_memory ) { + if ( GameArg.SysLowMem ) { org_i = i; i = GameBitmapXlat[i]; // Xlat for low-memory settings! } @@ -1036,7 +1028,7 @@ void piggy_bitmap_page_in( bitmap_index bitmap ) start_time(); } - if ( piggy_low_memory ) { + if ( GameArg.SysLowMem ) { if ( org_i != i ) GameBitmaps[org_i] = GameBitmaps[i]; } diff --git a/main/titles.c b/main/titles.c index 968621ccd..505bc22b9 100755 --- a/main/titles.c +++ b/main/titles.c @@ -68,8 +68,6 @@ char Briefing_text_filename[13] = "briefing.tex"; #define SHAREWARE_ENDING_FILENAME "ending.tex" -// Can be set by -noscreens command line option. Causes bypassing of all briefing screens. -int Skip_briefing_screens=0; int Briefing_foreground_colors[MAX_BRIEFING_COLORS], Briefing_background_colors[MAX_BRIEFING_COLORS]; int Current_color = 0; int Erase_color; @@ -1085,11 +1083,6 @@ int show_briefing_screen( int screen_num, int allow_keys) New_pal_254_bash = 0; - if (Skip_briefing_screens) { - mprintf((0, "Skipping briefing screen [%s]\n", &Briefing_screens[screen_num].bs_name)); - return 0; - } - gr_init_bitmap_data (&briefing_bm); if ((pcx_error=pcx_read_bitmap( Briefing_screens_LH[screen_num].bs_name, &briefing_bm, BM_LINEAR, New_pal ))!=PCX_ERROR_NONE) { @@ -1130,11 +1123,6 @@ void do_briefing_screens(int level_num) int abort_briefing_screens = 0; int cur_briefing_screen = 0; - if (Skip_briefing_screens) { - mprintf((0, "Skipping all briefing screens.\n")); - return; - } - if (!Briefing_text_filename[0]) //no filename? return;