Added structure for values saved in PLR/PLX files; Added most common command-line options to options menu
This commit is contained in:
parent
a62060bacf
commit
3a52d03d21
|
@ -1,5 +1,9 @@
|
|||
D2X-Rebirth Changelog
|
||||
|
||||
20080413
|
||||
--------
|
||||
include/args.h, main/newmenu.c, main/collide.h, main/network.c, main/multi.c, main/multi.h, main/inferno.c, main/menu.c, main/menu.h, main/playsave.c, main/playsave.h, main/object.c, main/hud.c, main/weapon.c, main/newdemo.c, main/config.c, main/config.h, main/gamerend.c, main/gameseq.c, main/escort.c, main/escort.h, main/endlevel.c, main/powerup.c, main/powerup.h, main/automap.c, main/game.c, main/gauges.c, main/game.h, main/kconfig.c, main/gauges.h, main/kconfig.h, main/gamecntl.c, misc/args.c, d2x.ini, arch/ogl/ogl.c, arch/ogl/gr.c, arch/sdl/joy.c: Added structure for values saved in PLR/PLX files; Added most common command-line options to options menu
|
||||
|
||||
20080408
|
||||
--------
|
||||
d2x-rebirth.xcodeproj, include/cfile.h, main/inferno.c, main/newmenu.c, misc/error.c, ui/gadget.c, ui/window.c: show a messagebox if there's an error and graphics are initialised, update Xcode project
|
||||
|
|
|
@ -48,6 +48,7 @@
|
|||
#include "render.h"
|
||||
#include "console.h"
|
||||
#include "config.h"
|
||||
#include "playsave.h"
|
||||
|
||||
#if defined(__APPLE__) && defined(__MACH__)
|
||||
#include <OpenGL/glu.h>
|
||||
|
@ -546,7 +547,7 @@ void save_screen_shot(int automap_flag)
|
|||
if (!automap_flag)
|
||||
hud_message(MSGC_GAME_FEEDBACK,message);
|
||||
|
||||
if (!automap_flag && GameArg.OglPrShot && Function_mode == FMODE_GAME)
|
||||
if (!automap_flag && PlayerCfg.OglPRShot && Function_mode == FMODE_GAME)
|
||||
{
|
||||
render_frame(0,0);
|
||||
gr_set_curfont(MEDIUM2_FONT);
|
||||
|
|
|
@ -51,6 +51,7 @@
|
|||
#include "byteswap.h"
|
||||
#include "endlevel.h"
|
||||
#include "gauges.h"
|
||||
#include "playsave.h"
|
||||
|
||||
//change to 1 for lots of spew.
|
||||
#if 0
|
||||
|
@ -776,7 +777,7 @@ bool g3_draw_bitmap(vms_vector *pos,fix width,fix height,grs_bitmap *bm, int ori
|
|||
glBegin(GL_QUADS);
|
||||
|
||||
// Define alpha by looking for object TYPE or ID. We do this here so we have it seperated from the rest of the code.
|
||||
if (GameArg.OglAlphaEffects && // if -gl_transparency draw following bitmaps
|
||||
if (PlayerCfg.OglAlphaEffects && // if -gl_transparency draw following bitmaps
|
||||
(obj->type==OBJ_FIREBALL || // all types of explosions and energy-effects
|
||||
(obj->type==OBJ_WEAPON && (obj->id != PROXIMITY_ID && obj->id != SUPERPROX_ID)) || // weapon fire except bombs
|
||||
obj->id==POW_EXTRA_LIFE || // extra life
|
||||
|
|
|
@ -20,13 +20,13 @@
|
|||
#include "event.h"
|
||||
#include "text.h"
|
||||
#include "u_mem.h"
|
||||
#include "playsave.h"
|
||||
|
||||
extern char *joybutton_text[]; //from kconfig.c
|
||||
extern char *joyaxis_text[]; //from kconfig.c
|
||||
|
||||
char joy_present = 0;
|
||||
int num_joysticks = 0;
|
||||
int joy_deadzone = 0;
|
||||
int joy_num_axes = 0;
|
||||
|
||||
struct joybutton {
|
||||
|
@ -379,7 +379,7 @@ int joy_get_scaled_reading( int raw, int axis_num )
|
|||
#if 1
|
||||
int x, d;
|
||||
|
||||
d = (joy_deadzone) * 6;
|
||||
d = (PlayerCfg.JoystickDeadzone) * 6;
|
||||
if (((raw/256) > (-1*d)) && ((raw/256) < d))
|
||||
x = 0;
|
||||
else
|
||||
|
@ -409,7 +409,7 @@ int joy_get_scaled_reading( int raw, int axis_num )
|
|||
if ( x > 127 )
|
||||
x = 127;
|
||||
|
||||
d = (joy_deadzone) * 6;
|
||||
d = (PlayerCfg.JoystickDeadzone) * 6;
|
||||
if ((x > (-1*d)) && (x < d))
|
||||
x = 0;
|
||||
|
||||
|
|
8
d2x.ini
8
d2x.ini
|
@ -29,19 +29,11 @@
|
|||
|
||||
Graphics:
|
||||
|
||||
;-hud <n> Set hud mode. 0=normal 1-3=new
|
||||
;-persistentdebris Enable persistent debris. Works in singleplayer only
|
||||
;-lowresfont Force to use LowRes fonts
|
||||
;-lowresgraphics Force to use LowRes graphics
|
||||
;-lowresmovies Play low resolution movies if available (for slow machines)
|
||||
;-subtitles Turn on movie subtitles
|
||||
|
||||
OpenGL:
|
||||
|
||||
;-gl_transparency Enable transparency effects
|
||||
;-gl_reticle <n> Use OGL reticle 0=never 1=above 320x* 2=always
|
||||
;-gl_fixedfont Do not scale fonts to current resolution
|
||||
;-gl_prshot Take clean screenshots - no HUD and DXX-Rebirth writing
|
||||
|
||||
Multiplayer:
|
||||
|
||||
|
|
|
@ -65,17 +65,12 @@ typedef struct Arg
|
|||
int SndSdlMixer;
|
||||
char *SndExternalMusic;
|
||||
char *SndJukebox;
|
||||
int GfxGaugeHudMode;// MOVE
|
||||
int GfxPersistentDebris;// MOVE
|
||||
int GfxHiresGFXAvailable;
|
||||
int GfxHiresFNTAvailable;
|
||||
int GfxMovieHires;
|
||||
int GfxMovieSubtitles;
|
||||
#ifdef OGL
|
||||
int OglAlphaEffects;// MOVE
|
||||
int OglReticle;// MOVE
|
||||
int OglFixedFont;
|
||||
int OglPrShot;// MOVE
|
||||
#endif
|
||||
int MplGameProfile;
|
||||
int MplNoRankings;
|
||||
|
|
|
@ -69,6 +69,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
#include "switch.h"
|
||||
#include "automap.h"
|
||||
#include "cntrlcen.h"
|
||||
#include "playsave.h"
|
||||
|
||||
#define EF_USED 1 // This edge is used
|
||||
#define EF_DEFINING 2 // A structure defining edge that should always draw.
|
||||
|
@ -269,8 +270,6 @@ void DropMarker (int player_marker_num)
|
|||
|
||||
}
|
||||
|
||||
extern char guidebot_name[];
|
||||
|
||||
void DropBuddyMarker(object *objp)
|
||||
{
|
||||
int marker_num;
|
||||
|
@ -280,7 +279,7 @@ void DropBuddyMarker(object *objp)
|
|||
if (marker_num > NUM_MARKERS-1)
|
||||
marker_num = NUM_MARKERS-1;
|
||||
|
||||
sprintf(MarkerMessage[marker_num], "RIP: %s",guidebot_name);
|
||||
sprintf(MarkerMessage[marker_num], "RIP: %s",PlayerCfg.GuidebotName);
|
||||
|
||||
MarkerPoint[marker_num] = objp->pos;
|
||||
|
||||
|
|
|
@ -22,6 +22,8 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
#ifndef _COLLIDE_H
|
||||
#define _COLLIDE_H
|
||||
|
||||
#include "playsave.h"
|
||||
|
||||
void collide_init();
|
||||
void collide_two_objects(object * A, object * B, vms_vector *collision_point);
|
||||
void collide_object_with_wall(object * A, fix hitspeed, short hitseg, short hitwall, vms_vector * hitpt);
|
||||
|
@ -32,7 +34,7 @@ extern int apply_damage_to_robot(object *robot, fix damage, int killer_objnum);
|
|||
|
||||
extern int Immaterial;
|
||||
|
||||
#define PERSISTENT_DEBRIS (GameArg.GfxPersistentDebris && !(Game_mode & GM_MULTI)) // no persistent debris in multi
|
||||
#define PERSISTENT_DEBRIS (PlayerCfg.PersistentDebris && !(Game_mode & GM_MULTI)) // no persistent debris in multi
|
||||
|
||||
extern void collide_player_and_weapon(object * player, object * weapon, vms_vector *collision_point);
|
||||
extern void collide_player_and_materialization_center(object *objp);
|
||||
|
|
|
@ -48,7 +48,6 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
|
||||
struct Cfg GameCfg;
|
||||
|
||||
ubyte Config_control_type = 0;
|
||||
ubyte Config_joystick_sensitivity = 8;
|
||||
|
||||
static char *DigiVolumeStr = "DigiVolume";
|
||||
|
@ -85,8 +84,6 @@ int ReadConfigFile()
|
|||
GameCfg.WindowMode = 0;
|
||||
GameCfg.TexFilt = 0;
|
||||
|
||||
Config_control_type = 0;
|
||||
|
||||
infile = PHYSFSX_openReadBuffered("descent.cfg");
|
||||
|
||||
if (infile == NULL) {
|
||||
|
|
|
@ -46,11 +46,6 @@ extern struct Cfg GameCfg;
|
|||
extern int ReadConfigFile(void);
|
||||
extern int WriteConfigFile(void);
|
||||
|
||||
extern ubyte Config_control_type;
|
||||
extern ubyte Config_joystick_sensitivity;
|
||||
extern ubyte Config_mouse_sensitivity;
|
||||
extern int joy_deadzone;
|
||||
|
||||
//values for Config_control_type
|
||||
#define CONTROL_NONE 0
|
||||
#define CONTROL_JOYSTICK 1
|
||||
|
|
|
@ -44,7 +44,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
#include "fvi.h"
|
||||
#include "u_mem.h"
|
||||
#include "sounds.h"
|
||||
|
||||
#include "playsave.h"
|
||||
#include "inferno.h"
|
||||
#include "endlevel.h"
|
||||
#include "object.h"
|
||||
|
@ -407,7 +407,7 @@ void start_rendered_endlevel_sequence()
|
|||
|
||||
}
|
||||
|
||||
cockpit_mode_save = Cockpit_mode;
|
||||
cockpit_mode_save = PlayerCfg.CockpitMode;
|
||||
|
||||
#ifdef NETWORK
|
||||
if (Game_mode & GM_MULTI) {
|
||||
|
|
|
@ -110,9 +110,6 @@ int Last_buddy_key;
|
|||
|
||||
fix Last_buddy_message_time;
|
||||
|
||||
char guidebot_name[GUIDEBOT_NAME_LEN+1] = "GUIDE-BOT";
|
||||
char real_guidebot_name[GUIDEBOT_NAME_LEN+1] = "GUIDE-BOT";
|
||||
|
||||
void init_buddy_for_level(void)
|
||||
{
|
||||
int i;
|
||||
|
@ -380,14 +377,14 @@ void change_guidebot_name()
|
|||
char text[GUIDEBOT_NAME_LEN+1]="";
|
||||
int item;
|
||||
|
||||
strcpy(text,guidebot_name);
|
||||
strcpy(text,PlayerCfg.GuidebotName);
|
||||
|
||||
m.type=NM_TYPE_INPUT; m.text_len = GUIDEBOT_NAME_LEN; m.text = text;
|
||||
item = newmenu_do( NULL, "Enter Guide-bot name:", 1, &m, NULL );
|
||||
|
||||
if (item != -1) {
|
||||
strcpy(guidebot_name,text);
|
||||
strcpy(real_guidebot_name,text);
|
||||
strcpy(PlayerCfg.GuidebotName,text);
|
||||
strcpy(PlayerCfg.GuidebotNameReal,text);
|
||||
write_player_file();
|
||||
}
|
||||
}
|
||||
|
@ -413,7 +410,7 @@ void buddy_message(char * format, ... )
|
|||
|
||||
gb_str[0] = CC_COLOR;
|
||||
gb_str[1] = BM_XRGB(28, 0, 0);
|
||||
strcpy(&gb_str[2], guidebot_name);
|
||||
strcpy(&gb_str[2], PlayerCfg.GuidebotName);
|
||||
t = strlen(gb_str);
|
||||
gb_str[t] = ':';
|
||||
gb_str[t+1] = CC_COLOR;
|
||||
|
@ -478,7 +475,7 @@ void set_escort_special_goal(int special_key)
|
|||
|
||||
for (i=0; i<=Highest_object_index; i++)
|
||||
if ((Objects[i].type == OBJ_ROBOT) && Robot_info[Objects[i].id].companion) {
|
||||
HUD_init_message("%s has not been released.",guidebot_name);
|
||||
HUD_init_message("%s has not been released.",PlayerCfg.GuidebotName);
|
||||
break;
|
||||
}
|
||||
if (i == Highest_object_index+1)
|
||||
|
@ -1683,7 +1680,7 @@ void do_escort_menu(void)
|
|||
ok_for_buddy_to_talk(); // Needed here or we might not know buddy can talk when he can.
|
||||
|
||||
if (!Buddy_allowed_to_talk) {
|
||||
HUD_init_message("%s has not been released",guidebot_name);
|
||||
HUD_init_message("%s has not been released",PlayerCfg.GuidebotName);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
/* $Id: escort.h,v 1.1.1.1 2006/03/17 19:55:00 zicodxx Exp $ */
|
||||
|
||||
/*
|
||||
*
|
||||
* Header for escort.c
|
||||
|
@ -8,19 +6,10 @@
|
|||
|
||||
#ifndef _ESCORT_H
|
||||
#define _ESCORT_H
|
||||
|
||||
extern int Buddy_dude_cheat;
|
||||
|
||||
|
||||
#define GUIDEBOT_NAME_LEN 9
|
||||
extern char guidebot_name[];
|
||||
extern char real_guidebot_name[];
|
||||
|
||||
extern int Buddy_dude_cheat;
|
||||
extern void change_guidebot_name(void);
|
||||
|
||||
|
||||
extern void do_escort_menu(void);
|
||||
extern void detect_escort_goal_accomplished(int index);
|
||||
extern void set_escort_special_goal(int key);
|
||||
|
||||
#endif // _ESCORT_H
|
||||
|
|
28
main/game.c
28
main/game.c
|
@ -160,7 +160,6 @@ grs_canvas VR_editor_canvas; // The canvas that the editor writes to.
|
|||
|
||||
int Debug_pause=0; //John's debugging pause system
|
||||
|
||||
int Cockpit_mode=CM_FULL_COCKPIT; //set game.h for values
|
||||
static int old_cockpit_mode=-1;
|
||||
|
||||
int force_cockpit_redraw=0;
|
||||
|
@ -278,12 +277,12 @@ void init_cockpit()
|
|||
VR_screen_flags = VRF_ALLOW_COCKPIT;
|
||||
}
|
||||
|
||||
if ((!(VR_screen_flags & VRF_ALLOW_COCKPIT) && (Cockpit_mode==CM_FULL_COCKPIT || Cockpit_mode==CM_STATUS_BAR || Cockpit_mode==CM_REAR_VIEW)) || ( VR_render_mode != VR_NONE ) || ( Screen_mode == SCREEN_EDITOR ))
|
||||
Cockpit_mode = CM_FULL_SCREEN;
|
||||
if ((!(VR_screen_flags & VRF_ALLOW_COCKPIT) && (PlayerCfg.CockpitMode==CM_FULL_COCKPIT || PlayerCfg.CockpitMode==CM_STATUS_BAR || PlayerCfg.CockpitMode==CM_REAR_VIEW)) || ( VR_render_mode != VR_NONE ) || ( Screen_mode == SCREEN_EDITOR ))
|
||||
PlayerCfg.CockpitMode = CM_FULL_SCREEN;
|
||||
|
||||
gr_set_current_canvas(NULL);
|
||||
|
||||
switch( Cockpit_mode ) {
|
||||
switch( PlayerCfg.CockpitMode ) {
|
||||
case CM_FULL_COCKPIT:
|
||||
game_init_render_sub_buffers(0, 0, grd_curscreen->sc_w,(grd_curscreen->sc_h*2)/3);
|
||||
break;
|
||||
|
@ -310,7 +309,7 @@ void init_cockpit()
|
|||
}
|
||||
|
||||
if (Newdemo_state==ND_STATE_RECORDING) {
|
||||
newdemo_record_cockpit_change(Cockpit_mode);
|
||||
newdemo_record_cockpit_change(PlayerCfg.CockpitMode);
|
||||
}
|
||||
|
||||
gr_set_current_canvas(NULL);
|
||||
|
@ -319,8 +318,8 @@ void init_cockpit()
|
|||
//selects a given cockpit (or lack of one). See types in game.h
|
||||
void select_cockpit(int mode)
|
||||
{
|
||||
if (mode != Cockpit_mode) { //new mode
|
||||
Cockpit_mode=mode;
|
||||
if (mode != PlayerCfg.CockpitMode) { //new mode
|
||||
PlayerCfg.CockpitMode=mode;
|
||||
init_cockpit();
|
||||
}
|
||||
}
|
||||
|
@ -1172,7 +1171,7 @@ void check_rear_view()
|
|||
|
||||
if (Rear_view) {
|
||||
Rear_view = 0;
|
||||
if (Cockpit_mode==CM_REAR_VIEW) {
|
||||
if (PlayerCfg.CockpitMode==CM_REAR_VIEW) {
|
||||
select_cockpit(old_cockpit_mode);
|
||||
}
|
||||
if (Newdemo_state == ND_STATE_RECORDING)
|
||||
|
@ -1189,8 +1188,8 @@ void check_rear_view()
|
|||
leave_mode = 0; // means wait for another key
|
||||
entry_time = timer_get_fixed_seconds();
|
||||
}
|
||||
if (Cockpit_mode == CM_FULL_COCKPIT) {
|
||||
old_cockpit_mode = Cockpit_mode;
|
||||
if (PlayerCfg.CockpitMode == CM_FULL_COCKPIT) {
|
||||
old_cockpit_mode = PlayerCfg.CockpitMode;
|
||||
select_cockpit(CM_REAR_VIEW);
|
||||
}
|
||||
if (Newdemo_state == ND_STATE_RECORDING)
|
||||
|
@ -1205,11 +1204,11 @@ void check_rear_view()
|
|||
}
|
||||
else {
|
||||
|
||||
//@@if (leave_mode==1 && Cockpit_mode==CM_REAR_VIEW) {
|
||||
//@@if (leave_mode==1 && PlayerCfg.CockpitMode==CM_REAR_VIEW) {
|
||||
|
||||
if (leave_mode==1 && Rear_view) {
|
||||
Rear_view = 0;
|
||||
if (Cockpit_mode==CM_REAR_VIEW) {
|
||||
if (PlayerCfg.CockpitMode==CM_REAR_VIEW) {
|
||||
select_cockpit(old_cockpit_mode);
|
||||
}
|
||||
if (Newdemo_state == ND_STATE_RECORDING)
|
||||
|
@ -1227,7 +1226,7 @@ void reset_rear_view(void)
|
|||
|
||||
Rear_view = 0;
|
||||
|
||||
if (!(Cockpit_mode == CM_FULL_COCKPIT || Cockpit_mode == CM_STATUS_BAR || Cockpit_mode == CM_FULL_SCREEN)) {
|
||||
if (!(PlayerCfg.CockpitMode == CM_FULL_COCKPIT || PlayerCfg.CockpitMode == CM_STATUS_BAR || PlayerCfg.CockpitMode == CM_FULL_SCREEN)) {
|
||||
if (!(old_cockpit_mode == CM_FULL_COCKPIT || old_cockpit_mode == CM_STATUS_BAR || old_cockpit_mode == CM_FULL_SCREEN))
|
||||
old_cockpit_mode = CM_FULL_COCKPIT;
|
||||
select_cockpit(old_cockpit_mode);
|
||||
|
@ -1511,11 +1510,8 @@ extern int Do_appearance_effect;
|
|||
|
||||
object *Missile_viewer=NULL;
|
||||
|
||||
int Missile_view_enabled = 1;
|
||||
|
||||
int Marker_viewer_num[2]={-1,-1};
|
||||
int Coop_view_player[2]={-1,-1};
|
||||
int Cockpit_3d_view[2]={CV_NONE,CV_NONE};
|
||||
|
||||
//returns ptr to escort robot, or NULL
|
||||
object *find_escort()
|
||||
|
|
|
@ -38,8 +38,6 @@ extern fix Next_missile_fire_time; // Time at which player can next fire his se
|
|||
extern fix Laser_delay_time; // Delay between laser fires.
|
||||
extern int Cheats_enabled;
|
||||
|
||||
extern int Missile_view_enabled;
|
||||
|
||||
extern object *Missile_viewer;
|
||||
|
||||
#define CV_NONE 0
|
||||
|
@ -48,7 +46,6 @@ extern object *Missile_viewer;
|
|||
#define CV_COOP 3
|
||||
#define CV_MARKER 4
|
||||
|
||||
extern int Cockpit_3d_view[2]; // left & right
|
||||
extern int Coop_view_player[2]; // left & right
|
||||
extern int Marker_viewer_num[2]; // left & right
|
||||
|
||||
|
@ -156,7 +153,6 @@ extern void save_screen_shot(int automap_flag);
|
|||
#define CM_FULL_SCREEN 3 // full screen, no cockpit (w/ reticle)
|
||||
#define CM_LETTERBOX 4 // half-height window (for cutscenes)
|
||||
|
||||
extern int Cockpit_mode; // what sort of cockpit or window is up?
|
||||
extern int Game_window_w, // width and height of player's game window
|
||||
Game_window_h;
|
||||
|
||||
|
|
|
@ -131,7 +131,6 @@ int redbook_volume = 255;
|
|||
// External Variables ---------------------------------------------------------
|
||||
|
||||
extern int Speedtest_on; // Speedtest global adapted from game.c
|
||||
extern int Guided_in_big_window;
|
||||
extern char WaitForRefuseAnswer,RefuseThisPlayer,RefuseTeam;
|
||||
extern ubyte Newdemo_flying_guided;
|
||||
|
||||
|
@ -147,8 +146,6 @@ extern int Speedtest_count;
|
|||
extern int Global_missile_firing_count;
|
||||
extern int Automap_flag;
|
||||
extern int Config_menu_flag;
|
||||
extern int EscortHotKeys;
|
||||
|
||||
|
||||
extern int Game_aborted;
|
||||
extern int *Toggle_var;
|
||||
|
@ -549,7 +546,7 @@ void do_show_netgame_help()
|
|||
if (!GameArg.MplNoRankings)
|
||||
{
|
||||
if (i==Player_num)
|
||||
sprintf (mtext[num],"%s%s (%d/%d)",RankStrings[NetPlayers.players[i].rank],Players[i].callsign,Netlife_kills,Netlife_killed);
|
||||
sprintf (mtext[num],"%s%s (%d/%d)",RankStrings[NetPlayers.players[i].rank],Players[i].callsign,PlayerCfg.NetlifeKills,PlayerCfg.NetlifeKilled);
|
||||
else
|
||||
sprintf (mtext[num],"%s%s %d/%d",RankStrings[NetPlayers.players[i].rank],Players[i].callsign,kill_matrix[Player_num][i],
|
||||
kill_matrix[i][Player_num]);
|
||||
|
@ -562,7 +559,7 @@ void do_show_netgame_help()
|
|||
|
||||
sprintf (mtext[num]," "); num++;
|
||||
|
||||
eff=(int)((float)((float)Netlife_kills/((float)Netlife_killed+(float)Netlife_kills))*100.0);
|
||||
eff=(int)((float)((float)PlayerCfg.NetlifeKills/((float)PlayerCfg.NetlifeKilled+(float)PlayerCfg.NetlifeKills))*100.0);
|
||||
|
||||
if (eff<0)
|
||||
eff=0;
|
||||
|
@ -801,13 +798,13 @@ int select_next_window_function(int w)
|
|||
{
|
||||
Assert(w==0 || w==1);
|
||||
|
||||
switch (Cockpit_3d_view[w]) {
|
||||
switch (PlayerCfg.Cockpit3DView[w]) {
|
||||
case CV_NONE:
|
||||
Cockpit_3d_view[w] = CV_REAR;
|
||||
PlayerCfg.Cockpit3DView[w] = CV_REAR;
|
||||
break;
|
||||
case CV_REAR:
|
||||
if (find_escort()) {
|
||||
Cockpit_3d_view[w] = CV_ESCORT;
|
||||
PlayerCfg.Cockpit3DView[w] = CV_ESCORT;
|
||||
break;
|
||||
}
|
||||
//if no ecort, fall through
|
||||
|
@ -818,11 +815,11 @@ int select_next_window_function(int w)
|
|||
case CV_COOP:
|
||||
Marker_viewer_num[w] = -1;
|
||||
if ((Game_mode & GM_MULTI_COOP) || (Game_mode & GM_TEAM)) {
|
||||
Cockpit_3d_view[w] = CV_COOP;
|
||||
PlayerCfg.Cockpit3DView[w] = CV_COOP;
|
||||
while (1) {
|
||||
Coop_view_player[w]++;
|
||||
if (Coop_view_player[w] == N_players) {
|
||||
Cockpit_3d_view[w] = CV_MARKER;
|
||||
PlayerCfg.Cockpit3DView[w] = CV_MARKER;
|
||||
goto case_marker;
|
||||
}
|
||||
if (Coop_view_player[w]==Player_num)
|
||||
|
@ -839,17 +836,17 @@ int select_next_window_function(int w)
|
|||
case CV_MARKER:
|
||||
case_marker:;
|
||||
if ((Game_mode & GM_MULTI) && !(Game_mode & GM_MULTI_COOP) && Netgame.Allow_marker_view) { //anarchy only
|
||||
Cockpit_3d_view[w] = CV_MARKER;
|
||||
PlayerCfg.Cockpit3DView[w] = CV_MARKER;
|
||||
if (Marker_viewer_num[w] == -1)
|
||||
Marker_viewer_num[w] = Player_num * 2;
|
||||
else if (Marker_viewer_num[w] == Player_num * 2)
|
||||
Marker_viewer_num[w]++;
|
||||
else
|
||||
Cockpit_3d_view[w] = CV_NONE;
|
||||
PlayerCfg.Cockpit3DView[w] = CV_NONE;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
Cockpit_3d_view[w] = CV_NONE;
|
||||
PlayerCfg.Cockpit3DView[w] = CV_NONE;
|
||||
break;
|
||||
}
|
||||
write_player_file();
|
||||
|
@ -1023,7 +1020,7 @@ int HandleSystemKey(int key)
|
|||
MAC(case KEY_COMMAND+KEY_3:)
|
||||
|
||||
case KEY_F3:
|
||||
if (!(Guided_missile[Player_num] && Guided_missile[Player_num]->type==OBJ_WEAPON && Guided_missile[Player_num]->id==GUIDEDMISS_ID && Guided_missile[Player_num]->signature==Guided_missile_sig[Player_num] && Guided_in_big_window))
|
||||
if (!(Guided_missile[Player_num] && Guided_missile[Player_num]->type==OBJ_WEAPON && Guided_missile[Player_num]->id==GUIDEDMISS_ID && Guided_missile[Player_num]->signature==Guided_missile_sig[Player_num] && PlayerCfg.GuidedInBigWindow))
|
||||
{
|
||||
toggle_cockpit(); screen_changed=1;
|
||||
}
|
||||
|
@ -1402,7 +1399,7 @@ void HandleGameKey(int key)
|
|||
case KEY_8 + KEY_SHIFTED:
|
||||
case KEY_9 + KEY_SHIFTED:
|
||||
case KEY_0 + KEY_SHIFTED:
|
||||
if (EscortHotKeys)
|
||||
if (PlayerCfg.EscortHotKeys)
|
||||
{
|
||||
if (!(Game_mode & GM_MULTI))
|
||||
set_escort_special_goal(key);
|
||||
|
@ -1412,7 +1409,8 @@ void HandleGameKey(int key)
|
|||
}
|
||||
|
||||
case KEY_ALTED+KEY_F7:
|
||||
GameArg.GfxGaugeHudMode=(GameArg.GfxGaugeHudMode+1)%GAUGE_HUD_NUMMODES;
|
||||
PlayerCfg.HudMode=(PlayerCfg.HudMode+1)%GAUGE_HUD_NUMMODES;
|
||||
write_player_file();
|
||||
break;
|
||||
|
||||
#ifdef NETWORK
|
||||
|
@ -1609,7 +1607,7 @@ void HandleTestKey(int key)
|
|||
|
||||
#ifdef NETWORK
|
||||
case KEY_DEBUGGED+KEY_ALTED+KEY_D:
|
||||
Netlife_kills=4000; Netlife_killed=5;
|
||||
PlayerCfg.NetlifeKills=4000; PlayerCfg.NetlifeKilled=5;
|
||||
multi_add_lifetime_kills();
|
||||
break;
|
||||
#endif
|
||||
|
@ -1996,12 +1994,12 @@ void FinalCheats(int key)
|
|||
do_cheat_penalty();
|
||||
Buddy_dude_cheat = !Buddy_dude_cheat;
|
||||
if (Buddy_dude_cheat) {
|
||||
HUD_init_message ("%s gets angry!",guidebot_name);
|
||||
strcpy(guidebot_name,"Wingnut");
|
||||
HUD_init_message ("%s gets angry!",PlayerCfg.GuidebotName);
|
||||
strcpy(PlayerCfg.GuidebotName,"Wingnut");
|
||||
}
|
||||
else {
|
||||
strcpy(guidebot_name,real_guidebot_name);
|
||||
HUD_init_message ("%s calms down",guidebot_name);
|
||||
strcpy(PlayerCfg.GuidebotName,PlayerCfg.GuidebotNameReal);
|
||||
HUD_init_message ("%s calms down",PlayerCfg.GuidebotName);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -147,12 +147,12 @@ void show_framerate()
|
|||
|
||||
if (frame_time_total) {
|
||||
int y=GHEIGHT;
|
||||
if (Cockpit_mode==CM_FULL_SCREEN) {
|
||||
if (PlayerCfg.CockpitMode==CM_FULL_SCREEN) {
|
||||
if (Game_mode & GM_MULTI)
|
||||
y -= LINE_SPACING * 10;
|
||||
else
|
||||
y -= LINE_SPACING * 5;
|
||||
} else if (Cockpit_mode == CM_STATUS_BAR) {
|
||||
} else if (PlayerCfg.CockpitMode == CM_STATUS_BAR) {
|
||||
if (Game_mode & GM_MULTI)
|
||||
y -= LINE_SPACING * 6;
|
||||
else
|
||||
|
@ -279,7 +279,7 @@ void show_netplayerinfo()
|
|||
gr_set_fontcolor(255,-1);
|
||||
|
||||
// additional information about game - hoard, ranking
|
||||
eff=(int)((float)((float)Netlife_kills/((float)Netlife_killed+(float)Netlife_kills))*100.0);
|
||||
eff=(int)((float)((float)PlayerCfg.NetlifeKills/((float)PlayerCfg.NetlifeKilled+(float)PlayerCfg.NetlifeKills))*100.0);
|
||||
if (eff<0)
|
||||
eff=0;
|
||||
|
||||
|
@ -292,7 +292,7 @@ void show_netplayerinfo()
|
|||
}
|
||||
else if (!GameArg.MplNoRankings)
|
||||
{
|
||||
gr_printf(0x8000,y,"Your lifetime efficiency of %d%% (%d/%d)",eff,Netlife_kills,Netlife_killed);
|
||||
gr_printf(0x8000,y,"Your lifetime efficiency of %d%% (%d/%d)",eff,PlayerCfg.NetlifeKills,PlayerCfg.NetlifeKilled);
|
||||
y+=LINE_SPACING;
|
||||
if (eff<60)
|
||||
gr_printf(0x8000,y,"is %s your ranking.",eff_strings[eff/10]);
|
||||
|
@ -419,28 +419,28 @@ void game_draw_hud_stuff()
|
|||
|
||||
y = GHEIGHT-(LINE_SPACING*2);
|
||||
|
||||
if (Cockpit_mode == CM_FULL_COCKPIT)
|
||||
if (PlayerCfg.CockpitMode == CM_FULL_COCKPIT)
|
||||
y = grd_curcanv->cv_bitmap.bm_h / 1.2 ;
|
||||
if (Cockpit_mode != CM_REAR_VIEW)
|
||||
if (PlayerCfg.CockpitMode != CM_REAR_VIEW)
|
||||
gr_printf(0x8000, y, message );
|
||||
}
|
||||
|
||||
render_countdown_gauge();
|
||||
|
||||
// this should be made part of hud code some day
|
||||
if ( Player_num > -1 && Viewer->type==OBJ_PLAYER && Viewer->id==Player_num && Cockpit_mode != CM_REAR_VIEW) {
|
||||
if ( Player_num > -1 && Viewer->type==OBJ_PLAYER && Viewer->id==Player_num && PlayerCfg.CockpitMode != CM_REAR_VIEW) {
|
||||
int x = FSPACX(1);
|
||||
int y = grd_curcanv->cv_bitmap.bm_h;
|
||||
|
||||
gr_set_curfont( GAME_FONT );
|
||||
gr_set_fontcolor( BM_XRGB(0, 31, 0), -1 );
|
||||
if (Cruise_speed > 0) {
|
||||
if (Cockpit_mode==CM_FULL_SCREEN) {
|
||||
if (PlayerCfg.CockpitMode==CM_FULL_SCREEN) {
|
||||
if (Game_mode & GM_MULTI)
|
||||
y -= LINE_SPACING * 10;
|
||||
else
|
||||
y -= LINE_SPACING * 5;
|
||||
} else if (Cockpit_mode == CM_STATUS_BAR) {
|
||||
} else if (PlayerCfg.CockpitMode == CM_STATUS_BAR) {
|
||||
if (Game_mode & GM_MULTI)
|
||||
y -= LINE_SPACING * 6;
|
||||
else
|
||||
|
@ -456,7 +456,7 @@ void game_draw_hud_stuff()
|
|||
}
|
||||
}
|
||||
|
||||
if (GameArg.SysFPSIndicator && Cockpit_mode != CM_REAR_VIEW)
|
||||
if (GameArg.SysFPSIndicator && PlayerCfg.CockpitMode != CM_REAR_VIEW)
|
||||
show_framerate();
|
||||
|
||||
draw_hud();
|
||||
|
@ -545,7 +545,6 @@ void game_expand_bitmap( grs_bitmap * bmp, uint flags )
|
|||
}
|
||||
|
||||
extern int SW_drawn[2], SW_x[2], SW_y[2], SW_w[2], SW_h[2];
|
||||
extern int Guided_in_big_window;
|
||||
ubyte RenderingType=0;
|
||||
ubyte DemoDoingRight=0,DemoDoingLeft=0;
|
||||
extern ubyte DemoDoRight,DemoDoLeft;
|
||||
|
@ -555,8 +554,6 @@ char DemoWBUType[]={0,WBU_GUIDED,WBU_MISSILE,WBU_REAR,WBU_ESCORT,WBU_MARKER,0};
|
|||
char DemoRearCheck[]={0,0,0,1,0,0,0};
|
||||
char *DemoExtraMessage[]={"PLAYER","GUIDED","MISSILE","REAR","GUIDE-BOT","MARKER","SHIP"};
|
||||
|
||||
extern char guidebot_name[];
|
||||
|
||||
void show_extra_views()
|
||||
{
|
||||
int did_missile_view=0;
|
||||
|
@ -598,7 +595,7 @@ void show_extra_views()
|
|||
|
||||
if (Guided_missile[Player_num] && Guided_missile[Player_num]->type==OBJ_WEAPON && Guided_missile[Player_num]->id==GUIDEDMISS_ID && Guided_missile[Player_num]->signature==Guided_missile_sig[Player_num])
|
||||
{
|
||||
if (Guided_in_big_window)
|
||||
if (PlayerCfg.GuidedInBigWindow)
|
||||
{
|
||||
RenderingType=6+(1<<4);
|
||||
do_cockpit_window_view(1,Viewer,0,WBU_MISSILE,"SHIP");
|
||||
|
@ -614,7 +611,7 @@ void show_extra_views()
|
|||
else {
|
||||
|
||||
if (Guided_missile[Player_num]) { //used to be active
|
||||
if (!Guided_in_big_window)
|
||||
if (!PlayerCfg.GuidedInBigWindow)
|
||||
do_cockpit_window_view(1,NULL,0,WBU_STATIC,NULL);
|
||||
Guided_missile[Player_num] = NULL;
|
||||
}
|
||||
|
@ -624,7 +621,7 @@ void show_extra_views()
|
|||
static int mv_sig=-1;
|
||||
if (mv_sig == -1)
|
||||
mv_sig = Missile_viewer->signature;
|
||||
if (Missile_view_enabled && Missile_viewer->type!=OBJ_NONE && Missile_viewer->signature == mv_sig) {
|
||||
if (PlayerCfg.MissileViewEnabled && Missile_viewer->type!=OBJ_NONE && Missile_viewer->signature == mv_sig) {
|
||||
RenderingType=2+(1<<4);
|
||||
do_cockpit_window_view(1,Missile_viewer,0,WBU_MISSILE,"MISSILE");
|
||||
did_missile_view=1;
|
||||
|
@ -644,7 +641,7 @@ void show_extra_views()
|
|||
continue; //if showing missile view in right window, can't show anything else
|
||||
|
||||
//show special views if selected
|
||||
switch (Cockpit_3d_view[w]) {
|
||||
switch (PlayerCfg.Cockpit3DView[w]) {
|
||||
case CV_NONE:
|
||||
RenderingType=255;
|
||||
do_cockpit_window_view(w,NULL,0,WBU_WEAPON,NULL);
|
||||
|
@ -664,11 +661,11 @@ void show_extra_views()
|
|||
buddy = find_escort();
|
||||
if (buddy == NULL) {
|
||||
do_cockpit_window_view(w,NULL,0,WBU_WEAPON,NULL);
|
||||
Cockpit_3d_view[w] = CV_NONE;
|
||||
PlayerCfg.Cockpit3DView[w] = CV_NONE;
|
||||
}
|
||||
else {
|
||||
RenderingType=4+(w<<4);
|
||||
do_cockpit_window_view(w,buddy,0,WBU_ESCORT,guidebot_name);
|
||||
do_cockpit_window_view(w,buddy,0,WBU_ESCORT,PlayerCfg.GuidebotName);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -682,7 +679,7 @@ void show_extra_views()
|
|||
do_cockpit_window_view(w,&Objects[Players[Coop_view_player[w]].objnum],0,WBU_COOP,Players[Coop_view_player[w]].callsign);
|
||||
else {
|
||||
do_cockpit_window_view(w,NULL,0,WBU_WEAPON,NULL);
|
||||
Cockpit_3d_view[w] = CV_NONE;
|
||||
PlayerCfg.Cockpit3DView[w] = CV_NONE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -691,7 +688,7 @@ void show_extra_views()
|
|||
char label[10];
|
||||
RenderingType=5+(w<<4);
|
||||
if (Marker_viewer_num[w] == -1 || MarkerObject[Marker_viewer_num[w]] == -1) {
|
||||
Cockpit_3d_view[w] = CV_NONE;
|
||||
PlayerCfg.Cockpit3DView[w] = CV_NONE;
|
||||
break;
|
||||
}
|
||||
sprintf(label,"Marker %d",Marker_viewer_num[w]+1);
|
||||
|
@ -718,14 +715,14 @@ void game_render_frame_mono(int flip)
|
|||
|
||||
gr_set_current_canvas(&Screen_3d_window);
|
||||
|
||||
if (Guided_missile[Player_num] && Guided_missile[Player_num]->type==OBJ_WEAPON && Guided_missile[Player_num]->id==GUIDEDMISS_ID && Guided_missile[Player_num]->signature==Guided_missile_sig[Player_num] && Guided_in_big_window) {
|
||||
if (Guided_missile[Player_num] && Guided_missile[Player_num]->type==OBJ_WEAPON && Guided_missile[Player_num]->id==GUIDEDMISS_ID && Guided_missile[Player_num]->signature==Guided_missile_sig[Player_num] && PlayerCfg.GuidedInBigWindow) {
|
||||
object *viewer_save = Viewer;
|
||||
|
||||
if (Cockpit_mode==CM_FULL_COCKPIT)
|
||||
if (PlayerCfg.CockpitMode==CM_FULL_COCKPIT)
|
||||
{
|
||||
BigWindowSwitch=1;
|
||||
force_cockpit_redraw=1;
|
||||
Cockpit_mode=CM_STATUS_BAR;
|
||||
PlayerCfg.CockpitMode=CM_STATUS_BAR;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -753,7 +750,7 @@ void game_render_frame_mono(int flip)
|
|||
if (BigWindowSwitch)
|
||||
{
|
||||
force_cockpit_redraw=1;
|
||||
Cockpit_mode=CM_FULL_COCKPIT;
|
||||
PlayerCfg.CockpitMode=CM_FULL_COCKPIT;
|
||||
BigWindowSwitch=0;
|
||||
return;
|
||||
}
|
||||
|
@ -767,7 +764,7 @@ void game_render_frame_mono(int flip)
|
|||
|
||||
show_extra_views(); //missile view, buddy bot, etc.
|
||||
|
||||
if (Cockpit_mode==CM_FULL_COCKPIT || Cockpit_mode==CM_STATUS_BAR)
|
||||
if (PlayerCfg.CockpitMode==CM_FULL_COCKPIT || PlayerCfg.CockpitMode==CM_STATUS_BAR)
|
||||
render_gauges();
|
||||
|
||||
gr_set_current_canvas(&Screen_3d_window);
|
||||
|
@ -794,7 +791,7 @@ void toggle_cockpit()
|
|||
if (Rear_view)
|
||||
return;
|
||||
|
||||
switch (Cockpit_mode)
|
||||
switch (PlayerCfg.CockpitMode)
|
||||
{
|
||||
case CM_FULL_COCKPIT:
|
||||
new_mode = CM_STATUS_BAR;
|
||||
|
@ -822,13 +819,13 @@ void update_cockpits(int force_redraw)
|
|||
|
||||
grs_bitmap *bm;
|
||||
|
||||
PIGGY_PAGE_IN(cockpit_bitmap[Cockpit_mode+(HIRESMODE?(Num_cockpits/2):0)]);
|
||||
bm=&GameBitmaps[cockpit_bitmap[Cockpit_mode+(HIRESMODE?(Num_cockpits/2):0)].index];
|
||||
PIGGY_PAGE_IN(cockpit_bitmap[PlayerCfg.CockpitMode+(HIRESMODE?(Num_cockpits/2):0)]);
|
||||
bm=&GameBitmaps[cockpit_bitmap[PlayerCfg.CockpitMode+(HIRESMODE?(Num_cockpits/2):0)].index];
|
||||
|
||||
//Redraw the on-screen cockpit bitmaps
|
||||
if (VR_render_mode != VR_NONE ) return;
|
||||
|
||||
switch( Cockpit_mode ) {
|
||||
switch( PlayerCfg.CockpitMode ) {
|
||||
case CM_FULL_COCKPIT:
|
||||
gr_set_current_canvas(NULL);
|
||||
bm->bm_flags |= BM_FLAG_COCKPIT_TRANSPARENT;
|
||||
|
@ -868,12 +865,12 @@ void update_cockpits(int force_redraw)
|
|||
|
||||
gr_set_current_canvas(NULL);
|
||||
|
||||
if (Cockpit_mode != last_drawn_cockpit || force_redraw )
|
||||
last_drawn_cockpit = Cockpit_mode;
|
||||
if (PlayerCfg.CockpitMode != last_drawn_cockpit || force_redraw )
|
||||
last_drawn_cockpit = PlayerCfg.CockpitMode;
|
||||
else
|
||||
return;
|
||||
|
||||
if (Cockpit_mode==CM_FULL_COCKPIT || Cockpit_mode==CM_STATUS_BAR)
|
||||
if (PlayerCfg.CockpitMode==CM_FULL_COCKPIT || PlayerCfg.CockpitMode==CM_STATUS_BAR)
|
||||
init_gauges();
|
||||
|
||||
}
|
||||
|
|
|
@ -527,8 +527,6 @@ void DoGameOver()
|
|||
|
||||
}
|
||||
|
||||
extern void do_save_game_menu();
|
||||
|
||||
//update various information about the player
|
||||
void update_player_stats()
|
||||
{
|
||||
|
@ -690,12 +688,14 @@ int RegisterPlayer()
|
|||
//---------------------------------------------------------------------
|
||||
// Set default config options in case there is no config file
|
||||
// kc_keyboard, kc_joystick, kc_mouse are statically defined.
|
||||
Config_joystick_sensitivity = 8;
|
||||
Config_mouse_sensitivity = 8;
|
||||
Config_control_type =CONTROL_NONE;
|
||||
PlayerCfg.JoystickSensitivity = 8;
|
||||
PlayerCfg.MouseSensitivity = 8;
|
||||
PlayerCfg.ControlType =CONTROL_NONE;
|
||||
for (i=0; i<CONTROL_MAX_TYPES; i++ )
|
||||
for (j=0; j<MAX_CONTROLS; j++ )
|
||||
kconfig_settings[i][j] = default_kconfig_settings[i][j];
|
||||
PlayerCfg.KeySettings[i][j] = DefaultKeySettings[i][j];
|
||||
for(i=0; i<MAX_D2X_CONTROLS; i++)
|
||||
PlayerCfg.KeySettingsD2X[i]=DefaultKeySettingsD2X[i];
|
||||
kc_set_controls();
|
||||
//----------------------------------------------------------------
|
||||
|
||||
|
@ -724,8 +724,6 @@ do_menu_again:
|
|||
if (read_player_file() != EZERO)
|
||||
goto do_menu_again;
|
||||
|
||||
Auto_leveling_on = Default_leveling_on;
|
||||
|
||||
WriteConfigFile(); // Update lastplr
|
||||
|
||||
return 1;
|
||||
|
|
113
main/gauges.c
113
main/gauges.c
|
@ -54,7 +54,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
#include "render.h"
|
||||
#include "piggy.h"
|
||||
#include "laser.h"
|
||||
|
||||
#include "playsave.h"
|
||||
#ifdef OGL
|
||||
#include "ogl_init.h"
|
||||
#endif
|
||||
|
@ -334,7 +334,6 @@ static inline void _page_in_gauge(int x)
|
|||
void draw_ammo_info(int x,int y,int ammo_count,int primary);
|
||||
extern void draw_guided_crosshair(void);
|
||||
|
||||
ubyte Reticle_on=1;
|
||||
static int score_display;
|
||||
static fix score_time;
|
||||
static int old_score = -1;
|
||||
|
@ -920,7 +919,7 @@ void play_homing_warning(void)
|
|||
// -----------------------------------------------------------------------------
|
||||
void show_homing_warning(void)
|
||||
{
|
||||
if ((Cockpit_mode == CM_STATUS_BAR) || (Endlevel_sequence)) {
|
||||
if ((PlayerCfg.CockpitMode == CM_STATUS_BAR) || (Endlevel_sequence)) {
|
||||
if (Last_homing_warning_shown == 1) {
|
||||
PAGE_IN_GAUGE( GAUGE_HOMING_WARNING_OFF );
|
||||
hud_bitblt( HUD_SCALE_X(HOMING_WARNING_X), HUD_SCALE_Y(HOMING_WARNING_Y), &GameBitmaps[ GET_GAUGE_INDEX(GAUGE_HOMING_WARNING_OFF) ]);
|
||||
|
@ -997,15 +996,15 @@ void hud_show_orbs (void)
|
|||
int x=0,y=0;
|
||||
grs_bitmap *bm;
|
||||
|
||||
if (Cockpit_mode == CM_FULL_COCKPIT) {
|
||||
if (PlayerCfg.CockpitMode == CM_FULL_COCKPIT) {
|
||||
y=HUD_SCALE_Y(GameBitmaps[ GET_GAUGE_INDEX(GAUGE_LIVES) ].bm_h+2)+FSPACY(1);
|
||||
x = (SWIDTH/10);
|
||||
}
|
||||
else if (Cockpit_mode == CM_STATUS_BAR) {
|
||||
else if (PlayerCfg.CockpitMode == CM_STATUS_BAR) {
|
||||
y=HUD_SCALE_Y(GameBitmaps[ GET_GAUGE_INDEX(GAUGE_LIVES) ].bm_h+2)+FSPACY(1);
|
||||
x = FSPACX(2);
|
||||
}
|
||||
else if (Cockpit_mode == CM_FULL_SCREEN) {
|
||||
else if (PlayerCfg.CockpitMode == CM_FULL_SCREEN) {
|
||||
y=HUD_SCALE_Y(GameBitmaps[ GET_GAUGE_INDEX(GAUGE_LIVES) ].bm_h+GameBitmaps[ GET_GAUGE_INDEX(KEY_ICON_RED) ].bm_h+4)+FSPACY(1);
|
||||
x = FSPACX(2);
|
||||
}
|
||||
|
@ -1026,15 +1025,15 @@ void hud_show_flag(void)
|
|||
if ((Game_mode & GM_CAPTURE) && (Players[Player_num].flags & PLAYER_FLAGS_FLAG)) {
|
||||
int x=0,y=0,icon;
|
||||
|
||||
if (Cockpit_mode == CM_FULL_COCKPIT) {
|
||||
if (PlayerCfg.CockpitMode == CM_FULL_COCKPIT) {
|
||||
y=HUD_SCALE_Y(GameBitmaps[ GET_GAUGE_INDEX(GAUGE_LIVES) ].bm_h+2)+FSPACY(1);
|
||||
x = (SWIDTH/10);
|
||||
}
|
||||
else if (Cockpit_mode == CM_STATUS_BAR) {
|
||||
else if (PlayerCfg.CockpitMode == CM_STATUS_BAR) {
|
||||
y=HUD_SCALE_Y(GameBitmaps[ GET_GAUGE_INDEX(GAUGE_LIVES) ].bm_h+2)+FSPACY(1);
|
||||
x = FSPACX(2);
|
||||
}
|
||||
else if (Cockpit_mode == CM_FULL_SCREEN) {
|
||||
else if (PlayerCfg.CockpitMode == CM_FULL_SCREEN) {
|
||||
y=HUD_SCALE_Y(GameBitmaps[ GET_GAUGE_INDEX(GAUGE_LIVES) ].bm_h+GameBitmaps[ GET_GAUGE_INDEX(KEY_ICON_RED) ].bm_h+4)+FSPACY(1);
|
||||
x = FSPACX(2);
|
||||
}
|
||||
|
@ -1053,7 +1052,7 @@ void hud_show_flag(void)
|
|||
|
||||
void hud_show_energy(void)
|
||||
{
|
||||
if (GameArg.GfxGaugeHudMode<2) {
|
||||
if (PlayerCfg.HudMode<2) {
|
||||
gr_set_curfont( GAME_FONT );
|
||||
gr_set_fontcolor(BM_XRGB(0,31,0),-1 );
|
||||
if (Game_mode & GM_MULTI)
|
||||
|
@ -1142,7 +1141,7 @@ void show_bomb_count(int x,int y,int bg_color,int always_show,int right_align)
|
|||
|
||||
void draw_primary_ammo_info(int ammo_count)
|
||||
{
|
||||
if (Cockpit_mode == CM_STATUS_BAR)
|
||||
if (PlayerCfg.CockpitMode == CM_STATUS_BAR)
|
||||
draw_ammo_info(SB_PRIMARY_AMMO_X,SB_PRIMARY_AMMO_Y,ammo_count,1);
|
||||
else
|
||||
draw_ammo_info(PRIMARY_AMMO_X,PRIMARY_AMMO_Y,ammo_count,1);
|
||||
|
@ -1172,8 +1171,8 @@ void hud_show_weapons_mode(int type,int vertical,int mode,int x,int y){
|
|||
Players[Player_num].laser_level+1);
|
||||
break;
|
||||
case 1:
|
||||
if (Cockpit_mode==CM_FULL_SCREEN)
|
||||
sprintf(weapon_str,(GameArg.GfxGaugeHudMode==1?"V%i":"V %i"), f2i((unsigned int) Players[Player_num].primary_ammo[1] * VULCAN_AMMO_SCALE));
|
||||
if (PlayerCfg.CockpitMode==CM_FULL_SCREEN)
|
||||
sprintf(weapon_str,(PlayerCfg.HudMode==1?"V%i":"V %i"), f2i((unsigned int) Players[Player_num].primary_ammo[1] * VULCAN_AMMO_SCALE));
|
||||
else
|
||||
sprintf(weapon_str,"V");
|
||||
break;
|
||||
|
@ -1227,7 +1226,7 @@ void hud_show_weapons_mode(int type,int vertical,int mode,int x,int y){
|
|||
sprintf(weapon_str," ");
|
||||
break;
|
||||
case 6:
|
||||
if (Cockpit_mode==CM_FULL_SCREEN)
|
||||
if (PlayerCfg.CockpitMode==CM_FULL_SCREEN)
|
||||
sprintf(weapon_str,"G%i", f2i((unsigned int)Players[Player_num].primary_ammo[1] * VULCAN_AMMO_SCALE));
|
||||
else
|
||||
sprintf(weapon_str,"G");
|
||||
|
@ -1237,7 +1236,7 @@ void hud_show_weapons_mode(int type,int vertical,int mode,int x,int y){
|
|||
case 8:
|
||||
sprintf(weapon_str,"P");break;
|
||||
case 9:
|
||||
if (Cockpit_mode==CM_FULL_SCREEN)
|
||||
if (PlayerCfg.CockpitMode==CM_FULL_SCREEN)
|
||||
sprintf(weapon_str, "O%03i", Omega_charge * 100/MAX_OMEGA_CHARGE);
|
||||
else
|
||||
sprintf(weapon_str,"O");
|
||||
|
@ -1292,18 +1291,18 @@ void hud_show_weapons(void)
|
|||
if (Game_mode & GM_MULTI)
|
||||
y -= LINE_SPACING*4;
|
||||
|
||||
if (GameArg.GfxGaugeHudMode==1){
|
||||
if (PlayerCfg.HudMode==1){
|
||||
hud_show_weapons_mode(0,0,1,grd_curcanv->cv_bitmap.bm_w,y-(LINE_SPACING*4));
|
||||
hud_show_weapons_mode(0,0,2,grd_curcanv->cv_bitmap.bm_w,y-(LINE_SPACING*3));
|
||||
hud_show_weapons_mode(1,0,1,grd_curcanv->cv_bitmap.bm_w,y-(LINE_SPACING*2));
|
||||
hud_show_weapons_mode(1,0,2,grd_curcanv->cv_bitmap.bm_w,y-LINE_SPACING);
|
||||
}
|
||||
else if (GameArg.GfxGaugeHudMode==2 || GameArg.GfxGaugeHudMode==3){
|
||||
else if (PlayerCfg.HudMode==2 || PlayerCfg.HudMode==3){
|
||||
int x1,x2;
|
||||
int w, aw;
|
||||
gr_get_string_size("V1000", &w, &x1, &aw );
|
||||
gr_get_string_size("0 ", &x2, &x1, &aw);
|
||||
if (GameArg.GfxGaugeHudMode==2){
|
||||
if (PlayerCfg.HudMode==2){
|
||||
y=grd_curcanv->cv_bitmap.bm_h-(grd_curcanv->cv_bitmap.bm_h/2.75);
|
||||
x1=grd_curcanv->cv_bitmap.bm_w/2.1-(w)-FSPACX(25);
|
||||
x2=grd_curcanv->cv_bitmap.bm_w/1.9+x2+FSPACX(20);
|
||||
|
@ -1432,7 +1431,7 @@ void hud_show_cloak_invuln(void)
|
|||
void hud_show_shield(void)
|
||||
{
|
||||
// gr_set_current_canvas(&VR_render_sub_buffer[0]); //render off-screen
|
||||
if (GameArg.GfxGaugeHudMode<2) {
|
||||
if (PlayerCfg.HudMode<2) {
|
||||
gr_set_curfont( GAME_FONT );
|
||||
gr_set_fontcolor(BM_XRGB(0,31,0),-1 );
|
||||
|
||||
|
@ -1467,7 +1466,7 @@ void hud_show_lives()
|
|||
if ((HUD_nmessages > 0) && (strlen(HUD_messages[hud_first]) > 38))
|
||||
return;
|
||||
|
||||
if (Cockpit_mode == CM_FULL_COCKPIT)
|
||||
if (PlayerCfg.CockpitMode == CM_FULL_COCKPIT)
|
||||
x = HUD_SCALE_X(7);
|
||||
else
|
||||
x = FSPACX(2);
|
||||
|
@ -1918,7 +1917,7 @@ void draw_weapon_info_sub(int info_index,gauge_box *box,int pic_x,int pic_y,char
|
|||
|
||||
hud_bitblt(HUD_SCALE_X(pic_x), HUD_SCALE_Y(pic_y), bm);
|
||||
|
||||
if (GameArg.GfxGaugeHudMode == 0)
|
||||
if (PlayerCfg.HudMode == 0)
|
||||
{
|
||||
gr_set_fontcolor(BM_XRGB(0,20,0),-1 );
|
||||
|
||||
|
@ -1959,7 +1958,7 @@ void draw_weapon_info(int weapon_type,int weapon_num,int laser_level)
|
|||
if (info_index == LASER_ID && laser_level > MAX_LASER_LEVEL)
|
||||
info_index = SUPER_LASER_ID;
|
||||
|
||||
if (Cockpit_mode == CM_STATUS_BAR)
|
||||
if (PlayerCfg.CockpitMode == CM_STATUS_BAR)
|
||||
draw_weapon_info_sub(info_index,
|
||||
&gauge_boxes[SB_PRIMARY_BOX],
|
||||
SB_PRIMARY_W_PIC_X,SB_PRIMARY_W_PIC_Y,
|
||||
|
@ -1976,7 +1975,7 @@ void draw_weapon_info(int weapon_type,int weapon_num,int laser_level)
|
|||
else {
|
||||
info_index = Secondary_weapon_to_weapon_info[weapon_num];
|
||||
|
||||
if (Cockpit_mode == CM_STATUS_BAR)
|
||||
if (PlayerCfg.CockpitMode == CM_STATUS_BAR)
|
||||
draw_weapon_info_sub(info_index,
|
||||
&gauge_boxes[SB_SECONDARY_BOX],
|
||||
SB_SECONDARY_W_PIC_X,SB_SECONDARY_W_PIC_Y,
|
||||
|
@ -1989,22 +1988,22 @@ void draw_weapon_info(int weapon_type,int weapon_num,int laser_level)
|
|||
SECONDARY_WEAPON_NAMES_SHORT(weapon_num),
|
||||
SECONDARY_W_TEXT_X,SECONDARY_W_TEXT_Y);
|
||||
}
|
||||
if (GameArg.GfxGaugeHudMode!=0)
|
||||
if (PlayerCfg.HudMode!=0)
|
||||
{
|
||||
if (weapon_box_user[0] == WBU_WEAPON) {
|
||||
hud_show_weapons_mode(0,1,1,(Cockpit_mode==CM_STATUS_BAR?SB_PRIMARY_AMMO_X:PRIMARY_AMMO_X),(Cockpit_mode==CM_STATUS_BAR?SB_SECONDARY_AMMO_Y:SECONDARY_AMMO_Y));
|
||||
hud_show_weapons_mode(0,1,2,(Cockpit_mode==CM_STATUS_BAR?SB_PRIMARY_AMMO_X:PRIMARY_AMMO_X)+FSPACX(12),(Cockpit_mode==CM_STATUS_BAR?SB_SECONDARY_AMMO_Y:SECONDARY_AMMO_Y));
|
||||
hud_show_weapons_mode(0,1,1,(PlayerCfg.CockpitMode==CM_STATUS_BAR?SB_PRIMARY_AMMO_X:PRIMARY_AMMO_X),(PlayerCfg.CockpitMode==CM_STATUS_BAR?SB_SECONDARY_AMMO_Y:SECONDARY_AMMO_Y));
|
||||
hud_show_weapons_mode(0,1,2,(PlayerCfg.CockpitMode==CM_STATUS_BAR?SB_PRIMARY_AMMO_X:PRIMARY_AMMO_X)+FSPACX(12),(PlayerCfg.CockpitMode==CM_STATUS_BAR?SB_SECONDARY_AMMO_Y:SECONDARY_AMMO_Y));
|
||||
}
|
||||
if (weapon_box_user[1] == WBU_WEAPON) {
|
||||
hud_show_weapons_mode(1,1,1,(Cockpit_mode==CM_STATUS_BAR?SB_SECONDARY_AMMO_X:SECONDARY_AMMO_X),(Cockpit_mode==CM_STATUS_BAR?SB_SECONDARY_AMMO_Y:SECONDARY_AMMO_Y));
|
||||
hud_show_weapons_mode(1,1,2,(Cockpit_mode==CM_STATUS_BAR?SB_SECONDARY_AMMO_X:SECONDARY_AMMO_X)+FSPACX(12),(Cockpit_mode==CM_STATUS_BAR?SB_SECONDARY_AMMO_Y:SECONDARY_AMMO_Y));
|
||||
hud_show_weapons_mode(1,1,1,(PlayerCfg.CockpitMode==CM_STATUS_BAR?SB_SECONDARY_AMMO_X:SECONDARY_AMMO_X),(PlayerCfg.CockpitMode==CM_STATUS_BAR?SB_SECONDARY_AMMO_Y:SECONDARY_AMMO_Y));
|
||||
hud_show_weapons_mode(1,1,2,(PlayerCfg.CockpitMode==CM_STATUS_BAR?SB_SECONDARY_AMMO_X:SECONDARY_AMMO_X)+FSPACX(12),(PlayerCfg.CockpitMode==CM_STATUS_BAR?SB_SECONDARY_AMMO_Y:SECONDARY_AMMO_Y));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void draw_ammo_info(int x,int y,int ammo_count,int primary)
|
||||
{
|
||||
if (!GameArg.GfxGaugeHudMode)
|
||||
if (!PlayerCfg.HudMode)
|
||||
{
|
||||
gr_setcolor(BM_XRGB(0,0,0));
|
||||
gr_set_fontcolor(BM_XRGB(20,0,0),-1 );
|
||||
|
@ -2014,7 +2013,7 @@ void draw_ammo_info(int x,int y,int ammo_count,int primary)
|
|||
|
||||
void draw_secondary_ammo_info(int ammo_count)
|
||||
{
|
||||
if (Cockpit_mode == CM_STATUS_BAR)
|
||||
if (PlayerCfg.CockpitMode == CM_STATUS_BAR)
|
||||
draw_ammo_info(SB_SECONDARY_AMMO_X,SB_SECONDARY_AMMO_Y,ammo_count,0);
|
||||
else
|
||||
draw_ammo_info(SECONDARY_AMMO_X,SECONDARY_AMMO_Y,ammo_count,0);
|
||||
|
@ -2030,7 +2029,7 @@ void draw_weapon_box(int weapon_type,int weapon_num)
|
|||
|
||||
laser_level_changed = (weapon_type==0 && weapon_num==LASER_INDEX && (Players[Player_num].laser_level != old_laser_level));
|
||||
|
||||
if ((weapon_num != old_weapon[weapon_type] || laser_level_changed) && weapon_box_states[weapon_type] == WS_SET && (old_weapon[weapon_type] != -1) && !GameArg.GfxGaugeHudMode)
|
||||
if ((weapon_num != old_weapon[weapon_type] || laser_level_changed) && weapon_box_states[weapon_type] == WS_SET && (old_weapon[weapon_type] != -1) && !PlayerCfg.HudMode)
|
||||
{
|
||||
weapon_box_states[weapon_type] = WS_FADING_OUT;
|
||||
weapon_box_fade_values[weapon_type]=i2f(GR_FADE_LEVELS-1);
|
||||
|
@ -2073,7 +2072,7 @@ void draw_weapon_box(int weapon_type,int weapon_num)
|
|||
|
||||
if (weapon_box_states[weapon_type] != WS_SET) { //fade gauge
|
||||
int fade_value = f2i(weapon_box_fade_values[weapon_type]);
|
||||
int boxofs = (Cockpit_mode==CM_STATUS_BAR)?SB_PRIMARY_BOX:COCKPIT_PRIMARY_BOX;
|
||||
int boxofs = (PlayerCfg.CockpitMode==CM_STATUS_BAR)?SB_PRIMARY_BOX:COCKPIT_PRIMARY_BOX;
|
||||
|
||||
Gr_scanline_darkening_level = fade_value;
|
||||
gr_rect(HUD_SCALE_X(gauge_boxes[boxofs+weapon_type].left),HUD_SCALE_Y(gauge_boxes[boxofs+weapon_type].top),HUD_SCALE_X(gauge_boxes[boxofs+weapon_type].right),HUD_SCALE_Y(gauge_boxes[boxofs+weapon_type].bot));
|
||||
|
@ -2091,7 +2090,7 @@ void draw_static(int win)
|
|||
vclip *vc = &Vclip[VCLIP_MONITOR_STATIC];
|
||||
grs_bitmap *bmp;
|
||||
int framenum;
|
||||
int boxofs = (Cockpit_mode==CM_STATUS_BAR)?SB_PRIMARY_BOX:COCKPIT_PRIMARY_BOX;
|
||||
int boxofs = (PlayerCfg.CockpitMode==CM_STATUS_BAR)?SB_PRIMARY_BOX:COCKPIT_PRIMARY_BOX;
|
||||
#ifndef OGL
|
||||
int x,y;
|
||||
#endif
|
||||
|
@ -2272,7 +2271,7 @@ void draw_invulnerable_ship()
|
|||
GameTime & 0x8000)
|
||||
{
|
||||
|
||||
if (Cockpit_mode == CM_STATUS_BAR) {
|
||||
if (PlayerCfg.CockpitMode == CM_STATUS_BAR) {
|
||||
PAGE_IN_GAUGE( GAUGE_INVULNERABLE+invulnerable_frame );
|
||||
hud_bitblt( HUD_SCALE_X(SB_SHIELD_GAUGE_X), HUD_SCALE_Y(SB_SHIELD_GAUGE_Y), &GameBitmaps[GET_GAUGE_INDEX(GAUGE_INVULNERABLE+invulnerable_frame) ]);
|
||||
} else {
|
||||
|
@ -2287,7 +2286,7 @@ void draw_invulnerable_ship()
|
|||
if (++invulnerable_frame == N_INVULNERABLE_FRAMES)
|
||||
invulnerable_frame=0;
|
||||
}
|
||||
} else if (Cockpit_mode == CM_STATUS_BAR)
|
||||
} else if (PlayerCfg.CockpitMode == CM_STATUS_BAR)
|
||||
sb_draw_shield_bar(f2ir(Players[Player_num].shields));
|
||||
else
|
||||
draw_shield_bar(f2ir(Players[Player_num].shields));
|
||||
|
@ -2356,7 +2355,7 @@ void show_reticle()
|
|||
Assert(secondary_bm_num <= 4);
|
||||
Assert(cross_bm_num <= 1);
|
||||
#ifdef OGL // scale reticle in OGL ...
|
||||
if (GameArg.OglReticle==2 || (GameArg.OglReticle && grd_curcanv->cv_bitmap.bm_w > 320))
|
||||
if (PlayerCfg.OglReticle)
|
||||
{
|
||||
ogl_draw_reticle(cross_bm_num,primary_bm_num,secondary_bm_num);
|
||||
}
|
||||
|
@ -2411,7 +2410,7 @@ void hud_show_kill_list()
|
|||
|
||||
save_y = y = grd_curcanv->cv_bitmap.bm_h - n_left*(LINE_SPACING);
|
||||
|
||||
if (Cockpit_mode == CM_FULL_COCKPIT) {
|
||||
if (PlayerCfg.CockpitMode == CM_FULL_COCKPIT) {
|
||||
save_y = y -= FSPACX(6);
|
||||
if (Game_mode & GM_MULTI_COOP)
|
||||
x1 = FSPACX(33);
|
||||
|
@ -2425,7 +2424,7 @@ void hud_show_kill_list()
|
|||
int sw,sh,aw;
|
||||
|
||||
if (i>=n_left) {
|
||||
if (Cockpit_mode == CM_FULL_COCKPIT)
|
||||
if (PlayerCfg.CockpitMode == CM_FULL_COCKPIT)
|
||||
x0 = grd_curcanv->cv_bitmap.bm_w - FSPACX(53);
|
||||
else
|
||||
x0 = grd_curcanv->cv_bitmap.bm_w - FSPACX(60);
|
||||
|
@ -2640,21 +2639,21 @@ void show_HUD_names()
|
|||
void draw_hud()
|
||||
{
|
||||
// Show score so long as not in rearview
|
||||
if ( !Rear_view && Cockpit_mode!=CM_REAR_VIEW && Cockpit_mode!=CM_STATUS_BAR && !Saving_movie_frames) {
|
||||
if ( !Rear_view && PlayerCfg.CockpitMode!=CM_REAR_VIEW && PlayerCfg.CockpitMode!=CM_STATUS_BAR && !Saving_movie_frames) {
|
||||
hud_show_score();
|
||||
if (score_time)
|
||||
hud_show_score_added();
|
||||
}
|
||||
|
||||
if ( !Rear_view && Cockpit_mode!=CM_REAR_VIEW && !Saving_movie_frames)
|
||||
if ( !Rear_view && PlayerCfg.CockpitMode!=CM_REAR_VIEW && !Saving_movie_frames)
|
||||
hud_show_timer_count();
|
||||
|
||||
// Show other stuff if not in rearview or letterbox.
|
||||
if (!Rear_view && Cockpit_mode!=CM_REAR_VIEW) { // && Cockpit_mode!=CM_LETTERBOX) {
|
||||
if (Cockpit_mode==CM_STATUS_BAR || Cockpit_mode==CM_FULL_SCREEN)
|
||||
if (!Rear_view && PlayerCfg.CockpitMode!=CM_REAR_VIEW) { // && PlayerCfg.CockpitMode!=CM_LETTERBOX) {
|
||||
if (PlayerCfg.CockpitMode==CM_STATUS_BAR || PlayerCfg.CockpitMode==CM_FULL_SCREEN)
|
||||
hud_show_homing_warning();
|
||||
|
||||
if (Cockpit_mode==CM_FULL_SCREEN) {
|
||||
if (PlayerCfg.CockpitMode==CM_FULL_SCREEN) {
|
||||
hud_show_energy();
|
||||
hud_show_shield();
|
||||
hud_show_afterburner();
|
||||
|
@ -2675,23 +2674,23 @@ void draw_hud()
|
|||
show_time();
|
||||
#endif
|
||||
#endif
|
||||
if (Reticle_on && Cockpit_mode != CM_LETTERBOX && (!Use_player_head_angles))
|
||||
if (PlayerCfg.ReticleOn && PlayerCfg.CockpitMode != CM_LETTERBOX && (!Use_player_head_angles))
|
||||
show_reticle();
|
||||
|
||||
#ifdef NETWORK
|
||||
show_HUD_names();
|
||||
|
||||
if (Cockpit_mode != CM_LETTERBOX && Cockpit_mode != CM_REAR_VIEW)
|
||||
if (PlayerCfg.CockpitMode != CM_LETTERBOX && PlayerCfg.CockpitMode != CM_REAR_VIEW)
|
||||
hud_show_flag();
|
||||
|
||||
if (Cockpit_mode != CM_LETTERBOX && Cockpit_mode != CM_REAR_VIEW)
|
||||
if (PlayerCfg.CockpitMode != CM_LETTERBOX && PlayerCfg.CockpitMode != CM_REAR_VIEW)
|
||||
hud_show_orbs();
|
||||
|
||||
#endif
|
||||
if (!Saving_movie_frames)
|
||||
HUD_render_message_frame();
|
||||
|
||||
if (Cockpit_mode!=CM_STATUS_BAR && !Saving_movie_frames)
|
||||
if (PlayerCfg.CockpitMode!=CM_STATUS_BAR && !Saving_movie_frames)
|
||||
hud_show_lives();
|
||||
|
||||
#ifdef NETWORK
|
||||
|
@ -2700,7 +2699,7 @@ void draw_hud()
|
|||
#endif
|
||||
}
|
||||
|
||||
if (Rear_view && Cockpit_mode!=CM_REAR_VIEW) {
|
||||
if (Rear_view && PlayerCfg.CockpitMode!=CM_REAR_VIEW) {
|
||||
HUD_render_message_frame();
|
||||
gr_set_curfont( GAME_FONT );
|
||||
gr_set_fontcolor(BM_XRGB(0,31,0),-1 );
|
||||
|
@ -2718,7 +2717,7 @@ void render_gauges()
|
|||
int shields = f2ir(Players[Player_num].shields);
|
||||
int cloak = ((Players[Player_num].flags&PLAYER_FLAGS_CLOAKED) != 0);
|
||||
|
||||
Assert(Cockpit_mode==CM_FULL_COCKPIT || Cockpit_mode==CM_STATUS_BAR);
|
||||
Assert(PlayerCfg.CockpitMode==CM_FULL_COCKPIT || PlayerCfg.CockpitMode==CM_STATUS_BAR);
|
||||
|
||||
// check to see if our display mode has changed since last render time --
|
||||
// if so, then we need to make new gauge canvases.
|
||||
|
@ -2744,9 +2743,9 @@ void render_gauges()
|
|||
|
||||
draw_weapon_boxes();
|
||||
|
||||
if (Cockpit_mode == CM_FULL_COCKPIT) {
|
||||
if (PlayerCfg.CockpitMode == CM_FULL_COCKPIT) {
|
||||
#ifdef OGL
|
||||
hud_bitblt (0, 0, &GameBitmaps[cockpit_bitmap[Cockpit_mode+(HIRESMODE?(Num_cockpits/2):0)].index]);
|
||||
hud_bitblt (0, 0, &GameBitmaps[cockpit_bitmap[PlayerCfg.CockpitMode+(HIRESMODE?(Num_cockpits/2):0)].index]);
|
||||
#endif
|
||||
if (Newdemo_state == ND_STATE_RECORDING && (energy != old_energy))
|
||||
{
|
||||
|
@ -2788,7 +2787,7 @@ void render_gauges()
|
|||
|
||||
show_homing_warning();
|
||||
|
||||
} else if (Cockpit_mode == CM_STATUS_BAR) {
|
||||
} else if (PlayerCfg.CockpitMode == CM_STATUS_BAR) {
|
||||
|
||||
if (Newdemo_state == ND_STATE_RECORDING && (energy != old_energy))
|
||||
{
|
||||
|
@ -2796,7 +2795,7 @@ void render_gauges()
|
|||
old_energy = energy;
|
||||
}
|
||||
sb_draw_energy_bar(energy);
|
||||
if (!GameArg.GfxGaugeHudMode && weapon_box_user[1] == WBU_WEAPON)
|
||||
if (!PlayerCfg.HudMode && weapon_box_user[1] == WBU_WEAPON)
|
||||
show_bomb_count(HUD_SCALE_X(SB_BOMB_COUNT_X), HUD_SCALE_Y(SB_BOMB_COUNT_Y), gr_find_closest_color(0, 0, 0), 0, 0);
|
||||
|
||||
if (Newdemo_state == ND_STATE_RECORDING && (Afterburner_charge != old_afterburner))
|
||||
|
@ -2920,7 +2919,7 @@ void do_cockpit_window_view(int win,object *viewer,int rear_view_flag,int user,c
|
|||
Viewer = viewer;
|
||||
Rear_view = rear_view_flag;
|
||||
|
||||
if (Cockpit_mode == CM_FULL_SCREEN)
|
||||
if (PlayerCfg.CockpitMode == CM_FULL_SCREEN)
|
||||
{
|
||||
w = grd_curscreen->sc_w/6;
|
||||
|
||||
|
@ -2937,9 +2936,9 @@ void do_cockpit_window_view(int win,object *viewer,int rear_view_flag,int user,c
|
|||
gr_init_sub_canvas(&window_canv,&grd_curscreen->sc_canvas,window_x,window_y,w,h);
|
||||
}
|
||||
else {
|
||||
if (Cockpit_mode == CM_FULL_COCKPIT)
|
||||
if (PlayerCfg.CockpitMode == CM_FULL_COCKPIT)
|
||||
boxnum = (COCKPIT_PRIMARY_BOX)+win;
|
||||
else if (Cockpit_mode == CM_STATUS_BAR)
|
||||
else if (PlayerCfg.CockpitMode == CM_STATUS_BAR)
|
||||
boxnum = (SB_PRIMARY_BOX)+win;
|
||||
else
|
||||
goto abort;
|
||||
|
@ -2969,7 +2968,7 @@ void do_cockpit_window_view(int win,object *viewer,int rear_view_flag,int user,c
|
|||
if (user == WBU_GUIDED)
|
||||
draw_guided_crosshair();
|
||||
|
||||
if (Cockpit_mode == CM_FULL_SCREEN) {
|
||||
if (PlayerCfg.CockpitMode == CM_FULL_SCREEN) {
|
||||
int small_window_bottom,big_window_bottom,extra_part_h;
|
||||
|
||||
{
|
||||
|
|
|
@ -35,7 +35,6 @@ extern bitmap_index Gauges[MAX_GAUGE_BMS]; // Array of all gauge bitmaps.
|
|||
extern bitmap_index Gauges_hires[MAX_GAUGE_BMS]; // hires gauges
|
||||
|
||||
// Flags for gauges/hud stuff
|
||||
extern ubyte Reticle_on;
|
||||
|
||||
extern void init_gauge_canvases();
|
||||
extern void close_gauge_canvases();
|
||||
|
|
|
@ -48,6 +48,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
#include "text.h"
|
||||
#include "laser.h"
|
||||
#include "args.h"
|
||||
#include "playsave.h"
|
||||
|
||||
int hud_first = 0;
|
||||
int hud_last = 0;
|
||||
|
@ -67,7 +68,7 @@ int MSG_Noredundancy = 0;
|
|||
// ----------------------------------------------------------------------------
|
||||
void clear_background_messages(void)
|
||||
{
|
||||
if (((Cockpit_mode == CM_STATUS_BAR) || (Cockpit_mode == CM_FULL_SCREEN)) && (Last_msg_ycrd != -1) && (Screen_3d_window.cv_bitmap.bm_y >= 6)) {
|
||||
if (((PlayerCfg.CockpitMode == CM_STATUS_BAR) || (PlayerCfg.CockpitMode == 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);
|
||||
|
@ -93,7 +94,6 @@ void HUD_clear_messages()
|
|||
}
|
||||
|
||||
|
||||
extern int Guided_in_big_window;
|
||||
extern int max_window_h, max_window_w;
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@ -132,7 +132,7 @@ void HUD_render_message_frame()
|
|||
y = FSPACY(1);
|
||||
|
||||
if (Guided_missile[Player_num] && Guided_missile[Player_num]->type==OBJ_WEAPON && Guided_missile[Player_num]->id==GUIDEDMISS_ID &&
|
||||
Guided_missile[Player_num]->signature==Guided_missile_sig[Player_num] && Guided_in_big_window)
|
||||
Guided_missile[Player_num]->signature==Guided_missile_sig[Player_num] && PlayerCfg.GuidedInBigWindow)
|
||||
y+=LINE_SPACING;
|
||||
|
||||
for (i=0; i<HUD_nmessages; i++ ) {
|
||||
|
|
|
@ -175,21 +175,12 @@ void print_commandline_help()
|
|||
#endif // USE SDLMIXER
|
||||
|
||||
printf( "\n Graphics:\n\n");
|
||||
printf( " -hud <n> %s\n", "Set hud mode. 0=normal 1-3=new");
|
||||
printf( " -persistentdebris %s\n", "Enable persistent debris. Works in singleplayer only");
|
||||
printf( " -lowresfont %s\n", "Force to use LowRes fonts");
|
||||
printf( " -lowresgraphics %s\n", "Force to use LowRes graphics");
|
||||
printf( " -lowresmovies %s\n", "Play low resolution movies if available (for slow machines)");
|
||||
printf( " -subtitles %s\n", "Turn on movie subtitles");
|
||||
|
||||
#ifdef OGL
|
||||
printf( "\n OpenGL:\n\n");
|
||||
printf( " -gl_mipmap %s\n", "Set gl texture filters to \"standard\" options for mipmapping");
|
||||
printf( " -gl_trilinear %s\n", "Set gl texture filters to trilinear mipmapping");
|
||||
printf( " -gl_transparency %s\n", "Enable transparency effects");
|
||||
printf( " -gl_reticle <n> %s\n", "Use OGL reticle 0=never 1=above 320x* 2=always");
|
||||
printf( " -gl_fixedfont %s\n", "Do not scale fonts to current resolution");
|
||||
printf( " -gl_prshot %s\n", "Take clean screenshots - no HUD and DXX-Rebirth writing");
|
||||
#endif // OGL
|
||||
|
||||
#ifdef NETWORK
|
||||
|
|
127
main/kconfig.c
127
main/kconfig.c
|
@ -57,6 +57,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
#include "ai.h"
|
||||
#include "cntrlcen.h"
|
||||
#include "collide.h"
|
||||
#include "playsave.h"
|
||||
|
||||
#ifdef OGL
|
||||
#include "ogl_init.h"
|
||||
|
@ -98,8 +99,6 @@ extern void nm_draw_background1(char * filename);
|
|||
|
||||
control_info Controls;
|
||||
|
||||
ubyte Config_mouse_sensitivity = 8;
|
||||
|
||||
fix Cruise_speed=0;
|
||||
extern int Automap_flag;
|
||||
|
||||
|
@ -110,8 +109,8 @@ extern int Automap_flag;
|
|||
#define BT_JOY_AXIS 4
|
||||
#define BT_INVERT 5
|
||||
|
||||
#define CONTROL_USING_JOYSTICK (Config_control_type == CONTROL_JOYSTICK || Config_control_type == CONTROL_JOYMOUSE)
|
||||
#define CONTROL_USING_MOUSE (Config_control_type == CONTROL_MOUSE || Config_control_type == CONTROL_JOYMOUSE)
|
||||
#define CONTROL_USING_JOYSTICK (PlayerCfg.ControlType == CONTROL_JOYSTICK || PlayerCfg.ControlType == CONTROL_JOYMOUSE)
|
||||
#define CONTROL_USING_MOUSE (PlayerCfg.ControlType == CONTROL_MOUSE || PlayerCfg.ControlType == CONTROL_JOYMOUSE)
|
||||
|
||||
char *btype_text[] = { "BT_KEY", "BT_MOUSE_BUTTON", "BT_MOUSE_AXIS", "BT_JOY_BUTTON", "BT_JOY_AXIS", "BT_INVERT" };
|
||||
|
||||
|
@ -132,15 +131,12 @@ typedef struct kc_item {
|
|||
int Num_items=28;
|
||||
kc_item *All_items;
|
||||
|
||||
ubyte kconfig_settings[CONTROL_MAX_TYPES][MAX_CONTROLS];
|
||||
ubyte kconfig_d2x_settings[MAX_D2X_CONTROLS];
|
||||
|
||||
//----------- WARNING!!!!!!! -------------------------------------------
|
||||
// THESE NEXT FOUR BLOCKS OF DATA ARE GENERATED BY PRESSING DEL+F12 WHEN
|
||||
// IN THE KEYBOARD CONFIG SCREEN. BASICALLY, THAT PROCEDURE MODIFIES THE
|
||||
// U,D,L,R FIELDS OF THE ARRAYS AND DUMPS THE NEW ARRAYS INTO KCONFIG.COD
|
||||
//-------------------------------------------------------------------------
|
||||
ubyte default_kconfig_settings[CONTROL_MAX_TYPES][MAX_CONTROLS] = {
|
||||
ubyte DefaultKeySettings[CONTROL_MAX_TYPES][MAX_CONTROLS] = {
|
||||
{0xc8,0x48,0xd0,0x50,0xcb,0x4b,0xcd,0x4d,0x38,0xff,0xff,0x4f,0xff,0x51,0xff,0x4a,0xff,0x4e,0xff,0xff,0x10,0x47,0x12,0x49,0x1d,0x9d,0x39,0xff,0x21,0xff,0x1e,0xff,0x2c,0xff,0x30,0xff,0x13,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf,0xff,0x1f,0xff,0x33,0xff,0x34,0xff,0x23,0xff,0x14,0xff,0xff,0xff,0x0,0x0},
|
||||
{0x0,0x1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0xff,0x0,0xff,0x0,0xff,0x0,0xff,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0},
|
||||
{0x5,0xc,0xff,0xff,0xff,0xff,0x7,0xf,0x13,0xb,0xff,0x6,0x8,0x1,0x0,0x0,0x0,0xff,0x0,0xff,0x0,0xff,0x0,0xff,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0},
|
||||
|
@ -328,7 +324,7 @@ kc_item kc_d2x[NUM_D2X_CONTROLS] = {
|
|||
};
|
||||
#endif
|
||||
|
||||
ubyte default_kconfig_d2x_settings[MAX_D2X_CONTROLS] = {
|
||||
ubyte DefaultKeySettingsD2X[MAX_D2X_CONTROLS] = {
|
||||
0x2 ,0xff,0x3 ,0xff,0x4 ,0xff,0x5 ,0xff,0x6 ,0xff,0x7 ,0xff,0x8 ,0xff,0x9 ,
|
||||
0xff,0xa ,0xff,0xb ,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff };
|
||||
|
@ -730,39 +726,24 @@ void kconfig_sub(kc_item * items,int nitems, char * title)
|
|||
case KEY_CTRLED+KEY_R:
|
||||
if ( items==kc_keyboard ) {
|
||||
for (i=0; i<NUM_KEY_CONTROLS; i++ ) {
|
||||
items[i].value=default_kconfig_settings[0][i];
|
||||
items[i].value=DefaultKeySettings[0][i];
|
||||
kc_drawitem( &items[i], 0 );
|
||||
}
|
||||
#ifdef D2X_KEYS
|
||||
} else if ( items==kc_d2x ) {
|
||||
for(i=0;i<NUM_D2X_CONTROLS;i++)
|
||||
{
|
||||
items[i].value=default_kconfig_d2x_settings[i];
|
||||
items[i].value=DefaultKeySettingsD2X[i];
|
||||
kc_drawitem( &items[i], 0 );
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
#ifdef MACINTOSH
|
||||
// hack for firebire and mousestick default controls since I made
|
||||
// them the same control type -- dumb dumb dumb
|
||||
if (joy_have_firebird())
|
||||
for (i=0; i<NUM_MOUSE_CONTROLS; i++ ) {
|
||||
items[i].value = default_firebird_settings[i];
|
||||
kc_drawitem( &items[i], 0 );
|
||||
}
|
||||
else if (joy_have_mousestick())
|
||||
for (i=0; i<NUM_MOUSE_CONTROLS; i++ ) {
|
||||
items[i].value = default_mousestick_settings[i];
|
||||
kc_drawitem( &items[i], 0 );
|
||||
}
|
||||
else
|
||||
#endif // note link to above else
|
||||
if ( items==kc_mouse )
|
||||
{
|
||||
|
||||
for (i=0; i<NUM_MOUSE_CONTROLS; i++ )
|
||||
{
|
||||
items[i].value = default_kconfig_settings[Config_control_type][i];
|
||||
items[i].value = DefaultKeySettings[PlayerCfg.ControlType][i];
|
||||
kc_drawitem( &items[i], 0 );
|
||||
}
|
||||
}
|
||||
|
@ -770,7 +751,7 @@ void kconfig_sub(kc_item * items,int nitems, char * title)
|
|||
{
|
||||
for (i=0; i<NUM_JOYSTICK_CONTROLS; i++ )
|
||||
{
|
||||
items[i].value = default_kconfig_settings[Config_control_type][i];
|
||||
items[i].value = DefaultKeySettings[PlayerCfg.ControlType][i];
|
||||
kc_drawitem( &items[i], 0 );
|
||||
}
|
||||
}
|
||||
|
@ -855,12 +836,12 @@ void kconfig_sub(kc_item * items,int nitems, char * title)
|
|||
}
|
||||
fp = fopen( "kconfig.cod", "wt" );
|
||||
|
||||
fprintf( fp, "ubyte default_kconfig_settings[CONTROL_MAX_TYPES][MAX_CONTROLS] = {\n" );
|
||||
fprintf( fp, "ubyte DefaultKeySettings[CONTROL_MAX_TYPES][MAX_CONTROLS] = {\n" );
|
||||
for (i=0; i<CONTROL_MAX_TYPES; i++ ) {
|
||||
int j;
|
||||
fprintf( fp, "{0x%x", kconfig_settings[i][0] );
|
||||
fprintf( fp, "{0x%x", PlayerCfg.KeySettings[i][0] );
|
||||
for (j=1; j<MAX_CONTROLS; j++ )
|
||||
fprintf( fp, ",0x%x", kconfig_settings[i][j] );
|
||||
fprintf( fp, ",0x%x", PlayerCfg.KeySettings[i][j] );
|
||||
fprintf( fp, "},\n" );
|
||||
}
|
||||
fprintf( fp, "};\n" );
|
||||
|
@ -1325,11 +1306,11 @@ void kconfig(int n, char * title)
|
|||
case 1:kconfig_sub( kc_joystick, NUM_JOYSTICK_CONTROLS, title );break;
|
||||
case 2:kconfig_sub( kc_mouse, NUM_MOUSE_CONTROLS, title ); break;
|
||||
case 3:
|
||||
Config_control_type = CONTROL_JOYSTICK;
|
||||
PlayerCfg.ControlType = CONTROL_JOYSTICK;
|
||||
kconfig_sub( kc_joystick,NUM_JOYSTICK_CONTROLS, "JOYSTICK");
|
||||
Config_control_type = CONTROL_MOUSE;
|
||||
PlayerCfg.ControlType = CONTROL_MOUSE;
|
||||
kconfig_sub( kc_mouse, NUM_MOUSE_CONTROLS, "MOUSE");
|
||||
Config_control_type = CONTROL_JOYMOUSE;
|
||||
PlayerCfg.ControlType = CONTROL_JOYMOUSE;
|
||||
break;
|
||||
#ifdef D2X_KEYS
|
||||
case 4:kconfig_sub( kc_d2x, NUM_D2X_CONTROLS, title ); break;
|
||||
|
@ -1341,21 +1322,21 @@ void kconfig(int n, char * title)
|
|||
|
||||
// Update save values...
|
||||
for (i=0; i<NUM_KEY_CONTROLS; i++ )
|
||||
kconfig_settings[0][i] = kc_keyboard[i].value;
|
||||
PlayerCfg.KeySettings[0][i] = kc_keyboard[i].value;
|
||||
|
||||
if ( CONTROL_USING_JOYSTICK) {
|
||||
for (i=0; i<NUM_JOYSTICK_CONTROLS; i++ )
|
||||
kconfig_settings[CONTROL_JOYSTICK][i] = kc_joystick[i].value;
|
||||
PlayerCfg.KeySettings[CONTROL_JOYSTICK][i] = kc_joystick[i].value;
|
||||
}
|
||||
|
||||
if (CONTROL_USING_MOUSE) {
|
||||
for (i=0; i<NUM_MOUSE_CONTROLS; i++ )
|
||||
kconfig_settings[CONTROL_MOUSE][i] = kc_mouse[i].value;
|
||||
PlayerCfg.KeySettings[CONTROL_MOUSE][i] = kc_mouse[i].value;
|
||||
}
|
||||
|
||||
#ifdef D2X_KEYS
|
||||
for (i=0; i<NUM_D2X_CONTROLS; i++)
|
||||
kconfig_d2x_settings[i] = kc_d2x[i].value;
|
||||
PlayerCfg.KeySettingsD2X[i] = kc_d2x[i].value;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -1591,17 +1572,17 @@ void controls_read_all()
|
|||
// From joystick...
|
||||
if ( (use_joystick)&&(kc_joystick[13].value < 255 )) {
|
||||
if ( !kc_joystick[14].value ) // If not inverted...
|
||||
Controls.pitch_time -= (joy_axis[kc_joystick[13].value]*Config_joystick_sensitivity)/8;
|
||||
Controls.pitch_time -= (joy_axis[kc_joystick[13].value]*PlayerCfg.JoystickSensitivity)/8;
|
||||
else
|
||||
Controls.pitch_time += (joy_axis[kc_joystick[13].value]*Config_joystick_sensitivity)/8;
|
||||
Controls.pitch_time += (joy_axis[kc_joystick[13].value]*PlayerCfg.JoystickSensitivity)/8;
|
||||
}
|
||||
|
||||
// From mouse...
|
||||
if ( (use_mouse)&&(kc_mouse[13].value < 255) ) {
|
||||
if ( !kc_mouse[14].value ) // If not inverted...
|
||||
Controls.pitch_time -= (mouse_axis[kc_mouse[13].value]*Config_mouse_sensitivity)/8;
|
||||
Controls.pitch_time -= (mouse_axis[kc_mouse[13].value]*PlayerCfg.MouseSensitivity)/8;
|
||||
else
|
||||
Controls.pitch_time += (mouse_axis[kc_mouse[13].value]*Config_mouse_sensitivity)/8;
|
||||
Controls.pitch_time += (mouse_axis[kc_mouse[13].value]*PlayerCfg.MouseSensitivity)/8;
|
||||
}
|
||||
} else {
|
||||
Controls.pitch_time = 0;
|
||||
|
@ -1628,17 +1609,17 @@ void controls_read_all()
|
|||
// From joystick...
|
||||
if ((use_joystick)&&( kc_joystick[13].value < 255 )) {
|
||||
if ( !kc_joystick[14].value ) // If not inverted...
|
||||
Controls.vertical_thrust_time -= (joy_axis[kc_joystick[13].value]*Config_joystick_sensitivity)/8;
|
||||
Controls.vertical_thrust_time -= (joy_axis[kc_joystick[13].value]*PlayerCfg.JoystickSensitivity)/8;
|
||||
else
|
||||
Controls.vertical_thrust_time += (joy_axis[kc_joystick[13].value]*Config_joystick_sensitivity)/8;
|
||||
Controls.vertical_thrust_time += (joy_axis[kc_joystick[13].value]*PlayerCfg.JoystickSensitivity)/8;
|
||||
}
|
||||
|
||||
// From mouse...
|
||||
if ( (use_mouse)&&(kc_mouse[13].value < 255 )) {
|
||||
if ( !kc_mouse[14].value ) // If not inverted...
|
||||
Controls.vertical_thrust_time -= (mouse_axis[kc_mouse[13].value]*Config_mouse_sensitivity)/8;
|
||||
Controls.vertical_thrust_time -= (mouse_axis[kc_mouse[13].value]*PlayerCfg.MouseSensitivity)/8;
|
||||
else
|
||||
Controls.vertical_thrust_time += (mouse_axis[kc_mouse[13].value]*Config_mouse_sensitivity)/8;
|
||||
Controls.vertical_thrust_time += (mouse_axis[kc_mouse[13].value]*PlayerCfg.MouseSensitivity)/8;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1651,9 +1632,9 @@ void controls_read_all()
|
|||
// From joystick...
|
||||
if ((use_joystick)&&( kc_joystick[19].value < 255 )) {
|
||||
if ( !kc_joystick[20].value ) // If not inverted...
|
||||
Controls.vertical_thrust_time -= (joy_axis[kc_joystick[19].value]*Config_joystick_sensitivity)/8;
|
||||
Controls.vertical_thrust_time -= (joy_axis[kc_joystick[19].value]*PlayerCfg.JoystickSensitivity)/8;
|
||||
else
|
||||
Controls.vertical_thrust_time += (joy_axis[kc_joystick[19].value]*Config_joystick_sensitivity)/8;
|
||||
Controls.vertical_thrust_time += (joy_axis[kc_joystick[19].value]*PlayerCfg.JoystickSensitivity)/8;
|
||||
}
|
||||
|
||||
// From joystick buttons
|
||||
|
@ -1669,9 +1650,9 @@ void controls_read_all()
|
|||
// From mouse...
|
||||
if ( (use_mouse)&&(kc_mouse[19].value < 255 )) {
|
||||
if ( !kc_mouse[20].value ) // If not inverted...
|
||||
Controls.vertical_thrust_time += (mouse_axis[kc_mouse[19].value]*Config_mouse_sensitivity)/8;
|
||||
Controls.vertical_thrust_time += (mouse_axis[kc_mouse[19].value]*PlayerCfg.MouseSensitivity)/8;
|
||||
else
|
||||
Controls.vertical_thrust_time -= (mouse_axis[kc_mouse[19].value]*Config_mouse_sensitivity)/8;
|
||||
Controls.vertical_thrust_time -= (mouse_axis[kc_mouse[19].value]*PlayerCfg.MouseSensitivity)/8;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1703,17 +1684,17 @@ void controls_read_all()
|
|||
// From joystick...
|
||||
if ( (use_joystick)&&(kc_joystick[15].value < 255 )) {
|
||||
if ( !kc_joystick[16].value ) // If not inverted...
|
||||
Controls.heading_time += (joy_axis[kc_joystick[15].value]*Config_joystick_sensitivity)/8;
|
||||
Controls.heading_time += (joy_axis[kc_joystick[15].value]*PlayerCfg.JoystickSensitivity)/8;
|
||||
else
|
||||
Controls.heading_time -= (joy_axis[kc_joystick[15].value]*Config_joystick_sensitivity)/8;
|
||||
Controls.heading_time -= (joy_axis[kc_joystick[15].value]*PlayerCfg.JoystickSensitivity)/8;
|
||||
}
|
||||
|
||||
// From mouse...
|
||||
if ( (use_mouse)&&(kc_mouse[15].value < 255 )) {
|
||||
if ( !kc_mouse[16].value ) // If not inverted...
|
||||
Controls.heading_time += (mouse_axis[kc_mouse[15].value]*Config_mouse_sensitivity)/8;
|
||||
Controls.heading_time += (mouse_axis[kc_mouse[15].value]*PlayerCfg.MouseSensitivity)/8;
|
||||
else
|
||||
Controls.heading_time -= (mouse_axis[kc_mouse[15].value]*Config_mouse_sensitivity)/8;
|
||||
Controls.heading_time -= (mouse_axis[kc_mouse[15].value]*PlayerCfg.MouseSensitivity)/8;
|
||||
}
|
||||
} else {
|
||||
Controls.heading_time = 0;
|
||||
|
@ -1739,17 +1720,17 @@ void controls_read_all()
|
|||
// From joystick...
|
||||
if ( (use_joystick)&&(kc_joystick[15].value < 255 )) {
|
||||
if ( !kc_joystick[16].value ) // If not inverted...
|
||||
Controls.sideways_thrust_time += (joy_axis[kc_joystick[15].value]*Config_joystick_sensitivity)/8;
|
||||
Controls.sideways_thrust_time += (joy_axis[kc_joystick[15].value]*PlayerCfg.JoystickSensitivity)/8;
|
||||
else
|
||||
Controls.sideways_thrust_time -= (joy_axis[kc_joystick[15].value]*Config_joystick_sensitivity)/8;
|
||||
Controls.sideways_thrust_time -= (joy_axis[kc_joystick[15].value]*PlayerCfg.JoystickSensitivity)/8;
|
||||
}
|
||||
|
||||
// From mouse...
|
||||
if ( (use_mouse)&&(kc_mouse[15].value < 255 )) {
|
||||
if ( !kc_mouse[16].value ) // If not inverted...
|
||||
Controls.sideways_thrust_time += (mouse_axis[kc_mouse[15].value]*Config_mouse_sensitivity)/8;
|
||||
Controls.sideways_thrust_time += (mouse_axis[kc_mouse[15].value]*PlayerCfg.MouseSensitivity)/8;
|
||||
else
|
||||
Controls.sideways_thrust_time -= (mouse_axis[kc_mouse[15].value]*Config_mouse_sensitivity)/8;
|
||||
Controls.sideways_thrust_time -= (mouse_axis[kc_mouse[15].value]*PlayerCfg.MouseSensitivity)/8;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1762,9 +1743,9 @@ void controls_read_all()
|
|||
// From joystick...
|
||||
if ( (use_joystick)&&(kc_joystick[17].value < 255 )) {
|
||||
if ( !kc_joystick[18].value ) // If not inverted...
|
||||
Controls.sideways_thrust_time += (joy_axis[kc_joystick[17].value]*Config_joystick_sensitivity)/8;
|
||||
Controls.sideways_thrust_time += (joy_axis[kc_joystick[17].value]*PlayerCfg.JoystickSensitivity)/8;
|
||||
else
|
||||
Controls.sideways_thrust_time -= (joy_axis[kc_joystick[17].value]*Config_joystick_sensitivity)/8;
|
||||
Controls.sideways_thrust_time -= (joy_axis[kc_joystick[17].value]*PlayerCfg.JoystickSensitivity)/8;
|
||||
}
|
||||
|
||||
// From joystick buttons
|
||||
|
@ -1780,9 +1761,9 @@ void controls_read_all()
|
|||
// From mouse...
|
||||
if ( (use_mouse)&&(kc_mouse[17].value < 255 )) {
|
||||
if ( !kc_mouse[18].value ) // If not inverted...
|
||||
Controls.sideways_thrust_time += (mouse_axis[kc_mouse[17].value]*Config_mouse_sensitivity)/8;
|
||||
Controls.sideways_thrust_time += (mouse_axis[kc_mouse[17].value]*PlayerCfg.MouseSensitivity)/8;
|
||||
else
|
||||
Controls.sideways_thrust_time -= (mouse_axis[kc_mouse[17].value]*Config_mouse_sensitivity)/8;
|
||||
Controls.sideways_thrust_time -= (mouse_axis[kc_mouse[17].value]*PlayerCfg.MouseSensitivity)/8;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1803,17 +1784,17 @@ void controls_read_all()
|
|||
// From joystick...
|
||||
if ( (use_joystick)&&(kc_joystick[15].value < 255) ) {
|
||||
if ( !kc_joystick[16].value ) // If not inverted...
|
||||
Controls.bank_time -= (joy_axis[kc_joystick[15].value]*Config_joystick_sensitivity)/8;
|
||||
Controls.bank_time -= (joy_axis[kc_joystick[15].value]*PlayerCfg.JoystickSensitivity)/8;
|
||||
else
|
||||
Controls.bank_time += (joy_axis[kc_joystick[15].value]*Config_joystick_sensitivity)/8;
|
||||
Controls.bank_time += (joy_axis[kc_joystick[15].value]*PlayerCfg.JoystickSensitivity)/8;
|
||||
}
|
||||
|
||||
// From mouse...
|
||||
if ( (use_mouse)&&(kc_mouse[15].value < 255 )) {
|
||||
if ( !kc_mouse[16].value ) // If not inverted...
|
||||
Controls.bank_time += (mouse_axis[kc_mouse[15].value]*Config_mouse_sensitivity)/8;
|
||||
Controls.bank_time += (mouse_axis[kc_mouse[15].value]*PlayerCfg.MouseSensitivity)/8;
|
||||
else
|
||||
Controls.bank_time -= (mouse_axis[kc_mouse[15].value]*Config_mouse_sensitivity)/8;
|
||||
Controls.bank_time -= (mouse_axis[kc_mouse[15].value]*PlayerCfg.MouseSensitivity)/8;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2068,7 +2049,7 @@ void controls_read_all()
|
|||
|
||||
//----------- Clamp values between -FrameTime and FrameTime
|
||||
// ZICO - remove clamp for pitch and heading if mouselook on and no multiplayer game
|
||||
if ((Config_control_type != 5) || !GameArg.CtlMouselook || (Game_mode & GM_MULTI) ) {
|
||||
if ((PlayerCfg.ControlType != 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;
|
||||
|
@ -2104,32 +2085,32 @@ void kc_set_controls()
|
|||
int i;
|
||||
|
||||
for (i=0; i<NUM_KEY_CONTROLS; i++ )
|
||||
kc_keyboard[i].value = kconfig_settings[0][i];
|
||||
kc_keyboard[i].value = PlayerCfg.KeySettings[0][i];
|
||||
|
||||
if (CONTROL_USING_JOYSTICK) {
|
||||
for (i=0; i<NUM_JOYSTICK_CONTROLS; i++ ) {
|
||||
kc_joystick[i].value = kconfig_settings[CONTROL_JOYSTICK][i];
|
||||
kc_joystick[i].value = PlayerCfg.KeySettings[CONTROL_JOYSTICK][i];
|
||||
if (kc_joystick[i].type == BT_INVERT ) {
|
||||
if (kc_joystick[i].value!=1)
|
||||
kc_joystick[i].value = 0;
|
||||
kconfig_settings[CONTROL_JOYSTICK][i] = kc_joystick[i].value;
|
||||
PlayerCfg.KeySettings[CONTROL_JOYSTICK][i] = kc_joystick[i].value;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (CONTROL_USING_MOUSE) {
|
||||
for (i=0; i<NUM_MOUSE_CONTROLS; i++ ) {
|
||||
kc_mouse[i].value = kconfig_settings[CONTROL_MOUSE][i];
|
||||
kc_mouse[i].value = PlayerCfg.KeySettings[CONTROL_MOUSE][i];
|
||||
if (kc_mouse[i].type == BT_INVERT ) {
|
||||
if (kc_mouse[i].value!=1)
|
||||
kc_mouse[i].value = 0;
|
||||
kconfig_settings[CONTROL_MOUSE][i] = kc_mouse[i].value;
|
||||
PlayerCfg.KeySettings[CONTROL_MOUSE][i] = kc_mouse[i].value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef D2X_KEYS
|
||||
for (i=0; i<NUM_D2X_CONTROLS; i++ )
|
||||
kc_d2x[i].value = kconfig_d2x_settings[i];
|
||||
kc_d2x[i].value = PlayerCfg.KeySettingsD2X[i];
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -151,16 +151,14 @@ extern void kconfig(int n, char *title);
|
|||
#define NUM_D2X_CONTROLS 20
|
||||
#define MAX_D2X_CONTROLS 40
|
||||
|
||||
extern ubyte kconfig_d2x_settings[MAX_D2X_CONTROLS];
|
||||
extern ubyte default_kconfig_d2x_settings[MAX_D2X_CONTROLS];
|
||||
extern ubyte DefaultKeySettingsD2X[MAX_D2X_CONTROLS];
|
||||
|
||||
#define NUM_KEY_CONTROLS 57
|
||||
#define NUM_JOYSTICK_CONTROLS 56
|
||||
#define NUM_MOUSE_CONTROLS 30
|
||||
#define MAX_CONTROLS 60 // there are actually 48, so this leaves room for more
|
||||
|
||||
extern ubyte kconfig_settings[CONTROL_MAX_TYPES][MAX_CONTROLS];
|
||||
extern ubyte default_kconfig_settings[CONTROL_MAX_TYPES][MAX_CONTROLS];
|
||||
extern ubyte DefaultKeySettings[CONTROL_MAX_TYPES][MAX_CONTROLS];
|
||||
|
||||
extern char *control_text[CONTROL_MAX_TYPES];
|
||||
|
||||
|
|
214
main/menu.c
214
main/menu.c
|
@ -118,14 +118,6 @@ extern int Speedtest_on;
|
|||
#define Speedtest_on 0
|
||||
#endif
|
||||
|
||||
void do_sound_menu();
|
||||
void do_toggles_menu();
|
||||
|
||||
int Player_default_difficulty; // Last difficulty level chosen by the player
|
||||
int Auto_leveling_on = 1;
|
||||
int Guided_in_big_window = 0;
|
||||
int EscortHotKeys=1;
|
||||
|
||||
// Function Prototypes added after LINTING
|
||||
void do_option(int select);
|
||||
void do_new_game_menu(void);
|
||||
|
@ -405,7 +397,7 @@ int do_difficulty_menu()
|
|||
if (s > -1 ) {
|
||||
if (s != Difficulty_level)
|
||||
{
|
||||
Player_default_difficulty = s;
|
||||
PlayerCfg.DefaultDifficulty = s;
|
||||
write_player_file();
|
||||
}
|
||||
Difficulty_level = s;
|
||||
|
@ -457,7 +449,7 @@ try_again:
|
|||
}
|
||||
}
|
||||
|
||||
Difficulty_level = Player_default_difficulty;
|
||||
Difficulty_level = PlayerCfg.DefaultDifficulty;
|
||||
|
||||
if (!do_difficulty_menu())
|
||||
return;
|
||||
|
@ -583,19 +575,19 @@ void change_res()
|
|||
void input_menuset(int nitems, newmenu_item * items, int *last_key, int citem )
|
||||
{
|
||||
int i;
|
||||
int oc_type = Config_control_type;
|
||||
int oc_type = PlayerCfg.ControlType;
|
||||
|
||||
nitems = nitems;
|
||||
last_key = last_key;
|
||||
citem = citem;
|
||||
|
||||
for (i=0; i<4; i++ )
|
||||
if (items[i].value) Config_control_type = i;
|
||||
if (items[i].value) PlayerCfg.ControlType = i;
|
||||
|
||||
if (Config_control_type == 2) Config_control_type = CONTROL_MOUSE;
|
||||
if (Config_control_type == 3) Config_control_type = CONTROL_JOYMOUSE;
|
||||
if (PlayerCfg.ControlType == 2) PlayerCfg.ControlType = CONTROL_MOUSE;
|
||||
if (PlayerCfg.ControlType == 3) PlayerCfg.ControlType = CONTROL_JOYMOUSE;
|
||||
|
||||
if (oc_type != Config_control_type) {
|
||||
if (oc_type != PlayerCfg.ControlType) {
|
||||
kc_set_controls();
|
||||
}
|
||||
}
|
||||
|
@ -616,33 +608,33 @@ void input_config()
|
|||
m[7].type = NM_TYPE_MENU; m[7].text = "CUSTOMIZE WEAPON KEYS";
|
||||
m[8].type = NM_TYPE_TEXT; m[8].text = "";
|
||||
m[9].type = NM_TYPE_TEXT; m[9].text = "Joystick";
|
||||
m[10].type = NM_TYPE_SLIDER; m[10].text="Sensitivity"; m[10].value=Config_joystick_sensitivity; m[10].min_value = 0; m[10].max_value = 16;
|
||||
m[11].type = NM_TYPE_SLIDER; m[11].text="Joystick Deadzone"; m[11].value=joy_deadzone; m[11].min_value=0; m[11].max_value = 16;
|
||||
m[10].type = NM_TYPE_SLIDER; m[10].text="Sensitivity"; m[10].value=PlayerCfg.JoystickSensitivity; m[10].min_value = 0; m[10].max_value = 16;
|
||||
m[11].type = NM_TYPE_SLIDER; m[11].text="Joystick Deadzone"; m[11].value=PlayerCfg.JoystickDeadzone; m[11].min_value=0; m[11].max_value = 16;
|
||||
m[12].type = NM_TYPE_TEXT; m[12].text = "Mouse";
|
||||
m[13].type = NM_TYPE_SLIDER; m[13].text="Sensitivity"; m[13].value=Config_mouse_sensitivity; m[13].min_value = 0; m[13].max_value = 16;
|
||||
m[13].type = NM_TYPE_SLIDER; m[13].text="Sensitivity"; m[13].value=PlayerCfg.MouseSensitivity; m[13].min_value = 0; m[13].max_value = 16;
|
||||
|
||||
|
||||
do {
|
||||
|
||||
i = Config_control_type;
|
||||
i = PlayerCfg.ControlType;
|
||||
if (i == CONTROL_MOUSE) i = 2;
|
||||
if (i==CONTROL_JOYMOUSE) i = 3;
|
||||
m[i].value = 1;
|
||||
|
||||
i1 = newmenu_do1(NULL, TXT_CONTROLS, nitems, m, input_menuset, i1);
|
||||
|
||||
Config_joystick_sensitivity = m[10].value;
|
||||
joy_deadzone = m[11].value;
|
||||
Config_mouse_sensitivity = m[13].value;
|
||||
PlayerCfg.JoystickSensitivity = m[10].value;
|
||||
PlayerCfg.JoystickDeadzone = m[11].value;
|
||||
PlayerCfg.MouseSensitivity = m[13].value;
|
||||
|
||||
for (j = 0; j <= 3; j++)
|
||||
if (m[j].value)
|
||||
Config_control_type = j;
|
||||
i = Config_control_type;
|
||||
if (Config_control_type == 2)
|
||||
Config_control_type = CONTROL_MOUSE;
|
||||
if (Config_control_type == 3)
|
||||
Config_control_type = CONTROL_JOYMOUSE;
|
||||
PlayerCfg.ControlType = j;
|
||||
i = PlayerCfg.ControlType;
|
||||
if (PlayerCfg.ControlType == 2)
|
||||
PlayerCfg.ControlType = CONTROL_MOUSE;
|
||||
if (PlayerCfg.ControlType == 3)
|
||||
PlayerCfg.ControlType = CONTROL_JOYMOUSE;
|
||||
|
||||
switch (i1) {
|
||||
case 5:
|
||||
|
@ -660,50 +652,6 @@ void input_config()
|
|||
|
||||
}
|
||||
|
||||
void do_options_menu()
|
||||
{
|
||||
newmenu_item m[10];
|
||||
int i = 0;
|
||||
|
||||
do {
|
||||
m[ 0].type = NM_TYPE_MENU; m[ 0].text="Sound effects & music...";
|
||||
m[ 1].type = NM_TYPE_TEXT; m[ 1].text="";
|
||||
#if defined(MACINTOSH) && defined(APPLE_DEMO)
|
||||
m[ 2].type = NM_TYPE_TEXT; m[ 2].text="";
|
||||
#else
|
||||
m[ 2].type = NM_TYPE_MENU; m[ 2].text=TXT_CONTROLS_;
|
||||
#endif
|
||||
m[ 3].type = NM_TYPE_TEXT; m[ 3].text="";
|
||||
|
||||
m[ 4].type = NM_TYPE_SLIDER;
|
||||
m[ 4].text = TXT_BRIGHTNESS;
|
||||
m[ 4].value = gr_palette_get_gamma();
|
||||
m[ 4].min_value = 0;
|
||||
m[ 4].max_value = 16;
|
||||
|
||||
m[ 5].type = NM_TYPE_MENU; m[ 5].text="Screen resolution...";
|
||||
|
||||
m[ 6].type = NM_TYPE_TEXT; m[ 6].text="";
|
||||
m[ 7].type = NM_TYPE_MENU; m[ 7].text="Primary autoselect ordering...";
|
||||
m[ 8].type = NM_TYPE_MENU; m[ 8].text="Secondary autoselect ordering...";
|
||||
m[ 9].type = NM_TYPE_MENU; m[ 9].text="Toggles...";
|
||||
|
||||
i = newmenu_do1( NULL, TXT_OPTIONS, sizeof(m)/sizeof(*m), m, options_menuset, i );
|
||||
|
||||
switch(i) {
|
||||
case 0: do_sound_menu(); break;
|
||||
case 2: input_config(); break;
|
||||
case 5: change_res(); break;
|
||||
case 7: ReorderPrimary(); break;
|
||||
case 8: ReorderSecondary(); break;
|
||||
case 9: do_toggles_menu(); break;
|
||||
}
|
||||
|
||||
} while( i>-1 );
|
||||
|
||||
write_player_file();
|
||||
}
|
||||
|
||||
void set_redbook_volume(int volume);
|
||||
|
||||
void sound_menuset(int nitems, newmenu_item * items, int *last_key, int citem )
|
||||
|
@ -738,14 +686,14 @@ void sound_menuset(int nitems, newmenu_item * items, int *last_key, int citem )
|
|||
|
||||
void do_sound_menu()
|
||||
{
|
||||
newmenu_item m[4];
|
||||
newmenu_item m[4];
|
||||
int i = 0;
|
||||
|
||||
do {
|
||||
m[ 0].type = NM_TYPE_SLIDER; m[ 0].text=TXT_FX_VOLUME; m[0].value=GameCfg.DigiVolume;m[0].min_value=0; m[0].max_value=8;
|
||||
m[ 1].type = NM_TYPE_SLIDER; m[ 1].text=(GameArg.SndEnableRedbook?"CD music volume":"MIDI music volume"); m[1].value=(GameArg.SndEnableRedbook?GameCfg.RedbookVolume:GameCfg.MidiVolume);m[1].min_value=0; m[1].max_value=8;
|
||||
m[ 2].type = NM_TYPE_TEXT; m[ 2].text="";
|
||||
m[ 3].type = NM_TYPE_CHECK; m[ 3].text=TXT_REVERSE_STEREO; m[3].value=GameCfg.ReverseStereo;
|
||||
m[ 3].type = NM_TYPE_CHECK; m[ 3].text=TXT_REVERSE_STEREO; m[3].value=GameCfg.ReverseStereo;
|
||||
|
||||
i = newmenu_do1( NULL, "Sound Effects & Music", sizeof(m)/sizeof(*m), m, sound_menuset, i );
|
||||
|
||||
|
@ -754,41 +702,59 @@ void do_sound_menu()
|
|||
} while( i>-1 );
|
||||
}
|
||||
|
||||
void do_graphics_menu()
|
||||
{
|
||||
newmenu_item m[8];
|
||||
int i = 0, j = 0;
|
||||
|
||||
do {
|
||||
m[0].type = NM_TYPE_TEXT; m[0].text="Texture Filtering:";
|
||||
m[1].type = NM_TYPE_TEXT; m[1].text=" (Requires Game Restart)";
|
||||
m[2].type = NM_TYPE_RADIO; m[2].text = "None (Classical)"; m[2].value = 0; m[2].group = 0;
|
||||
m[3].type = NM_TYPE_RADIO; m[3].text = "Bilinear"; m[3].value = 0; m[3].group = 0;
|
||||
m[4].type = NM_TYPE_RADIO; m[4].text = "Trilinear"; m[4].value = 0; m[4].group = 0;
|
||||
m[5].type = NM_TYPE_TEXT; m[5].text="";
|
||||
m[6].type = NM_TYPE_CHECK; m[6].text="Transparency Effects"; m[6].value = PlayerCfg.OglAlphaEffects;
|
||||
m[7].type = NM_TYPE_CHECK; m[7].text="Vectorial Reticle"; m[7].value = PlayerCfg.OglReticle;
|
||||
|
||||
m[GameCfg.TexFilt+2].value=1;
|
||||
|
||||
i = newmenu_do1( NULL, "Graphics Options", sizeof(m)/sizeof(*m), m, NULL, i );
|
||||
|
||||
for (j = 0; j <= 2; j++)
|
||||
if (m[j+2].value)
|
||||
GameCfg.TexFilt = j;
|
||||
PlayerCfg.OglAlphaEffects = m[6].value;
|
||||
PlayerCfg.OglReticle = m[7].value;
|
||||
|
||||
} while( i>-1 );
|
||||
}
|
||||
|
||||
#define ADD_CHECK(n,txt,v) do { m[n].type=NM_TYPE_CHECK; m[n].text=txt; m[n].value=v;} while (0)
|
||||
|
||||
void do_toggles_menu()
|
||||
void do_misc_menu()
|
||||
{
|
||||
#define N_TOGGLE_ITEMS 6
|
||||
newmenu_item m[N_TOGGLE_ITEMS];
|
||||
newmenu_item m[7];
|
||||
int i = 0;
|
||||
|
||||
do {
|
||||
#if defined(MACINTOSH) && defined(USE_ISP)
|
||||
if (ISpEnabled())
|
||||
{
|
||||
m[0].type = NM_TYPE_TEXT; m[0].text = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
ADD_CHECK(0, "Ship auto-leveling", Auto_leveling_on);
|
||||
}
|
||||
#else
|
||||
ADD_CHECK(0, "Ship auto-leveling", Auto_leveling_on);
|
||||
#endif
|
||||
ADD_CHECK(1, "Show reticle", Reticle_on);
|
||||
ADD_CHECK(2, "Missile view", Missile_view_enabled);
|
||||
ADD_CHECK(3, "Headlight on when picked up", Headlight_active_default );
|
||||
ADD_CHECK(4, "Show guided missile in main display", Guided_in_big_window );
|
||||
ADD_CHECK(5, "Escort robot hot keys",EscortHotKeys);
|
||||
ADD_CHECK(0, "Ship auto-leveling", PlayerCfg.AutoLeveling);
|
||||
ADD_CHECK(1, "Show reticle", PlayerCfg.ReticleOn);
|
||||
ADD_CHECK(2, "Missile view", PlayerCfg.MissileViewEnabled);
|
||||
ADD_CHECK(3, "Headlight on when picked up", PlayerCfg.HeadlightActiveDefault );
|
||||
ADD_CHECK(4, "Show guided missile in main display", PlayerCfg.GuidedInBigWindow );
|
||||
ADD_CHECK(5, "Escort robot hot keys",PlayerCfg.EscortHotKeys);
|
||||
ADD_CHECK(6, "Persistent Debris",PlayerCfg.PersistentDebris);
|
||||
|
||||
i = newmenu_do1( NULL, "Toggles", N_TOGGLE_ITEMS, m, NULL, i );
|
||||
i = newmenu_do1( NULL, "Gameplay Options", sizeof(m)/sizeof(*m), m, NULL, i );
|
||||
|
||||
Auto_leveling_on = m[0].value;
|
||||
Reticle_on = m[1].value;
|
||||
Missile_view_enabled = m[2].value;
|
||||
Headlight_active_default = m[3].value;
|
||||
Guided_in_big_window = m[4].value;
|
||||
EscortHotKeys = m[5].value;
|
||||
PlayerCfg.AutoLeveling = m[0].value;
|
||||
PlayerCfg.ReticleOn = m[1].value;
|
||||
PlayerCfg.MissileViewEnabled = m[2].value;
|
||||
PlayerCfg.HeadlightActiveDefault= m[3].value;
|
||||
PlayerCfg.GuidedInBigWindow = m[4].value;
|
||||
PlayerCfg.EscortHotKeys = m[5].value;
|
||||
PlayerCfg.PersistentDebris = m[6].value;
|
||||
|
||||
} while( i>-1 );
|
||||
|
||||
|
@ -865,3 +831,49 @@ void do_ip_manual_join_menu()
|
|||
} while( choice > -1 );
|
||||
}
|
||||
#endif // NETWORK
|
||||
|
||||
void do_options_menu()
|
||||
{
|
||||
newmenu_item m[11];
|
||||
int i = 0;
|
||||
|
||||
do {
|
||||
m[ 0].type = NM_TYPE_MENU; m[ 0].text="Sound effects & music...";
|
||||
m[ 1].type = NM_TYPE_TEXT; m[ 1].text="";
|
||||
m[ 2].type = NM_TYPE_MENU; m[ 2].text=TXT_CONTROLS_;
|
||||
m[ 3].type = NM_TYPE_TEXT; m[ 3].text="";
|
||||
|
||||
m[ 4].type = NM_TYPE_SLIDER;
|
||||
m[ 4].text = TXT_BRIGHTNESS;
|
||||
m[ 4].value = gr_palette_get_gamma();
|
||||
m[ 4].min_value = 0;
|
||||
m[ 4].max_value = 16;
|
||||
|
||||
m[ 5].type = NM_TYPE_MENU; m[ 5].text="Screen resolution...";
|
||||
#ifdef OGL
|
||||
m[ 6].type = NM_TYPE_MENU; m[ 6].text="Graphics Options...";
|
||||
#else
|
||||
m[ 6].type = NM_TYPE_TEXT; m[ 6].text="";
|
||||
#endif
|
||||
|
||||
m[ 7].type = NM_TYPE_TEXT; m[ 7].text="";
|
||||
m[ 8].type = NM_TYPE_MENU; m[ 8].text="Primary autoselect ordering...";
|
||||
m[ 9].type = NM_TYPE_MENU; m[ 9].text="Secondary autoselect ordering...";
|
||||
m[10].type = NM_TYPE_MENU; m[10].text="Gameplay Options...";
|
||||
|
||||
i = newmenu_do1( NULL, TXT_OPTIONS, sizeof(m)/sizeof(*m), m, options_menuset, i );
|
||||
|
||||
switch(i) {
|
||||
case 0: do_sound_menu(); break;
|
||||
case 2: input_config(); break;
|
||||
case 5: change_res(); break;
|
||||
case 6: do_graphics_menu(); break;
|
||||
case 8: ReorderPrimary(); break;
|
||||
case 9: ReorderSecondary(); break;
|
||||
case 10: do_misc_menu(); break;
|
||||
}
|
||||
|
||||
} while( i>-1 );
|
||||
|
||||
write_player_file();
|
||||
}
|
||||
|
|
|
@ -35,9 +35,6 @@ extern void d2x_options_menu();
|
|||
#define STARS_BACKGROUND ((HIRESMODE && cfexist("starsb.pcx"))?"starsb.pcx":cfexist("stars.pcx")?"stars.pcx":"starsb.pcx")
|
||||
|
||||
extern char *menu_difficulty_text[];
|
||||
extern int Player_default_difficulty;
|
||||
extern int Auto_leveling_on;
|
||||
extern int Missile_view_enabled;
|
||||
extern int Escort_view_enabled;
|
||||
extern int Cockpit_rear_view;
|
||||
|
||||
|
|
11
main/multi.c
11
main/multi.c
|
@ -139,7 +139,6 @@ int Network_laser_flags; // Special flags for the shot
|
|||
int Network_laser_level; // What level
|
||||
short Network_laser_track; // Who is it tracking?
|
||||
char Network_message[MAX_MESSAGE_LEN];
|
||||
char Network_message_macro[4][MAX_MESSAGE_LEN];
|
||||
int Network_message_reciever=-1;
|
||||
int sorted_kills[MAX_NUM_NET_PLAYERS];
|
||||
short kill_matrix[MAX_NUM_NET_PLAYERS][MAX_NUM_NET_PLAYERS];
|
||||
|
@ -1072,13 +1071,13 @@ multi_send_macro(int key)
|
|||
Int3();
|
||||
}
|
||||
|
||||
if (!Network_message_macro[key][0])
|
||||
if (!PlayerCfg.NetworkMessageMacro[key][0])
|
||||
{
|
||||
HUD_init_message(TXT_NO_MACRO);
|
||||
return;
|
||||
}
|
||||
|
||||
strcpy(Network_message, Network_message_macro[key]);
|
||||
strcpy(Network_message, PlayerCfg.NetworkMessageMacro[key]);
|
||||
Network_message_reciever = 100;
|
||||
|
||||
HUD_init_message("%s '%s'", TXT_SENDING, Network_message);
|
||||
|
@ -1259,7 +1258,7 @@ void multi_define_macro_end()
|
|||
{
|
||||
Assert( multi_defining_message > 0 );
|
||||
|
||||
strcpy( Network_message_macro[multi_defining_message-1], Network_message );
|
||||
strcpy( PlayerCfg.NetworkMessageMacro[multi_defining_message-1], Network_message );
|
||||
write_player_file();
|
||||
|
||||
multi_message_index = 0;
|
||||
|
@ -4437,7 +4436,7 @@ void multi_add_lifetime_kills ()
|
|||
|
||||
oldrank=GetMyNetRanking();
|
||||
|
||||
Netlife_kills++;
|
||||
PlayerCfg.NetlifeKills++;
|
||||
|
||||
if (oldrank!=GetMyNetRanking())
|
||||
{
|
||||
|
@ -4464,7 +4463,7 @@ void multi_add_lifetime_killed ()
|
|||
|
||||
oldrank=GetMyNetRanking();
|
||||
|
||||
Netlife_killed++;
|
||||
PlayerCfg.NetlifeKilled++;
|
||||
|
||||
if (oldrank!=GetMyNetRanking())
|
||||
{
|
||||
|
|
|
@ -191,7 +191,6 @@ extern int Network_laser_gun;
|
|||
extern int Network_laser_fired;
|
||||
extern int Network_laser_level;
|
||||
extern int Network_laser_flags;
|
||||
extern int Netlife_kills,Netlife_killed;
|
||||
|
||||
extern int message_length[MULTI_MAX_TYPE+1];
|
||||
extern char multibuf[MAX_MULTI_MESSAGE_LEN+4];
|
||||
|
@ -215,7 +214,6 @@ extern fix Show_kill_list_timer;
|
|||
// Used to send network messages
|
||||
|
||||
extern char Network_message[MAX_MESSAGE_LEN];
|
||||
extern char Network_message_macro[4][MAX_MESSAGE_LEN];
|
||||
extern int Network_message_reciever;
|
||||
|
||||
// Which player 'owns' each local object for network purposes
|
||||
|
|
|
@ -178,8 +178,6 @@ int num_active_games = 0;
|
|||
int PacketsPerSec=10;
|
||||
int MaxXDataSize=NET_XDATA_SIZE;
|
||||
|
||||
int Netlife_kills=0, Netlife_killed=0;
|
||||
|
||||
int Network_debug=0;
|
||||
int Network_active=0;
|
||||
|
||||
|
@ -2444,7 +2442,7 @@ int network_get_game_params()
|
|||
Netgame.KillGoal=0;
|
||||
Netgame.PlayTimeAllowed=0;
|
||||
Netgame.Allow_marker_view=1;
|
||||
Netgame.difficulty=Player_default_difficulty;
|
||||
Netgame.difficulty=PlayerCfg.DefaultDifficulty;
|
||||
Netgame.max_numplayers=MaxNumNetPlayers;
|
||||
sprintf( Netgame.game_name, "%s%s", Players[Player_num].callsign, TXT_S_GAME );
|
||||
|
||||
|
@ -5077,12 +5075,12 @@ int GetMyNetRanking ()
|
|||
int rank;
|
||||
int eff;
|
||||
|
||||
if (Netlife_kills+Netlife_killed==0)
|
||||
if (PlayerCfg.NetlifeKills+PlayerCfg.NetlifeKilled==0)
|
||||
return (1);
|
||||
|
||||
rank=(int) (((float)Netlife_kills/3000.0)*8.0);
|
||||
rank=(int) (((float)PlayerCfg.NetlifeKills/3000.0)*8.0);
|
||||
|
||||
eff=(int)((float)((float)Netlife_kills/((float)Netlife_killed+(float)Netlife_kills))*100.0);
|
||||
eff=(int)((float)((float)PlayerCfg.NetlifeKills/((float)PlayerCfg.NetlifeKilled+(float)PlayerCfg.NetlifeKills))*100.0);
|
||||
|
||||
if (rank>8)
|
||||
rank=8;
|
||||
|
|
|
@ -104,6 +104,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
#include "editor/editor.h"
|
||||
#endif
|
||||
#include "console.h"
|
||||
#include "playsave.h"
|
||||
|
||||
#ifdef MACINTOSH
|
||||
#pragma global_optimizer off // pretty much sucks...need to look into this
|
||||
|
@ -1892,8 +1893,8 @@ int newdemo_read_frame_information()
|
|||
case ND_EVENT_START_GUIDED:
|
||||
Newdemo_flying_guided=1;
|
||||
if ((Newdemo_vcr_state == ND_STATE_PLAYBACK) || (Newdemo_vcr_state == ND_STATE_FASTFORWARD) || (Newdemo_vcr_state == ND_STATE_ONEFRAMEFORWARD)) {
|
||||
saved_guided_cockpit = Cockpit_mode;
|
||||
if (Cockpit_mode == CM_FULL_COCKPIT && 1)
|
||||
saved_guided_cockpit = PlayerCfg.CockpitMode;
|
||||
if (PlayerCfg.CockpitMode == CM_FULL_COCKPIT && 1)
|
||||
select_cockpit(CM_STATUS_BAR);
|
||||
} else if ((Newdemo_vcr_state == ND_STATE_REWINDING) || (Newdemo_vcr_state == ND_STATE_ONEFRAMEBACKWARD)) {
|
||||
Newdemo_flying_guided=0;
|
||||
|
@ -1904,8 +1905,8 @@ int newdemo_read_frame_information()
|
|||
Newdemo_flying_guided=0;
|
||||
if ((Newdemo_vcr_state == ND_STATE_REWINDING) || (Newdemo_vcr_state == ND_STATE_ONEFRAMEBACKWARD)) {
|
||||
Newdemo_flying_guided=1;
|
||||
saved_guided_cockpit = Cockpit_mode;
|
||||
if (Cockpit_mode == CM_FULL_COCKPIT && 1)
|
||||
saved_guided_cockpit = PlayerCfg.CockpitMode;
|
||||
if (PlayerCfg.CockpitMode == CM_FULL_COCKPIT && 1)
|
||||
select_cockpit(CM_STATUS_BAR);
|
||||
} else if ((Newdemo_vcr_state == ND_STATE_PLAYBACK) || (Newdemo_vcr_state == ND_STATE_FASTFORWARD) || (Newdemo_vcr_state == ND_STATE_ONEFRAMEFORWARD)) {
|
||||
select_cockpit(saved_guided_cockpit);
|
||||
|
@ -2064,7 +2065,7 @@ int newdemo_read_frame_information()
|
|||
|
||||
case ND_EVENT_LETTERBOX:
|
||||
if ((Newdemo_vcr_state == ND_STATE_PLAYBACK) || (Newdemo_vcr_state == ND_STATE_FASTFORWARD) || (Newdemo_vcr_state == ND_STATE_ONEFRAMEFORWARD)) {
|
||||
saved_letter_cockpit = Cockpit_mode;
|
||||
saved_letter_cockpit = PlayerCfg.CockpitMode;
|
||||
select_cockpit(CM_LETTERBOX);
|
||||
} else if ((Newdemo_vcr_state == ND_STATE_REWINDING) || (Newdemo_vcr_state == ND_STATE_ONEFRAMEBACKWARD))
|
||||
select_cockpit(saved_letter_cockpit);
|
||||
|
@ -2077,8 +2078,8 @@ int newdemo_read_frame_information()
|
|||
}
|
||||
case ND_EVENT_REARVIEW:
|
||||
if ((Newdemo_vcr_state == ND_STATE_PLAYBACK) || (Newdemo_vcr_state == ND_STATE_FASTFORWARD) || (Newdemo_vcr_state == ND_STATE_ONEFRAMEFORWARD)) {
|
||||
saved_rearview_cockpit = Cockpit_mode;
|
||||
if (Cockpit_mode == CM_FULL_COCKPIT)
|
||||
saved_rearview_cockpit = PlayerCfg.CockpitMode;
|
||||
if (PlayerCfg.CockpitMode == CM_FULL_COCKPIT)
|
||||
select_cockpit(CM_REAR_VIEW);
|
||||
Rear_view=1;
|
||||
} else if ((Newdemo_vcr_state == ND_STATE_REWINDING) || (Newdemo_vcr_state == ND_STATE_ONEFRAMEBACKWARD)) {
|
||||
|
@ -2091,7 +2092,7 @@ int newdemo_read_frame_information()
|
|||
|
||||
case ND_EVENT_RESTORE_COCKPIT:
|
||||
if ((Newdemo_vcr_state == ND_STATE_REWINDING) || (Newdemo_vcr_state == ND_STATE_ONEFRAMEBACKWARD)) {
|
||||
saved_letter_cockpit = Cockpit_mode;
|
||||
saved_letter_cockpit = PlayerCfg.CockpitMode;
|
||||
select_cockpit(CM_LETTERBOX);
|
||||
} else if ((Newdemo_vcr_state == ND_STATE_PLAYBACK) || (Newdemo_vcr_state == ND_STATE_FASTFORWARD) || (Newdemo_vcr_state == ND_STATE_ONEFRAMEFORWARD))
|
||||
select_cockpit(saved_letter_cockpit);
|
||||
|
@ -2100,8 +2101,8 @@ int newdemo_read_frame_information()
|
|||
|
||||
case ND_EVENT_RESTORE_REARVIEW:
|
||||
if ((Newdemo_vcr_state == ND_STATE_REWINDING) || (Newdemo_vcr_state == ND_STATE_ONEFRAMEBACKWARD)) {
|
||||
saved_rearview_cockpit = Cockpit_mode;
|
||||
if (Cockpit_mode == CM_FULL_COCKPIT)
|
||||
saved_rearview_cockpit = PlayerCfg.CockpitMode;
|
||||
if (PlayerCfg.CockpitMode == CM_FULL_COCKPIT)
|
||||
select_cockpit(CM_REAR_VIEW);
|
||||
Rear_view=1;
|
||||
} else if ((Newdemo_vcr_state == ND_STATE_PLAYBACK) || (Newdemo_vcr_state == ND_STATE_FASTFORWARD) || (Newdemo_vcr_state == ND_STATE_ONEFRAMEFORWARD)) {
|
||||
|
@ -3269,7 +3270,7 @@ void newdemo_start_playback(char * filename)
|
|||
|
||||
Newdemo_state = ND_STATE_PLAYBACK;
|
||||
Newdemo_vcr_state = ND_STATE_PLAYBACK;
|
||||
Newdemo_old_cockpit = Cockpit_mode;
|
||||
Newdemo_old_cockpit = PlayerCfg.CockpitMode;
|
||||
Newdemo_size = PHYSFS_fileLength(infile);
|
||||
nd_bad_read = 0;
|
||||
Newdemo_at_eof = 0;
|
||||
|
@ -3277,8 +3278,8 @@ void newdemo_start_playback(char * filename)
|
|||
Newdemo_players_cloaked = 0;
|
||||
playback_style = NORMAL_PLAYBACK;
|
||||
Function_mode = FMODE_GAME;
|
||||
Cockpit_3d_view[0] = CV_NONE; //turn off 3d views on cockpit
|
||||
Cockpit_3d_view[1] = CV_NONE; //turn off 3d views on cockpit
|
||||
PlayerCfg.Cockpit3DView[0] = CV_NONE; //turn off 3d views on cockpit
|
||||
PlayerCfg.Cockpit3DView[1] = CV_NONE; //turn off 3d views on cockpit
|
||||
HUD_clear_messages();
|
||||
newdemo_playback_one_frame(); // this one loads new level
|
||||
newdemo_playback_one_frame(); // get all of the objects to renderb game
|
||||
|
@ -3293,7 +3294,7 @@ void newdemo_stop_playback()
|
|||
change_playernum_to(0); //this is reality
|
||||
#endif
|
||||
strncpy(Players[Player_num].callsign, nd_save_callsign, CALLSIGN_LEN);
|
||||
Cockpit_mode = Newdemo_old_cockpit;
|
||||
PlayerCfg.CockpitMode = Newdemo_old_cockpit;
|
||||
Rear_view=0;
|
||||
Game_mode = GM_GAME_OVER;
|
||||
Function_mode = FMODE_MENU;
|
||||
|
|
|
@ -71,6 +71,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
#include "strutil.h"
|
||||
#include "vers_id.h"
|
||||
#include "timer.h"
|
||||
#include "playsave.h"
|
||||
|
||||
#ifdef OGL
|
||||
#include "ogl_init.h"
|
||||
|
@ -542,7 +543,7 @@ int check_button_press()
|
|||
{
|
||||
int i;
|
||||
|
||||
switch (Config_control_type) {
|
||||
switch (PlayerCfg.ControlType) {
|
||||
case CONTROL_JOYSTICK:
|
||||
case CONTROL_FLIGHTSTICK_PRO:
|
||||
case CONTROL_THRUSTMASTER_FCS:
|
||||
|
@ -567,7 +568,7 @@ int check_button_press()
|
|||
|
||||
break;
|
||||
default:
|
||||
Error("Bad control type (Config_control_type):%i",Config_control_type);
|
||||
Error("Bad control type (PlayerCfg.ControlType):%i",PlayerCfg.ControlType);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -74,6 +74,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
#include "piggy.h"
|
||||
#include "switch.h"
|
||||
#include "gameseq.h"
|
||||
#include "playsave.h"
|
||||
|
||||
#ifdef EDITOR
|
||||
#include "editor/editor.h"
|
||||
|
@ -1682,7 +1683,7 @@ void start_player_death_sequence(object *player)
|
|||
Dead_player_camera = Viewer;
|
||||
}
|
||||
|
||||
cockpit_mode_save = Cockpit_mode;
|
||||
cockpit_mode_save = PlayerCfg.CockpitMode;
|
||||
select_cockpit(CM_LETTERBOX);
|
||||
if (Newdemo_state == ND_STATE_RECORDING)
|
||||
newdemo_record_letterbox();
|
||||
|
@ -2025,7 +2026,7 @@ void object_move_all()
|
|||
|
||||
obj_delete_all_that_should_be_dead();
|
||||
|
||||
if (Auto_leveling_on)
|
||||
if (PlayerCfg.AutoLeveling)
|
||||
ConsoleObject->mtype.phys_info.flags |= PF_LEVELLING;
|
||||
else
|
||||
ConsoleObject->mtype.phys_info.flags &= ~PF_LEVELLING;
|
||||
|
|
343
main/playsave.c
343
main/playsave.c
|
@ -35,20 +35,16 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
#else
|
||||
#include <physfs/physfs.h>
|
||||
#endif
|
||||
|
||||
#include "error.h"
|
||||
|
||||
#include "strutil.h"
|
||||
#include "game.h"
|
||||
#include "gameseq.h"
|
||||
#include "player.h"
|
||||
#include "playsave.h"
|
||||
#include "joy.h"
|
||||
#include "kconfig.h"
|
||||
#include "digi.h"
|
||||
#include "newmenu.h"
|
||||
#include "palette.h"
|
||||
#include "multi.h"
|
||||
#include "menu.h"
|
||||
#include "config.h"
|
||||
#include "text.h"
|
||||
|
@ -58,34 +54,12 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
#include "powerup.h"
|
||||
#include "makesig.h"
|
||||
#include "byteswap.h"
|
||||
#include "escort.h"
|
||||
#include "u_mem.h"
|
||||
#include "strio.h"
|
||||
#include "physfsx.h"
|
||||
#include "vers_id.h"
|
||||
#include "newdemo.h"
|
||||
|
||||
#define SAVE_FILE_ID MAKE_SIG('D','P','L','R')
|
||||
|
||||
#if defined(_WIN32_WCE)
|
||||
# define errno -1
|
||||
# define ENOENT -1
|
||||
# define strerror(x) "Unknown Error"
|
||||
#endif
|
||||
|
||||
int get_lifetime_checksum (int a,int b);
|
||||
|
||||
typedef struct hli {
|
||||
char shortname[9];
|
||||
ubyte level_num;
|
||||
} hli;
|
||||
|
||||
short n_highest_levels;
|
||||
|
||||
hli highest_levels[MAX_MISSIONS];
|
||||
|
||||
#define PLAYER_FILE_VERSION 25 //increment this every time the player file changes
|
||||
|
||||
//version 5 -> 6: added new highest level information
|
||||
//version 6 -> 7: stripped out the old saved_game array.
|
||||
//version 7 -> 8: added reticle flag, & window size
|
||||
|
@ -107,50 +81,62 @@ hli highest_levels[MAX_MISSIONS];
|
|||
//version 23 -> 24: add name of joystick for windows version.
|
||||
//version 24 -> 25: add d2x keys array
|
||||
|
||||
#define COMPATIBLE_PLAYER_FILE_VERSION 17
|
||||
#define SAVE_FILE_ID MAKE_SIG('D','P','L','R')
|
||||
#define PLAYER_FILE_VERSION 25 //increment this every time the player file changes
|
||||
#define COMPATIBLE_PLAYER_FILE_VERSION 17
|
||||
|
||||
int Default_leveling_on=1;
|
||||
extern ubyte SecondaryOrder[],PrimaryOrder[];
|
||||
struct player_config PlayerCfg;
|
||||
int get_lifetime_checksum (int a,int b);
|
||||
extern void InitWeaponOrdering();
|
||||
|
||||
int new_player_config()
|
||||
{
|
||||
int i,j,control_choice;
|
||||
int i,j;
|
||||
int mct=CONTROL_MAX_TYPES;
|
||||
|
||||
mct--;
|
||||
|
||||
InitWeaponOrdering (); //setup default weapon priorities
|
||||
|
||||
control_choice = Config_control_type; // Assume keyboard
|
||||
PlayerCfg.ControlType=CONTROL_NONE; // Assume keyboard
|
||||
InitWeaponOrdering (); //setup default weapon prioritiess
|
||||
|
||||
for (i=0;i<CONTROL_MAX_TYPES; i++ )
|
||||
for (j=0;j<MAX_CONTROLS; j++ )
|
||||
kconfig_settings[i][j] = default_kconfig_settings[i][j];
|
||||
PlayerCfg.KeySettings[i][j] = DefaultKeySettings[i][j];
|
||||
for(i=0; i < MAX_D2X_CONTROLS; i++)
|
||||
kconfig_d2x_settings[i] = default_kconfig_d2x_settings[i];
|
||||
PlayerCfg.KeySettingsD2X[i] = DefaultKeySettingsD2X[i];
|
||||
kc_set_controls();
|
||||
|
||||
Config_control_type = control_choice;
|
||||
|
||||
Player_default_difficulty = 1;
|
||||
Auto_leveling_on = Default_leveling_on = 1;
|
||||
n_highest_levels = 1;
|
||||
highest_levels[0].shortname[0] = 0; //no name for mission 0
|
||||
highest_levels[0].level_num = 1; //was highest level in old struct
|
||||
Config_joystick_sensitivity = 8;
|
||||
Config_mouse_sensitivity = 8;
|
||||
joy_deadzone = 0;
|
||||
Cockpit_3d_view[0]=CV_NONE;
|
||||
Cockpit_3d_view[1]=CV_NONE;
|
||||
PlayerCfg.DefaultDifficulty = 1;
|
||||
PlayerCfg.AutoLeveling = 1;
|
||||
PlayerCfg.NHighestLevels = 1;
|
||||
PlayerCfg.HighestLevels[0].Shortname[0] = 0; //no name for mission 0
|
||||
PlayerCfg.HighestLevels[0].LevelNum = 1; //was highest level in old struct
|
||||
PlayerCfg.JoystickSensitivity = 8;
|
||||
PlayerCfg.MouseSensitivity = 8;
|
||||
PlayerCfg.JoystickDeadzone = 0;
|
||||
PlayerCfg.CockpitMode = CM_FULL_COCKPIT;
|
||||
PlayerCfg.Cockpit3DView[0]=CV_NONE;
|
||||
PlayerCfg.Cockpit3DView[1]=CV_NONE;
|
||||
PlayerCfg.ReticleOn = 1;
|
||||
PlayerCfg.MissileViewEnabled = 1;
|
||||
PlayerCfg.HeadlightActiveDefault = 1;
|
||||
PlayerCfg.GuidedInBigWindow = 0;
|
||||
strcpy(PlayerCfg.GuidebotName,"GUIDE-BOT");
|
||||
strcpy(PlayerCfg.GuidebotNameReal,"GUIDE-BOT");
|
||||
PlayerCfg.HudMode = 0;
|
||||
PlayerCfg.EscortHotKeys = 1;
|
||||
PlayerCfg.PersistentDebris = 0;
|
||||
PlayerCfg.OglAlphaEffects = 0;
|
||||
PlayerCfg.OglReticle = 0;
|
||||
PlayerCfg.OglPRShot = 0;
|
||||
|
||||
// Default taunt macros
|
||||
#ifdef NETWORK
|
||||
strcpy(Network_message_macro[0], "Why can't we all just get along?");
|
||||
strcpy(Network_message_macro[1], "Hey, I got a present for ya");
|
||||
strcpy(Network_message_macro[2], "I got a hankerin' for a spankerin'");
|
||||
strcpy(Network_message_macro[3], "This one's headed for Uranus");
|
||||
Netlife_kills=0; Netlife_killed=0;
|
||||
strcpy(PlayerCfg.NetworkMessageMacro[0], "Why can't we all just get along?");
|
||||
strcpy(PlayerCfg.NetworkMessageMacro[1], "Hey, I got a present for ya");
|
||||
strcpy(PlayerCfg.NetworkMessageMacro[2], "I got a hankerin' for a spankerin'");
|
||||
strcpy(PlayerCfg.NetworkMessageMacro[3], "This one's headed for Uranus");
|
||||
PlayerCfg.NetlifeKills=0; PlayerCfg.NetlifeKilled=0;
|
||||
#endif
|
||||
|
||||
return 1;
|
||||
|
@ -183,7 +169,7 @@ int read_player_d2x(char *filename)
|
|||
while(!strstr(word,"END") && !PHYSFS_eof(f))
|
||||
{
|
||||
if(!strcmp(word,"DEADZONE"))
|
||||
sscanf(line,"%i",&joy_deadzone);
|
||||
sscanf(line,"%i",&PlayerCfg.JoystickDeadzone);
|
||||
d_free(word);
|
||||
cfgets(line,50,f);
|
||||
word=splitword(line,'=');
|
||||
|
@ -203,7 +189,7 @@ int read_player_d2x(char *filename)
|
|||
{
|
||||
int tmp;
|
||||
sscanf(line,"%i",&tmp);
|
||||
Config_mouse_sensitivity = (ubyte) tmp;
|
||||
PlayerCfg.MouseSensitivity = (ubyte) tmp;
|
||||
}
|
||||
d_free(word);
|
||||
cfgets(line,50,f);
|
||||
|
@ -211,6 +197,63 @@ int read_player_d2x(char *filename)
|
|||
strupr(word);
|
||||
}
|
||||
}
|
||||
else if (strstr(word,"COCKPIT"))
|
||||
{
|
||||
d_free(word);
|
||||
cfgets(line,50,f);
|
||||
word=splitword(line,'=');
|
||||
strupr(word);
|
||||
|
||||
while(!strstr(word,"END") && !PHYSFS_eof(f))
|
||||
{
|
||||
if(!strcmp(word,"HUD"))
|
||||
sscanf(line,"%i",&PlayerCfg.HudMode);
|
||||
d_free(word);
|
||||
cfgets(line,50,f);
|
||||
word=splitword(line,'=');
|
||||
strupr(word);
|
||||
}
|
||||
}
|
||||
else if (strstr(word,"TOGGLES"))
|
||||
{
|
||||
d_free(word);
|
||||
cfgets(line,50,f);
|
||||
word=splitword(line,'=');
|
||||
strupr(word);
|
||||
|
||||
while(!strstr(word,"END") && !PHYSFS_eof(f))
|
||||
{
|
||||
if(!strcmp(word,"ESCORTHOTKEYS"))
|
||||
sscanf(line,"%i",&PlayerCfg.EscortHotKeys);
|
||||
else if(!strcmp(word,"PERSISTENTDEBRIS"))
|
||||
sscanf(line,"%i",&PlayerCfg.PersistentDebris);
|
||||
d_free(word);
|
||||
cfgets(line,50,f);
|
||||
word=splitword(line,'=');
|
||||
strupr(word);
|
||||
}
|
||||
}
|
||||
else if (strstr(word,"OPENGL"))
|
||||
{
|
||||
d_free(word);
|
||||
cfgets(line,50,f);
|
||||
word=splitword(line,'=');
|
||||
strupr(word);
|
||||
|
||||
while(!strstr(word,"END") && !PHYSFS_eof(f))
|
||||
{
|
||||
if(!strcmp(word,"OGLALPHAEFFECTS"))
|
||||
sscanf(line,"%i",&PlayerCfg.OglAlphaEffects);
|
||||
else if(!strcmp(word,"OGLRETICLE"))
|
||||
sscanf(line,"%i",&PlayerCfg.OglReticle);
|
||||
else if(!strcmp(word,"OGLPRSHOT"))
|
||||
sscanf(line,"%i",&PlayerCfg.OglPRShot);
|
||||
d_free(word);
|
||||
cfgets(line,50,f);
|
||||
word=splitword(line,'=');
|
||||
strupr(word);
|
||||
}
|
||||
}
|
||||
else if (strstr(word,"END") || PHYSFS_eof(f))
|
||||
{
|
||||
Stop=1;
|
||||
|
@ -255,17 +298,29 @@ int write_player_d2x(char *filename)
|
|||
|
||||
if(fout)
|
||||
{
|
||||
PHYSFSX_printf(fout, "[D2X OPTIONS]\n");
|
||||
PHYSFSX_printf(fout, "[mouse]\n");
|
||||
PHYSFSX_printf(fout, "sensitivity=%d\n",Config_mouse_sensitivity);
|
||||
PHYSFSX_printf(fout, "[end]\n");
|
||||
PHYSFSX_printf(fout, "[joystick]\n");
|
||||
PHYSFSX_printf(fout, "deadzone=%d\n", joy_deadzone);
|
||||
PHYSFSX_printf(fout, "[end]\n");
|
||||
PHYSFSX_printf(fout, "[plx version]\n");
|
||||
PHYSFSX_printf(fout, "plx version=%s\n", VERSION);
|
||||
PHYSFSX_printf(fout, "[end]\n");
|
||||
PHYSFSX_printf(fout, "[end]\n");
|
||||
PHYSFSX_printf(fout,"[D2X OPTIONS]\n");
|
||||
PHYSFSX_printf(fout,"[mouse]\n");
|
||||
PHYSFSX_printf(fout,"sensitivity=%d\n",PlayerCfg.MouseSensitivity);
|
||||
PHYSFSX_printf(fout,"[end]\n");
|
||||
PHYSFSX_printf(fout,"[joystick]\n");
|
||||
PHYSFSX_printf(fout,"deadzone=%d\n", PlayerCfg.JoystickDeadzone);
|
||||
PHYSFSX_printf(fout,"[end]\n");
|
||||
PHYSFSX_printf(fout,"[cockpit]\n");
|
||||
PHYSFSX_printf(fout,"hud=%i\n",PlayerCfg.HudMode);
|
||||
PHYSFSX_printf(fout,"[end]\n");
|
||||
PHYSFSX_printf(fout,"[toggles]\n");
|
||||
PHYSFSX_printf(fout,"escorthotkeys=%i\n",PlayerCfg.EscortHotKeys);
|
||||
PHYSFSX_printf(fout,"persistentdebris=%i\n",PlayerCfg.PersistentDebris);
|
||||
PHYSFSX_printf(fout,"[end]\n");
|
||||
PHYSFSX_printf(fout,"[opengl]\n");
|
||||
PHYSFSX_printf(fout,"oglaplhaeffects=%i\n",PlayerCfg.OglAlphaEffects);
|
||||
PHYSFSX_printf(fout,"oglreticle=%i\n",PlayerCfg.OglReticle);
|
||||
PHYSFSX_printf(fout,"oglprshot=%i\n",PlayerCfg.OglPRShot);
|
||||
PHYSFSX_printf(fout,"[end]\n");
|
||||
PHYSFSX_printf(fout,"[plx version]\n");
|
||||
PHYSFSX_printf(fout,"plx version=%s\n", VERSION);
|
||||
PHYSFSX_printf(fout,"[end]\n");
|
||||
PHYSFSX_printf(fout,"[end]\n");
|
||||
|
||||
PHYSFS_close(fout);
|
||||
if(rc==0)
|
||||
|
@ -280,16 +335,8 @@ int write_player_d2x(char *filename)
|
|||
|
||||
}
|
||||
|
||||
extern int Guided_in_big_window;
|
||||
|
||||
//this length must match the value in escort.c
|
||||
#define GUIDEBOT_NAME_LEN 9
|
||||
extern char guidebot_name[];
|
||||
extern char real_guidebot_name[];
|
||||
|
||||
ubyte control_type_dos,control_type_win;
|
||||
|
||||
|
||||
//read in the player's saved games. returns errno (0 == no error)
|
||||
int read_player_file()
|
||||
{
|
||||
|
@ -311,6 +358,8 @@ int read_player_file()
|
|||
if (!file)
|
||||
goto read_player_file_failed;
|
||||
|
||||
new_player_config(); // Set defaults!
|
||||
|
||||
PHYSFS_readSLE32(file, &id);
|
||||
|
||||
if (id!=SAVE_FILE_ID) {
|
||||
|
@ -334,27 +383,25 @@ int read_player_file()
|
|||
}
|
||||
|
||||
PHYSFS_seek(file,PHYSFS_tell(file)+2*sizeof(short)); //skip Game_window_w,Game_window_h
|
||||
Player_default_difficulty = cfile_read_byte(file);
|
||||
Default_leveling_on = cfile_read_byte(file);
|
||||
Reticle_on = cfile_read_byte(file);
|
||||
Cockpit_mode = cfile_read_byte(file);
|
||||
PlayerCfg.DefaultDifficulty = cfile_read_byte(file);
|
||||
PlayerCfg.AutoLeveling = cfile_read_byte(file);
|
||||
PlayerCfg.ReticleOn = cfile_read_byte(file);
|
||||
PlayerCfg.CockpitMode = cfile_read_byte(file);
|
||||
PHYSFS_seek(file,PHYSFS_tell(file)+sizeof(sbyte)); //skip Default_display_mode
|
||||
Missile_view_enabled = cfile_read_byte(file);
|
||||
Headlight_active_default = cfile_read_byte(file);
|
||||
Guided_in_big_window = cfile_read_byte(file);
|
||||
PlayerCfg.MissileViewEnabled = cfile_read_byte(file);
|
||||
PlayerCfg.HeadlightActiveDefault = cfile_read_byte(file);
|
||||
PlayerCfg.GuidedInBigWindow = cfile_read_byte(file);
|
||||
if (player_file_version >= 19)
|
||||
PHYSFS_seek(file,PHYSFS_tell(file)+sizeof(sbyte)); //skip Automap_always_hires
|
||||
|
||||
Auto_leveling_on = Default_leveling_on;
|
||||
|
||||
//read new highest level info
|
||||
|
||||
n_highest_levels = cfile_read_short(file);
|
||||
PlayerCfg.NHighestLevels = cfile_read_short(file);
|
||||
if (swap)
|
||||
n_highest_levels = SWAPSHORT(n_highest_levels);
|
||||
Assert(n_highest_levels <= MAX_MISSIONS);
|
||||
PlayerCfg.NHighestLevels = SWAPSHORT(PlayerCfg.NHighestLevels);
|
||||
Assert(PlayerCfg.NHighestLevels <= MAX_MISSIONS);
|
||||
|
||||
if (PHYSFS_read(file, highest_levels, sizeof(hli), n_highest_levels) != n_highest_levels)
|
||||
if (PHYSFS_read(file, PlayerCfg.HighestLevels, sizeof(hli), PlayerCfg.NHighestLevels) != PlayerCfg.NHighestLevels)
|
||||
goto read_player_file_failed;
|
||||
|
||||
//read taunt macros
|
||||
|
@ -365,7 +412,7 @@ int read_player_file()
|
|||
len = MAX_MESSAGE_LEN;
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
if (PHYSFS_read(file, Network_message_macro[i], len, 1) != 1)
|
||||
if (PHYSFS_read(file, PlayerCfg.NetworkMessageMacro[i], len, 1) != 1)
|
||||
goto read_player_file_failed;
|
||||
#else
|
||||
char dummy[4][MAX_MESSAGE_LEN];
|
||||
|
@ -378,31 +425,31 @@ int read_player_file()
|
|||
{
|
||||
int n_control_types = (player_file_version<20)?7:CONTROL_MAX_TYPES;
|
||||
|
||||
if (PHYSFS_read(file, kconfig_settings, MAX_CONTROLS*n_control_types, 1) != 1)
|
||||
if (PHYSFS_read(file, PlayerCfg.KeySettings, MAX_CONTROLS*n_control_types, 1) != 1)
|
||||
goto read_player_file_failed;
|
||||
else if (PHYSFS_read(file, (ubyte *)&control_type_dos, sizeof(ubyte), 1) != 1)
|
||||
goto read_player_file_failed;
|
||||
else if (player_file_version >= 21 && PHYSFS_read(file, (ubyte *)&control_type_win, sizeof(ubyte), 1) != 1)
|
||||
goto read_player_file_failed;
|
||||
else if (PHYSFS_read(file, &Config_joystick_sensitivity, sizeof(ubyte), 1) !=1 )
|
||||
else if (PHYSFS_read(file, &PlayerCfg.JoystickSensitivity, sizeof(ubyte), 1) !=1 )
|
||||
goto read_player_file_failed;
|
||||
|
||||
Config_control_type = control_type_dos;
|
||||
PlayerCfg.ControlType = control_type_dos;
|
||||
|
||||
for (i=0;i<11;i++)
|
||||
{
|
||||
PrimaryOrder[i] = cfile_read_byte(file);
|
||||
SecondaryOrder[i] = cfile_read_byte(file);
|
||||
PlayerCfg.PrimaryOrder[i] = cfile_read_byte(file);
|
||||
PlayerCfg.SecondaryOrder[i] = cfile_read_byte(file);
|
||||
}
|
||||
|
||||
if (player_file_version>=16)
|
||||
{
|
||||
PHYSFS_readSLE32(file, &Cockpit_3d_view[0]);
|
||||
PHYSFS_readSLE32(file, &Cockpit_3d_view[1]);
|
||||
PHYSFS_readSLE32(file, &PlayerCfg.Cockpit3DView[0]);
|
||||
PHYSFS_readSLE32(file, &PlayerCfg.Cockpit3DView[1]);
|
||||
if (swap)
|
||||
{
|
||||
Cockpit_3d_view[0] = SWAPINT(Cockpit_3d_view[0]);
|
||||
Cockpit_3d_view[1] = SWAPINT(Cockpit_3d_view[1]);
|
||||
PlayerCfg.Cockpit3DView[0] = SWAPINT(PlayerCfg.Cockpit3DView[0]);
|
||||
PlayerCfg.Cockpit3DView[1] = SWAPINT(PlayerCfg.Cockpit3DView[1]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -413,11 +460,11 @@ int read_player_file()
|
|||
if (player_file_version>=22)
|
||||
{
|
||||
#ifdef NETWORK
|
||||
PHYSFS_readSLE32(file, &Netlife_kills);
|
||||
PHYSFS_readSLE32(file, &Netlife_killed);
|
||||
PHYSFS_readSLE32(file, &PlayerCfg.NetlifeKills);
|
||||
PHYSFS_readSLE32(file, &PlayerCfg.NetlifeKilled);
|
||||
if (swap) {
|
||||
Netlife_kills = SWAPINT(Netlife_kills);
|
||||
Netlife_killed = SWAPINT(Netlife_killed);
|
||||
PlayerCfg.NetlifeKills = SWAPINT(PlayerCfg.NetlifeKills);
|
||||
PlayerCfg.NetlifeKilled = SWAPINT(PlayerCfg.NetlifeKilled);
|
||||
}
|
||||
#else
|
||||
{
|
||||
|
@ -430,7 +477,7 @@ int read_player_file()
|
|||
#ifdef NETWORK
|
||||
else
|
||||
{
|
||||
Netlife_kills=0; Netlife_killed=0;
|
||||
PlayerCfg.NetlifeKills=0; PlayerCfg.NetlifeKilled=0;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -440,9 +487,9 @@ int read_player_file()
|
|||
if (swap)
|
||||
i = SWAPINT(i);
|
||||
#ifdef NETWORK
|
||||
if (i!=get_lifetime_checksum (Netlife_kills,Netlife_killed))
|
||||
if (i!=get_lifetime_checksum (PlayerCfg.NetlifeKills,PlayerCfg.NetlifeKilled))
|
||||
{
|
||||
Netlife_kills=0; Netlife_killed=0;
|
||||
PlayerCfg.NetlifeKills=0; PlayerCfg.NetlifeKilled=0;
|
||||
nm_messagebox(NULL, 1, "Shame on me", "Trying to cheat eh?");
|
||||
rewrite_it=1;
|
||||
}
|
||||
|
@ -451,11 +498,11 @@ int read_player_file()
|
|||
|
||||
//read guidebot name
|
||||
if (player_file_version >= 18)
|
||||
PHYSFSX_readString(file, guidebot_name);
|
||||
PHYSFSX_readString(file, PlayerCfg.GuidebotName);
|
||||
else
|
||||
strcpy(guidebot_name,"GUIDE-BOT");
|
||||
strcpy(PlayerCfg.GuidebotName,"GUIDE-BOT");
|
||||
|
||||
strcpy(real_guidebot_name,guidebot_name);
|
||||
strcpy(PlayerCfg.GuidebotNameReal,PlayerCfg.GuidebotName);
|
||||
|
||||
{
|
||||
char buf[128];
|
||||
|
@ -465,10 +512,10 @@ int read_player_file()
|
|||
}
|
||||
|
||||
if (player_file_version >= 25)
|
||||
PHYSFS_read(file, kconfig_d2x_settings, MAX_D2X_CONTROLS, 1);
|
||||
PHYSFS_read(file, PlayerCfg.KeySettingsD2X, MAX_D2X_CONTROLS, 1);
|
||||
else
|
||||
for(i=0; i < MAX_D2X_CONTROLS; i++)
|
||||
kconfig_d2x_settings[i] = default_kconfig_d2x_settings[i];
|
||||
PlayerCfg.KeySettingsD2X[i] = DefaultKeySettingsD2X[i];
|
||||
|
||||
if (!PHYSFS_close(file))
|
||||
goto read_player_file_failed;
|
||||
|
@ -497,19 +544,19 @@ int find_hli_entry()
|
|||
{
|
||||
int i;
|
||||
|
||||
for (i=0;i<n_highest_levels;i++)
|
||||
if (!stricmp(highest_levels[i].shortname, Current_mission_filename))
|
||||
for (i=0;i<PlayerCfg.NHighestLevels;i++)
|
||||
if (!stricmp(PlayerCfg.HighestLevels[i].Shortname, Current_mission_filename))
|
||||
break;
|
||||
|
||||
if (i==n_highest_levels) { //not found. create entry
|
||||
if (i==PlayerCfg.NHighestLevels) { //not found. create entry
|
||||
|
||||
if (i==MAX_MISSIONS)
|
||||
i--; //take last entry
|
||||
else
|
||||
n_highest_levels++;
|
||||
PlayerCfg.NHighestLevels++;
|
||||
|
||||
strcpy(highest_levels[i].shortname, Current_mission_filename);
|
||||
highest_levels[i].level_num = 0;
|
||||
strcpy(PlayerCfg.HighestLevels[i].Shortname, Current_mission_filename);
|
||||
PlayerCfg.HighestLevels[i].LevelNum = 0;
|
||||
}
|
||||
|
||||
return i;
|
||||
|
@ -526,8 +573,8 @@ void set_highest_level(int levelnum)
|
|||
|
||||
i = find_hli_entry();
|
||||
|
||||
if (levelnum > highest_levels[i].level_num)
|
||||
highest_levels[i].level_num = levelnum;
|
||||
if (levelnum > PlayerCfg.HighestLevels[i].LevelNum)
|
||||
PlayerCfg.HighestLevels[i].LevelNum = levelnum;
|
||||
|
||||
write_player_file();
|
||||
}
|
||||
|
@ -540,12 +587,12 @@ int get_highest_level(void)
|
|||
read_player_file();
|
||||
#ifndef SATURN
|
||||
if (strlen(Current_mission_filename)==0 ) {
|
||||
for (i=0;i<n_highest_levels;i++)
|
||||
if (!stricmp(highest_levels[i].shortname, "DESTSAT")) // Destination Saturn.
|
||||
highest_saturn_level = highest_levels[i].level_num;
|
||||
for (i=0;i<PlayerCfg.NHighestLevels;i++)
|
||||
if (!stricmp(PlayerCfg.HighestLevels[i].Shortname, "DESTSAT")) // Destination Saturn.
|
||||
highest_saturn_level = PlayerCfg.HighestLevels[i].LevelNum;
|
||||
}
|
||||
#endif
|
||||
i = highest_levels[find_hli_entry()].level_num;
|
||||
i = PlayerCfg.HighestLevels[find_hli_entry()].LevelNum;
|
||||
if ( highest_saturn_level > i )
|
||||
i = highest_saturn_level;
|
||||
return i;
|
||||
|
@ -577,23 +624,23 @@ int write_player_file()
|
|||
|
||||
|
||||
PHYSFS_seek(file,PHYSFS_tell(file)+2*(sizeof(PHYSFS_uint16))); // skip Game_window_w, Game_window_h
|
||||
PHYSFSX_writeU8(file, Player_default_difficulty);
|
||||
PHYSFSX_writeU8(file, Auto_leveling_on);
|
||||
PHYSFSX_writeU8(file, Reticle_on);
|
||||
PHYSFSX_writeU8(file, (Cockpit_mode==1?0:Cockpit_mode));
|
||||
PHYSFSX_writeU8(file, PlayerCfg.DefaultDifficulty);
|
||||
PHYSFSX_writeU8(file, PlayerCfg.AutoLeveling);
|
||||
PHYSFSX_writeU8(file, PlayerCfg.ReticleOn);
|
||||
PHYSFSX_writeU8(file, (PlayerCfg.CockpitMode==1?0:PlayerCfg.CockpitMode));
|
||||
PHYSFS_seek(file,PHYSFS_tell(file)+sizeof(PHYSFS_uint8)); // skip Default_display_mode
|
||||
PHYSFSX_writeU8(file, Missile_view_enabled);
|
||||
PHYSFSX_writeU8(file, Headlight_active_default);
|
||||
PHYSFSX_writeU8(file, Guided_in_big_window);
|
||||
PHYSFSX_writeU8(file, PlayerCfg.MissileViewEnabled);
|
||||
PHYSFSX_writeU8(file, PlayerCfg.HeadlightActiveDefault);
|
||||
PHYSFSX_writeU8(file, PlayerCfg.GuidedInBigWindow);
|
||||
PHYSFS_seek(file,PHYSFS_tell(file)+sizeof(PHYSFS_uint8)); // skip Automap_always_hires
|
||||
|
||||
//write higest level info
|
||||
PHYSFS_writeULE16(file, n_highest_levels);
|
||||
if ((PHYSFS_write(file, highest_levels, sizeof(hli), n_highest_levels) != n_highest_levels))
|
||||
PHYSFS_writeULE16(file, PlayerCfg.NHighestLevels);
|
||||
if ((PHYSFS_write(file, PlayerCfg.HighestLevels, sizeof(hli), PlayerCfg.NHighestLevels) != PlayerCfg.NHighestLevels))
|
||||
goto write_player_file_failed;
|
||||
|
||||
#ifdef NETWORK
|
||||
if ((PHYSFS_write(file, Network_message_macro, MAX_MESSAGE_LEN, 4) != 4))
|
||||
if ((PHYSFS_write(file, PlayerCfg.NetworkMessageMacro, MAX_MESSAGE_LEN, 4) != 4))
|
||||
goto write_player_file_failed;
|
||||
#else
|
||||
{
|
||||
|
@ -607,30 +654,30 @@ int write_player_file()
|
|||
//write kconfig info
|
||||
{
|
||||
|
||||
control_type_dos = Config_control_type;
|
||||
control_type_dos = PlayerCfg.ControlType;
|
||||
|
||||
if (PHYSFS_write(file, kconfig_settings, MAX_CONTROLS*CONTROL_MAX_TYPES, 1) != 1)
|
||||
if (PHYSFS_write(file, PlayerCfg.KeySettings, MAX_CONTROLS*CONTROL_MAX_TYPES, 1) != 1)
|
||||
goto write_player_file_failed;
|
||||
else if (PHYSFS_write(file, &control_type_dos, sizeof(ubyte), 1) != 1)
|
||||
goto write_player_file_failed;
|
||||
else if (PHYSFS_write(file, &control_type_win, sizeof(ubyte), 1) != 1)
|
||||
goto write_player_file_failed;
|
||||
else if (PHYSFS_write(file, &Config_joystick_sensitivity, sizeof(ubyte), 1) != 1)
|
||||
else if (PHYSFS_write(file, &PlayerCfg.JoystickSensitivity, sizeof(ubyte), 1) != 1)
|
||||
goto write_player_file_failed;
|
||||
|
||||
for (i = 0; i < 11; i++)
|
||||
{
|
||||
PHYSFS_write(file, &PrimaryOrder[i], sizeof(ubyte), 1);
|
||||
PHYSFS_write(file, &SecondaryOrder[i], sizeof(ubyte), 1);
|
||||
PHYSFS_write(file, &PlayerCfg.PrimaryOrder[i], sizeof(ubyte), 1);
|
||||
PHYSFS_write(file, &PlayerCfg.SecondaryOrder[i], sizeof(ubyte), 1);
|
||||
}
|
||||
|
||||
PHYSFS_writeULE32(file, Cockpit_3d_view[0]);
|
||||
PHYSFS_writeULE32(file, Cockpit_3d_view[1]);
|
||||
PHYSFS_writeULE32(file, PlayerCfg.Cockpit3DView[0]);
|
||||
PHYSFS_writeULE32(file, PlayerCfg.Cockpit3DView[1]);
|
||||
|
||||
#ifdef NETWORK
|
||||
PHYSFS_writeULE32(file, Netlife_kills);
|
||||
PHYSFS_writeULE32(file, Netlife_killed);
|
||||
i=get_lifetime_checksum (Netlife_kills,Netlife_killed);
|
||||
PHYSFS_writeULE32(file, PlayerCfg.NetlifeKills);
|
||||
PHYSFS_writeULE32(file, PlayerCfg.NetlifeKilled);
|
||||
i=get_lifetime_checksum (PlayerCfg.NetlifeKills,PlayerCfg.NetlifeKilled);
|
||||
#else
|
||||
PHYSFS_writeULE32(file, 0);
|
||||
PHYSFS_writeULE32(file, 0);
|
||||
|
@ -640,7 +687,7 @@ int write_player_file()
|
|||
}
|
||||
|
||||
//write guidebot name
|
||||
PHYSFSX_writeString(file, real_guidebot_name);
|
||||
PHYSFSX_writeString(file, PlayerCfg.GuidebotNameReal);
|
||||
|
||||
{
|
||||
char buf[128];
|
||||
|
@ -648,7 +695,7 @@ int write_player_file()
|
|||
PHYSFSX_writeString(file, buf); // Write out current joystick for player.
|
||||
}
|
||||
|
||||
PHYSFS_write(file, kconfig_d2x_settings, MAX_D2X_CONTROLS, 1);
|
||||
PHYSFS_write(file, PlayerCfg.KeySettingsD2X, MAX_D2X_CONTROLS, 1);
|
||||
|
||||
if (!PHYSFS_close(file))
|
||||
goto write_player_file_failed;
|
||||
|
@ -666,18 +713,6 @@ int write_player_file()
|
|||
return -1;
|
||||
}
|
||||
|
||||
//update the player's highest level. returns errno (0 == no error)
|
||||
int update_player_file()
|
||||
{
|
||||
int ret;
|
||||
|
||||
if ((ret=read_player_file()) != EZERO)
|
||||
if (ret != ENOENT) //if file doesn't exist, that's ok
|
||||
return ret;
|
||||
|
||||
return write_player_file();
|
||||
}
|
||||
|
||||
int get_lifetime_checksum (int a,int b)
|
||||
{
|
||||
int num;
|
||||
|
|
|
@ -21,18 +21,62 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
#ifndef _PLAYSAVE_H
|
||||
#define _PLAYSAVE_H
|
||||
|
||||
#include "kconfig.h"
|
||||
#include "mission.h"
|
||||
#include "weapon.h"
|
||||
#include "multi.h"
|
||||
#include "escort.h"
|
||||
|
||||
#define N_SAVE_SLOTS 10
|
||||
#define GAME_NAME_LEN 25 // +1 for terminating zero = 26
|
||||
|
||||
typedef struct hli {
|
||||
char Shortname[9];
|
||||
ubyte LevelNum;
|
||||
} hli;
|
||||
|
||||
// FIXME!!! NOW THINK AGAIN IF ALL NEW PARTS ARE SOMEHOW ACCESSIBLE FROM MENUS!!!
|
||||
typedef struct player_config
|
||||
{
|
||||
ubyte ControlType;
|
||||
ubyte PrimaryOrder[MAX_PRIMARY_WEAPONS+1];
|
||||
ubyte SecondaryOrder[MAX_SECONDARY_WEAPONS+1];
|
||||
ubyte KeySettings[CONTROL_MAX_TYPES][MAX_CONTROLS];
|
||||
ubyte KeySettingsD2X[MAX_D2X_CONTROLS];
|
||||
int DefaultDifficulty;
|
||||
int AutoLeveling;
|
||||
short NHighestLevels;
|
||||
hli HighestLevels[MAX_MISSIONS];
|
||||
ubyte MouseSensitivity;
|
||||
ubyte JoystickSensitivity;
|
||||
int JoystickDeadzone;
|
||||
int CockpitMode;
|
||||
int Cockpit3DView[2];
|
||||
char NetworkMessageMacro[4][MAX_MESSAGE_LEN];
|
||||
int NetlifeKills;
|
||||
int NetlifeKilled;
|
||||
ubyte ReticleOn;
|
||||
int MissileViewEnabled;
|
||||
int HeadlightActiveDefault;
|
||||
int GuidedInBigWindow;
|
||||
char GuidebotName[GUIDEBOT_NAME_LEN+1];
|
||||
char GuidebotNameReal[GUIDEBOT_NAME_LEN+1];
|
||||
int HudMode;
|
||||
int EscortHotKeys;
|
||||
int PersistentDebris;
|
||||
int OglAlphaEffects;
|
||||
int OglReticle;
|
||||
int OglPRShot;
|
||||
} __attribute__ ((packed)) player_config;
|
||||
|
||||
extern struct player_config PlayerCfg;
|
||||
|
||||
#ifndef EZERO
|
||||
#define EZERO 0
|
||||
#endif
|
||||
|
||||
extern int Default_leveling_on;
|
||||
|
||||
// update the player's highest level. returns errno (0 == no error)
|
||||
int update_player_file();
|
||||
|
||||
// Used to save kconfig values to disk.
|
||||
int write_player_file();
|
||||
|
||||
|
|
|
@ -55,6 +55,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
#include "gr.h" // for powerup outline drawing
|
||||
#include "editor/editor.h"
|
||||
#endif
|
||||
#include "playsave.h"
|
||||
|
||||
int N_powerup_types = 0;
|
||||
powerup_type_info Powerup_info[MAX_POWERUP_TYPES];
|
||||
|
@ -229,7 +230,6 @@ extern char GetKeyValue(char);
|
|||
extern void check_to_use_primary(int);
|
||||
extern void multi_send_got_flag (char);
|
||||
|
||||
int Headlight_active_default=1; //is headlight on when picked up?
|
||||
extern int PlayerMessage;
|
||||
|
||||
// returns true if powerup consumed
|
||||
|
@ -598,9 +598,9 @@ int do_powerup(object *obj)
|
|||
multi_send_play_sound(Powerup_info[obj->id].hit_sound, F1_0);
|
||||
#endif
|
||||
digi_play_sample( Powerup_info[obj->id].hit_sound, F1_0 );
|
||||
sprintf(msg,"HEADLIGHT BOOST! (Headlight is %s)",Headlight_active_default?"ON":"OFF");
|
||||
sprintf(msg,"HEADLIGHT BOOST! (Headlight is %s)",PlayerCfg.HeadlightActiveDefault?"ON":"OFF");
|
||||
powerup_basic(15, 0, 15, 0, msg );
|
||||
if (Headlight_active_default)
|
||||
if (PlayerCfg.HeadlightActiveDefault)
|
||||
Players[Player_num].flags |= PLAYER_FLAGS_HEADLIGHT_ON;
|
||||
used=1;
|
||||
#ifdef NETWORK
|
||||
|
|
|
@ -94,8 +94,6 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
#define POWERUP_NAME_LENGTH 16 // Length of a robot or powerup name.
|
||||
extern char Powerup_names[MAX_POWERUP_TYPES][POWERUP_NAME_LENGTH];
|
||||
|
||||
extern int Headlight_active_default; // is headlight on when picked up?
|
||||
|
||||
typedef struct powerup_type_info {
|
||||
int vclip_num;
|
||||
int hit_sound;
|
||||
|
|
|
@ -40,6 +40,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
#include "newmenu.h"
|
||||
#include "ai.h"
|
||||
#include "args.h"
|
||||
#include "playsave.h"
|
||||
|
||||
int POrderList (int num);
|
||||
int SOrderList (int num);
|
||||
|
@ -70,9 +71,6 @@ sbyte Primary_weapon, Secondary_weapon;
|
|||
|
||||
// autoselect ordering
|
||||
|
||||
ubyte PrimaryOrder[]={9,8,7,6,5,4,3,2,1,0,255};
|
||||
ubyte SecondaryOrder[]={9,8,4,3,1,5,0,255,7,6,2};
|
||||
|
||||
ubyte DefaultPrimaryOrder[]={9,8,7,6,5,4,3,2,1,0,255};
|
||||
ubyte DefaultSecondaryOrder[]={9,8,4,3,1,5,0,255,7,6,2};
|
||||
|
||||
|
@ -224,9 +222,9 @@ void InitWeaponOrdering ()
|
|||
int i;
|
||||
|
||||
for (i=0;i<MAX_PRIMARY_WEAPONS+1;i++)
|
||||
PrimaryOrder[i]=DefaultPrimaryOrder[i];
|
||||
PlayerCfg.PrimaryOrder[i]=DefaultPrimaryOrder[i];
|
||||
for (i=0;i<MAX_SECONDARY_WEAPONS+1;i++)
|
||||
SecondaryOrder[i]=DefaultSecondaryOrder[i];
|
||||
PlayerCfg.SecondaryOrder[i]=DefaultSecondaryOrder[i];
|
||||
}
|
||||
|
||||
void CyclePrimary ()
|
||||
|
@ -435,10 +433,10 @@ void auto_select_weapon(int weapon_type)
|
|||
|
||||
// Hack alert! Because the fusion uses 0 energy at the end (it's got the weird chargeup)
|
||||
// it looks like it takes 0 to fire, but it doesn't, so never auto-select.
|
||||
// if (PrimaryOrder[cur_weapon] == FUSION_INDEX)
|
||||
// if (PlayerCfg.PrimaryOrder[cur_weapon] == FUSION_INDEX)
|
||||
// continue;
|
||||
|
||||
if (PrimaryOrder[cur_weapon] == Primary_weapon) {
|
||||
if (PlayerCfg.PrimaryOrder[cur_weapon] == Primary_weapon) {
|
||||
if (!Cycling)
|
||||
{
|
||||
HUD_init_message(TXT_NO_PRIMARY);
|
||||
|
@ -450,8 +448,8 @@ void auto_select_weapon(int weapon_type)
|
|||
|
||||
try_again = 0; // Tried all weapons!
|
||||
|
||||
} else if (PrimaryOrder[cur_weapon]!=255 && player_has_weapon(PrimaryOrder[cur_weapon], 0) == HAS_ALL) {
|
||||
select_weapon(PrimaryOrder[cur_weapon], 0, 1, 1 );
|
||||
} else if (PlayerCfg.PrimaryOrder[cur_weapon]!=255 && player_has_weapon(PlayerCfg.PrimaryOrder[cur_weapon], 0) == HAS_ALL) {
|
||||
select_weapon(PlayerCfg.PrimaryOrder[cur_weapon], 0, 1, 1 );
|
||||
try_again = 0;
|
||||
}
|
||||
}
|
||||
|
@ -490,15 +488,15 @@ void auto_select_weapon(int weapon_type)
|
|||
if (cur_weapon==MAX_SECONDARY_WEAPONS)
|
||||
cur_weapon = 0;
|
||||
|
||||
if (SecondaryOrder[cur_weapon] == Secondary_weapon) {
|
||||
if (PlayerCfg.SecondaryOrder[cur_weapon] == Secondary_weapon) {
|
||||
if (!Cycling)
|
||||
HUD_init_message("No secondary weapons available!");
|
||||
else
|
||||
select_weapon (Secondary_weapon,1,0,1);
|
||||
|
||||
try_again = 0; // Tried all weapons!
|
||||
} else if (player_has_weapon(SecondaryOrder[cur_weapon], 1) == HAS_ALL) {
|
||||
select_weapon(SecondaryOrder[cur_weapon], 1, 1, 1 );
|
||||
} else if (player_has_weapon(PlayerCfg.SecondaryOrder[cur_weapon], 1) == HAS_ALL) {
|
||||
select_weapon(PlayerCfg.SecondaryOrder[cur_weapon], 1, 1, 1 );
|
||||
try_again = 0;
|
||||
}
|
||||
}
|
||||
|
@ -583,18 +581,18 @@ void ReorderPrimary ()
|
|||
for (i=0;i<MAX_PRIMARY_WEAPONS+1;i++)
|
||||
{
|
||||
m[i].type=NM_TYPE_MENU;
|
||||
if (PrimaryOrder[i]==255)
|
||||
if (PlayerCfg.PrimaryOrder[i]==255)
|
||||
m[i].text=never_autoselect;
|
||||
else
|
||||
m[i].text=(char *)PRIMARY_WEAPON_NAMES(PrimaryOrder[i]);
|
||||
m[i].value=PrimaryOrder[i];
|
||||
m[i].text=(char *)PRIMARY_WEAPON_NAMES(PlayerCfg.PrimaryOrder[i]);
|
||||
m[i].value=PlayerCfg.PrimaryOrder[i];
|
||||
}
|
||||
MenuReordering=1;
|
||||
i = newmenu_do("Reorder Primary","Shift+Up/Down arrow to move item", i, m, NULL);
|
||||
MenuReordering=0;
|
||||
|
||||
for (i=0;i<MAX_PRIMARY_WEAPONS+1;i++)
|
||||
PrimaryOrder[i]=m[i].value;
|
||||
PlayerCfg.PrimaryOrder[i]=m[i].value;
|
||||
}
|
||||
|
||||
void ReorderSecondary ()
|
||||
|
@ -608,17 +606,17 @@ void ReorderSecondary ()
|
|||
for (i=0;i<MAX_SECONDARY_WEAPONS+1;i++)
|
||||
{
|
||||
m[i].type=NM_TYPE_MENU;
|
||||
if (SecondaryOrder[i]==255)
|
||||
if (PlayerCfg.SecondaryOrder[i]==255)
|
||||
m[i].text=never_autoselect;
|
||||
else
|
||||
m[i].text=(char *)SECONDARY_WEAPON_NAMES(SecondaryOrder[i]);
|
||||
m[i].value=SecondaryOrder[i];
|
||||
m[i].text=(char *)SECONDARY_WEAPON_NAMES(PlayerCfg.SecondaryOrder[i]);
|
||||
m[i].value=PlayerCfg.SecondaryOrder[i];
|
||||
}
|
||||
MenuReordering=1;
|
||||
i = newmenu_do("Reorder Secondary","Shift+Up/Down arrow to move item", i, m, NULL);
|
||||
MenuReordering=0;
|
||||
for (i=0;i<MAX_SECONDARY_WEAPONS+1;i++)
|
||||
SecondaryOrder[i]=m[i].value;
|
||||
PlayerCfg.SecondaryOrder[i]=m[i].value;
|
||||
}
|
||||
|
||||
int POrderList (int num)
|
||||
|
@ -626,7 +624,7 @@ int POrderList (int num)
|
|||
int i;
|
||||
|
||||
for (i=0;i<MAX_PRIMARY_WEAPONS+1;i++)
|
||||
if (PrimaryOrder[i]==num)
|
||||
if (PlayerCfg.PrimaryOrder[i]==num)
|
||||
{
|
||||
return (i);
|
||||
}
|
||||
|
@ -638,7 +636,7 @@ int SOrderList (int num)
|
|||
int i;
|
||||
|
||||
for (i=0;i<MAX_SECONDARY_WEAPONS+1;i++)
|
||||
if (SecondaryOrder[i]==num)
|
||||
if (PlayerCfg.SecondaryOrder[i]==num)
|
||||
{
|
||||
return (i);
|
||||
}
|
||||
|
|
10
misc/args.c
10
misc/args.c
|
@ -126,8 +126,6 @@ char *get_str_arg(char *arg_name, char *default_value) {
|
|||
// All FindArg calls should be here to keep the code clean
|
||||
void ReadCmdArgs(void)
|
||||
{
|
||||
int t = 0, x = 0, y = 0;
|
||||
|
||||
// System Options
|
||||
|
||||
GameArg.SysShowCmdHelp = (FindArg( "-help" ) || FindArg( "-h" ) || FindArg( "-?" ) || FindArg( "?" ));
|
||||
|
@ -173,11 +171,6 @@ void ReadCmdArgs(void)
|
|||
|
||||
// Graphics Options
|
||||
|
||||
GameArg.GfxGaugeHudMode = get_int_arg("-hud", 0);
|
||||
if (GameArg.GfxGaugeHudMode <= 0 || GameArg.GfxGaugeHudMode > GAUGE_HUD_NUMMODES-1)
|
||||
GameArg.GfxGaugeHudMode = 0;
|
||||
|
||||
GameArg.GfxPersistentDebris = FindArg("-persistentdebris");
|
||||
GameArg.GfxHiresGFXAvailable = !FindArg("-lowresgraphics");
|
||||
GameArg.GfxHiresFNTAvailable = !FindArg("-lowresfont");
|
||||
GameArg.GfxMovieHires = !FindArg( "-lowresmovies" );
|
||||
|
@ -186,10 +179,7 @@ void ReadCmdArgs(void)
|
|||
#ifdef OGL
|
||||
// OpenGL Options
|
||||
|
||||
GameArg.OglAlphaEffects = FindArg("-gl_transparency");
|
||||
GameArg.OglFixedFont = FindArg("-gl_fixedfont");
|
||||
GameArg.OglReticle = get_int_arg("-gl_reticle", 0);
|
||||
GameArg.OglPrShot = FindArg("-gl_prshot");
|
||||
#endif
|
||||
|
||||
// Multiplayer Options
|
||||
|
|
Loading…
Reference in a new issue