2 * Copyright (C) Volition, Inc. 1999. All rights reserved.
4 * All source code herein is the property of Volition, Inc. You may not sell
5 * or otherwise commercially exploit the source or things you created based on
10 * $Logfile: /Freespace2/code/Cmdline/cmdline.h $
16 * Revision 1.3 2003/05/06 07:20:14 taylor
17 * implement command line options
19 * Revision 1.2 2002/06/09 04:41:12 relnev
20 * added copyright header
22 * Revision 1.1.1.1 2002/05/03 03:28:11 root
26 * 8 8/26/99 8:51p Dave
27 * Gave multiplayer TvT messaging a heavy dose of sanity. Cheat codes.
29 * 7 7/15/99 3:07p Dave
30 * 32 bit detection support. Mouse coord commandline.
32 * 6 7/13/99 1:15p Dave
33 * 32 bit support. Whee!
35 * 5 6/22/99 9:37p Dave
38 * 4 1/12/99 5:45p Dave
39 * Moved weapon pipeline in multiplayer to almost exclusively client side.
40 * Very good results. Bandwidth goes down, playability goes up for crappy
41 * connections. Fixed object update problem for ship subsystems.
43 * 3 11/17/98 11:12a Dave
44 * Removed player identification by address. Now assign explicit id #'s.
46 * 2 10/07/98 10:52a Dave
49 * 1 10/07/98 10:48a Dave
51 * 27 9/15/98 4:04p Allender
52 * added back in the -ip_addr command line switch because it needs to be
53 * in the standalone server only executable
55 * 26 9/14/98 11:28a Allender
56 * support for server bashing of address when received from client. Added
57 * a cmdline.cfg file to process command line arguments from a file
59 * 25 9/08/98 2:20p Allender
60 * temporary code to force IP address to a specific value.
62 * 24 8/20/98 5:30p Dave
63 * Put in handy multiplayer logfile system. Now need to put in useful
64 * applications of it all over the code.
66 * 23 8/07/98 10:40a Allender
67 * new command line flags for starting netgames. Only starting currently
68 * works, and PXO isn't implemented yet
70 * 22 7/24/98 11:14a Allender
71 * start of new command line options for version 1.04
73 * 21 5/21/98 1:50a Dave
74 * Remove obsolete command line functions. Reduce shield explosion packets
75 * drastically. Tweak PXO screen even more. Fix file xfer system so that
76 * we can guarantee file uniqueness.
78 * 20 5/18/98 9:10p Dave
79 * Put in many new PXO features. Fixed skill level bashing in multiplayer.
80 * Removed several old command line options. Put in network config files.
82 * 19 5/09/98 7:16p Dave
83 * Put in CD checking. Put in standalone host password. Made pilot into
86 * 18 4/23/98 8:27p Allender
87 * basic support for cutscene playback. Into movie code in place. Tech
88 * room can view cutscenes stored in CDROM_dir variable
90 * 17 3/14/98 2:48p Dave
91 * Cleaned up observer joining code. Put in support for file xfers to
92 * ingame joiners (observers or not). Revamped and reinstalled pseudo
95 * 16 1/31/98 4:32p Dave
96 * Put in new support for VMT player validation, game logging in and game
99 * 15 12/10/97 4:45p Dave
100 * Added in more detailed support for multiplayer packet lag/loss. Fixed
101 * some multiplayer stuff. Added some controls to the standalone.
103 * 14 12/09/97 6:14p Lawrance
106 * 13 11/28/97 7:04p Dave
107 * Emergency checkin due to big system crash.
109 * 12 11/28/97 5:06p Dave
110 * Put in facilities for simulating multiplayer lag.
112 * 11 11/24/97 5:42p Dave
113 * Fixed a file xfer buffer free/malloc problem. Lengthened command line
114 * switch string parse length.
116 * 10 11/12/97 4:39p Dave
117 * Put in multiplayer campaign support parsing, loading and saving. Made
118 * command-line variables better named. Changed some things on the initial
119 * pilot select screen.
121 * 9 11/11/97 4:54p Dave
122 * Put in support for single vs. multiplayer pilots. Put in initial player
123 * selection screen (no command line option yet). Started work on
124 * multiplayer campaign file save gaming.
126 * 8 9/18/97 10:13p Dave
127 * Added -gimmemedals, which gives the current pilot all the medals in the
130 * 7 9/18/97 9:20a Dave
131 * Minor modifications
133 * 6 9/15/97 11:40p Lawrance
134 * remove demo granularity switch
136 * 5 9/03/97 5:03p Lawrance
137 * add support for -nosound command line parm
139 * 4 8/21/97 4:55p Dave
140 * Added a switch for multiplayer chat streaming. Added a section for
141 * global command line vars.
143 * 3 8/06/97 2:26p Dave
144 * Made the command line parse more robust. Made it easier to add and
145 * process new command-line switches.
147 * 2 8/04/97 3:13p Dave
148 * Added command line functions. See cmdline.cpp for directions on adding
151 * 1 8/04/97 9:58a Dave
156 #ifndef FS_CMDLINE_HEADER_FILE
157 #define FS_CMDLINE_HEADER_FILE
159 int parse_cmdline(char *cmdline);
161 // COMMAND LINE SETTINGS
162 // This section is for reference by all the *_init() functions. For example, the multiplayer init function
163 // could check to see if (int Cmdline_multi_stream_chat_to_file) has been set by the command line parser.
165 // Add any extern definitions here and put the actual variables inside of cmdline.cpp for ease of use
166 // Also, check to make sure anything you add doesn't break Fred or TestCode
168 extern int Cmdline_multi_stream_chat_to_file;
169 extern int Cmdline_freespace_no_sound;
170 extern int Cmdline_freespace_no_music;
171 extern int Cmdline_gimme_all_medals;
172 extern int Cmdline_use_last_pilot;
173 extern int Cmdline_cd_check;
174 extern int Cmdline_start_netgame;
175 extern int Cmdline_closed_game;
176 extern int Cmdline_restricted_game;
177 extern int Cmdline_network_port;
178 extern char *Cmdline_game_name;
179 extern char *Cmdline_game_password;
180 extern char *Cmdline_rank_above;
181 extern char *Cmdline_rank_below;
182 extern char *Cmdline_connect_addr;
183 extern int Cmdline_multi_log;
184 extern int Cmdline_server_firing;
185 extern int Cmdline_client_dodamage;
186 extern int Cmdline_spew_pof_info;
187 extern int Cmdline_force_32bit;
188 extern int Cmdline_mouse_coords;
189 extern int Cmdline_timeout;
191 extern int Cmdline_no_grab;
192 extern int Cmdline_play_movies;
193 extern int Cmdline_fullscreen;
196 extern int Cmdline_window;