From bc995f6a6cea8649de11b6b0c796fbbb4ed3be97 Mon Sep 17 00:00:00 2001 From: Bradley Bell Date: Tue, 13 Jan 2015 20:58:11 -0800 Subject: [PATCH] move remaining playsave variables to config cvars. no more plr files... --- Makefile.am | 2 +- arch/dos/joydefs.c | 1 - arch/linux/joydefs.c | 2 - d2x.xcodeproj/project.pbxproj | 8 - main/automap.c | 4 +- main/automap.h | 1 + main/cntrlcen.c | 1 - main/config.c | 41 +++- main/endlevel.c | 2 +- main/escort.c | 1 - main/game.c | 109 ++++++----- main/game.h | 9 +- main/gamecntl.c | 19 +- main/gamerend.c | 176 ++++++++++-------- main/gameseq.c | 47 +---- main/gauges.c | 92 ++++----- main/gauges.h | 2 +- main/hud.c | 16 +- main/inferno.c | 4 +- main/inferno.h | 7 + main/kconfig.c | 4 +- main/menu.c | 46 +++-- main/menu.h | 6 +- main/multi.c | 7 +- main/network.c | 5 +- main/newdemo.c | 16 +- main/newmenu.c | 1 - main/object.c | 4 +- main/player.h | 2 - main/playsave.c | 341 ---------------------------------- main/playsave.h | 49 ----- main/powerup.c | 6 +- main/powerup.h | 2 +- main/render.c | 4 +- main/state.c | 1 - main/state.h | 8 + 36 files changed, 338 insertions(+), 708 deletions(-) delete mode 100644 main/playsave.c delete mode 100644 main/playsave.h diff --git a/Makefile.am b/Makefile.am index 2f180a34..115b849e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -23,7 +23,7 @@ main/gamemine.c main/gamepal.c main/gamerend.c main/gamesave.c main/gameseg.c main/gauges.c main/hostage.c main/hud.c main/inferno.c main/kconfig.c main/kludge.c \ main/laser.c main/lighting.c main/menu.c main/mglobal.c main/mission.c main/morph.c \ main/movie.c main/newdemo.c main/newmenu.c main/object.c main/paging.c main/physics.c \ -main/piggy.c main/player.c main/playsave.c main/polyobj.c main/powerup.c main/render.c \ +main/piggy.c main/player.c main/polyobj.c main/powerup.c main/render.c \ main/robot.c main/scores.c main/segment.c main/slew.c main/songs.c main/state.c \ main/switch.c main/terrain.c main/texmerge.c main/text.c main/titles.c main/vclip.c \ main/wall.c main/weapon.c \ diff --git a/arch/dos/joydefs.c b/arch/dos/joydefs.c index c0982cca..53243dbc 100644 --- a/arch/dos/joydefs.c +++ b/arch/dos/joydefs.c @@ -46,7 +46,6 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "text.h" #include "kconfig.h" #include "digi.h" -#include "playsave.h" int joydefs_calibrate_flag = 0; diff --git a/arch/linux/joydefs.c b/arch/linux/joydefs.c index 5be54af6..b9f0a10f 100644 --- a/arch/linux/joydefs.c +++ b/arch/linux/joydefs.c @@ -47,8 +47,6 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "text.h" #include "kconfig.h" #include "digi.h" -#include "playsave.h" - #include "joystick.h" int joydefs_calibrate_flag = 0; diff --git a/d2x.xcodeproj/project.pbxproj b/d2x.xcodeproj/project.pbxproj index 8b1e3a20..c9989d8f 100644 --- a/d2x.xcodeproj/project.pbxproj +++ b/d2x.xcodeproj/project.pbxproj @@ -106,7 +106,6 @@ 14F0D5561A4CA50D00682BB0 /* physics.c in Sources */ = {isa = PBXBuildFile; fileRef = 146697111A2729870070D41D /* physics.c */; }; 14F0D5571A4CA50D00682BB0 /* piggy.c in Sources */ = {isa = PBXBuildFile; fileRef = 146697131A2729870070D41D /* piggy.c */; }; 14F0D5581A4CA50D00682BB0 /* player.c in Sources */ = {isa = PBXBuildFile; fileRef = 146697151A2729870070D41D /* player.c */; }; - 14F0D5591A4CA50D00682BB0 /* playsave.c in Sources */ = {isa = PBXBuildFile; fileRef = 146697171A2729870070D41D /* playsave.c */; }; 14F0D55A1A4CA50D00682BB0 /* polyobj.c in Sources */ = {isa = PBXBuildFile; fileRef = 146697191A2729870070D41D /* polyobj.c */; }; 14F0D55B1A4CA50D00682BB0 /* powerup.c in Sources */ = {isa = PBXBuildFile; fileRef = 1466971B1A2729870070D41D /* powerup.c */; }; 14F0D55C1A4CA50D00682BB0 /* render.c in Sources */ = {isa = PBXBuildFile; fileRef = 1466971D1A2729870070D41D /* render.c */; }; @@ -242,7 +241,6 @@ 14F0D5E61A4CB34F00682BB0 /* physics.c in Sources */ = {isa = PBXBuildFile; fileRef = 146697111A2729870070D41D /* physics.c */; }; 14F0D5E71A4CB34F00682BB0 /* piggy.c in Sources */ = {isa = PBXBuildFile; fileRef = 146697131A2729870070D41D /* piggy.c */; }; 14F0D5E81A4CB34F00682BB0 /* player.c in Sources */ = {isa = PBXBuildFile; fileRef = 146697151A2729870070D41D /* player.c */; }; - 14F0D5E91A4CB34F00682BB0 /* playsave.c in Sources */ = {isa = PBXBuildFile; fileRef = 146697171A2729870070D41D /* playsave.c */; }; 14F0D5EA1A4CB34F00682BB0 /* polyobj.c in Sources */ = {isa = PBXBuildFile; fileRef = 146697191A2729870070D41D /* polyobj.c */; }; 14F0D5EB1A4CB34F00682BB0 /* powerup.c in Sources */ = {isa = PBXBuildFile; fileRef = 1466971B1A2729870070D41D /* powerup.c */; }; 14F0D5EC1A4CB34F00682BB0 /* render.c in Sources */ = {isa = PBXBuildFile; fileRef = 1466971D1A2729870070D41D /* render.c */; }; @@ -821,8 +819,6 @@ 146697141A2729870070D41D /* piggy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = piggy.h; sourceTree = ""; }; 146697151A2729870070D41D /* player.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = player.c; sourceTree = ""; }; 146697161A2729870070D41D /* player.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = player.h; sourceTree = ""; }; - 146697171A2729870070D41D /* playsave.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = playsave.c; sourceTree = ""; }; - 146697181A2729870070D41D /* playsave.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = playsave.h; sourceTree = ""; }; 146697191A2729870070D41D /* polyobj.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = polyobj.c; sourceTree = ""; }; 1466971A1A2729870070D41D /* polyobj.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = polyobj.h; sourceTree = ""; }; 1466971B1A2729870070D41D /* powerup.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = powerup.c; sourceTree = ""; }; @@ -1771,8 +1767,6 @@ 146697141A2729870070D41D /* piggy.h */, 146697151A2729870070D41D /* player.c */, 146697161A2729870070D41D /* player.h */, - 146697171A2729870070D41D /* playsave.c */, - 146697181A2729870070D41D /* playsave.h */, 146697191A2729870070D41D /* polyobj.c */, 1466971A1A2729870070D41D /* polyobj.h */, 1466971B1A2729870070D41D /* powerup.c */, @@ -2349,7 +2343,6 @@ 14F0D5561A4CA50D00682BB0 /* physics.c in Sources */, 14F0D5571A4CA50D00682BB0 /* piggy.c in Sources */, 14F0D5581A4CA50D00682BB0 /* player.c in Sources */, - 14F0D5591A4CA50D00682BB0 /* playsave.c in Sources */, 14F0D55A1A4CA50D00682BB0 /* polyobj.c in Sources */, 14F0D55B1A4CA50D00682BB0 /* powerup.c in Sources */, 14F0D55C1A4CA50D00682BB0 /* render.c in Sources */, @@ -2509,7 +2502,6 @@ 14F0D5E61A4CB34F00682BB0 /* physics.c in Sources */, 14F0D5E71A4CB34F00682BB0 /* piggy.c in Sources */, 14F0D5E81A4CB34F00682BB0 /* player.c in Sources */, - 14F0D5E91A4CB34F00682BB0 /* playsave.c in Sources */, 14F0D5EA1A4CB34F00682BB0 /* polyobj.c in Sources */, 14F0D5EB1A4CB34F00682BB0 /* powerup.c in Sources */, 14F0D5EC1A4CB34F00682BB0 /* render.c in Sources */, diff --git a/main/automap.c b/main/automap.c index c8474c77..481e55d7 100644 --- a/main/automap.c +++ b/main/automap.c @@ -637,7 +637,7 @@ int Automap_active = 0; #define MAP_BACKGROUND_FILENAME ((AutomapHires && cfexist("mapb.pcx"))?"MAPB.PCX":"MAP.PCX") #endif -int Automap_always_hires=0; +cvar_t Automap_always_hires = { "AutomapHires", "0", 1 }; extern int MenuHiresAvailable; uint32_t automap_mode = SM(640,480); @@ -690,7 +690,7 @@ void do_automap( int key_code ) { mprintf( (0, "Num_vertices=%d, Max_edges=%d, (MAX:%d)\n", Num_vertices, Max_edges, MAX_EDGES )); mprintf( (0, "Allocated %d K for automap edge list\n", (sizeof(Edge_info)+sizeof(short))*Max_edges/1024 )); - if (SM_HIRES2 || (Automap_always_hires && MenuHiresAvailable)) { + if (SM_HIRES2 || (Automap_always_hires.intval && MenuHiresAvailable)) { //edit 4/23/99 Matt Mueller - don't switch res unless we need to if (grd_curscreen->sc_mode != AUTOMAP_MODE) gr_set_mode( AUTOMAP_MODE ); diff --git a/main/automap.h b/main/automap.h index efce6d6f..2ae9cba5 100644 --- a/main/automap.h +++ b/main/automap.h @@ -28,6 +28,7 @@ extern ubyte Automap_visited[MAX_SEGMENTS]; void DropBuddyMarker(object *objp); extern int Automap_active; +extern cvar_t Automap_always_hires; #define NUM_MARKERS 16 #define MARKER_MESSAGE_LEN 40 diff --git a/main/cntrlcen.c b/main/cntrlcen.c index db35cef8..9c7741c2 100644 --- a/main/cntrlcen.c +++ b/main/cntrlcen.c @@ -46,7 +46,6 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "vclip.h" #include "fireball.h" #include "endlevel.h" -#include "playsave.h" //@@vms_vector controlcen_gun_points[MAX_CONTROLCEN_GUNS]; //@@vms_vector controlcen_gun_dirs[MAX_CONTROLCEN_GUNS]; diff --git a/main/config.c b/main/config.c index 152e1ae4..832e4536 100644 --- a/main/config.c +++ b/main/config.c @@ -87,6 +87,7 @@ cvar_t Config_secondary_order = { "SecondaryOrder", "", 1 }; cvar_t Config_lifetime_kills = { "LifetimeKills", "0", 1 }; cvar_t Config_lifetime_killed = { "LifetimeKilled", "0", 1 }; cvar_t Config_lifetime_checksum = { "LifetimeChecksum", "0", 1 }; +cvar_t Config_display_mode = { "vid_mode", "0", 1 }; #define _CRYSTAL_LAKE_8_ST 0xe201 @@ -98,7 +99,8 @@ cvar_t Config_lifetime_checksum = { "LifetimeChecksum", "0", 1 }; extern sbyte Object_complexity, Object_detail, Wall_detail, Wall_render_depth, Debris_amount, SoundChannels; void set_custom_detail_vars(void); -int get_lifetime_checksum(int a, int b); + +uint32_t legacy_display_mode[] = { SM(320,200), SM(640,480), SM(320,400), SM(640,400), SM(800,600), SM(1024,768), SM(1280,1024) }; #define CL_MC0 0xF8F @@ -201,11 +203,35 @@ static void config_init(void) cvar_registervariable(&Network_message_macro[2]); cvar_registervariable(&Network_message_macro[3]); #endif + cvar_registervariable(&Game_window_w); + cvar_registervariable(&Game_window_h); + cvar_registervariable(&Player_default_difficulty); + cvar_registervariable(&Auto_leveling_on); + cvar_registervariable(&Reticle_on); + cvar_registervariable(&Cockpit_mode); + cvar_registervariable(&Config_display_mode); + cvar_registervariable(&Missile_view_enabled); + cvar_registervariable(&Headlight_active_default); + cvar_registervariable(&Guided_in_big_window); + cvar_registervariable(&Automap_always_hires); config_initialized = 1; } +static int get_lifetime_checksum (int a,int b) +{ + int num; + + // confusing enough to beat amateur disassemblers? Lets hope so + + num=(a<<8 ^ b); + num^=(a | b); + num*=num>>2; + return (num); +} + + void LoadConfigDefaults(void) { cmd_append("bind UP +lookdown; bind PAD8 +lookdown"); @@ -322,6 +348,9 @@ int ReadConfigFile() cvar_set_cvar(&Network_message_macro[3], "This one's headed for Uranus"); #endif + cvar_setint(&Player_default_difficulty, 1); + cvar_setint(&Auto_leveling_on, 1); + if (cfexist("descent.cfg")) cmd_append("exec descent.cfg"); else @@ -398,6 +427,8 @@ int ReadConfigFile() } #endif + Default_display_mode = legacy_display_mode[Config_display_mode.intval]; + #if 0 printf( "DigiDeviceID: 0x%x\n", digi_driver_board ); printf( "DigiPort: 0x%x\n", digi_driver_port.intval ); @@ -462,6 +493,7 @@ int WriteConfigFile() int joy_axis_min[7]; int joy_axis_center[7]; int joy_axis_max[7]; + int i; joy_get_cal_vals(joy_axis_min, joy_axis_center, joy_axis_max); @@ -500,6 +532,13 @@ int WriteConfigFile() con_printf(CON_DEBUG, "Writing: Lifetime checksum is %d\n", Config_lifetime_checksum.intval); #endif + cvar_setint(&Cockpit_mode, (Cockpit_mode_save != -1)?Cockpit_mode_save:Cockpit_mode.intval); //if have saved mode, write it instead of letterbox/rear view + + for (i = 0; i < (sizeof(legacy_display_mode) / sizeof(uint32_t)); i++) { + if (legacy_display_mode[i] == Current_display_mode) + cvar_setint(&Config_display_mode, i); + } + outfile = PHYSFSX_openWriteBuffered("descent.cfg"); if (outfile == NULL) return 1; diff --git a/main/endlevel.c b/main/endlevel.c index 30b60414..8190fc14 100644 --- a/main/endlevel.c +++ b/main/endlevel.c @@ -409,7 +409,7 @@ void start_rendered_endlevel_sequence() } - cockpit_mode_save = Cockpit_mode; + cockpit_mode_save = Cockpit_mode.intval; #ifdef NETWORK if (Game_mode & GM_MULTI) { diff --git a/main/escort.c b/main/escort.c index 70ed7084..b619b0c7 100644 --- a/main/escort.c +++ b/main/escort.c @@ -53,7 +53,6 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "text.h" #include "gamefont.h" #include "newmenu.h" -#include "playsave.h" #include "gameseq.h" #include "automap.h" #include "laser.h" diff --git a/main/game.c b/main/game.c index bf9b1eed..0f406ef5 100644 --- a/main/game.c +++ b/main/game.c @@ -108,7 +108,6 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "multibot.h" #include "ai.h" #include "robot.h" -#include "playsave.h" #include "fix.h" #include "hudmsg.h" @@ -186,7 +185,7 @@ int MenuHires = 1; //are we currently in highres menus? int Debug_pause=0; //John's debugging pause system -int Cockpit_mode=CM_FULL_COCKPIT; //set game.h for values +cvar_t Cockpit_mode = { "CockpitMode", "0", 1 }; // CM_FULL_COCKPIT, see game.h for values int Cockpit_mode_save=-1; //set while in letterbox or rear view, or -1 int force_cockpit_redraw=0; @@ -294,11 +293,6 @@ void game_cmd_player(int argc, char **argv) strncpy(Players[Player_num].callsign, argv[1], CALLSIGN_LEN); - if (read_player_file() != EZERO) { - con_printf(CON_CRITICAL, "player: unable to load player file"); - return; - } - WriteConfigFile(); // Update lastplr } @@ -460,8 +454,8 @@ uint32_t Game_screen_mode = 0; //end added - OE int Game_window_x = 0; int Game_window_y = 0; -int Game_window_w = 0; -int Game_window_h = 0; +cvar_t Game_window_w = { "GameWidth", "0", 1 }; +cvar_t Game_window_h = { "GameHeight", "0", 1 }; int max_window_w = 0; int max_window_h = 0; @@ -476,28 +470,31 @@ void init_cockpit() //Initialize the on-screen canvases if (Newdemo_state==ND_STATE_RECORDING) { - newdemo_record_cockpit_change(Cockpit_mode); + newdemo_record_cockpit_change(Cockpit_mode.intval); } if ( VR_render_mode != VR_NONE ) - Cockpit_mode = CM_FULL_SCREEN; + cvar_setint(&Cockpit_mode, CM_FULL_SCREEN); - if (!(VR_screen_flags & VRF_ALLOW_COCKPIT) && (Cockpit_mode==CM_FULL_COCKPIT || Cockpit_mode==CM_STATUS_BAR || Cockpit_mode==CM_REAR_VIEW) ) - Cockpit_mode = CM_FULL_SCREEN; + if (!(VR_screen_flags & VRF_ALLOW_COCKPIT) && + (Cockpit_mode.intval == CM_FULL_COCKPIT || + Cockpit_mode.intval == CM_STATUS_BAR || + Cockpit_mode.intval == CM_REAR_VIEW) ) + cvar_setint(&Cockpit_mode, CM_FULL_SCREEN); if ( Screen_mode == SCREEN_EDITOR ) - Cockpit_mode = CM_FULL_SCREEN; + cvar_setint(&Cockpit_mode, CM_FULL_SCREEN); gr_set_current_canvas(NULL); gr_set_curfont( GAME_FONT ); - switch( Cockpit_mode ) { + switch( Cockpit_mode.intval ) { case CM_FULL_COCKPIT: case CM_REAR_VIEW: { #if 0 - grs_bitmap *bm = &GameBitmaps[cockpit_bitmap[Cockpit_mode+(SM_HIRES?(Num_cockpits/2):0)].index]; + grs_bitmap *bm = &GameBitmaps[cockpit_bitmap[Cockpit_mode.intval+(SM_HIRES?(Num_cockpits/2):0)].index]; - PIGGY_PAGE_IN(cockpit_bitmap[Cockpit_mode+(SM_HIRES?(Num_cockpits/2):0)]); + PIGGY_PAGE_IN(cockpit_bitmap[Cockpit_mode.intval+(SM_HIRES?(Num_cockpits/2):0)]); gr_set_current_canvas(VR_offscreen_buffer); @@ -507,9 +504,9 @@ void init_cockpit() gr_ibitblt_find_hole_size ( bm, &minx, &miny, &maxx, &maxy ); #endif - if (Cockpit_mode == CM_FULL_COCKPIT) + if (Cockpit_mode.intval == CM_FULL_COCKPIT) game_init_render_sub_buffers(0, 0, grd_curscreen->sc_w, (grd_curscreen->sc_h*2)/3); - else if (Cockpit_mode == CM_REAR_VIEW) + else if (Cockpit_mode.intval == CM_REAR_VIEW) game_init_render_sub_buffers((16*grd_curscreen->sc_w)/640, (89*grd_curscreen->sc_h)/480, (604*grd_curscreen->sc_w)/640, (209*grd_curscreen->sc_h)/480); break; } @@ -518,32 +515,32 @@ void init_cockpit() max_window_h = grd_curscreen->sc_h; - if (Game_window_h > max_window_h || VR_screen_flags&VRF_ALLOW_COCKPIT) - Game_window_h = max_window_h; + if (Game_window_h.intval > max_window_h || VR_screen_flags&VRF_ALLOW_COCKPIT) + cvar_setint(&Game_window_h, max_window_h); - if (Game_window_w > max_window_w || VR_screen_flags&VRF_ALLOW_COCKPIT) - Game_window_w = max_window_w; + if (Game_window_w.intval > max_window_w || VR_screen_flags&VRF_ALLOW_COCKPIT) + cvar_setint(&Game_window_w, max_window_w); - Game_window_x = (max_window_w - Game_window_w)/2; - Game_window_y = (max_window_h - Game_window_h)/2; + Game_window_x = (max_window_w - Game_window_w.intval) / 2; + Game_window_y = (max_window_h - Game_window_h.intval) / 2; - game_init_render_sub_buffers( Game_window_x, Game_window_y, Game_window_w, Game_window_h ); + game_init_render_sub_buffers( Game_window_x, Game_window_y, Game_window_w.intval, Game_window_h.intval ); break; case CM_STATUS_BAR: max_window_h = grd_curscreen->sc_h - GameBitmaps[cockpit_bitmap[CM_STATUS_BAR+(SM_HIRES?(Num_cockpits/2):0)].index].bm_h; - if (Game_window_h > max_window_h) - Game_window_h = max_window_h; + if (Game_window_h.intval > max_window_h) + cvar_setint(&Game_window_h, max_window_h); - if (Game_window_w > max_window_w) - Game_window_w = max_window_w; + if (Game_window_w.intval > max_window_w) + cvar_setint(&Game_window_w, max_window_w); - Game_window_x = (max_window_w - Game_window_w)/2; - Game_window_y = (max_window_h - Game_window_h)/2; + Game_window_x = (max_window_w - Game_window_w.intval) / 2; + Game_window_y = (max_window_h - Game_window_h.intval) / 2; - game_init_render_sub_buffers( Game_window_x, Game_window_y, Game_window_w, Game_window_h ); + game_init_render_sub_buffers( Game_window_x, Game_window_y, Game_window_w.intval, Game_window_h.intval ); break; case CM_LETTERBOX: { @@ -565,8 +562,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 != Cockpit_mode.intval) { //new mode + cvar_setint(&Cockpit_mode, mode); init_cockpit(); } } @@ -612,8 +609,8 @@ void game_init_render_buffers(int screen_mode, int render_w, int render_h, int r VR_reset_params(); VR_render_mode = render_method; - Game_window_w = render_w; - Game_window_h = render_h; + cvar_setint(&Game_window_w, render_w); + cvar_setint(&Game_window_h, render_h); if (VR_offscreen_buffer) { gr_free_canvas(VR_offscreen_buffer); @@ -739,20 +736,21 @@ int set_screen_mode(int sm) max_window_h = grd_curscreen->sc_h; if (VR_screen_flags & VRF_ALLOW_COCKPIT) { - if (Cockpit_mode == CM_STATUS_BAR) + if (Cockpit_mode.intval == CM_STATUS_BAR) max_window_h = grd_curscreen->sc_h - GameBitmaps[cockpit_bitmap[CM_STATUS_BAR+(SM_HIRES?(Num_cockpits/2):0)].index].bm_h; } - else if (Cockpit_mode != CM_LETTERBOX) - Cockpit_mode = CM_FULL_SCREEN; + else if (Cockpit_mode.intval != CM_LETTERBOX) + cvar_setint(&Cockpit_mode, CM_FULL_SCREEN); - if (Game_window_h==0 || Game_window_h > max_window_h || Game_window_w==0 || Game_window_w > max_window_w) { - Game_window_w = max_window_w; - Game_window_h = max_window_h; - } + if (Game_window_h.intval == 0 || Game_window_h.intval > max_window_h || + Game_window_w.intval == 0 || Game_window_w.intval > max_window_w) { + cvar_setint(&Game_window_w, max_window_w); + cvar_setint(&Game_window_h, max_window_h); + } } else - Cockpit_mode = CM_FULL_SCREEN; + cvar_setint(&Cockpit_mode, CM_FULL_SCREEN); // Define screen pages for game mode // If we designate through screen_flags to use paging, then do so. @@ -1746,7 +1744,7 @@ void check_rear_view() if (Rear_view) { Rear_view = 0; - if (Cockpit_mode==CM_REAR_VIEW) { + if (Cockpit_mode.intval == CM_REAR_VIEW) { select_cockpit(Cockpit_mode_save); Cockpit_mode_save = -1; } @@ -1764,8 +1762,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) { - Cockpit_mode_save = Cockpit_mode; + if (Cockpit_mode.intval == CM_FULL_COCKPIT) { + Cockpit_mode_save = Cockpit_mode.intval; select_cockpit(CM_REAR_VIEW); } if (Newdemo_state == ND_STATE_RECORDING) @@ -1780,11 +1778,11 @@ void check_rear_view() } else { - //@@if (leave_mode==1 && Cockpit_mode==CM_REAR_VIEW) { + //@@if (leave_mode==1 && Cockpit_mode.intval == CM_REAR_VIEW) { if (leave_mode==1 && Rear_view) { Rear_view = 0; - if (Cockpit_mode==CM_REAR_VIEW) { + if (Cockpit_mode.intval == CM_REAR_VIEW) { select_cockpit(Cockpit_mode_save); Cockpit_mode_save = -1; } @@ -1803,7 +1801,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 (!(Cockpit_mode.intval == CM_FULL_COCKPIT || Cockpit_mode.intval == CM_STATUS_BAR || Cockpit_mode.intval == CM_FULL_SCREEN)) { if (!(Cockpit_mode_save == CM_FULL_COCKPIT || Cockpit_mode_save == CM_STATUS_BAR || Cockpit_mode_save == CM_FULL_SCREEN)) Cockpit_mode_save = CM_FULL_COCKPIT; select_cockpit(Cockpit_mode_save); @@ -1994,10 +1992,11 @@ void game() } if (Automap_flag) { - int save_w=Game_window_w,save_h=Game_window_h; + int save_w = Game_window_w.intval, save_h = Game_window_h.intval; do_automap(0); Screen_mode=-1; set_screen_mode(SCREEN_GAME); - Game_window_w=save_w; Game_window_h=save_h; + cvar_setint(&Game_window_w, save_w); + cvar_setint(&Game_window_h, save_h); init_cockpit(); last_drawn_cockpit[0] = -1; last_drawn_cockpit[1] = -1; @@ -2074,7 +2073,7 @@ void game() if (Cockpit_mode_save!=-1) { - Cockpit_mode=Cockpit_mode_save; + cvar_setint(&Cockpit_mode, Cockpit_mode_save); Cockpit_mode_save=-1; } @@ -2140,7 +2139,7 @@ extern int Do_appearance_effect; object *Missile_viewer=NULL; -int Missile_view_enabled = 1; +cvar_t Missile_view_enabled = { "MissileView", "1", 1 }; int Marker_viewer_num[2]={-1,-1}; int Coop_view_player[2]={-1,-1}; diff --git a/main/game.h b/main/game.h index 6ceaa52e..715fc1dc 100644 --- a/main/game.h +++ b/main/game.h @@ -38,7 +38,7 @@ 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 cvar_t Missile_view_enabled; extern object *Missile_viewer; @@ -170,9 +170,10 @@ extern grs_canvas * get_current_game_screen(); #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; +extern cvar_t Cockpit_mode; // what sort of cockpit or window is up? +extern int Cockpit_mode_save; +extern cvar_t Game_window_w, // width and height of player's game window + Game_window_h; extern int Rear_view; // if true, looking back. extern fix Rear_view_leave_time;// how long until we decide key is down diff --git a/main/gamecntl.c b/main/gamecntl.c index 83b1591f..abf25899 100644 --- a/main/gamecntl.c +++ b/main/gamecntl.c @@ -80,7 +80,6 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "mouse.h" #include "titles.h" #include "gr.h" -#include "playsave.h" #include "movie.h" #include "scores.h" #ifdef MACINTOSH @@ -136,7 +135,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; #ifndef NDEBUG @@ -521,7 +519,7 @@ int do_game_pause() WIN(set_popup_screen()); show_boxed_message(msg); //show_extra_views(); - if (Cockpit_mode==CM_FULL_COCKPIT || Cockpit_mode==CM_STATUS_BAR) + if (Cockpit_mode.intval == CM_FULL_COCKPIT || Cockpit_mode.intval == CM_STATUS_BAR) render_gauges(); } } @@ -748,8 +746,11 @@ void HandleDemoKey(int key) switch (key) { 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] && + Guided_in_big_window.intval)) toggle_cockpit(); break; @@ -911,7 +912,7 @@ int select_next_window_function(int w) cvar_setint(&Cockpit_3d_view[w], CV_NONE); break; } - write_player_file(); + WriteConfigFile(); return 1; //screen_changed } @@ -1080,7 +1081,11 @@ int HandleSystemKey(int key) 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] && + Guided_in_big_window.intval)) { toggle_cockpit(); screen_changed=1; } diff --git a/main/gamerend.c b/main/gamerend.c index 972dcd93..1937a52e 100644 --- a/main/gamerend.c +++ b/main/gamerend.c @@ -25,7 +25,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include #include -#include "pstypes.h" +#include "inferno.h" #include "console.h" #include "inferno.h" #include "error.h" @@ -51,7 +51,6 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "cntrlcen.h" #include "powerup.h" #include "laser.h" -#include "playsave.h" #include "automap.h" #include "mission.h" #include "gameseq.h" @@ -253,8 +252,6 @@ void draw_window_label() extern int Game_window_x; extern int Game_window_y; -extern int Game_window_w; -extern int Game_window_h; extern int max_window_w; extern int max_window_h; @@ -278,13 +275,13 @@ void render_countdown_gauge() gr_set_curfont( SMALL_FONT ); gr_set_fontcolor(gr_getcolor(0,63,0), -1 ); y = SMALL_FONT->ft_h*4; - if (Cockpit_mode == CM_FULL_SCREEN) + if (Cockpit_mode.intval == CM_FULL_SCREEN) y += SMALL_FONT->ft_h*2; if (Player_is_dead) y += SMALL_FONT->ft_h*2; - //if (!((Cockpit_mode == CM_STATUS_BAR) && (Game_window_y >= 19))) + //if (!((Cockpit_mode.intval == CM_STATUS_BAR) && (Game_window_y >= 19))) // y += 5; gr_printf(0x8000, y, "T-%d s", Countdown_seconds_left ); } @@ -335,14 +332,14 @@ void game_draw_hud_stuff() gr_set_fontcolor(gr_getcolor(27,0,0), -1 ); gr_get_string_size(message, &w, &h, &aw ); - if (Cockpit_mode == CM_FULL_COCKPIT) { + if (Cockpit_mode.intval == CM_FULL_COCKPIT) { if (grd_curcanv->cv_bitmap.bm_h > 240) h += 40; else h += 15; - } else if ( Cockpit_mode == CM_LETTERBOX ) + } else if ( Cockpit_mode.intval == CM_LETTERBOX ) h += 7; - if (Cockpit_mode != CM_REAR_VIEW && !Saving_movie_frames) + if (Cockpit_mode.intval != CM_REAR_VIEW && !Saving_movie_frames) gr_printf((grd_curcanv->cv_bitmap.bm_w-w)/2, grd_curcanv->cv_bitmap.bm_h - h - 2, message ); } @@ -359,12 +356,12 @@ void game_draw_hud_stuff() mprintf((0,"line_spacing=%d ",line_spacing)); - if (Cockpit_mode==CM_FULL_SCREEN) { + if (Cockpit_mode.intval == CM_FULL_SCREEN) { if (Game_mode & GM_MULTI) y -= line_spacing * 11; //64 else y -= line_spacing * 6; //32 - } else if (Cockpit_mode == CM_STATUS_BAR) { + } else if (Cockpit_mode.intval == CM_STATUS_BAR) { if (Game_mode & GM_MULTI) y -= line_spacing * 8; //48 else @@ -475,7 +472,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; #if 0 //render a frame for the game in stereo @@ -515,12 +511,21 @@ void game_render_frame_stereo() actual_eye_offset = VR_eye_offset; } - 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] && + Guided_in_big_window.intval) actual_eye_offset = 0; gr_set_current_canvas(&RenderCanvas[0]); - 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] && + Guided_in_big_window.intval) + { char *msg = "Guided Missile View"; object *viewer_save = Viewer; int w,h,aw; @@ -590,7 +595,11 @@ void game_render_frame_stereo() // Draw the right eye's view gr_set_current_canvas(&RenderCanvas[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) + 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.intval) gr_bitmap(0,0,&RenderCanvas[0].cv_bitmap); else { if (Rear_view) @@ -789,8 +798,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 (Guided_in_big_window.intval) { RenderingType=6+(1<<4); do_cockpit_window_view(1,Viewer,0,WBU_MISSILE,"SHIP"); } @@ -805,7 +813,7 @@ void show_extra_views() else { if (Guided_missile[Player_num]) { //used to be active - if (!Guided_in_big_window) + if (!Guided_in_big_window.intval) do_cockpit_window_view(1,NULL,0,WBU_STATIC,NULL); Guided_missile[Player_num] = NULL; } @@ -814,7 +822,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 (Missile_view_enabled.intval && 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; @@ -921,16 +929,21 @@ void game_render_frame_mono(void) else 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] && + Guided_in_big_window.intval) + { char *msg = "Guided Missile View"; object *viewer_save = Viewer; int w,h,aw; - if (Cockpit_mode==CM_FULL_COCKPIT) + if (Cockpit_mode.intval == CM_FULL_COCKPIT) { BigWindowSwitch=1; force_cockpit_redraw=1; - Cockpit_mode=CM_STATUS_BAR; + cvar_set(&Cockpit_mode, CM_STATUS_BAR); return; } @@ -961,7 +974,7 @@ void game_render_frame_mono(void) if (BigWindowSwitch) { force_cockpit_redraw=1; - Cockpit_mode=CM_FULL_COCKPIT; + cvar_setint(&Cockpit_mode, CM_FULL_COCKPIT); BigWindowSwitch=0; return; } @@ -1020,7 +1033,7 @@ void game_render_frame_mono(void) show_extra_views(); //missile view, buddy bot, etc. - if (Cockpit_mode==CM_FULL_COCKPIT || Cockpit_mode==CM_STATUS_BAR) { + if (Cockpit_mode.intval == CM_FULL_COCKPIT || Cockpit_mode.intval == CM_STATUS_BAR) { if ( Newdemo_state == ND_STATE_PLAYBACK ) Game_mode = Newdemo_game_mode; @@ -1043,11 +1056,11 @@ void toggle_cockpit() { int new_mode; - switch (Cockpit_mode) { + switch (Cockpit_mode.intval) { case CM_FULL_COCKPIT: { int max_h = grd_curscreen->sc_h - GameBitmaps[cockpit_bitmap[CM_STATUS_BAR + (SM_HIRES?(Num_cockpits/2):0)].index].bm_h; - if (Game_window_h > max_h) //too big for statusbar + if (Game_window_h.intval > max_h) //too big for statusbar new_mode = CM_FULL_SCREEN; else new_mode = CM_STATUS_BAR; @@ -1071,7 +1084,7 @@ void toggle_cockpit() select_cockpit(new_mode); HUD_clear_messages(); - write_player_file(); + WriteConfigFile(); } #ifndef MACINTOSH @@ -1093,42 +1106,42 @@ void toggle_cockpit() void grow_window() { - if (Cockpit_mode == CM_FULL_COCKPIT) { - Game_window_h = max_window_h; - Game_window_w = max_window_w; + if (Cockpit_mode.intval == CM_FULL_COCKPIT) { + cvar_setint(&Game_window_h, max_window_h); + cvar_setint(&Game_window_w, max_window_w); toggle_cockpit(); HUD_init_message("Press F3 to return to Cockpit mode"); return; } - if (Cockpit_mode != CM_STATUS_BAR && (VR_screen_flags & VRF_ALLOW_COCKPIT)) + if (Cockpit_mode.intval != CM_STATUS_BAR && (VR_screen_flags & VRF_ALLOW_COCKPIT)) return; - if (Game_window_h>=max_window_h || Game_window_w>=max_window_w) { - //Game_window_w = max_window_w; - //Game_window_h = max_window_h; + if (Game_window_h.intval >= max_window_h || Game_window_w.intval >= max_window_w) { + //cvar_setint(&Game_window_w, max_window_w); + //cvar_setint(&Game_window_h, max_window_h); select_cockpit(CM_FULL_SCREEN); } else { //int x,y; - Game_window_w += WINDOW_W_DELTA; - Game_window_h += WINDOW_H_DELTA; + cvar_setint(&Game_window_w, Game_window_w.intval + WINDOW_W_DELTA); + cvar_setint(&Game_window_h, Game_window_h.intval + WINDOW_H_DELTA); - if (Game_window_h > max_window_h) - Game_window_h = max_window_h; + if (Game_window_h.intval > max_window_h) + cvar_setint(&Game_window_h, max_window_h); - if (Game_window_w > max_window_w) - Game_window_w = max_window_w; + if (Game_window_w.intval > max_window_w) + cvar_setint(&Game_window_w, max_window_w); - Game_window_x = (max_window_w - Game_window_w)/2; - Game_window_y = (max_window_h - Game_window_h)/2; + Game_window_x = (max_window_w - Game_window_w.intval) / 2; + Game_window_y = (max_window_h - Game_window_h.intval) / 2; - game_init_render_sub_buffers( Game_window_x, Game_window_y, Game_window_w, Game_window_h ); + game_init_render_sub_buffers( Game_window_x, Game_window_y, Game_window_w.intval, Game_window_h.intval ); } HUD_clear_messages(); // @mk, 11/11/94 - write_player_file(); + WriteConfigFile(); } // grs_bitmap background_bitmap; already declared in line 434 (samir 4/10/94) @@ -1187,8 +1200,8 @@ void fill_background() x = Game_window_x; y = Game_window_y; - w = Game_window_w; - h = Game_window_h; + w = Game_window_w.intval; + h = Game_window_h.intval; dx = x; dy = y; @@ -1212,57 +1225,56 @@ void shrink_window() { mprintf((0,"%d ",FrameCount)); -// mprintf ((0,"W=%d H=%d\n",Game_window_w,Game_window_h)); +// mprintf((0, "W=%d H=%d\n", Game_window_w.intval, Game_window_h.intval)); - if (Cockpit_mode == CM_FULL_COCKPIT && (VR_screen_flags & VRF_ALLOW_COCKPIT)) { - Game_window_h = max_window_h; - Game_window_w = max_window_w; + if (Cockpit_mode.intval == CM_FULL_COCKPIT && (VR_screen_flags & VRF_ALLOW_COCKPIT)) { + cvar_setint(&Game_window_h, max_window_h); + cvar_setint(&Game_window_w, max_window_w); //!!toggle_cockpit(); select_cockpit(CM_STATUS_BAR); // shrink_window(); // shrink_window(); HUD_init_message("Press F3 to return to Cockpit mode"); - write_player_file(); + WriteConfigFile(); return; } - if (Cockpit_mode == CM_FULL_SCREEN && (VR_screen_flags & VRF_ALLOW_COCKPIT)) + if (Cockpit_mode.intval == CM_FULL_SCREEN && (VR_screen_flags & VRF_ALLOW_COCKPIT)) { - //Game_window_w = max_window_w; - //Game_window_h = max_window_h; + //cvar_setint(&Game_window_w, max_window_w); + //cvar_setint(&Game_window_h, max_window_h); select_cockpit(CM_STATUS_BAR); - write_player_file(); + WriteConfigFile(); return; } - if (Cockpit_mode != CM_STATUS_BAR && (VR_screen_flags & VRF_ALLOW_COCKPIT)) + if (Cockpit_mode.intval != CM_STATUS_BAR && (VR_screen_flags & VRF_ALLOW_COCKPIT)) return; - mprintf ((0,"Cockpit mode=%d\n",Cockpit_mode)); + mprintf((0, "Cockpit mode=%d\n", Cockpit_mode.intval)); - if (Game_window_w > WINDOW_MIN_W) { + if (Game_window_w.intval > WINDOW_MIN_W) { //int x,y; - Game_window_w -= WINDOW_W_DELTA; - Game_window_h -= WINDOW_H_DELTA; - + cvar_setint(&Game_window_w, Game_window_w.intval - WINDOW_W_DELTA); + cvar_setint(&Game_window_h, Game_window_h.intval - WINDOW_H_DELTA); - mprintf ((0,"NewW=%d NewH=%d VW=%d maxH=%d\n",Game_window_w,Game_window_h,max_window_w,max_window_h)); + mprintf((0, "NewW=%d NewH=%d VW=%d maxH=%d\n", Game_window_w.intval, Game_window_h.intval, max_window_w, max_window_h)); - if ( Game_window_w < WINDOW_MIN_W ) - Game_window_w = WINDOW_MIN_W; + if ( Game_window_w.intval < WINDOW_MIN_W ) + cvar_setint(&Game_window_w, WINDOW_MIN_W); - if ( Game_window_h < WINDOW_MIN_H ) - Game_window_h = WINDOW_MIN_H; + if ( Game_window_h.intval < WINDOW_MIN_H ) + cvar_setint(&Game_window_h, WINDOW_MIN_H); - Game_window_x = (max_window_w - Game_window_w)/2; - Game_window_y = (max_window_h - Game_window_h)/2; + Game_window_x = (max_window_w - Game_window_w.intval) / 2; + Game_window_y = (max_window_h - Game_window_h.intval) / 2; fill_background(); - game_init_render_sub_buffers( Game_window_x, Game_window_y, Game_window_w, Game_window_h ); + game_init_render_sub_buffers( Game_window_x, Game_window_y, Game_window_w.intval, Game_window_h.intval ); HUD_clear_messages(); - write_player_file(); + WriteConfigFile(); } } @@ -1278,17 +1290,17 @@ void update_cockpits(int force_redraw) //Redraw the on-screen cockpit bitmaps if (VR_render_mode != VR_NONE ) return; - switch( Cockpit_mode ) { + switch( Cockpit_mode.intval ) { case CM_FULL_COCKPIT: case CM_REAR_VIEW: gr_set_current_canvas(&VR_screen_pages[VR_current_page]); - PIGGY_PAGE_IN(cockpit_bitmap[Cockpit_mode + (SM_HIRES?(Num_cockpits/2):0)]); - gr_ubitmapm(0,0, &GameBitmaps[cockpit_bitmap[Cockpit_mode + (SM_HIRES?(Num_cockpits/2):0)].index]); + PIGGY_PAGE_IN(cockpit_bitmap[Cockpit_mode.intval + (SM_HIRES?(Num_cockpits/2):0)]); + gr_ubitmapm(0, 0, &GameBitmaps[cockpit_bitmap[Cockpit_mode.intval + (SM_HIRES?(Num_cockpits/2):0)].index]); break; case CM_FULL_SCREEN: - Game_window_x = (max_window_w - Game_window_w)/2; - Game_window_y = (max_window_h - Game_window_h)/2; + Game_window_x = (max_window_w - Game_window_w.intval) / 2; + Game_window_y = (max_window_h - Game_window_h.intval) / 2; fill_background(); break; @@ -1296,11 +1308,11 @@ void update_cockpits(int force_redraw) gr_set_current_canvas(&VR_screen_pages[VR_current_page]); - PIGGY_PAGE_IN(cockpit_bitmap[Cockpit_mode + (SM_HIRES?(Num_cockpits/2):0)]); - gr_ubitmapm(0,max_window_h,&GameBitmaps[cockpit_bitmap[Cockpit_mode + (SM_HIRES?(Num_cockpits/2):0)].index]); + PIGGY_PAGE_IN(cockpit_bitmap[Cockpit_mode.intval + (SM_HIRES?(Num_cockpits/2):0)]); + gr_ubitmapm(0, max_window_h, &GameBitmaps[cockpit_bitmap[Cockpit_mode.intval + (SM_HIRES?(Num_cockpits/2):0)].index]); - Game_window_x = (max_window_w - Game_window_w)/2; - Game_window_y = (max_window_h - Game_window_h)/2; + Game_window_x = (max_window_w - Game_window_w.intval) / 2; + Game_window_y = (max_window_h - Game_window_h.intval) / 2; fill_background(); break; @@ -1326,12 +1338,12 @@ void update_cockpits(int force_redraw) gr_set_current_canvas(&VR_screen_pages[VR_current_page]); - if (Cockpit_mode != last_drawn_cockpit[VR_current_page] || force_redraw ) - last_drawn_cockpit[VR_current_page] = Cockpit_mode; + if (Cockpit_mode.intval != last_drawn_cockpit[VR_current_page] || force_redraw ) + last_drawn_cockpit[VR_current_page] = Cockpit_mode.intval; else return; - if (Cockpit_mode==CM_FULL_COCKPIT || Cockpit_mode==CM_STATUS_BAR) + if (Cockpit_mode.intval == CM_FULL_COCKPIT || Cockpit_mode.intval == CM_STATUS_BAR) init_gauges(); } diff --git a/main/gameseq.c b/main/gameseq.c index c9a89844..06ff7d14 100644 --- a/main/gameseq.c +++ b/main/gameseq.c @@ -85,7 +85,6 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. # include "netmisc.h" # include "modem.h" #endif -#include "playsave.h" #include "ctype.h" #include "fireball.h" #include "kconfig.h" @@ -674,10 +673,9 @@ void create_player_appearance_effect(object *player_obj) //pairs of chars describing ranges char playername_allowed_chars[] = "azAZ09__--"; -int MakeNewPlayerFile(int allow_abort) +int RegisterPlayerSub(int allow_abort) { int x; - char filename[14]; newmenu_item m; char text[CALLSIGN_LEN+1]=""; @@ -691,26 +689,16 @@ try_again: Newmenu_allowed_chars = NULL; if ( x < 0 ) { - if ( allow_abort ) return 0; + if ( allow_abort ) + return 1; goto try_again; } if (text[0]==0) //null string goto try_again; - sprintf( filename, "%s.plr", text ); - - if (PHYSFS_exists(filename)) - { - nm_messagebox(NULL, 1, TXT_OK, "%s '%s' %s", TXT_PLAYER, text, TXT_ALREADY_EXISTS ); - goto try_again; - } - - if ( !new_player_config() ) - goto try_again; // They hit Esc during New player config - - strncpy(Players[Player_num].callsign, text, CALLSIGN_LEN); - write_player_file(); + cmd_appendf("player %s", text); + while (cmd_queue_process()) {} return 1; } @@ -718,7 +706,6 @@ try_again: //Inputs the player's name, without putting up the background screen int RegisterPlayer() { - char filename[14]; int allow_abort_flag = 1; if ( Players[Player_num].callsign[0] == 0 ) { @@ -730,29 +717,11 @@ int RegisterPlayer() } do_menu_again: - ; -#ifndef APPLE_DEMO - //if (!newmenu_get_filename(TXT_SELECT_PILOT, PLAYER_DIR "*.plr", filename, allow_abort_flag)) - if (!newmenu_get_filename(TXT_SELECT_PILOT, /* PLAYER_DIR */ "plr", filename, allow_abort_flag)) - goto do_menu_again; //return 0; // They hit Esc in file selector -#else - newmenu_get_filename( "Select Pilot", PLAYER_DIR "*.plr", filename, 0 ); // no abort allowed ever -- and change title of menubox -#endif - if ( filename[0] == '<' ) { - // They selected 'create new pilot' - if (!MakeNewPlayerFile(allow_abort_flag)) - //return 0; // They hit Esc during enter name stage - goto do_menu_again; - } else { - strncpy(Players[Player_num].callsign,filename, CALLSIGN_LEN); - } - - if (read_player_file() != EZERO) + if (!RegisterPlayerSub(allow_abort_flag)) + //return 0; // They hit Esc during enter name stage goto do_menu_again; - Auto_leveling_on = Default_leveling_on; - set_display_mode(Default_display_mode); WriteConfigFile(); // Update lastplr @@ -1824,8 +1793,6 @@ void StartNewLevelSub(int level_num, int page_in_textures, int secret_flag) if (!(Game_mode & GM_MULTI) && !Cheats_enabled) mission_write_config(); - else - read_player_file(); //get window sizes reset_special_effects(); diff --git a/main/gauges.c b/main/gauges.c index 37f3a92b..633505f2 100644 --- a/main/gauges.c +++ b/main/gauges.c @@ -77,7 +77,7 @@ grs_canvas *Canv_RightEnergyGauge = NULL; grs_canvas *Canv_NumericalGauge = NULL; //Flags for gauges/hud stuff -ubyte Reticle_on=1; +cvar_t Reticle_on = { "crosshair", "1", 1 }; //bitmap numbers for gauges @@ -821,7 +821,7 @@ void copy_gauge_box(gauge_box *box,grs_bitmap *bm) //fills in the coords of the hostage video window void get_hostage_window_coords(int *x,int *y,int *w,int *h) { - if (Cockpit_mode == CM_STATUS_BAR) { + if (Cockpit_mode.intval == CM_STATUS_BAR) { *x = SB_SECONDARY_W_BOX_LEFT; *y = SB_SECONDARY_W_BOX_TOP; *w = SB_SECONDARY_W_BOX_RIGHT - SB_SECONDARY_W_BOX_LEFT + 1; @@ -1087,7 +1087,7 @@ int Last_homing_warning_shown[2]={-1,-1}; // ----------------------------------------------------------------------------- void show_homing_warning(void) { - if ((Cockpit_mode == CM_STATUS_BAR) || (Endlevel_sequence)) { + if ((Cockpit_mode.intval == CM_STATUS_BAR) || (Endlevel_sequence)) { if (Last_homing_warning_shown[VR_current_page] == 1) { PAGE_IN_GAUGE( GAUGE_HOMING_WARNING_OFF ); @@ -1180,15 +1180,15 @@ void hud_show_orbs (void) x=y=0; - if (Cockpit_mode == CM_FULL_COCKPIT) { + if (Cockpit_mode.intval == CM_FULL_COCKPIT) { y = 2*Line_spacing; x = 4*GAME_FONT->ft_w; } - else if (Cockpit_mode == CM_STATUS_BAR) { + else if (Cockpit_mode.intval == CM_STATUS_BAR) { y = Line_spacing; x = GAME_FONT->ft_w; } - else if (Cockpit_mode == CM_FULL_SCREEN) { + else if (Cockpit_mode.intval == CM_FULL_SCREEN) { y = 5*Line_spacing; x = GAME_FONT->ft_w; if (FontHires) @@ -1213,15 +1213,15 @@ void hud_show_flag(void) x=y=0; - if (Cockpit_mode == CM_FULL_COCKPIT) { + if (Cockpit_mode.intval == CM_FULL_COCKPIT) { y = 2*Line_spacing; x = 4*GAME_FONT->ft_w; } - else if (Cockpit_mode == CM_STATUS_BAR) { + else if (Cockpit_mode.intval == CM_STATUS_BAR) { y = Line_spacing; x = GAME_FONT->ft_w; } - else if (Cockpit_mode == CM_FULL_SCREEN) { + else if (Cockpit_mode.intval == CM_FULL_SCREEN) { y = 5*Line_spacing; x = GAME_FONT->ft_w; if (FontHires) @@ -1315,7 +1315,7 @@ void show_bomb_count(int x,int y,int bg_color,int always_show) // I hate doing this off of hard coded coords!!!! - if (Cockpit_mode == CM_STATUS_BAR) { //draw background + if (Cockpit_mode.intval == CM_STATUS_BAR) { //draw background gr_setcolor(bg_color); if (!SM_HIRES) { gr_rect(169,189,189,196); @@ -1346,7 +1346,7 @@ void show_bomb_count(int x,int y,int bg_color,int always_show) void draw_primary_ammo_info(int ammo_count) { - if (Cockpit_mode == CM_STATUS_BAR) + if (Cockpit_mode.intval == 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); @@ -2137,7 +2137,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 (Cockpit_mode.intval == CM_STATUS_BAR) draw_weapon_info_sub(info_index, &gauge_boxes[SB_PRIMARY_BOX], SB_PRIMARY_W_PIC_X,SB_PRIMARY_W_PIC_Y, @@ -2154,7 +2154,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 (Cockpit_mode.intval == CM_STATUS_BAR) draw_weapon_info_sub(info_index, &gauge_boxes[SB_SECONDARY_BOX], SB_SECONDARY_W_PIC_X,SB_SECONDARY_W_PIC_Y, @@ -2189,7 +2189,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 (Cockpit_mode.intval == 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); @@ -2261,7 +2261,7 @@ int 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 = (Cockpit_mode.intval == CM_STATUS_BAR)?SB_PRIMARY_BOX:COCKPIT_PRIMARY_BOX; Gr_scanline_darkening_level = fade_value; gr_rect(gauge_boxes[boxofs+weapon_type].left,gauge_boxes[boxofs+weapon_type].top,gauge_boxes[boxofs+weapon_type].right,gauge_boxes[boxofs+weapon_type].bot); @@ -2280,7 +2280,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 = (Cockpit_mode.intval == CM_STATUS_BAR)?SB_PRIMARY_BOX:COCKPIT_PRIMARY_BOX; int x,y; static_time[win] += FrameTime; @@ -2308,7 +2308,7 @@ void draw_static(int win) void draw_weapon_boxes() { - int boxofs = (Cockpit_mode==CM_STATUS_BAR)?SB_PRIMARY_BOX:COCKPIT_PRIMARY_BOX; + int boxofs = (Cockpit_mode.intval == CM_STATUS_BAR)?SB_PRIMARY_BOX:COCKPIT_PRIMARY_BOX; int drew; if (weapon_box_user[0] == WBU_WEAPON) { @@ -2353,7 +2353,7 @@ void draw_weapon_boxes() draw_secondary_ammo_info(Players[Player_num].secondary_ammo[Secondary_weapon]); old_ammo_count[1][VR_current_page] = Players[Player_num].secondary_ammo[Secondary_weapon]; - if (Cockpit_mode == CM_STATUS_BAR) + if (Cockpit_mode.intval == CM_STATUS_BAR) show_bomb_count(SB_BOMB_COUNT_X, SB_BOMB_COUNT_Y, gr_find_closest_color(0, 0, 0), 0); else show_bomb_count(BOMB_COUNT_X, BOMB_COUNT_Y, gr_find_closest_color(0, 0, 0), 0); @@ -2425,7 +2425,7 @@ void sb_draw_shield_num(int shield) gr_set_fontcolor(gr_getcolor(14,14,23),-1 ); //erase old one -// PIGGY_PAGE_IN(cockpit_bitmap[Cockpit_mode + (SM_HIRES ? (Num_cockpits/2) : 0)]); +// PIGGY_PAGE_IN(cockpit_bitmap[Cockpit_mode.intval + (SM_HIRES ? (Num_cockpits/2) : 0)]); // gr_setcolor(gr_gpixel(&grd_curcanv->cv_bitmap, SB_SHIELD_NUM_X - 1, SB_SHIELD_NUM_Y - 1)); @@ -2468,7 +2468,7 @@ void draw_invulnerable_ship() if (((Players[Player_num].invulnerable_time + INVULNERABLE_TIME_MAX - GameTime) > F1_0*4) || (GameTime & 0x8000)) { - if (Cockpit_mode == CM_STATUS_BAR) { + if (Cockpit_mode.intval == CM_STATUS_BAR) { PAGE_IN_GAUGE( GAUGE_INVULNERABLE+invulnerable_frame ); gr_ubitmapm( SB_SHIELD_GAUGE_X, SB_SHIELD_GAUGE_Y, &GameBitmaps[GET_GAUGE_INDEX(GAUGE_INVULNERABLE+invulnerable_frame) ] ); } else { @@ -2483,7 +2483,7 @@ void draw_invulnerable_ship() if (++invulnerable_frame == N_INVULNERABLE_FRAMES) invulnerable_frame=0; } - } else if (Cockpit_mode == CM_STATUS_BAR) + } else if (Cockpit_mode.intval == CM_STATUS_BAR) sb_draw_shield_bar(f2ir(Players[Player_num].shields)); else draw_shield_bar(f2ir(Players[Player_num].shields)); @@ -2628,7 +2628,7 @@ void hud_show_kill_list() save_y = y = grd_curcanv->cv_h - n_left*(fth+1); - if (Cockpit_mode == CM_FULL_COCKPIT) { + if (Cockpit_mode.intval == CM_FULL_COCKPIT) { save_y = y -= LHX(6); if (Game_mode & GM_MULTI_COOP) x1 = LHX(33); @@ -2642,7 +2642,7 @@ void hud_show_kill_list() int sw,sh,aw; if (i>=n_left) { - if (Cockpit_mode == CM_FULL_COCKPIT) + if (Cockpit_mode.intval == CM_FULL_COCKPIT) x0 = grd_curcanv->cv_w - LHX(53); else x0 = grd_curcanv->cv_w - LHX(60); @@ -2871,7 +2871,7 @@ void draw_hud() { #if 0 //def OGL - if (Cockpit_mode==CM_STATUS_BAR){ + if (Cockpit_mode.intval == CM_STATUS_BAR) { //ogl needs to redraw every frame, at least currently. // init_cockpit(); last_drawn_cockpit[0]=-1; @@ -2886,21 +2886,21 @@ void draw_hud() Line_spacing = GAME_FONT->ft_h + GAME_FONT->ft_h/4; // 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 && Cockpit_mode.intval != CM_REAR_VIEW && Cockpit_mode.intval != 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 && Cockpit_mode.intval != 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 && Cockpit_mode.intval != CM_REAR_VIEW) { // && Cockpit_mode.intval!=CM_LETTERBOX) { + if (Cockpit_mode.intval == CM_STATUS_BAR || Cockpit_mode.intval == CM_FULL_SCREEN) hud_show_homing_warning(); - if (Cockpit_mode==CM_FULL_SCREEN) { + if (Cockpit_mode.intval == CM_FULL_SCREEN) { hud_show_energy(); hud_show_shield(); hud_show_afterburner(); @@ -2909,7 +2909,7 @@ void draw_hud() hud_show_keys(); hud_show_cloak_invuln(); - if ( ( Newdemo_state==ND_STATE_RECORDING ) && ( Players[Player_num].flags != old_flags[VR_current_page] )) { + if ( ( Newdemo_state == ND_STATE_RECORDING ) && ( Players[Player_num].flags != old_flags[VR_current_page] )) { newdemo_record_player_flags(old_flags[VR_current_page], Players[Player_num].flags); old_flags[VR_current_page] = Players[Player_num].flags; } @@ -2921,23 +2921,23 @@ void draw_hud() show_time(); #endif #endif - if (Reticle_on && Cockpit_mode != CM_LETTERBOX && (!Use_player_head_angles)) + if (Reticle_on.intval && Cockpit_mode.intval != CM_LETTERBOX && (!Use_player_head_angles)) show_reticle(0); #ifdef NETWORK show_HUD_names(); - if (Cockpit_mode != CM_LETTERBOX && Cockpit_mode != CM_REAR_VIEW) + if (Cockpit_mode.intval != CM_LETTERBOX && Cockpit_mode.intval != CM_REAR_VIEW) hud_show_flag(); - if (Cockpit_mode != CM_LETTERBOX && Cockpit_mode != CM_REAR_VIEW) + if (Cockpit_mode.intval != CM_LETTERBOX && Cockpit_mode.intval != 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 (Cockpit_mode.intval != CM_STATUS_BAR && !Saving_movie_frames) hud_show_lives(); #ifdef NETWORK @@ -2946,7 +2946,7 @@ void draw_hud() #endif } - if (Rear_view && Cockpit_mode!=CM_REAR_VIEW) { + if (Rear_view && Cockpit_mode.intval != CM_REAR_VIEW) { HUD_render_message_frame(); gr_set_curfont( GAME_FONT ); gr_set_fontcolor(gr_getcolor(0,31,0),-1 ); @@ -2967,7 +2967,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(Cockpit_mode.intval == CM_FULL_COCKPIT || Cockpit_mode.intval == 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. @@ -2991,14 +2991,14 @@ void render_gauges() if (Players[Player_num].homing_object_dist >= 0) newdemo_record_homing_distance(Players[Player_num].homing_object_dist); - if (Cockpit_mode == CM_FULL_COCKPIT) + if (Cockpit_mode.intval == CM_FULL_COCKPIT) draw_player_ship(cloak, old_cloak[VR_current_page], SHIP_GAUGE_X, SHIP_GAUGE_Y); else draw_player_ship(cloak, old_cloak[VR_current_page], SB_SHIP_GAUGE_X, SB_SHIP_GAUGE_Y); old_cloak[VR_current_page] = cloak; - if (Cockpit_mode == CM_FULL_COCKPIT) { + if (Cockpit_mode.intval == CM_FULL_COCKPIT) { if (Newdemo_state == ND_STATE_RECORDING && (energy != old_energy[VR_current_page])) { newdemo_record_player_energy(old_energy[VR_current_page], energy); @@ -3036,7 +3036,7 @@ void render_gauges() show_homing_warning(); - } else if (Cockpit_mode == CM_STATUS_BAR) { + } else if (Cockpit_mode.intval == CM_STATUS_BAR) { if (Newdemo_state == ND_STATE_RECORDING && (energy != old_energy[VR_current_page])) { @@ -3170,7 +3170,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 (Cockpit_mode.intval == CM_FULL_SCREEN) { w = VR_render_buffer[0].cv_bitmap.bm_w/6; // hmm. I could probably do the sub_buffer assigment for all macines, but I aint gonna chance it @@ -3188,9 +3188,9 @@ void do_cockpit_window_view(int win,object *viewer,int rear_view_flag,int user,c gr_init_sub_canvas(&window_canv,&VR_render_buffer[0],window_x,window_y,w,h); } else { - if (Cockpit_mode == CM_FULL_COCKPIT) + if (Cockpit_mode.intval == CM_FULL_COCKPIT) boxnum = (COCKPIT_PRIMARY_BOX)+win; - else if (Cockpit_mode == CM_STATUS_BAR) + else if (Cockpit_mode.intval == CM_STATUS_BAR) boxnum = (SB_PRIMARY_BOX)+win; else goto abort; @@ -3221,7 +3221,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 (Cockpit_mode.intval == CM_FULL_SCREEN) { int small_window_bottom,big_window_bottom,extra_part_h; { @@ -3232,7 +3232,7 @@ void do_cockpit_window_view(int win,object *viewer,int rear_view_flag,int user,c //if the window only partially overlaps the big 3d window, copy //the extra part to the visible screen - big_window_bottom = Game_window_y + Game_window_h - 1; + big_window_bottom = Game_window_y + Game_window_h.intval - 1; if (window_y > big_window_bottom) { @@ -3299,7 +3299,7 @@ abort:; Assert(outBoundsRect); Assert((inSubWindowNum == 0) || (inSubWindowNum == 1)); - switch (Cockpit_mode) + switch (Cockpit_mode.intval) { case CM_FULL_SCREEN: // note: this calculation is taken from do_cockpit_window_view for the full @@ -3330,7 +3330,7 @@ abort:; boxNumber = SB_SECONDARY_BOX; } - //boxNumber = (Current_display_mode * 4) + (Cockpit_mode * 2) + inSubWindowNum; + //boxNumber = (Current_display_mode * 4) + (Cockpit_mode.intval * 2) + inSubWindowNum; currentGaugeBox = &gauge_boxes[boxNumber]; Assert(currentGaugeBox); diff --git a/main/gauges.h b/main/gauges.h index 058acca2..78b1291b 100644 --- a/main/gauges.h +++ b/main/gauges.h @@ -34,7 +34,7 @@ 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 cvar_t Reticle_on; extern void init_gauge_canvases(); extern void close_gauge_canvases(); diff --git a/main/hud.c b/main/hud.c index 421ad152..813f1551 100644 --- a/main/hud.c +++ b/main/hud.c @@ -76,7 +76,7 @@ int Modex_hud_msg_count; // ---------------------------------------------------------------------------- void clear_background_messages(void) { - if (((Cockpit_mode == CM_STATUS_BAR) || (Cockpit_mode == CM_FULL_SCREEN)) && (Last_msg_ycrd != -1) && (VR_render_sub_buffer[0].cv_bitmap.bm_y >= 6)) { + if (((Cockpit_mode.intval == CM_STATUS_BAR) || (Cockpit_mode.intval == CM_FULL_SCREEN)) && (Last_msg_ycrd != -1) && (VR_render_sub_buffer[0].cv_bitmap.bm_y >= 6)) { grs_canvas *canv_save = grd_curcanv; gr_set_current_canvas(get_current_game_screen()); @@ -104,7 +104,6 @@ void HUD_clear_messages() } -extern int Guided_in_big_window; extern int max_window_h; extern grs_canvas *print_to_canvas(char *s,grs_font *font, int fc, int bc, int double_flag); @@ -162,7 +161,7 @@ void HUD_render_message_frame() if (HUD_color == -1) HUD_color = BM_XRGB(0,28,0); - if ( (VR_render_mode==VR_NONE) && ((Cockpit_mode == CM_STATUS_BAR) || (Cockpit_mode == CM_FULL_SCREEN)) && (VR_render_sub_buffer[0].cv_bitmap.bm_y >= (max_window_h/8))) { + if ( (VR_render_mode == VR_NONE) && ((Cockpit_mode.intval == CM_STATUS_BAR) || (Cockpit_mode.intval == CM_FULL_SCREEN)) && (VR_render_sub_buffer[0].cv_bitmap.bm_y >= (max_window_h/8))) { // Only display the most recent message in this mode char *message = HUD_messages[(hud_first+HUD_nmessages-1) % HUD_MAX_NUM]; @@ -207,16 +206,19 @@ void HUD_render_message_frame() gr_set_curfont( SMALL_FONT ); - if ( (Cockpit_mode == CM_FULL_SCREEN) || (Cockpit_mode == CM_LETTERBOX) ) { - if (Game_window_w == max_window_w) + if ( (Cockpit_mode.intval == CM_FULL_SCREEN) || (Cockpit_mode.intval == CM_LETTERBOX) ) { + if (Game_window_w.intval == max_window_w) y = SMALL_FONT->ft_h/2; else y= SMALL_FONT->ft_h * 2; } else y = SMALL_FONT->ft_h/2; - 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] && + Guided_in_big_window.intval) y+=SMALL_FONT->ft_h+3; for (i=0; i -1 ) { Objects[Players[Player_num].objnum].mtype.phys_info.flags &= (~PF_TURNROLL); // Turn off roll when turning Objects[Players[Player_num].objnum].mtype.phys_info.flags &= (~PF_LEVELLING); // Turn off leveling to nearest side. - Auto_leveling_on = 0; + cvar_setint(&Auto_leveling_on, 0); if ( kc_external_version > 0 ) { vms_matrix tempm, ViewMatrix; @@ -2336,7 +2336,7 @@ void kconfig_read_external_controls() if ( Player_num > -1 ) { Objects[Players[Player_num].objnum].mtype.phys_info.flags &= (~PF_TURNROLL); // Turn off roll when turning Objects[Players[Player_num].objnum].mtype.phys_info.flags &= (~PF_LEVELLING); // Turn off leveling to nearest side. - Auto_leveling_on = 0; + cvar_setint(&Auto_leveling_on, 0); if ( kc_external_version > 0 ) { vms_matrix tempm, ViewMatrix; diff --git a/main/menu.c b/main/menu.c index d637057a..b9b948bd 100644 --- a/main/menu.c +++ b/main/menu.c @@ -24,7 +24,6 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include #include -#include "menu.h" #include "inferno.h" #include "game.h" #include "gr.h" @@ -60,7 +59,6 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #ifdef NETWORK #include "modem.h" #endif -#include "playsave.h" #include "kconfig.h" #include "titles.h" #include "credits.h" @@ -139,9 +137,9 @@ void do_sound_menu(); void do_toggles_menu(); ubyte do_auto_demo = 1; // Flag used to enable auto demo starting in main menu. -int Player_default_difficulty; // Last difficulty level chosen by the player -int Auto_leveling_on = 1; -int Guided_in_big_window = 0; +cvar_t Player_default_difficulty = { "skill", "1", 1 }; // Last difficulty level chosen by the player +cvar_t Auto_leveling_on = { "AutoLeveling", "1", 1 }; +cvar_t Guided_in_big_window = { "GuidedBig", "0", 1 }; int Menu_draw_copyright = 0; int EscortHotKeys=1; @@ -516,8 +514,8 @@ int do_difficulty_menu() if (s > -1 ) { if (s != Difficulty_level) { - Player_default_difficulty = s; - write_player_file(); + cvar_setint(&Player_default_difficulty, s); + WriteConfigFile(); } Difficulty_level = s; mprintf((0, "%s %s %i\n", TXT_DIFFICULTY_LEVEL, TXT_SET_TO, Difficulty_level)); @@ -915,7 +913,7 @@ try_again: } } - Difficulty_level = Player_default_difficulty; + Difficulty_level = Player_default_difficulty.intval; if (!do_difficulty_menu()) return; @@ -1069,7 +1067,7 @@ void d2x_options_menu() } #if 0 - write_player_file(); + WriteConfigFile(); #ifdef __MSDOS__ Joy_is_Sidewinder=m[(checks+0)].value; @@ -1138,7 +1136,7 @@ void do_options_menu() } while( i>-1 ); - write_player_file(); + WriteConfigFile(); } extern int Redbook_playing; @@ -1307,8 +1305,6 @@ void do_sound_menu() } -extern int Automap_always_hires; - #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() @@ -1325,31 +1321,31 @@ void do_toggles_menu() } else { - ADD_CHECK(0, "Ship auto-leveling", Auto_leveling_on); + ADD_CHECK(0, "Ship auto-leveling", Auto_leveling_on.intval); } #else - ADD_CHECK(0, "Ship auto-leveling", Auto_leveling_on); + ADD_CHECK(0, "Ship auto-leveling", Auto_leveling_on.intval); #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(1, "Show reticle", Reticle_on.intval); + ADD_CHECK(2, "Missile view", Missile_view_enabled.intval); + ADD_CHECK(3, "Headlight on when picked up", Headlight_active_default.intval); + ADD_CHECK(4, "Show guided missile in main display", Guided_in_big_window.intval); ADD_CHECK(5, "Escort robot hot keys",EscortHotKeys); - //ADD_CHECK(6, "Always use 640x480 or greater automap", Automap_always_hires); + //ADD_CHECK(6, "Always use 640x480 or greater automap", Automap_always_hires.intval); //when adding more options, change N_TOGGLE_ITEMS above i = newmenu_do1( NULL, "Toggles", N_TOGGLE_ITEMS, 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; + cvar_setint(&Auto_leveling_on, m[0].value); + cvar_setint(&Reticle_on, m[1].value); + cvar_setint(&Missile_view_enabled, m[2].value); + cvar_setint(&Headlight_active_default, m[3].value); + cvar_setint(&Guided_in_big_window, m[4].value); EscortHotKeys = m[5].value; #if 0 if (MenuHiresAvailable) - Automap_always_hires = m[6].value; + cvar_setint(&Automap_always_hires, m[6].value); else if (m[6].value) nm_messagebox(TXT_SORRY,1,"OK","High Resolution modes are\nnot available on this video card"); #endif diff --git a/main/menu.h b/main/menu.h index 27ff03a5..2489e6dd 100644 --- a/main/menu.h +++ b/main/menu.h @@ -45,10 +45,10 @@ extern int MenuHires; extern void set_detail_level_parameters(int detail_level); extern char *menu_difficulty_text[]; -extern int Player_default_difficulty; +extern cvar_t Player_default_difficulty; extern int Max_debris_objects; -extern int Auto_leveling_on; -extern int Missile_view_enabled; +extern cvar_t Auto_leveling_on; +extern cvar_t Guided_in_big_window; extern int Escort_view_enabled; extern int Cockpit_rear_view; diff --git a/main/multi.c b/main/multi.c index f9faee29..9eefad1c 100644 --- a/main/multi.c +++ b/main/multi.c @@ -50,7 +50,6 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "bm.h" #include "endlevel.h" #include "key.h" -#include "playsave.h" #include "timer.h" #include "digi.h" #include "sounds.h" @@ -1390,7 +1389,7 @@ void multi_define_macro_end() Assert( multi_defining_message > 0 ); cvar_set_cvar( &Network_message_macro[multi_defining_message - 1], Network_message ); - write_player_file(); + WriteConfigFile(); multi_message_index = 0; multi_defining_message = 0; @@ -4927,7 +4926,7 @@ void multi_add_lifetime_kills () NetPlayers.players[Player_num].rank=GetMyNetRanking(); } } - write_player_file(); + WriteConfigFile(); } void multi_add_lifetime_killed () @@ -4953,7 +4952,7 @@ void multi_add_lifetime_killed () HUD_init_message ("You have been demoted to %s!",RankStrings[GetMyNetRanking()]); } - write_player_file(); + WriteConfigFile(); } diff --git a/main/network.c b/main/network.c index e2b69532..e9d6461e 100644 --- a/main/network.c +++ b/main/network.c @@ -66,7 +66,6 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "byteswap.h" #include "netmisc.h" #include "kconfig.h" -#include "playsave.h" #include "cfile.h" #ifdef MACINTOSH @@ -2980,7 +2979,7 @@ int network_get_game_params( char * game_name, int *mode, int *game_flags, int * Netgame.KillGoal=0; Netgame.PlayTimeAllowed=0; Netgame.Allow_marker_view=1; - netgame_difficulty=Player_default_difficulty; + netgame_difficulty = Player_default_difficulty.intval; ExtGameStatus=GAMESTAT_START_MULTIPLAYER_MISSION; if (!select_mission(1, TXT_MULTI_MISSION)) @@ -4698,7 +4697,7 @@ void network_leave_game() network_send_endlevel_packet(); change_playernum_to(0); Game_mode = GM_GAME_OVER; - write_player_file(); + WriteConfigFile(); // WIN(ipx_destroy_read_thread()); diff --git a/main/newdemo.c b/main/newdemo.c index 486cf884..80621b5a 100644 --- a/main/newdemo.c +++ b/main/newdemo.c @@ -2085,7 +2085,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 = Cockpit_mode.intval; select_cockpit(CM_LETTERBOX); } else if ((Newdemo_vcr_state == ND_STATE_REWINDING) || (Newdemo_vcr_state == ND_STATE_ONEFRAMEBACKWARD)) select_cockpit(saved_letter_cockpit); @@ -2101,8 +2101,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 = Cockpit_mode.intval; + if (Cockpit_mode.intval == 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)) { @@ -2115,7 +2115,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 = Cockpit_mode.intval; 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); @@ -2124,8 +2124,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 = Cockpit_mode.intval; + if (Cockpit_mode.intval == 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)) { @@ -3278,7 +3278,7 @@ void newdemo_start_playback(char * filename) Game_mode = GM_NORMAL; Newdemo_state = ND_STATE_PLAYBACK; Newdemo_vcr_state = ND_STATE_PLAYBACK; - Newdemo_old_cockpit = Cockpit_mode; + Newdemo_old_cockpit = Cockpit_mode.intval; Newdemo_size = PHYSFS_fileLength(infile); nd_bad_read = 0; Newdemo_at_eof = 0; @@ -3300,7 +3300,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; + cvar_setint(&Cockpit_mode, Newdemo_old_cockpit); Game_mode = GM_GAME_OVER; Function_mode = FMODE_MENU; longjmp(LeaveGame,0); // Exit game loop diff --git a/main/newmenu.c b/main/newmenu.c index 81f6fdd3..856b7f18 100644 --- a/main/newmenu.c +++ b/main/newmenu.c @@ -64,7 +64,6 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "newdemo.h" #include "kconfig.h" #include "strutil.h" -#include "playsave.h" #ifdef MACINTOSH #include #endif diff --git a/main/object.c b/main/object.c index 38d114ad..0f5be2c3 100644 --- a/main/object.c +++ b/main/object.c @@ -1780,7 +1780,7 @@ void start_player_death_sequence(object *player) } if (Cockpit_mode_save == -1) //if not already saved - Cockpit_mode_save = Cockpit_mode; + Cockpit_mode_save = Cockpit_mode.intval; select_cockpit(CM_LETTERBOX); if (Newdemo_state == ND_STATE_RECORDING) newdemo_record_letterbox(); @@ -2146,7 +2146,7 @@ void object_move_all() obj_delete_all_that_should_be_dead(); - if (Auto_leveling_on) + if (Auto_leveling_on.intval) ConsoleObject->mtype.phys_info.flags |= PF_LEVELLING; else ConsoleObject->mtype.phys_info.flags &= ~PF_LEVELLING; diff --git a/main/player.h b/main/player.h index 89de3335..d7067fdd 100644 --- a/main/player.h +++ b/main/player.h @@ -66,8 +66,6 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #define TEAM_BLUE 0 #define TEAM_RED 1 -// When this structure changes, increment the constant -// SAVE_FILE_VERSION in playsave.c typedef struct player { // Who am I data char callsign[CALLSIGN_LEN+1]; // The callsign of this player, for net purposes. diff --git a/main/playsave.c b/main/playsave.c deleted file mode 100644 index fec3db57..00000000 --- a/main/playsave.c +++ /dev/null @@ -1,341 +0,0 @@ -/* -THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX -SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO -END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A -ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS -IN USING, DISPLAYING, AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS -SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE -FREE PURPOSES. IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE -CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS -AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE. -COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. -*/ - -/* - * - * Functions to load & save player's settings (*.plr file) - * - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#ifdef WINDOWS -#include "desw.h" -#include -#endif - -#include -#include -#if !defined(_MSC_VER) && !defined(macintosh) -#include -#endif -#ifndef _WIN32_WCE -#include -#endif - -#include - -#include "error.h" - -#include "strutil.h" -#include "inferno.h" -#include "gameseq.h" -#include "player.h" -#include "playsave.h" -#include "joy.h" -#include "kconfig.h" -#include "digi.h" -#include "newmenu.h" -#include "joydefs.h" -#include "palette.h" -#include "multi.h" -#include "menu.h" -#include "config.h" -#include "text.h" -#include "mono.h" -#include "state.h" -#include "gauges.h" -#include "screens.h" -#include "powerup.h" -#include "makesig.h" -#include "byteswap.h" -#include "escort.h" - -#include "physfsx.h" - -#define SAVE_FILE_ID MAKE_SIG('D','P','L','R') - -#ifdef MACINTOSH - #include - #include // mac doesn't have "normal" error numbers -- must use mac equivs - #ifndef ENOENT - #define ENOENT fnfErr - #endif - #include "isp.h" -#elif defined(_WIN32_WCE) -# define errno -1 -# define ENOENT -1 -# define strerror(x) "Unknown Error" -#endif - - -#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 -//version 8 -> 9: removed player_struct_version -//version 9 -> 10: added default display mode -//version 10 -> 11: added all toggles in toggle menu -//version 11 -> 12: added weapon ordering -//version 12 -> 13: added more keys -//version 13 -> 14: took out marker key -//version 14 -> 15: added guided in big window -//version 15 -> 16: added small windows in cockpit -//version 16 -> 17: ?? -//version 17 -> 18: save guidebot name -//version 18 -> 19: added automap-highres flag -//version 19 -> 20: added kconfig data for windows joysticks -//version 20 -> 21: save seperate config types for DOS & Windows -//version 21 -> 22: save lifetime netstats -//version 22 -> 23: ?? -//version 23 -> 24: add name of joystick for windows version. -//version 24 -> 25: removed kconfig data, joy name, guidebot name, joy sensitivity, cockpit views, netstats, taunt macros, highest levels - -#define COMPATIBLE_PLAYER_FILE_VERSION 17 - - -int Default_leveling_on=1; - - -int new_player_config() -{ - Player_default_difficulty = 1; - Auto_leveling_on = Default_leveling_on = 1; - - return 1; -} - -extern int Guided_in_big_window,Automap_always_hires; - -uint32_t legacy_display_mode[] = { SM(320,200), SM(640,480), SM(320,400), SM(640,400), SM(800,600), SM(1024,768), SM(1280,1024) }; - -//read in the player's saved games. returns errno (0 == no error) -int read_player_file() -{ - #ifdef MACINTOSH - char filename[FILENAME_LEN+15]; - #else - char filename[FILENAME_LEN]; - #endif - PHYSFS_file *file; - int id, i; - short player_file_version; - int rewrite_it=0; - int swap = 0; - - Assert(Player_num>=0 && Player_num 255) // bigendian file? - swap = 1; - - if (swap) - player_file_version = SWAPSHORT(player_file_version); - - if (player_file_version= 19) - Automap_always_hires = cfile_read_byte(file); - - Auto_leveling_on = Default_leveling_on; - - if (!PHYSFS_close(file)) - goto read_player_file_failed; - - if (rewrite_it) - write_player_file(); - - return EZERO; - - read_player_file_failed: - nm_messagebox(TXT_ERROR, 1, TXT_OK, "%s\n\n%s", "Error reading PLR file", PHYSFS_getLastError()); - if (file) - PHYSFS_close(file); - - return -1; -} - - -extern int Cockpit_mode_save; - - -//write out player's saved games. returns errno (0 == no error) -int write_player_file() -{ - char filename[FILENAME_LEN+15]; - PHYSFS_file *file; - int i; - -// #ifdef APPLE_DEMO // no saving of player files in Apple OEM version -// return 0; -// #endif - - WriteConfigFile(); - - sprintf(filename, PLAYER_DIR "%s.plr", Players[Player_num].callsign); - file = PHYSFSX_openWriteBuffered(filename); - -#if 0 //ndef MACINTOSH - //check filename - if (file && isatty(fileno(file))) { - - //if the callsign is the name of a tty device, prepend a char - - PHYSFS_close(file); - sprintf(filename, PLAYER_DIR "$%.7s.plr", Players[Player_num].callsign); - file = PHYSFSX_openWriteBuffered(filename); - } -#endif - - if (!file) - return -1; - - //Write out player's info - PHYSFS_writeULE32(file, SAVE_FILE_ID); - PHYSFS_writeULE16(file, PLAYER_FILE_VERSION); - - PHYSFS_writeULE16(file, Game_window_w); - PHYSFS_writeULE16(file, 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_save!=-1)?Cockpit_mode_save:Cockpit_mode); //if have saved mode, write it instead of letterbox/rear view - - for (i = 0; i < (sizeof(legacy_display_mode) / sizeof(uint32_t)); i++) { - if (legacy_display_mode[i] == Current_display_mode) - break; - } - PHYSFSX_writeU8(file, i); - - PHYSFSX_writeU8(file, Missile_view_enabled); - PHYSFSX_writeU8(file, Headlight_active_default); - PHYSFSX_writeU8(file, Guided_in_big_window); - PHYSFSX_writeU8(file, Automap_always_hires); - - if (!PHYSFS_close(file)) - goto write_player_file_failed; - - #ifdef MACINTOSH // set filetype and creator for playerfile - { - FInfo finfo; - Str255 pfilename; - OSErr err; - - strcpy(pfilename, filename); - c2pstr(pfilename); - err = HGetFInfo(0, 0, pfilename, &finfo); - finfo.fdType = 'PLYR'; - finfo.fdCreator = 'DCT2'; - err = HSetFInfo(0, 0, pfilename, &finfo); - } - #endif - - return EZERO; - - write_player_file_failed: - nm_messagebox(TXT_ERROR, 1, TXT_OK, "%s\n\n%s", TXT_ERROR_WRITING_PLR, PHYSFS_getLastError()); - if (file) - { - PHYSFS_close(file); - PHYSFS_delete(filename); //delete bogus 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; - - // confusing enough to beat amateur disassemblers? Lets hope so - - num=(a<<8 ^ b); - num^=(a | b); - num*=num>>2; - return (num); - } - - diff --git a/main/playsave.h b/main/playsave.h deleted file mode 100644 index 0aa75446..00000000 --- a/main/playsave.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX -SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO -END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A -ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS -IN USING, DISPLAYING, AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS -SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE -FREE PURPOSES. IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE -CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS -AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE. -COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. -*/ - -/* - * - * Header for playsave.c - * - */ - - -#ifndef _PLAYSAVE_H -#define _PLAYSAVE_H - -#define N_SAVE_SLOTS 10 -#define GAME_NAME_LEN 25 // +1 for terminating zero = 26 - -#ifndef EZERO -#define EZERO 0 -#endif - -#ifndef MACINTOSH -#define PLAYER_DIR "" -#else -#define PLAYER_DIR ":Players:" -#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(); - -int new_player_config(); - -int read_player_file(); - -#endif /* _PLAYSAVE_H */ diff --git a/main/powerup.c b/main/powerup.c index 45c8c49f..8f17709d 100644 --- a/main/powerup.c +++ b/main/powerup.c @@ -268,7 +268,7 @@ 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? +cvar_t Headlight_active_default = { "HeadlightActive", "1", 1 }; // is headlight on when picked up? extern int PlayerMessage; // returns true if powerup consumed @@ -637,9 +637,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)", Headlight_active_default.intval?"ON":"OFF"); powerup_basic(15, 0, 15, 0, msg ); - if (Headlight_active_default) + if (Headlight_active_default.intval) Players[Player_num].flags |= PLAYER_FLAGS_HEADLIGHT_ON; used=1; #ifdef NETWORK diff --git a/main/powerup.h b/main/powerup.h index 449f16f5..88411893 100644 --- a/main/powerup.h +++ b/main/powerup.h @@ -93,7 +93,7 @@ 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? +extern cvar_t Headlight_active_default; // is headlight on when picked up? typedef struct powerup_type_info { int vclip_num; diff --git a/main/render.c b/main/render.c index bf8afc29..f7fb9757 100644 --- a/main/render.c +++ b/main/render.c @@ -1715,7 +1715,7 @@ void render_frame(fix eye_offset, int window_num) Viewer_eye = Viewer->pos; -// if (Viewer->type == OBJ_PLAYER && (Cockpit_mode!=CM_REAR_VIEW)) +// if (Viewer->type == OBJ_PLAYER && (Cockpit_mode.intval != CM_REAR_VIEW)) // vm_vec_scale_add2(&Viewer_eye,&Viewer->orient.fvec,(Viewer->size*3)/4); if (eye_offset) { @@ -1737,7 +1737,7 @@ void render_frame(fix eye_offset, int window_num) vm_angles_2_matrix(&headm,&Player_head_angles); vm_matrix_x_matrix(&viewm,&Viewer->orient,&headm); g3_set_view_matrix(&Viewer_eye,&viewm,Render_zoom); - //@@} else if ((Cockpit_mode==CM_REAR_VIEW) && (Viewer==ConsoleObject)) { + //@@} else if ((Cockpit_mode.intval == CM_REAR_VIEW) && (Viewer == ConsoleObject)) { } else if (Rear_view && (Viewer==ConsoleObject)) { vms_matrix headm,viewm; Player_head_angles.p = Player_head_angles.b = 0; diff --git a/main/state.c b/main/state.c index 5c9116d8..ab4ee235 100644 --- a/main/state.c +++ b/main/state.c @@ -97,7 +97,6 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "laser.h" #include "multibot.h" #include "state.h" -#include "playsave.h" #ifdef OGL #include "gr.h" #endif diff --git a/main/state.h b/main/state.h index eaf9cd5c..3dab6fcd 100644 --- a/main/state.h +++ b/main/state.h @@ -21,6 +21,14 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #ifndef _STATE_H #define _STATE_H + +#ifndef MACINTOSH +#define PLAYER_DIR "" +#else +#define PLAYER_DIR ":Players:" +#endif + + int state_save_all(int between_levels, int secret_save, char *filename_override, int blind_save); int state_restore_all(int in_game, int secret_restore, char *filename_override); -- 2.39.2