Cleanup in Config- and PLX-code; Saving Resolution in Config file so it will apply directly at game-init; Removed seperated resolution mode for menus, SCREEN_MENU now always uses Game_screen_mode; Last FindArg cleanups; Removed MenuHires(Available) and FontHires(Available) and replaced with HiresGFX(Available) to make a more common way to determinate if Hires data is used or not (interactive Demo); Improved support for Interactive Demo

This commit is contained in:
zicodxx 2007-07-26 23:57:29 +00:00
parent 2434d100a8
commit 2bc4cd32bb
26 changed files with 349 additions and 1773 deletions

View file

@ -71,7 +71,6 @@ openfont open_font[MAX_OPEN_FONTS];
int gr_internal_string_clipped(int x, int y, char *s );
int gr_internal_string_clipped_m(int x, int y, char *s );
extern int FontHires;
ubyte *find_kern_entry(grs_font *font,ubyte first,ubyte second)
{

View file

@ -1,5 +1,9 @@
D2X-Rebirth Changelog
20070727
--------
2d/font.c, arch/ogl/ogl.c, include/gr.h, main/automap.c, main/config.c, main/credits.c, main/game.c, main/gamefont.c, main/gamefont.h, main/gamerend.c, main/gameseq.c, main/gauges.c, main/hud.c, main/inferno.c, main/kconfig.c, main/kmatrix.c, main/menu.c, main/menu.h, main/movie.c, main/network.c, main/newmenu.c, main/playsave.c, main/scores.c, main/state.c, main/titles.c: Cleanup in Config- and PLX-code; Saving Resolution in Config file so it will apply directly at game-init; Removed seperated resolution mode for menus, SCREEN_MENU now always uses Game_screen_mode; Last FindArg cleanups; Removed MenuHires(Available) and FontHires(Available) and replaced with HiresGFX(Available) to make a more common way to determinate if Hires data is used or not (interactive Demo); Improved support for Interactive Demo
20070723
--------
arch/ogl/gr.c, arch/include/internal.h, arch/ogl/ogl.c, arch/sdl/gr.c, include/args.h, include/ogl_init.h, main/inferno.c, main/args.c: FindArg cleanup - GL-Debug and SDL arguments

View file

@ -1116,7 +1116,7 @@ void ogl_filltexbuf(unsigned char *data, GLubyte *texp, int truewidth, int width
}
}
else if (((c == 255 && (bm_flags & BM_FLAG_TRANSPARENT)) || c == 256) ||
((c==0 || c==54 || c==119) && (bm_flags & BM_FLAG_COCKPIT_TRANSPARENT)))
((HiresGFX?(c==0 || c==54 || c==119):(c==0)) && (bm_flags & BM_FLAG_COCKPIT_TRANSPARENT)))
{
switch (type){
case GL_LUMINANCE:

View file

@ -24,6 +24,9 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
#include "pstypes.h"
#include "fix.h"
extern int HiresGFXAvailable;
extern int HiresGFX;
#if defined(MACINTOSH) || defined(MACDATA)
#error native mac data currently not supported
#define SWAP_0_255 // swap black and white
@ -138,8 +141,8 @@ typedef struct _grs_bitmap {
// ZICO - we use this defines to scale the font bitmaps itself, spacing between letters and rows
#ifdef OGL
#define FONTSCALE_X(x) ((GameArg.OglFixedFont)?x:(x)*((SWIDTH/ ((FontHires&&SWIDTH>=640&&SHEIGHT>=480)?640:320))))
#define FONTSCALE_Y(x) ((GameArg.OglFixedFont)?x:(x)*((SHEIGHT/((FontHires&&SWIDTH>=640&&SHEIGHT>=480)?480:200))))
#define FONTSCALE_X(x) ((GameArg.OglFixedFont)?x:(x)*((SWIDTH/ ((HiresGFX&&SWIDTH>=640&&SHEIGHT>=480)?640:320))))
#define FONTSCALE_Y(x) ((GameArg.OglFixedFont)?x:(x)*((SHEIGHT/((HiresGFX&&SWIDTH>=640&&SHEIGHT>=480)?480:200))))
#else // without OGL we don't scale. But instead of defining out eery single FONTSCALE_* call we just do not scale
#define FONTSCALE_X(x) (x)
#define FONTSCALE_Y(x) (x)

View file

@ -588,21 +588,19 @@ void create_name_canv()
gr_set_fontcolor(Green_31,-1);
gr_set_curfont(SMALL_FONT);
gr_printf(((MenuHires)?10:5),((MenuHires)?10:5),"%s", name_level_left);
gr_printf(((HiresGFX)?10:5),((HiresGFX)?10:5),"%s", name_level_left);
gr_get_string_size(name_level_right,&wr,&h,&aw);
gr_printf(grd_curcanv->cv_bitmap.bm_w-wr-FONTSCALE_X(((MenuHires)?10:5)),((MenuHires)?10:5),"%s", name_level_right);
gr_printf(grd_curcanv->cv_bitmap.bm_w-wr-FONTSCALE_X(((HiresGFX)?10:5)),((HiresGFX)?10:5),"%s", name_level_right);
}
extern void GameLoop(int, int );
extern int set_segment_depths(int start_seg, ubyte *segbuf);
extern int MenuHiresAvailable;
extern int Current_display_mode;
int Automap_active = 0;
#ifdef RELEASE
#define MAP_BACKGROUND_FILENAME ((MenuHires)?"\x01MAPB.PCX":"\x01MAP.PCX") //load only from hog file
#define MAP_BACKGROUND_FILENAME ((HiresGFX)?"\x01MAPB.PCX":"\x01MAP.PCX") //load only from hog file
#else
#define MAP_BACKGROUND_FILENAME (((MenuHires) && cfexist("mapb.pcx"))?"MAPB.PCX":"MAP.PCX")
#define MAP_BACKGROUND_FILENAME (((HiresGFX) && cfexist("mapb.pcx"))?"MAPB.PCX":"MAP.PCX")
#endif
void do_automap( int key_code ) {
@ -646,10 +644,6 @@ void do_automap( int key_code ) {
gr_set_current_canvas(NULL);
FontHires = MenuHires;
// create_name_canv();
gr_palette_clear();
@ -885,9 +879,6 @@ void do_automap( int key_code ) {
t1 = t2;
}
// gr_free_canvas(name_canv_left); name_canv_left=NULL;
// gr_free_canvas(name_canv_right); name_canv_right=NULL;
#ifdef OGL
gr_free_bitmap_data(&Automap_background);
mprintf( (0, "Automap background memory freed\n" ));

File diff suppressed because it is too large Load diff

View file

@ -56,7 +56,6 @@ static char rcsid[] = "$Id: credits.c,v 1.1.1.1 2006/03/17 19:56:57 zicodxx Exp
#include "cfile.h"
#include "text.h"
#include "songs.h"
#include "menu.h" // for MenuHires
#ifdef OGL
#include "ogl_init.h"
#endif
@ -65,9 +64,9 @@ static char rcsid[] = "$Id: credits.c,v 1.1.1.1 2006/03/17 19:56:57 zicodxx Exp
#define NUM_LINES 20 //14
#define CREDITS_FILE (cfexist("mcredits.tex")?"mcredits.tex":cfexist("ocredits.tex")?"ocredits.tex":"credits.tex")
#ifdef RELEASE
#define CREDITS_BACKGROUND_FILENAME (MenuHires?"\x01starsb.pcx":"\x01stars.pcx") //only read from hog file
#define CREDITS_BACKGROUND_FILENAME (HiresGFX?"\x01starsb.pcx":"\x01stars.pcx") //only read from hog file
#else
#define CREDITS_BACKGROUND_FILENAME (MenuHires?"starsb.pcx":"stars.pcx")
#define CREDITS_BACKGROUND_FILENAME (HiresGFX?"starsb.pcx":"stars.pcx")
#endif
#ifdef SHAREWARE
#define ALLOWED_CHAR 'S'
@ -166,9 +165,9 @@ void credits_show(char *credits_filename)
#ifdef OGL
gr_palette_load(gr_palette);
#endif
header_font = gr_init_font( MenuHires?"font1-1h.fnt":"font1-1.fnt" );
title_font = gr_init_font( MenuHires?"font2-3h.fnt":"font2-3.fnt" );
names_font = gr_init_font( MenuHires?"font2-2h.fnt":"font2-2.fnt" );
header_font = gr_init_font( HiresGFX?"font1-1h.fnt":"font1-1.fnt" );
title_font = gr_init_font( HiresGFX?"font2-3h.fnt":"font2-3.fnt" );
names_font = gr_init_font( HiresGFX?"font2-2h.fnt":"font2-2.fnt" );
backdrop.bm_data=NULL;
//MWA Made backdrop bitmap linear since it should always be. the current canvas may not

View file

@ -138,7 +138,6 @@ char game_rcsid[] = "$Id: game.c,v 1.1.1.1 2006/03/17 19:55:53 zicodxx Exp $";
extern void ReadControls(void); // located in gamecntl.c
extern int Current_display_mode;
extern void do_final_boss_frame(void);
int Speedtest_on = 0;
@ -180,11 +179,6 @@ grs_canvas VR_render_buffer[2]; // Two offscreen buffers for left/right eye
grs_canvas VR_render_sub_buffer[2]; // Two sub buffers for left/right eyes.
grs_canvas VR_editor_canvas; // The canvas that the editor writes to.
//do menus work in 640x480 or 320x200?
//PC version sets this in main(). Mac versios is always high-res, so set to 1 here
int MenuHiresAvailable = 1; //can we do highres menus?
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
@ -323,7 +317,7 @@ void init_cockpit()
}
#ifndef OGL
if ((SWIDTH == 320 && SHEIGHT == 200) || (MenuHiresAvailable && (SWIDTH == 640 && SHEIGHT == 480)))
if ((SWIDTH == 320 && SHEIGHT == 200) || (HiresGFXAvailable && (SWIDTH == 640 && SHEIGHT == 480)))
#endif
{
VR_screen_flags = VRF_ALLOW_COCKPIT;
@ -351,7 +345,7 @@ void init_cockpit()
break;
case CM_STATUS_BAR:
game_init_render_sub_buffers( 0, 0, SWIDTH, (Current_display_mode?(SHEIGHT*2)/2.6:(SHEIGHT*2)/2.72) );
game_init_render_sub_buffers( 0, 0, SWIDTH, (HiresGFX?(SHEIGHT*2)/2.6:(SHEIGHT*2)/2.72) );
break;
case CM_LETTERBOX:
@ -469,35 +463,12 @@ void set_popup_screen(void)
//mode if cannot init requested mode)
int set_screen_mode(int sm)
{
#if 0 //def EDITOR
if ( (sm==SCREEN_MENU) && (Screen_mode==SCREEN_EDITOR) ) {
gr_set_current_canvas( Canv_editor );
return 1;
}
#endif
if (HiresGFXAvailable && grd_curscreen->sc_w >= 640 && grd_curscreen->sc_h >= 480)
HiresGFX = 1;
else
HiresGFX = 0;
if (MenuHiresAvailable && FontHiresAvailable && (grd_curscreen->sc_w >= 640) && (grd_curscreen->sc_h >= 480)) {
Current_display_mode = MenuHires = FontHires = 1;
} else {
Current_display_mode = MenuHires = FontHires = 0;
}
if ( Screen_mode == sm && grd_curscreen->sc_mode == Game_screen_mode) {
gr_set_current_canvas(NULL);
return 1;
}
if ( (Screen_mode == sm) &&
!((sm==SCREEN_GAME) &&
(grd_curscreen->sc_mode != Game_screen_mode)) &&
!((sm==SCREEN_MENU) &&
(grd_curscreen->sc_mode != MENU_SCREEN_MODE)) ) {
gr_set_current_canvas(NULL);
#ifndef OGL
gr_set_draw_buffer(0); // Set to the front buffer
#endif
return 1;
}
gr_set_current_canvas(NULL);
#ifdef EDITOR
Canv_editor = NULL;
@ -512,10 +483,9 @@ int set_screen_mode(int sm)
if (GameArg.CtlGrabMouse)
SDL_WM_GrabInput(SDL_GRAB_OFF);
if (grd_curscreen->sc_mode != MENU_SCREEN_MODE) {
if (gr_set_mode(MENU_SCREEN_MODE)) Error("Cannot set screen mode for game!");
gr_palette_load( gr_palette );
}
if (grd_curscreen->sc_mode != Game_screen_mode)
if (gr_set_mode(Game_screen_mode))
Error("Cannot set screen mode.");
break;
case SCREEN_GAME:
@ -523,14 +493,11 @@ int set_screen_mode(int sm)
if (GameArg.CtlGrabMouse && (Newdemo_state != ND_STATE_PLAYBACK))
SDL_WM_GrabInput(SDL_GRAB_ON);
if (grd_curscreen->sc_mode != Game_screen_mode) {
if (gr_set_mode(Game_screen_mode)) {
Error("Cannot set desired screen mode for game!");
//we probably should do something else here, like select a standard mode
}
reset_cockpit();
}
if (grd_curscreen->sc_mode != Game_screen_mode)
if (gr_set_mode(Game_screen_mode))
Error("Cannot set screen mode.");
reset_cockpit();
init_cockpit();
con_resize();

View file

@ -33,10 +33,6 @@ static char rcsid[] = "$Id: gamefont.c,v 1.1.1.1 2006/03/17 19:56:39 zicodxx Exp
#include "gamefont.h"
#include "args.h"
// if 1, use high-res versions of fonts
int FontHires = 0;
int FontHiresAvailable = 0;
char * Gamefont_filenames[] = { "font1-1.fnt", // Font 0
"font1-1h.fnt", // Font 0 High-res
"font2-1.fnt", // Font 1
@ -61,7 +57,6 @@ void gamefont_init()
return;
Gamefont_installed = 1;
FontHiresAvailable = 1;
for (i = 0; i < MAX_FONTS; i += 2)
Gamefonts[i] = gr_init_font(Gamefont_filenames[i]);
@ -69,7 +64,7 @@ void gamefont_init()
{
Gamefonts[i] = gr_init_font(Gamefont_filenames[i]);
if (!Gamefonts[i])
FontHiresAvailable = 0;
HiresGFXAvailable = 0;
}
atexit(gamefont_close);

View file

@ -36,11 +36,11 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
#define GFONT_MEDIUM_3 6
#define GFONT_SMALL 8
#define SMALL_FONT (Gamefonts[GFONT_SMALL + FontHires])
#define MEDIUM1_FONT (Gamefonts[GFONT_MEDIUM_1 + FontHires])
#define MEDIUM2_FONT (Gamefonts[GFONT_MEDIUM_2 + FontHires])
#define MEDIUM3_FONT (Gamefonts[GFONT_MEDIUM_3 + FontHires])
#define HUGE_FONT (Gamefonts[GFONT_BIG_1 + FontHires])
#define SMALL_FONT (Gamefonts[GFONT_SMALL + HiresGFX])
#define MEDIUM1_FONT (Gamefonts[GFONT_MEDIUM_1 + HiresGFX])
#define MEDIUM2_FONT (Gamefonts[GFONT_MEDIUM_2 + HiresGFX])
#define MEDIUM3_FONT (Gamefonts[GFONT_MEDIUM_3 + HiresGFX])
#define HUGE_FONT (Gamefonts[GFONT_BIG_1 + HiresGFX])
#define GAME_FONT SMALL_FONT
@ -51,7 +51,4 @@ extern grs_font *Gamefonts[MAX_FONTS];
void gamefont_init();
void gamefont_close();
extern int FontHires;
extern int FontHiresAvailable;
#endif /* _GAMEFONT_H */

View file

@ -67,7 +67,6 @@ static char rcsid[] = "$Id: gamerend.c,v 1.1.1.1 2006/03/17 19:57:07 zicodxx Exp
extern fix Cruise_speed;
extern int LinearSVGABuffer;
extern int Current_display_mode;
extern cvar_t r_framerate;
@ -755,8 +754,8 @@ void update_cockpits(int force_redraw)
grs_bitmap *bm;
PIGGY_PAGE_IN(cockpit_bitmap[Cockpit_mode+(Current_display_mode?(Num_cockpits/2):0)]);
bm=&GameBitmaps[cockpit_bitmap[Cockpit_mode+(Current_display_mode?(Num_cockpits/2):0)].index];
PIGGY_PAGE_IN(cockpit_bitmap[Cockpit_mode+(HiresGFX?(Num_cockpits/2):0)]);
bm=&GameBitmaps[cockpit_bitmap[Cockpit_mode+(HiresGFX?(Num_cockpits/2):0)].index];
//Redraw the on-screen cockpit bitmaps
if (VR_render_mode != VR_NONE ) return;
@ -782,7 +781,7 @@ void update_cockpits(int force_redraw)
#ifdef OGL
bm->bm_flags |= BM_FLAG_TRANSPARENT;
bm->bm_flags |= BM_FLAG_COCKPIT_TRANSPARENT;
ogl_ubitmapm_cs (0, (Current_display_mode?(SHEIGHT*2)/2.6:(SHEIGHT*2)/2.72), -1, ((int) ((double) (bm->bm_h) * (Current_display_mode?(double)grd_curscreen->sc_h/480:(double)grd_curscreen->sc_h/200) + 0.5)), bm,255, F1_0);
ogl_ubitmapm_cs (0, (HiresGFX?(SHEIGHT*2)/2.6:(SHEIGHT*2)/2.72), -1, ((int) ((double) (bm->bm_h) * (HiresGFX?(double)grd_curscreen->sc_h/480:(double)grd_curscreen->sc_h/200) + 0.5)), bm,255, F1_0);
#else
gr_ubitmapm(0,grd_curscreen->sc_h-bm->bm_h,bm);
#endif

View file

@ -748,12 +748,6 @@ do_menu_again:
Auto_leveling_on = Default_leveling_on;
if (menu_use_game_res) { // ZICO - set players resolution after player is selected
gr_set_mode(Game_screen_mode);
set_screen_mode(SCREEN_GAME);
} /*else
set_display_mode(Default_display_mode);*/
WriteConfigFile(); // Update lastplr
return 1;
@ -929,7 +923,7 @@ void StartNewGame(int start_level)
extern int network_endlevel_poll2( int nitems, newmenu_item * menus, int * key, int citem ); // network.c
#endif
#define STARS_BACKGROUND ((MenuHires && cfexist("starsb.pcx"))?"starsb.pcx":cfexist("stars.pcx")?"stars.pcx":"starsb.pcx")
#define STARS_BACKGROUND ((HiresGFX && cfexist("starsb.pcx"))?"starsb.pcx":cfexist("stars.pcx")?"stars.pcx":"starsb.pcx")
// -----------------------------------------------------------------------------
// Does the bonus scoring.
@ -1912,7 +1906,6 @@ struct {
#define NUM_INTRO_MOVIES (sizeof(intro_movie) / sizeof(*intro_movie))
extern int MenuHiresAvailable;
extern int robot_movies; //0 means none, 1 means lowres, 2 means hires
extern int intro_played; //true if big intro movie played
@ -1953,26 +1946,7 @@ void ShowLevelIntro(int level_num)
}
}
#if 0
if (robot_movies)
{
int hires_save=MenuHiresAvailable;
if (robot_movies == 1) //lowres only
{
MenuHiresAvailable = 0; //pretend we can't do highres
if (hires_save != MenuHiresAvailable)
Screen_mode = -1; //force reset
}
#endif
do_briefing_screens ("robot.tex",level_num);
#if 0
MenuHiresAvailable = hires_save;
}
#endif
do_briefing_screens ("robot.tex",level_num);
}
}
else { //not the built-in mission. check for add-on briefing

View file

@ -135,14 +135,12 @@ ubyte Reticle_on=1;
#define FLAG_ICON_RED 72
#define FLAG_ICON_BLUE 73
extern int Current_display_mode;
/* Use static inline function under GCC to avoid CR/LF issues */
#ifdef __GNUC__
#define PAGE_IN_GAUGE(x) _page_in_gauge(x)
static inline void _page_in_gauge(int x)
{
if (Current_display_mode) {
if (HiresGFX) {
PIGGY_PAGE_IN(Gauges_hires[x]);
} else {
PIGGY_PAGE_IN(Gauges[x]);
@ -152,7 +150,7 @@ static inline void _page_in_gauge(int x)
#else
#define PAGE_IN_GAUGE(x) \
do { \
if (Current_display_mode) { \
if (HiresGFX) { \
PIGGY_PAGE_IN(Gauges_hires[x]); \
} else { \
PIGGY_PAGE_IN(Gauges[x]); \
@ -161,7 +159,7 @@ static inline void _page_in_gauge(int x)
// #endif
#endif
#define GET_GAUGE_INDEX(x) ((Current_display_mode)?Gauges_hires[x].index:Gauges[x].index)
#define GET_GAUGE_INDEX(x) ((HiresGFX)?Gauges_hires[x].index:Gauges[x].index)
//change MAX_GAUGE_BMS when adding gauges
@ -169,8 +167,8 @@ static inline void _page_in_gauge(int x)
// scaling gauges
#ifdef OGL
#define HUD_SCALE_X(v) ((int) ((double) (v) * (Current_display_mode?(double)grd_curscreen->sc_w/640:(double)grd_curscreen->sc_w/320) + 0.5))
#define HUD_SCALE_Y(v) ((int) ((double) (v) * (Current_display_mode?(double)grd_curscreen->sc_h/480:(double)grd_curscreen->sc_h/200) + 0.5))
#define HUD_SCALE_X(v) ((int) ((double) (v) * (HiresGFX?(double)grd_curscreen->sc_w/640:(double)grd_curscreen->sc_w/320) + 0.5))
#define HUD_SCALE_Y(v) ((int) ((double) (v) * (HiresGFX?(double)grd_curscreen->sc_h/480:(double)grd_curscreen->sc_h/200) + 0.5))
#else
#define HUD_SCALE_X(v) (v)
#define HUD_SCALE_Y(v) (v)
@ -200,28 +198,28 @@ inline void hud_bitblt (int x, int y, grs_bitmap *bm, int scale)
#define GAUGE_BLUE_KEY_Y_L 152
#define GAUGE_BLUE_KEY_X_H 535
#define GAUGE_BLUE_KEY_Y_H 374
#define GAUGE_BLUE_KEY_X (Current_display_mode?GAUGE_BLUE_KEY_X_H:GAUGE_BLUE_KEY_X_L)
#define GAUGE_BLUE_KEY_Y (Current_display_mode?GAUGE_BLUE_KEY_Y_H:GAUGE_BLUE_KEY_Y_L)
#define GAUGE_BLUE_KEY_X (HiresGFX?GAUGE_BLUE_KEY_X_H:GAUGE_BLUE_KEY_X_L)
#define GAUGE_BLUE_KEY_Y (HiresGFX?GAUGE_BLUE_KEY_Y_H:GAUGE_BLUE_KEY_Y_L)
#define GAUGE_GOLD_KEY_X_L 273
#define GAUGE_GOLD_KEY_Y_L 162
#define GAUGE_GOLD_KEY_X_H 537
#define GAUGE_GOLD_KEY_Y_H 395
#define GAUGE_GOLD_KEY_X (Current_display_mode?GAUGE_GOLD_KEY_X_H:GAUGE_GOLD_KEY_X_L)
#define GAUGE_GOLD_KEY_Y (Current_display_mode?GAUGE_GOLD_KEY_Y_H:GAUGE_GOLD_KEY_Y_L)
#define GAUGE_GOLD_KEY_X (HiresGFX?GAUGE_GOLD_KEY_X_H:GAUGE_GOLD_KEY_X_L)
#define GAUGE_GOLD_KEY_Y (HiresGFX?GAUGE_GOLD_KEY_Y_H:GAUGE_GOLD_KEY_Y_L)
#define GAUGE_RED_KEY_X_L 274
#define GAUGE_RED_KEY_Y_L 172
#define GAUGE_RED_KEY_X_H 539
#define GAUGE_RED_KEY_Y_H 416
#define GAUGE_RED_KEY_X (Current_display_mode?GAUGE_RED_KEY_X_H:GAUGE_RED_KEY_X_L)
#define GAUGE_RED_KEY_Y (Current_display_mode?GAUGE_RED_KEY_Y_H:GAUGE_RED_KEY_Y_L)
#define GAUGE_RED_KEY_X (HiresGFX?GAUGE_RED_KEY_X_H:GAUGE_RED_KEY_X_L)
#define GAUGE_RED_KEY_Y (HiresGFX?GAUGE_RED_KEY_Y_H:GAUGE_RED_KEY_Y_L)
// status bar keys
#define SB_GAUGE_KEYS_X_L 11
#define SB_GAUGE_KEYS_X_H 26
#define SB_GAUGE_KEYS_X (Current_display_mode?SB_GAUGE_KEYS_X_H:SB_GAUGE_KEYS_X_L)
#define SB_GAUGE_KEYS_X (HiresGFX?SB_GAUGE_KEYS_X_H:SB_GAUGE_KEYS_X_L)
#define SB_GAUGE_BLUE_KEY_Y_L 153
#define SB_GAUGE_GOLD_KEY_Y_L 169
@ -231,9 +229,9 @@ inline void hud_bitblt (int x, int y, grs_bitmap *bm, int scale)
#define SB_GAUGE_GOLD_KEY_Y_H 422
#define SB_GAUGE_RED_KEY_Y_H 454
#define SB_GAUGE_BLUE_KEY_Y (Current_display_mode?SB_GAUGE_BLUE_KEY_Y_H:SB_GAUGE_BLUE_KEY_Y_L)
#define SB_GAUGE_GOLD_KEY_Y (Current_display_mode?SB_GAUGE_GOLD_KEY_Y_H:SB_GAUGE_GOLD_KEY_Y_L)
#define SB_GAUGE_RED_KEY_Y (Current_display_mode?SB_GAUGE_RED_KEY_Y_H:SB_GAUGE_RED_KEY_Y_L)
#define SB_GAUGE_BLUE_KEY_Y (HiresGFX?SB_GAUGE_BLUE_KEY_Y_H:SB_GAUGE_BLUE_KEY_Y_L)
#define SB_GAUGE_GOLD_KEY_Y (HiresGFX?SB_GAUGE_GOLD_KEY_Y_H:SB_GAUGE_GOLD_KEY_Y_L)
#define SB_GAUGE_RED_KEY_Y (HiresGFX?SB_GAUGE_RED_KEY_Y_H:SB_GAUGE_RED_KEY_Y_L)
// cockpit enery gauges
@ -247,15 +245,15 @@ inline void hud_bitblt (int x, int y, grs_bitmap *bm, int scale)
#define LEFT_ENERGY_GAUGE_W_H 133
#define LEFT_ENERGY_GAUGE_H_H 21
#define LEFT_ENERGY_GAUGE_X (Current_display_mode?LEFT_ENERGY_GAUGE_X_H:LEFT_ENERGY_GAUGE_X_L)
#define LEFT_ENERGY_GAUGE_Y (Current_display_mode?LEFT_ENERGY_GAUGE_Y_H:LEFT_ENERGY_GAUGE_Y_L)
#define LEFT_ENERGY_GAUGE_W (Current_display_mode?LEFT_ENERGY_GAUGE_W_H:LEFT_ENERGY_GAUGE_W_L)
#define LEFT_ENERGY_GAUGE_H (Current_display_mode?LEFT_ENERGY_GAUGE_H_H:LEFT_ENERGY_GAUGE_H_L)
#define LEFT_ENERGY_GAUGE_X (HiresGFX?LEFT_ENERGY_GAUGE_X_H:LEFT_ENERGY_GAUGE_X_L)
#define LEFT_ENERGY_GAUGE_Y (HiresGFX?LEFT_ENERGY_GAUGE_Y_H:LEFT_ENERGY_GAUGE_Y_L)
#define LEFT_ENERGY_GAUGE_W (HiresGFX?LEFT_ENERGY_GAUGE_W_H:LEFT_ENERGY_GAUGE_W_L)
#define LEFT_ENERGY_GAUGE_H (HiresGFX?LEFT_ENERGY_GAUGE_H_H:LEFT_ENERGY_GAUGE_H_L)
#define RIGHT_ENERGY_GAUGE_X (Current_display_mode?379:190)
#define RIGHT_ENERGY_GAUGE_Y (Current_display_mode?314:131)
#define RIGHT_ENERGY_GAUGE_W (Current_display_mode?133:64)
#define RIGHT_ENERGY_GAUGE_H (Current_display_mode?21:8)
#define RIGHT_ENERGY_GAUGE_X (HiresGFX?379:190)
#define RIGHT_ENERGY_GAUGE_Y (HiresGFX?314:131)
#define RIGHT_ENERGY_GAUGE_W (HiresGFX?133:64)
#define RIGHT_ENERGY_GAUGE_H (HiresGFX?21:8)
// cockpit afterburner gauge
@ -269,90 +267,90 @@ inline void hud_bitblt (int x, int y, grs_bitmap *bm, int scale)
#define AFTERBURNER_GAUGE_W_H 21
#define AFTERBURNER_GAUGE_H_H 65
#define AFTERBURNER_GAUGE_X (Current_display_mode?AFTERBURNER_GAUGE_X_H:AFTERBURNER_GAUGE_X_L)
#define AFTERBURNER_GAUGE_Y (Current_display_mode?AFTERBURNER_GAUGE_Y_H:AFTERBURNER_GAUGE_Y_L)
#define AFTERBURNER_GAUGE_W (Current_display_mode?AFTERBURNER_GAUGE_W_H:AFTERBURNER_GAUGE_W_L)
#define AFTERBURNER_GAUGE_H (Current_display_mode?AFTERBURNER_GAUGE_H_H:AFTERBURNER_GAUGE_H_L)
#define AFTERBURNER_GAUGE_X (HiresGFX?AFTERBURNER_GAUGE_X_H:AFTERBURNER_GAUGE_X_L)
#define AFTERBURNER_GAUGE_Y (HiresGFX?AFTERBURNER_GAUGE_Y_H:AFTERBURNER_GAUGE_Y_L)
#define AFTERBURNER_GAUGE_W (HiresGFX?AFTERBURNER_GAUGE_W_H:AFTERBURNER_GAUGE_W_L)
#define AFTERBURNER_GAUGE_H (HiresGFX?AFTERBURNER_GAUGE_H_H:AFTERBURNER_GAUGE_H_L)
// sb energy gauge
#define SB_ENERGY_GAUGE_X (Current_display_mode?196:98)
#define SB_ENERGY_GAUGE_Y (Current_display_mode?381:(155-2))
#define SB_ENERGY_GAUGE_W (Current_display_mode?32:16)
#define SB_ENERGY_GAUGE_H (Current_display_mode?60:29)
#define SB_ENERGY_GAUGE_X (HiresGFX?196:98)
#define SB_ENERGY_GAUGE_Y (HiresGFX?381:(155-2))
#define SB_ENERGY_GAUGE_W (HiresGFX?32:16)
#define SB_ENERGY_GAUGE_H (HiresGFX?60:29)
// sb afterburner gauge
#define SB_AFTERBURNER_GAUGE_X (Current_display_mode?196:98)
#define SB_AFTERBURNER_GAUGE_Y (Current_display_mode?445:184)
#define SB_AFTERBURNER_GAUGE_W (Current_display_mode?32:16)
#define SB_AFTERBURNER_GAUGE_H (Current_display_mode?29:13)
#define SB_AFTERBURNER_GAUGE_X (HiresGFX?196:98)
#define SB_AFTERBURNER_GAUGE_Y (HiresGFX?445:184)
#define SB_AFTERBURNER_GAUGE_W (HiresGFX?32:16)
#define SB_AFTERBURNER_GAUGE_H (HiresGFX?29:13)
#define SB_ENERGY_NUM_X (SB_ENERGY_GAUGE_X+(Current_display_mode?4:2))
#define SB_ENERGY_NUM_Y (Current_display_mode?457:175)
#define SB_ENERGY_NUM_X (SB_ENERGY_GAUGE_X+(HiresGFX?4:2))
#define SB_ENERGY_NUM_Y (HiresGFX?457:175)
#define SHIELD_GAUGE_X (Current_display_mode?292:146)
#define SHIELD_GAUGE_Y (Current_display_mode?374:155)
#define SHIELD_GAUGE_W (Current_display_mode?70:35)
#define SHIELD_GAUGE_H (Current_display_mode?77:32)
#define SHIELD_GAUGE_X (HiresGFX?292:146)
#define SHIELD_GAUGE_Y (HiresGFX?374:155)
#define SHIELD_GAUGE_W (HiresGFX?70:35)
#define SHIELD_GAUGE_H (HiresGFX?77:32)
#define SHIP_GAUGE_X (SHIELD_GAUGE_X+(Current_display_mode?11:5))
#define SHIP_GAUGE_Y (SHIELD_GAUGE_Y+(Current_display_mode?10:5))
#define SHIP_GAUGE_X (SHIELD_GAUGE_X+(HiresGFX?11:5))
#define SHIP_GAUGE_Y (SHIELD_GAUGE_Y+(HiresGFX?10:5))
#define SB_SHIELD_GAUGE_X (Current_display_mode?247:123) //139
#define SB_SHIELD_GAUGE_Y (Current_display_mode?395:163)
#define SB_SHIELD_GAUGE_X (HiresGFX?247:123) //139
#define SB_SHIELD_GAUGE_Y (HiresGFX?395:163)
#define SB_SHIP_GAUGE_X (SB_SHIELD_GAUGE_X+(Current_display_mode?11:5))
#define SB_SHIP_GAUGE_Y (SB_SHIELD_GAUGE_Y+(Current_display_mode?10:5))
#define SB_SHIP_GAUGE_X (SB_SHIELD_GAUGE_X+(HiresGFX?11:5))
#define SB_SHIP_GAUGE_Y (SB_SHIELD_GAUGE_Y+(HiresGFX?10:5))
#define SB_SHIELD_NUM_X (SB_SHIELD_GAUGE_X+(Current_display_mode?21:12)) //151
#define SB_SHIELD_NUM_Y (SB_SHIELD_GAUGE_Y-(Current_display_mode?16:8)) //156 -- MWA used to be hard coded to 156
#define SB_SHIELD_NUM_X (SB_SHIELD_GAUGE_X+(HiresGFX?21:12)) //151
#define SB_SHIELD_NUM_Y (SB_SHIELD_GAUGE_Y-(HiresGFX?16:8)) //156 -- MWA used to be hard coded to 156
#define NUMERICAL_GAUGE_X (Current_display_mode?308:154)
#define NUMERICAL_GAUGE_Y (Current_display_mode?314:130)
#define NUMERICAL_GAUGE_W (Current_display_mode?38:19)
#define NUMERICAL_GAUGE_H (Current_display_mode?55:22)
#define NUMERICAL_GAUGE_X (HiresGFX?308:154)
#define NUMERICAL_GAUGE_Y (HiresGFX?314:130)
#define NUMERICAL_GAUGE_W (HiresGFX?38:19)
#define NUMERICAL_GAUGE_H (HiresGFX?55:22)
#define PRIMARY_W_PIC_X (Current_display_mode?(135-10):64)
#define PRIMARY_W_PIC_Y (Current_display_mode?370:154)
#define PRIMARY_W_TEXT_X HUD_SCALE_X(Current_display_mode?182:87)
#define PRIMARY_W_TEXT_Y HUD_SCALE_Y(Current_display_mode?400:157)
#define PRIMARY_AMMO_X HUD_SCALE_X(Current_display_mode?186:(96-3))
#define PRIMARY_AMMO_Y HUD_SCALE_Y(Current_display_mode?420:171)
#define PRIMARY_W_PIC_X (HiresGFX?(135-10):64)
#define PRIMARY_W_PIC_Y (HiresGFX?370:154)
#define PRIMARY_W_TEXT_X HUD_SCALE_X(HiresGFX?182:87)
#define PRIMARY_W_TEXT_Y HUD_SCALE_Y(HiresGFX?400:157)
#define PRIMARY_AMMO_X HUD_SCALE_X(HiresGFX?186:(96-3))
#define PRIMARY_AMMO_Y HUD_SCALE_Y(HiresGFX?420:171)
#define SECONDARY_W_PIC_X (Current_display_mode?466:234)
#define SECONDARY_W_PIC_Y (Current_display_mode?374:154)
#define SECONDARY_W_TEXT_X HUD_SCALE_X(Current_display_mode?413:207)
#define SECONDARY_W_TEXT_Y HUD_SCALE_Y(Current_display_mode?378:157)
#define SECONDARY_AMMO_X HUD_SCALE_X(Current_display_mode?428:213)
#define SECONDARY_AMMO_Y HUD_SCALE_Y(Current_display_mode?407:171)
#define SECONDARY_W_PIC_X (HiresGFX?466:234)
#define SECONDARY_W_PIC_Y (HiresGFX?374:154)
#define SECONDARY_W_TEXT_X HUD_SCALE_X(HiresGFX?413:207)
#define SECONDARY_W_TEXT_Y HUD_SCALE_Y(HiresGFX?378:157)
#define SECONDARY_AMMO_X HUD_SCALE_X(HiresGFX?428:213)
#define SECONDARY_AMMO_Y HUD_SCALE_Y(HiresGFX?407:171)
#define SB_LIVES_X (Current_display_mode?(550-10-3):266)
#define SB_LIVES_Y (Current_display_mode?450-3:185)
#define SB_LIVES_LABEL_X (Current_display_mode?475:237)
#define SB_LIVES_X (HiresGFX?(550-10-3):266)
#define SB_LIVES_Y (HiresGFX?450-3:185)
#define SB_LIVES_LABEL_X (HiresGFX?475:237)
#define SB_LIVES_LABEL_Y (SB_LIVES_Y+1)
#define SB_SCORE_RIGHT_L 301
#define SB_SCORE_RIGHT_H (605+8)
#define SB_SCORE_RIGHT (Current_display_mode?SB_SCORE_RIGHT_H:SB_SCORE_RIGHT_L)
#define SB_SCORE_RIGHT (HiresGFX?SB_SCORE_RIGHT_H:SB_SCORE_RIGHT_L)
#define SB_SCORE_Y (Current_display_mode?398:158)
#define SB_SCORE_LABEL_X (Current_display_mode?475:237)
#define SB_SCORE_Y (HiresGFX?398:158)
#define SB_SCORE_LABEL_X (HiresGFX?475:237)
#define SB_SCORE_ADDED_RIGHT (Current_display_mode?SB_SCORE_RIGHT_H:SB_SCORE_RIGHT_L)
#define SB_SCORE_ADDED_Y (Current_display_mode?413:165)
#define SB_SCORE_ADDED_RIGHT (HiresGFX?SB_SCORE_RIGHT_H:SB_SCORE_RIGHT_L)
#define SB_SCORE_ADDED_Y (HiresGFX?413:165)
#define HOMING_WARNING_X (Current_display_mode?14:7)
#define HOMING_WARNING_Y (Current_display_mode?415:171)
#define HOMING_WARNING_X (HiresGFX?14:7)
#define HOMING_WARNING_Y (HiresGFX?415:171)
#define BOMB_COUNT_X (Current_display_mode?546:275)
#define BOMB_COUNT_Y (Current_display_mode?445:186)
#define BOMB_COUNT_X (HiresGFX?546:275)
#define BOMB_COUNT_Y (HiresGFX?445:186)
#define SB_BOMB_COUNT_X (Current_display_mode?342:171)
#define SB_BOMB_COUNT_Y (Current_display_mode?458:191)
#define SB_BOMB_COUNT_X (HiresGFX?342:171)
#define SB_BOMB_COUNT_Y (HiresGFX?458:191)
#define LHX(x) ((x)*(MenuHires?2:1))
#define LHY(y) ((y)*(MenuHires?2.4:1))
#define LHX(x) ((x)*(HiresGFX?2:1))
#define LHY(y) ((y)*(HiresGFX?2.4:1))
static int score_display;
static fix score_time;
@ -396,10 +394,10 @@ fix weapon_box_fade_values[2];
#define PRIMARY_W_BOX_RIGHT_H 242
#define PRIMARY_W_BOX_BOT_H (PRIMARY_W_BOX_TOP_H+106) //470
#define PRIMARY_W_BOX_LEFT (Current_display_mode?PRIMARY_W_BOX_LEFT_H:PRIMARY_W_BOX_LEFT_L)
#define PRIMARY_W_BOX_TOP (Current_display_mode?PRIMARY_W_BOX_TOP_H:PRIMARY_W_BOX_TOP_L)
#define PRIMARY_W_BOX_RIGHT (Current_display_mode?PRIMARY_W_BOX_RIGHT_H:PRIMARY_W_BOX_RIGHT_L)
#define PRIMARY_W_BOX_BOT (Current_display_mode?PRIMARY_W_BOX_BOT_H:PRIMARY_W_BOX_BOT_L)
#define PRIMARY_W_BOX_LEFT (HiresGFX?PRIMARY_W_BOX_LEFT_H:PRIMARY_W_BOX_LEFT_L)
#define PRIMARY_W_BOX_TOP (HiresGFX?PRIMARY_W_BOX_TOP_H:PRIMARY_W_BOX_TOP_L)
#define PRIMARY_W_BOX_RIGHT (HiresGFX?PRIMARY_W_BOX_RIGHT_H:PRIMARY_W_BOX_RIGHT_L)
#define PRIMARY_W_BOX_BOT (HiresGFX?PRIMARY_W_BOX_BOT_H:PRIMARY_W_BOX_BOT_L)
#define SECONDARY_W_BOX_LEFT_L 202 //207
#define SECONDARY_W_BOX_TOP_L 151
@ -411,10 +409,10 @@ fix weapon_box_fade_values[2];
#define SECONDARY_W_BOX_RIGHT_H 529
#define SECONDARY_W_BOX_BOT_H (SECONDARY_W_BOX_TOP_H+106) //470
#define SECONDARY_W_BOX_LEFT (Current_display_mode?SECONDARY_W_BOX_LEFT_H:SECONDARY_W_BOX_LEFT_L)
#define SECONDARY_W_BOX_TOP (Current_display_mode?SECONDARY_W_BOX_TOP_H:SECONDARY_W_BOX_TOP_L)
#define SECONDARY_W_BOX_RIGHT (Current_display_mode?SECONDARY_W_BOX_RIGHT_H:SECONDARY_W_BOX_RIGHT_L)
#define SECONDARY_W_BOX_BOT (Current_display_mode?SECONDARY_W_BOX_BOT_H:SECONDARY_W_BOX_BOT_L)
#define SECONDARY_W_BOX_LEFT (HiresGFX?SECONDARY_W_BOX_LEFT_H:SECONDARY_W_BOX_LEFT_L)
#define SECONDARY_W_BOX_TOP (HiresGFX?SECONDARY_W_BOX_TOP_H:SECONDARY_W_BOX_TOP_L)
#define SECONDARY_W_BOX_RIGHT (HiresGFX?SECONDARY_W_BOX_RIGHT_H:SECONDARY_W_BOX_RIGHT_L)
#define SECONDARY_W_BOX_BOT (HiresGFX?SECONDARY_W_BOX_BOT_H:SECONDARY_W_BOX_BOT_L)
#define SB_PRIMARY_W_BOX_LEFT_L 34 //50
#define SB_PRIMARY_W_BOX_TOP_L 153
@ -426,10 +424,10 @@ fix weapon_box_fade_values[2];
#define SB_PRIMARY_W_BOX_RIGHT_H 179
#define SB_PRIMARY_W_BOX_BOT_H 473
#define SB_PRIMARY_W_BOX_LEFT (Current_display_mode?SB_PRIMARY_W_BOX_LEFT_H:SB_PRIMARY_W_BOX_LEFT_L)
#define SB_PRIMARY_W_BOX_TOP (Current_display_mode?SB_PRIMARY_W_BOX_TOP_H:SB_PRIMARY_W_BOX_TOP_L)
#define SB_PRIMARY_W_BOX_RIGHT (Current_display_mode?SB_PRIMARY_W_BOX_RIGHT_H:SB_PRIMARY_W_BOX_RIGHT_L)
#define SB_PRIMARY_W_BOX_BOT (Current_display_mode?SB_PRIMARY_W_BOX_BOT_H:SB_PRIMARY_W_BOX_BOT_L)
#define SB_PRIMARY_W_BOX_LEFT (HiresGFX?SB_PRIMARY_W_BOX_LEFT_H:SB_PRIMARY_W_BOX_LEFT_L)
#define SB_PRIMARY_W_BOX_TOP (HiresGFX?SB_PRIMARY_W_BOX_TOP_H:SB_PRIMARY_W_BOX_TOP_L)
#define SB_PRIMARY_W_BOX_RIGHT (HiresGFX?SB_PRIMARY_W_BOX_RIGHT_H:SB_PRIMARY_W_BOX_RIGHT_L)
#define SB_PRIMARY_W_BOX_BOT (HiresGFX?SB_PRIMARY_W_BOX_BOT_H:SB_PRIMARY_W_BOX_BOT_L)
#define SB_SECONDARY_W_BOX_LEFT_L 169
#define SB_SECONDARY_W_BOX_TOP_L 153
@ -441,24 +439,24 @@ fix weapon_box_fade_values[2];
#define SB_SECONDARY_W_BOX_RIGHT_H 449
#define SB_SECONDARY_W_BOX_BOT_H 473
#define SB_SECONDARY_W_BOX_LEFT (Current_display_mode?SB_SECONDARY_W_BOX_LEFT_H:SB_SECONDARY_W_BOX_LEFT_L) //210
#define SB_SECONDARY_W_BOX_TOP (Current_display_mode?SB_SECONDARY_W_BOX_TOP_H:SB_SECONDARY_W_BOX_TOP_L)
#define SB_SECONDARY_W_BOX_RIGHT (Current_display_mode?SB_SECONDARY_W_BOX_RIGHT_H:SB_SECONDARY_W_BOX_RIGHT_L)
#define SB_SECONDARY_W_BOX_BOT (Current_display_mode?SB_SECONDARY_W_BOX_BOT_H:SB_SECONDARY_W_BOX_BOT_L)
#define SB_SECONDARY_W_BOX_LEFT (HiresGFX?SB_SECONDARY_W_BOX_LEFT_H:SB_SECONDARY_W_BOX_LEFT_L) //210
#define SB_SECONDARY_W_BOX_TOP (HiresGFX?SB_SECONDARY_W_BOX_TOP_H:SB_SECONDARY_W_BOX_TOP_L)
#define SB_SECONDARY_W_BOX_RIGHT (HiresGFX?SB_SECONDARY_W_BOX_RIGHT_H:SB_SECONDARY_W_BOX_RIGHT_L)
#define SB_SECONDARY_W_BOX_BOT (HiresGFX?SB_SECONDARY_W_BOX_BOT_H:SB_SECONDARY_W_BOX_BOT_L)
#define SB_PRIMARY_W_PIC_X (SB_PRIMARY_W_BOX_LEFT+1) //51
#define SB_PRIMARY_W_PIC_Y (Current_display_mode?382:154)
#define SB_PRIMARY_W_TEXT_X HUD_SCALE_X(SB_PRIMARY_W_BOX_LEFT+(Current_display_mode?50:24)) //(51+23)
#define SB_PRIMARY_W_TEXT_Y HUD_SCALE_Y(Current_display_mode?390:157)
#define SB_PRIMARY_AMMO_X HUD_SCALE_X(SB_PRIMARY_W_BOX_LEFT+(Current_display_mode?(38+20):30)) //((SB_PRIMARY_W_BOX_LEFT+33)-3) //(51+32)
#define SB_PRIMARY_AMMO_Y HUD_SCALE_Y(Current_display_mode?410:171)
#define SB_PRIMARY_W_PIC_Y (HiresGFX?382:154)
#define SB_PRIMARY_W_TEXT_X HUD_SCALE_X(SB_PRIMARY_W_BOX_LEFT+(HiresGFX?50:24)) //(51+23)
#define SB_PRIMARY_W_TEXT_Y HUD_SCALE_Y(HiresGFX?390:157)
#define SB_PRIMARY_AMMO_X HUD_SCALE_X(SB_PRIMARY_W_BOX_LEFT+(HiresGFX?(38+20):30)) //((SB_PRIMARY_W_BOX_LEFT+33)-3) //(51+32)
#define SB_PRIMARY_AMMO_Y HUD_SCALE_Y(HiresGFX?410:171)
#define SB_SECONDARY_W_PIC_X (Current_display_mode?385:(SB_SECONDARY_W_BOX_LEFT+27)) //(212+27)
#define SB_SECONDARY_W_PIC_Y (Current_display_mode?382:154)
#define SB_SECONDARY_W_PIC_X (HiresGFX?385:(SB_SECONDARY_W_BOX_LEFT+27)) //(212+27)
#define SB_SECONDARY_W_PIC_Y (HiresGFX?382:154)
#define SB_SECONDARY_W_TEXT_X HUD_SCALE_X(SB_SECONDARY_W_BOX_LEFT+2) //212
#define SB_SECONDARY_W_TEXT_Y HUD_SCALE_Y(Current_display_mode?389:157)
#define SB_SECONDARY_AMMO_X HUD_SCALE_X(SB_SECONDARY_W_BOX_LEFT+(Current_display_mode?(14-4):11)) //(212+9)
#define SB_SECONDARY_AMMO_Y HUD_SCALE_Y(Current_display_mode?414:171)
#define SB_SECONDARY_W_TEXT_Y HUD_SCALE_Y(HiresGFX?389:157)
#define SB_SECONDARY_AMMO_X HUD_SCALE_X(SB_SECONDARY_W_BOX_LEFT+(HiresGFX?(14-4):11)) //(212+9)
#define SB_SECONDARY_AMMO_Y HUD_SCALE_Y(HiresGFX?414:171)
typedef struct gauge_box {
int left,top;
@ -486,10 +484,10 @@ gauge_box gauge_boxes[] = {
// these macros refer to arrays above
#define COCKPIT_PRIMARY_BOX (!Current_display_mode?0:4)
#define COCKPIT_SECONDARY_BOX (!Current_display_mode?1:5)
#define SB_PRIMARY_BOX (!Current_display_mode?2:6)
#define SB_SECONDARY_BOX (!Current_display_mode?3:7)
#define COCKPIT_PRIMARY_BOX (!HiresGFX?0:4)
#define COCKPIT_SECONDARY_BOX (!HiresGFX?1:5)
#define SB_PRIMARY_BOX (!HiresGFX?2:6)
#define SB_SECONDARY_BOX (!HiresGFX?3:7)
int Color_0_31_0 = -1;
@ -660,7 +658,7 @@ void sb_show_score()
//erase old score
gr_setcolor(BM_XRGB(0,0,0));
#ifndef OGL
gr_rect(last_x[Current_display_mode],y,SB_SCORE_RIGHT,(y+GAME_FONT->ft_h));
gr_rect(last_x[HiresGFX],y,SB_SCORE_RIGHT,(y+GAME_FONT->ft_h));
#endif
if ( (Game_mode & GM_MULTI) && !(Game_mode & GM_MULTI_COOP) )
@ -670,7 +668,7 @@ void sb_show_score()
gr_printf(x,y,score_str);
last_x[Current_display_mode] = x;
last_x[HiresGFX] = x;
}
void sb_show_score_added()
@ -716,13 +714,13 @@ void sb_show_score_added()
gr_printf(x, HUD_SCALE_Y(SB_SCORE_ADDED_Y), score_str);
last_x[Current_display_mode] = x;
last_x[HiresGFX] = x;
} else {
//erase old score
gr_setcolor(BM_XRGB(0,0,0));
#ifndef OGL
gr_rect(last_x[Current_display_mode],SB_SCORE_ADDED_Y,SB_SCORE_ADDED_RIGHT,SB_SCORE_ADDED_Y+GAME_FONT->ft_h);
gr_rect(last_x[HiresGFX],SB_SCORE_ADDED_Y,SB_SCORE_ADDED_RIGHT,SB_SCORE_ADDED_Y+GAME_FONT->ft_h);
#endif
score_time = 0;
score_display = 0;
@ -869,23 +867,23 @@ void hud_show_orbs (void)
else if (Cockpit_mode == CM_FULL_SCREEN) {
y = HUD_SCALE_Y(5*Line_spacing);
x = HUD_SCALE_X(GAME_FONT->ft_w);
if (FontHires)
if (HiresGFX)
y += HUD_SCALE_Y(Line_spacing);
}
else
Int3(); //what sort of cockpit?
bm = &Orb_icons[FontHires];
bm = &Orb_icons[HiresGFX];
gr_set_fontcolor(gr_getcolor(0,31,0),-1 );
// gr_printf(x+bm->bm_w+bm->bm_w/2, y+(FontHires?2:1), "x %d", Players[Player_num].secondary_ammo[PROXIMITY_INDEX]);
// gr_printf(x+bm->bm_w+bm->bm_w/2, y+(HiresGFX?2:1), "x %d", Players[Player_num].secondary_ammo[PROXIMITY_INDEX]);
#ifndef OGL
gr_ubitmapm(x,y,bm);
gr_printf(x+bm->bm_w+bm->bm_w/2, y+(FontHires?2:1), "x %d", Players[Player_num].secondary_ammo[PROXIMITY_INDEX]);
gr_printf(x+bm->bm_w+bm->bm_w/2, y+(HiresGFX?2:1), "x %d", Players[Player_num].secondary_ammo[PROXIMITY_INDEX]);
#else
ogl_ubitmapm_cs(x,y,FONTSCALE_Y((FontHires)?16:8),FONTSCALE_Y((FontHires)?14:7),bm,255,F1_0);
gr_printf(x+FONTSCALE_X(bm->bm_w+bm->bm_w/2), y+(FontHires?2:1), "x %d", Players[Player_num].secondary_ammo[PROXIMITY_INDEX]);
ogl_ubitmapm_cs(x,y,FONTSCALE_Y((HiresGFX)?16:8),FONTSCALE_Y((HiresGFX)?14:7),bm,255,F1_0);
gr_printf(x+FONTSCALE_X(bm->bm_w+bm->bm_w/2), y+(HiresGFX?2:1), "x %d", Players[Player_num].secondary_ammo[PROXIMITY_INDEX]);
#endif
}
@ -909,7 +907,7 @@ void hud_show_flag(void)
else if (Cockpit_mode == CM_FULL_SCREEN) {
y = 5*Line_spacing;
x = GAME_FONT->ft_w;
if (FontHires)
if (HiresGFX)
y += Line_spacing;
}
else
@ -1161,9 +1159,9 @@ void hud_show_weapons(void)
// ZICO - new HUD modes
if (GameArg.GfxGaugeHudMode==1){
hud_show_weapons_mode(0,0,1,grd_curcanv->cv_w,y-FONTSCALE_Y(GAME_FONT->ft_h+(FontHires?39:21)));
hud_show_weapons_mode(0,0,2,grd_curcanv->cv_w,y-FONTSCALE_Y(GAME_FONT->ft_h+(FontHires?27:15)));
hud_show_weapons_mode(1,0,1,grd_curcanv->cv_w,y-FONTSCALE_Y(GAME_FONT->ft_h+(FontHires?15:9)));
hud_show_weapons_mode(0,0,1,grd_curcanv->cv_w,y-FONTSCALE_Y(GAME_FONT->ft_h+(HiresGFX?39:21)));
hud_show_weapons_mode(0,0,2,grd_curcanv->cv_w,y-FONTSCALE_Y(GAME_FONT->ft_h+(HiresGFX?27:15)));
hud_show_weapons_mode(1,0,1,grd_curcanv->cv_w,y-FONTSCALE_Y(GAME_FONT->ft_h+(HiresGFX?15:9)));
hud_show_weapons_mode(1,0,2,grd_curcanv->cv_w,y-FONTSCALE_Y(GAME_FONT->ft_h+3));
}
else if (GameArg.GfxGaugeHudMode==2 || GameArg.GfxGaugeHudMode==3){
@ -1181,9 +1179,9 @@ void hud_show_weapons(void)
x2=grd_curcanv->cv_w/1.9+(FONTSCALE_X(42)+x2);
}
hud_show_weapons_mode(0,1,1,x1,y);
hud_show_weapons_mode(0,1,2,x1+FONTSCALE_X(FontHires?24:12),y);
hud_show_weapons_mode(0,1,2,x1+FONTSCALE_X(HiresGFX?24:12),y);
hud_show_weapons_mode(1,1,1,x2,y);
hud_show_weapons_mode(1,1,2,x2+FONTSCALE_X(FontHires?24:12),y);
hud_show_weapons_mode(1,1,2,x2+FONTSCALE_X(HiresGFX?24:12),y);
gr_set_fontcolor(gr_getcolor(14,14,23),-1 );
gr_printf(x2, y-FONTSCALE_Y(GAME_FONT->ft_h*4+4),"%i", f2ir(Players[Player_num].shields));
gr_set_fontcolor(gr_getcolor(25,18,6),-1 );
@ -1256,7 +1254,7 @@ void hud_show_weapons(void)
old_ammo_count[1] = Players[Player_num].secondary_ammo[Secondary_weapon];
}
show_bomb_count(grd_curcanv->cv_bitmap.bm_w-FONTSCALE_X(3*GAME_FONT->ft_w+(FontHires?0:2)), y-FONTSCALE_Y(3*Line_spacing),-1,1);
show_bomb_count(grd_curcanv->cv_bitmap.bm_w-FONTSCALE_X(3*GAME_FONT->ft_w+(HiresGFX?0:2)), y-FONTSCALE_Y(3*Line_spacing),-1,1);
}
}
@ -1341,8 +1339,8 @@ void hud_show_lives()
gr_ubitmapm(10,3,bm);
gr_printf(10+bm->bm_w+bm->bm_w/2, 3, "x %d", Players[Player_num].lives-1);
#else
ogl_ubitmapm_cs(FONTSCALE_X(10),3,FONTSCALE_X((FontHires)?16:8),FONTSCALE_Y((FontHires)?14:7),bm,255,F1_0);
gr_printf(FONTSCALE_X((FontHires)?35:22), 3, "x %d", Players[Player_num].lives-1);
ogl_ubitmapm_cs(FONTSCALE_X(10),3,FONTSCALE_X((HiresGFX)?16:8),FONTSCALE_Y((HiresGFX)?14:7),bm,255,F1_0);
gr_printf(FONTSCALE_X((HiresGFX)?35:22), 3, "x %d", Players[Player_num].lives-1);
#endif
}
@ -1373,12 +1371,12 @@ void sb_show_lives()
gr_get_string_size(killed_str, &w, &h, &aw);
gr_setcolor(BM_XRGB(0,0,0));
#ifndef OGL
gr_rect(last_x[Current_display_mode], y+1, SB_SCORE_RIGHT, y+GAME_FONT->ft_h);
gr_rect(last_x[HiresGFX], y+1, SB_SCORE_RIGHT, y+GAME_FONT->ft_h);
#endif
gr_set_fontcolor(gr_getcolor(0,20,0),-1);
x = HUD_SCALE_X(SB_SCORE_RIGHT)-w-2;
gr_printf(x, HUD_SCALE_Y(y+1), killed_str);
last_x[Current_display_mode] = x;
last_x[HiresGFX] = x;
return;
}
@ -1396,7 +1394,7 @@ void sb_show_lives()
#ifndef OGL
gr_ubitmapm(HUD_SCALE_X(x),HUD_SCALE_Y(y),bm);
#else
ogl_ubitmapm_cs(HUD_SCALE_X(x),HUD_SCALE_Y(y),FONTSCALE_X((FontHires)?16:8),FONTSCALE_Y((FontHires)?14:7),bm,255,F1_0);
ogl_ubitmapm_cs(HUD_SCALE_X(x),HUD_SCALE_Y(y),FONTSCALE_X((HiresGFX)?16:8),FONTSCALE_Y((HiresGFX)?14:7),bm,255,F1_0);
#endif
gr_printf(HUD_SCALE_X(x+bm->bm_w+GAME_FONT->ft_w), HUD_SCALE_Y(y), "x %d", Players[Player_num].lives-1);
}
@ -1568,7 +1566,7 @@ void draw_energy_bar(int energy)
int w1 = HUD_SCALE_X (LEFT_ENERGY_GAUGE_W - 1);
int w2 = HUD_SCALE_X (LEFT_ENERGY_GAUGE_W - 2);
int w3 = HUD_SCALE_X (LEFT_ENERGY_GAUGE_W - 3);
double eBarScale = HUD_SCALE_X(100.0 - (double) energy) * (Current_display_mode?0.15:0.075) / (double) HUD_SCALE_Y (LEFT_ENERGY_GAUGE_H);
double eBarScale = HUD_SCALE_X(100.0 - (double) energy) * (HiresGFX?0.15:0.075) / (double) HUD_SCALE_Y (LEFT_ENERGY_GAUGE_H);
// Draw left energy bar
PAGE_IN_GAUGE( GAUGE_ENERGY_LEFT );
@ -1581,7 +1579,7 @@ void draw_energy_bar(int energy)
gr_setcolor(BM_XRGB(0,0,0));
energy0 = HUD_SCALE_X (Current_display_mode?112:56);
energy0 = HUD_SCALE_X (HiresGFX?112:56);
energy0 = energy0 - (energy * energy0) / 100;
if (energy < 100) {
for (i = 0; i < LEFT_ENERGY_GAUGE_H; i++) {
@ -1832,7 +1830,7 @@ void draw_weapon_info_sub(int info_index,gauge_box *box,int pic_x,int pic_y,char
gr_rect(HUD_SCALE_X(box->left),HUD_SCALE_Y(box->top),HUD_SCALE_X(box->right),HUD_SCALE_Y(box->bot));
if (Piggy_hamfile_version >= 3 // !SHAREWARE
&& Current_display_mode)
&& HiresGFX)
{
bm=&GameBitmaps[Weapon_info[info_index].hires_picture.index];
PIGGY_PAGE_IN( Weapon_info[info_index].hires_picture );
@ -1921,11 +1919,11 @@ void draw_weapon_info(int weapon_type,int weapon_num,int laser_level)
{
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)+FONTSCALE_X(FontHires?24:12),(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)+FONTSCALE_X(HiresGFX?24:12),(Cockpit_mode==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)+FONTSCALE_X(FontHires?24:12),(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)+FONTSCALE_X(HiresGFX?24:12),(Cockpit_mode==CM_STATUS_BAR?SB_SECONDARY_AMMO_Y:SECONDARY_AMMO_Y));
}
}
}
@ -2059,7 +2057,7 @@ void draw_static(int win)
for (y=gauge_boxes[boxofs+win].top;y<gauge_boxes[boxofs+win].bot;y+=bmp->bm_h)
gr_bitmap(x,y,bmp);
#else
if (!Current_display_mode)
if (!HiresGFX)
ogl_ubitmapm_cs(HUD_SCALE_X(gauge_boxes[boxofs+win].left),HUD_SCALE_Y(gauge_boxes[boxofs+win].top),HUD_SCALE_X(bmp->bm_w),HUD_SCALE_Y(bmp->bm_h/1.5),bmp,255,F1_0);
else
{
@ -2326,7 +2324,7 @@ void show_reticle(int force_big_one)
else
{
#endif
use_hires_reticle = (FontHires != 0);
use_hires_reticle = (HiresGFX != 0);
ofs = (use_hires_reticle?0:2);
#ifdef OGL // ... scale reticle bitmaps ...
if (use_hires_reticle) // ... if we are in 640x480 or higher ...
@ -2382,7 +2380,7 @@ void hud_show_kill_list()
int n_left,i,x0,x1,y,save_y,fth;
// ugly hack since placement of netgame players and kills is based off of
// menuhires (which is always 1 for mac). This throws off placement of
// HiresGFX (which is always 1 for mac). This throws off placement of
// players in pixel double mode.
if (Show_kill_list_timer > 0)
@ -2513,7 +2511,7 @@ void hud_show_kill_list()
}
#ifdef MACINTOSH
MenuHires = 1;
HiresGFX = 1;
#endif
}
#endif
@ -2747,11 +2745,11 @@ void render_gauges()
// because they are [now] sub-canvases.
if (old_display_mode != Current_display_mode)
if (old_display_mode != HiresGFX)
{
close_gauge_canvases();
init_gauge_canvases();
old_display_mode = Current_display_mode;
old_display_mode = HiresGFX;
}
if (shields < 0 ) shields = 0;
@ -2781,7 +2779,7 @@ void render_gauges()
}
draw_afterburner_bar(Afterburner_charge);
hud_bitblt (0, 0, &GameBitmaps[cockpit_bitmap[Cockpit_mode+(Current_display_mode?(Num_cockpits/2):0)].index],F1_0);
hud_bitblt (0, 0, &GameBitmaps[cockpit_bitmap[Cockpit_mode+(HiresGFX?(Num_cockpits/2):0)].index],F1_0);
draw_player_ship(cloak, old_cloak, SHIP_GAUGE_X, SHIP_GAUGE_Y);
@ -2823,7 +2821,7 @@ void render_gauges()
}
sb_draw_afterburner();
#ifdef OGL
hud_bitblt (0, (Current_display_mode?370:147), &GameBitmaps[cockpit_bitmap[Cockpit_mode+(Current_display_mode?(Num_cockpits/2):0)].index],F1_0);
hud_bitblt (0, (HiresGFX?370:147), &GameBitmaps[cockpit_bitmap[Cockpit_mode+(HiresGFX?(Num_cockpits/2):0)].index],F1_0);
#endif
draw_player_ship(cloak, old_cloak, SB_SHIP_GAUGE_X, SB_SHIP_GAUGE_Y);
@ -2948,7 +2946,7 @@ void do_cockpit_window_view(int win,object *viewer,int rear_view_flag,int user,c
dx = (win==0)?-(w+(w/10)):(w/10);
window_x = grd_curscreen->sc_w/2+dx;
window_y = grd_curscreen->sc_h-h-FONTSCALE_Y(Current_display_mode?14:7);
window_y = grd_curscreen->sc_h-h-FONTSCALE_Y(HiresGFX?14:7);
//copy these vars so stereo code can get at them
SW_drawn[win]=1; SW_x[win] = window_x; SW_y[win] = window_y; SW_w[win] = w; SW_h[win] = h;
@ -3090,7 +3088,7 @@ abort:;
boxNumber = SB_SECONDARY_BOX;
}
//boxNumber = (Current_display_mode * 4) + (Cockpit_mode * 2) + inSubWindowNum;
//boxNumber = (HiresGFX * 4) + (Cockpit_mode * 2) + inSubWindowNum;
currentGaugeBox = &gauge_boxes[boxNumber];
Assert(currentGaugeBox);

View file

@ -71,8 +71,8 @@ int MSG_Noredundancy = 0;
int Modex_hud_msg_count;
#define LHX(x) ((x)*(FontHires?2:1))
#define LHY(y) ((y)*(FontHires?2.4:1))
#define LHX(x) ((x)*(HiresGFX?2:1))
#define LHY(y) ((y)*(HiresGFX?2.4:1))
// ----------------------------------------------------------------------------
void clear_background_messages(void)

View file

@ -126,17 +126,6 @@ char desc_id_exit_num = 0;
int Function_mode=FMODE_MENU; //game or editor?
int Screen_mode=-1; //game screen or editor screen?
//--unused-- grs_bitmap Inferno_bitmap_title;
int WVIDEO_running=0; //debugger can set to 1 if running
//--unused-- int Cyberman_installed=0; // SWIFT device present
ubyte CybermouseActive=0;
#ifdef __WATCOMC__
int __far descent_critical_error_handler( unsigned deverr, unsigned errcode, unsigned __far * devhdr );
#endif
void show_order_form(void);
//--------------------------------------------------------------------------
@ -145,15 +134,13 @@ int descent_critical_error = 0;
unsigned descent_critical_deverror = 0;
unsigned descent_critical_errcode = 0;
int HiresGFXAvailable = 1;
int HiresGFX = 1;
extern int Network_allow_socket_changes;
extern void vfx_set_palette_sub(ubyte *);
extern int VR_low_res;
extern int Config_vr_type;
extern int Config_vr_resolution;
extern int Config_vr_tracking;
extern int vertigo_present;
extern void d_mouse_init(void);
@ -254,23 +241,6 @@ void print_commandline_help()
printf( " -hwsurface %s\n", "Use HW Surface");
#endif
/* KEPT FOR FURTHER REFERENCE
printf( "\n Unused / Obsolete:\n\n");
printf( " -sysram %s\n", "FIXME: Undocumented");
printf( " -tsengdebug1 %s\n", "FIXME: Undocumented");
printf( " -tsengdebug2 %s\n", "FIXME: Undocumented");
printf( " -tsengdebug3 %s\n", "FIXME: Undocumented");
printf( " -vidram %s\n", "FIXME: Undocumented");
printf( " -xname %s\n", "FIXME: Undocumented");
printf( " -xver %s\n", "FIXME: Undocumented");
printf( " -gl_test1 %s\n", "FIXME: Undocumented");
printf( " -gl_test2 %s\n", "FIXME: Undocumented");
printf( " -gl_vidmem %s\n", "FIXME: Undocumented");
printf( " -hwsurface %s\n", "FIXME: Undocumented");
printf( " -gl_library <l> %s\n", "use alternate opengl library");
*/
#endif // NDEBUG
printf( "\n Help:\n\n");
@ -308,14 +278,8 @@ void do_register_player(ubyte *title_pal)
extern char Language[];
//can we do highres menus?
extern int MenuHiresAvailable;
int Inferno_verbose = 0;
u_int32_t MENU_HIRES_MODE=SM(640,480); //#define MENU_HIRES_MODE SM(640,480)
int menu_use_game_res=1;
// DESCENT II by Parallax Software
// Descent Main
@ -338,8 +302,9 @@ int main(int argc, char *argv[])
con_threshold.value = (float)GameArg.DbgVerbose;
if (! cfile_init("descent2.hog", 1))
if (! cfile_init("descent2.hog", 1)) {
if (! cfile_init("d2demo.hog", 1))
{
Error("Could not find a valid hog file (descent2.hog or d2demo.hog)\nPossible locations are:\n"
#ifdef __unix__
"\t$HOME/.d2x-rebirth\n"
@ -348,6 +313,15 @@ int main(int argc, char *argv[])
"\tCurrent directory\n"
#endif
"Or use the -hogdir option to specify an alternate location.");
}
else // deal with interactive demo
{
HiresGFXAvailable = 0;
GameArg.SysLowMem = 1;
GameArg.SndDigiSampleRate = SAMPLE_RATE_11K;
}
}
load_text();
//print out the banner title
@ -425,50 +399,14 @@ int main(int argc, char *argv[])
}
#endif
if (!WVIDEO_running)
con_printf(CON_DEBUG,"WVIDEO_running = %d\n",WVIDEO_running);
con_printf (CON_VERBOSE, "%s", TXT_VERBOSE_1);
ReadConfigFile();
if (!VR_offscreen_buffer) //if hasn't been initialied (by headset init)
set_display_mode(0); //..then set default display mode
{
int screen_width = 640;
int screen_height = 480;
// int screen_flags = 0;
// added 3/24/99 by Owen Evans for screen res changing
Game_screen_mode = SM(screen_width, screen_height);
// end added -OE
// game_init_render_buffers(screen_width, screen_height, VR_NONE, screen_flags);
}
{
int i, argnum = INT_MAX, w, h;
#define SMODE(V,VV,VG) if ((i=FindResArg(#V, &w, &h)) && (i < argnum)) { argnum = i; VV = SM(w, h); VG = 0; if(w<640||h<480) disable_high_res=1; }
#define SMODE_PRINT(V,VV,VG) if (VG) con_printf(CON_VERBOSE, #V " using game resolution ...\n"); else con_printf(CON_VERBOSE, #V " using %ix%i ...\n",SM_W(VV),SM_H(VV) );
#define S_MODE(V,VV,VG) argnum = INT_MAX; SMODE(V, VV, VG); SMODE_PRINT(V, VV, VG);
S_MODE(menu,MENU_HIRES_MODE,menu_use_game_res);
}
con_printf(CON_VERBOSE, "\n%s\n\n", TXT_INITIALIZING_GRAPHICS);
//determine whether we're using high-res menus & movies
if (FindArg("-nohires") || FindArg("-nohighres") || (gr_check_mode(MENU_HIRES_MODE) != 0) || disable_high_res)
GameArg.GfxMovieHires = MenuHires = MenuHiresAvailable = 0;
else
//NOTE LINK TO ABOVE!
GameArg.GfxMovieHires = MenuHires = MenuHiresAvailable = 1;
if ((t=gr_init(0))!=0) //doesn't do much
Error(TXT_CANT_INIT_GFX,t);
gr_set_mode(MENU_SCREEN_MODE);
// Load the palette stuff. Returns non-zero if error.
con_printf(CON_DEBUG, "Initializing palette system...\n" );
gr_use_palette_table(D2_DEFAULT_PALETTE );
@ -479,10 +417,8 @@ int main(int argc, char *argv[])
con_printf( CON_DEBUG, "Initializing movie libraries...\n" );
init_movies(); //init movie libraries
#if 0
con_printf(CON_VERBOSE, "Going into graphics mode...\n");
gr_set_mode(MovieHires?SM(640,480):SM(320,200));
#endif
gr_set_mode(Game_screen_mode);
show_titles();
@ -628,10 +564,5 @@ int main(int argc, char *argv[])
void quit_request()
{
#ifdef NETWORK
// void network_abort_game();
// if(Network_status)
// network_abort_game();
#endif
exit(0);
}

View file

@ -115,8 +115,8 @@ extern int Automap_flag;
// macros for drawing lo/hi res kconfig screens (see scores.c as well)
#define LHX(x) ((x)*(MenuHires?FONTSCALE_X(2):FONTSCALE_X(1)))
#define LHY(y) ((y)*(MenuHires?FONTSCALE_Y(2.4):FONTSCALE_Y(1)))
#define LHX(x) ((x)*(HiresGFX?FONTSCALE_X(2):FONTSCALE_X(1)))
#define LHY(y) ((y)*(HiresGFX?FONTSCALE_Y(2.4):FONTSCALE_Y(1)))
#define BT_KEY 0
#define BT_MOUSE_BUTTON 1
@ -671,7 +671,7 @@ void kconfig_sub(kc_item * items,int nitems, char * title)
int mouse_state, omouse_state, mx, my, mz, x1, x2, y1, y2;
int close_x = 8*(SWIDTH/320);
int close_y = 8*(SHEIGHT/200);
int close_size = FONTSCALE_X(MenuHires?10:5);
int close_size = FONTSCALE_X(HiresGFX?10:5);
#endif
int i,k,ocitem,citem;
@ -689,7 +689,7 @@ void kconfig_sub(kc_item * items,int nitems, char * title)
save_canvas = grd_curcanv;
if (MenuHires)
if (HiresGFX)
gr_init_sub_canvas(&kconfig_sub_canvas, &grd_curscreen->sc_canvas, (SWIDTH - FONTSCALE_X(640))/2, (SHEIGHT - FONTSCALE_Y(480))/2, FONTSCALE_X(640), FONTSCALE_Y(480));
else
gr_init_sub_canvas(&kconfig_sub_canvas, &grd_curscreen->sc_canvas, (SWIDTH - FONTSCALE_X(320))/2, (SHEIGHT - FONTSCALE_Y(200))/2, FONTSCALE_X(320), FONTSCALE_Y(200));

View file

@ -73,8 +73,8 @@ void kmatrix_reactor (char *message);
void kmatrix_phallic ();
void kmatrix_redraw_coop();
#define LHX(x) ((x)*(MenuHires?2*((double)SWIDTH/640):((double)SWIDTH/320)))
#define LHY(y) ((y)*(MenuHires?2.4*((double)SHEIGHT/480):((double)SHEIGHT/200)))
#define LHX(x) ((x)*(HiresGFX?2*((double)SWIDTH/640):((double)SWIDTH/320)))
#define LHY(y) ((y)*(HiresGFX?2.4*((double)SHEIGHT/480):((double)SHEIGHT/200)))
void kmatrix_draw_item( int i, int *sorted )
{

View file

@ -639,214 +639,6 @@ void do_detail_level_menu_custom(void)
set_custom_detail_vars();
}
#ifndef MACINTOSH
int Default_display_mode=0;
int Current_display_mode=0;
#else
int Default_display_mode=1;
int Current_display_mode=1;
#endif
extern int MenuHiresAvailable;
typedef struct {
int VGA_mode;
short w,h;
short render_method;
short flags;
} dmi;
dmi display_mode_info[8] = {
{SM(320,200), 320, 200, VR_NONE, VRF_ALLOW_COCKPIT+VRF_COMPATIBLE_MENUS},
{SM(640,480), 640, 480, VR_NONE, VRF_COMPATIBLE_MENUS+VRF_ALLOW_COCKPIT},
{SM(320,400), 320, 400, VR_NONE, VRF_COMPATIBLE_MENUS/*VRF_USE_PAGING*/}, // ZICO - to get cockpit shown correctly
{SM(640,400), 640, 400, VR_NONE, VRF_COMPATIBLE_MENUS},
{SM(800,600), 800, 600, VR_NONE, VRF_COMPATIBLE_MENUS},
{SM(1024,768), 1024, 768, VR_NONE, VRF_COMPATIBLE_MENUS},
{SM(1280,1024),1280,1024, VR_NONE, VRF_COMPATIBLE_MENUS},
{SM(1600,1200),1600,1200, VR_NONE, VRF_COMPATIBLE_MENUS}, // ZICO - added res
};
void set_display_mode(int mode)
{
dmi *dmi;
if ((Current_display_mode == -1)||(VR_render_mode != VR_NONE)) //special VR mode
return; //...don't change
if (!MenuHiresAvailable && (mode != 2))
mode = 0;
if (gr_check_mode(display_mode_info[mode].VGA_mode) != 0) //can't do mode
#ifndef MACINTOSH
mode = 0;
#else
mode = 1;
#endif
Current_display_mode = mode;
dmi = &display_mode_info[mode];
if (Current_display_mode != -1) {
// game_init_render_buffers(dmi->w,dmi->h,dmi->render_method,dmi->flags);
Default_display_mode = Current_display_mode;
}
Screen_mode = -1; //force screen reset
}
#ifdef MACINTOSH // use Mac version of do_screen_res_menu
void do_screen_res_menu()
{
#define N_SCREENRES_ITEMS 6
newmenu_item m[N_SCREENRES_ITEMS];
int citem, i, n_items, odisplay_mode, result;
if ((Current_display_mode == -1)||(VR_render_mode != VR_NONE)) //special VR mode
{
nm_messagebox(TXT_SORRY, 1, TXT_OK,
"You may not change screen\n"
"resolution when VR modes enabled.");
return;
}
m[0].type=NM_TYPE_TEXT; m[0].value=0; m[0].text="Modes w/ Cockpit:";
m[1].type=NM_TYPE_RADIO; m[1].value=0; m[1].group=0; m[1].text=" 640x480";
m[2].type=NM_TYPE_TEXT; m[2].value=0; m[2].text="Modes w/o Cockpit:";
m[3].type=NM_TYPE_RADIO; m[3].value=0; m[3].group=0; m[3].text=" 800x600";
n_items = 4;
odisplay_mode = Game_screen_mode;
citem = Current_display_mode;
if (Current_display_mode >= 2)
citem--;
if (citem >= n_items)
citem = n_items-1;
m[citem].value = 1;
newmenu_do1( NULL, "Select screen mode", n_items, m, NULL, citem);
for (i=0;i<n_items;i++)
if (m[i].value)
break;
if (i >= 3)
i++;
#if 0 //def SHAREWARE
if (i > 1)
nm_messagebox(TXT_SORRY, 1, TXT_OK,
"High resolution modes are\n"
"only available in the\n"
"Commercial version of Descent 2.");
return;
#else
result = vga_check_mode(display_mode_info[i].VGA_mode);
if (result) {
nm_messagebox(TXT_SORRY, 1, TXT_OK,
"Cannot set requested\n"
"mode on this video card.");
return;
}
set_display_mode(i);
reset_cockpit();
#endif
}
#else // PC version of do_screen_res_menu is below
void do_screen_res_menu()
{
#define N_SCREENRES_ITEMS 11
int fullscreenc;
newmenu_item m[N_SCREENRES_ITEMS];
int citem;
int i;
int n_items;
if ((Current_display_mode == -1)||(VR_render_mode != VR_NONE)) { //special VR mode
nm_messagebox(TXT_SORRY, 1, TXT_OK,
"You may not change screen\n"
"resolution when VR modes enabled.");
return;
}
m[0].type=NM_TYPE_TEXT; m[0].value=0; m[0].text="Modes w/ Cockpit:";
m[1].type=NM_TYPE_RADIO; m[1].value=0; m[1].group=0; m[1].text=" 320x200";
m[2].type=NM_TYPE_RADIO; m[2].value=0; m[2].group=0; m[2].text=" 640x480";
m[3].type=NM_TYPE_TEXT; m[3].value=0; m[3].text="Modes w/o Cockpit:";
m[4].type=NM_TYPE_RADIO; m[4].value=0; m[4].group=0; m[4].text=" 320x400";
m[5].type=NM_TYPE_RADIO; m[5].value=0; m[5].group=0; m[5].text=" 640x400";
m[6].type=NM_TYPE_RADIO; m[6].value=0; m[6].group=0; m[6].text=" 800x600";
m[7].type=NM_TYPE_RADIO; m[7].value=0; m[7].group=0; m[7].text=" 1024x768";
m[8].type=NM_TYPE_RADIO; m[8].value=0; m[8].group=0; m[8].text=" 1280x1024";
m[9].type=NM_TYPE_RADIO; m[9].value=0; m[9].group=0; m[9].text=" 1600x1200";
n_items = 10;
m[n_items].type = NM_TYPE_CHECK; m[n_items].text = "Fullscreen";
m[n_items].value = gr_check_fullscreen();
fullscreenc=n_items++;
citem = Current_display_mode+1;
if (Current_display_mode >= 2)
citem++;
if (citem >= n_items)
citem = n_items-1;
m[citem].value = 1;
newmenu_do1( NULL, "Select screen mode", n_items, m, NULL, citem);
if (m[fullscreenc].value != gr_check_fullscreen()){
gr_toggle_fullscreen();
Game_screen_mode = -1;
}
for (i=0;i<n_items;i++)
if (m[i].value)
break;
if (i >= 4)
i--;
i--;
if (((i != 0) && (i != 2) && !MenuHiresAvailable) || gr_check_mode(display_mode_info[i].VGA_mode)) {
nm_messagebox(TXT_SORRY, 1, TXT_OK,
"Cannot set requested\n"
"mode on this video card.");
return;
}
#ifdef SHAREWARE
if (i != 0)
nm_messagebox(TXT_SORRY, 1, TXT_OK,
"High resolution modes are\n"
"only available in the\n"
"Commercial version of Descent 2.");
return;
#else
if (i != Current_display_mode)
set_display_mode(i);
#endif
set_screen_mode(SCREEN_GAME);
}
#endif // end of PC version of do_screen_res_menu()
void do_new_game_menu()
{
int new_level_num,player_highest_level;
@ -992,20 +784,14 @@ void change_res()
if (screen_height <= 0 || screen_width <= 0)
return;
// added 6/15/1999 by Owen Evans to eliminate unneccesary mode modification
if (Game_screen_mode == screen_mode)
return;
// end section - OE
newmenu_close();
Game_screen_mode = screen_mode;
set_screen_mode(SCREEN_MENU);
game_init_render_buffers(screen_width, screen_height, VR_NONE, 0);
if (menu_use_game_res) {
gr_set_mode(Game_screen_mode);
set_screen_mode(SCREEN_GAME);
}
}
//End changed section (OE)
@ -1285,12 +1071,6 @@ void do_toggles_menu()
Guided_in_big_window = m[4].value;
EscortHotKeys = m[5].value;
#if 0
if (MenuHiresAvailable)
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
} while( i>-1 );
}

View file

@ -26,12 +26,10 @@ extern int DoMenu();
extern void do_options_menu();
extern void d2x_options_menu();
extern int MenuHires;
#define MENU_PCX_MAC_SHARE ("menub.pcx")
#define MENU_PCX_SHAREWARE ("menud.pcx")
#define MENU_PCX_OEM (MenuHires?"menuob.pcx":"menuo.pcx")
#define MENU_PCX_FULL (MenuHires?"menub.pcx":"menu.pcx")
#define MENU_PCX_OEM (HiresGFX?"menuob.pcx":"menuo.pcx")
#define MENU_PCX_FULL (HiresGFX?"menub.pcx":"menu.pcx")
// name of background bitmap
#define Menu_pcx_name (cfexist(MENU_PCX_FULL)?MENU_PCX_FULL:(cfexist(MENU_PCX_OEM)?MENU_PCX_OEM:cfexist(MENU_PCX_SHAREWARE)?MENU_PCX_SHAREWARE:MENU_PCX_MAC_SHARE))

View file

@ -63,7 +63,6 @@ static char rcsid[] = "$Id: movie.c,v 1.1.1.1 2006/03/17 19:55:55 zicodxx Exp $"
#include "ogl_init.h"
#endif
extern int MenuHiresAvailable;
extern char CDROM_dir[];
#define VID_PLAY 0
@ -227,7 +226,7 @@ void MovieSetPalette(unsigned char *p, unsigned start, unsigned count)
}
#define BOX_BORDER (MenuHires?40:20)
#define BOX_BORDER (HiresGFX?40:20)
void show_pause_message(char *msg)
@ -309,7 +308,7 @@ int RunMovie(char *filename, int hires_flag, int must_have,int dx,int dy)
frame_num = 0;
FontHires = FontHiresAvailable && hires_flag;
HiresGFX = HiresGFXAvailable && hires_flag;
while((result = MVE_rmStepMovie()) == 0) {
@ -551,7 +550,7 @@ void draw_subtitles(int frame_num)
num_active_subtitles = 0;
next_subtitle = 0;
gr_set_curfont( GAME_FONT );
line_spacing = grd_curcanv->cv_font->ft_h + (grd_curcanv->cv_font->ft_h >> 2);
line_spacing = FONTSCALE_Y(grd_curcanv->cv_font->ft_h + (grd_curcanv->cv_font->ft_h >> 2));
gr_set_fontcolor(255,-1);
}

View file

@ -82,8 +82,8 @@ static char rcsid[] = "$Id: network.c,v 1.1.1.1 2006/03/17 19:56:24 zicodxx Exp
#include "appltalk.h"
#endif
#define LHX(x) (FONTSCALE_X((x)*(MenuHires?2:1)))
#define LHY(y) (FONTSCALE_Y((y)*(MenuHires?2.4:1)))
#define LHX(x) (FONTSCALE_X((x)*(HiresGFX?2:1)))
#define LHY(y) (FONTSCALE_Y((y)*(HiresGFX?2.4:1)))
/* the following are the possible packet identificators.
* they are stored in the "type" field of the packet structs.
@ -6573,7 +6573,7 @@ void show_game_rules(netgame_info game)
gr_set_current_canvas(NULL);
if (MenuHires)
if (HiresGFX)
gr_init_sub_canvas(&canvas, &grd_curscreen->sc_canvas, (SWIDTH - FONTSCALE_X(640))/2, (SHEIGHT - FONTSCALE_Y(480))/2, FONTSCALE_X(640), FONTSCALE_Y(480));
else
gr_init_sub_canvas(&canvas, &grd_curscreen->sc_canvas, (SWIDTH - FONTSCALE_X(320))/2, (SHEIGHT - FONTSCALE_Y(200))/2, FONTSCALE_X(320), FONTSCALE_Y(200));

View file

@ -85,10 +85,10 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
#include "gp2x.h"
#endif
#define MAXDISPLAYABLEITEMS (MenuHires?15:14)
#define MAXDISPLAYABLEITEMS (HiresGFX?15:14)
#define LHX(x) (FONTSCALE_X((x)*(MenuHires?2:1)))
#define LHY(y) (FONTSCALE_Y((y)*(MenuHires?2.4:1)))
#define LHX(x) (FONTSCALE_X((x)*(HiresGFX?2:1)))
#define LHY(y) (FONTSCALE_Y((y)*(HiresGFX?2.4:1)))
#define TITLE_FONT HUGE_FONT
#define NORMAL_FONT MEDIUM1_FONT //normal, non-highlighted item
@ -111,10 +111,10 @@ typedef struct bkg {
grs_bitmap nm_background,nm_background1,nm_background_save;
#define MESSAGEBOX_TEXT_SIZE 2176 // How many characters in messagebox (changed form 300 (fixes crash from show_game_score and friends) - 2000/01/18 Matt Mueller)
#define MAX_TEXT_WIDTH FONTSCALE_X((MenuHires)?240:120) // How many pixels wide a input box can be
#define MAX_TEXT_WIDTH FONTSCALE_X((HiresGFX)?240:120) // How many pixels wide a input box can be
#define MENSCALE_X ((MenuHires)?(SWIDTH/640):(SWIDTH/320))
#define MENSCALE_Y ((MenuHires)?(SHEIGHT/480):(SHEIGHT/200))
#define MENSCALE_X ((HiresGFX)?(SWIDTH/640):(SWIDTH/320))
#define MENSCALE_Y ((HiresGFX)?(SHEIGHT/480):(SHEIGHT/200))
ubyte MenuReordering=0;
ubyte SurfingNet=0;
@ -165,7 +165,7 @@ void nm_draw_copyright()
//say this is vertigo version
if (vertigo_present) {
gr_set_curfont(MEDIUM2_FONT);
gr_printf(MenuHires?495*((double)SWIDTH/640):248*((double)SWIDTH/320), MenuHires?88*((double)SHEIGHT/480):37*((double)SHEIGHT/200), "Vertigo");
gr_printf(HiresGFX?495*((double)SWIDTH/640):248*((double)SWIDTH/320), HiresGFX?88*((double)SHEIGHT/480):37*((double)SHEIGHT/200), "Vertigo");
}
}
@ -233,7 +233,7 @@ void nm_draw_background1(char * filename)
#define MENU_BACKGROUND_BITMAP_HIRES (cfexist("scoresb.pcx")?"scoresb.pcx":"scores.pcx")
#define MENU_BACKGROUND_BITMAP_LORES (cfexist("scores.pcx")?"scores.pcx":"scoresb.pcx") // Mac datafiles only have scoresb.pcx
#define MENU_BACKGROUND_BITMAP (MenuHires?MENU_BACKGROUND_BITMAP_HIRES:MENU_BACKGROUND_BITMAP_LORES)
#define MENU_BACKGROUND_BITMAP (HiresGFX?MENU_BACKGROUND_BITMAP_HIRES:MENU_BACKGROUND_BITMAP_LORES)
// Draws the frame background for menus
void nm_draw_background(int x1, int y1, int x2, int y2 )
@ -287,10 +287,10 @@ void nm_draw_background(int x1, int y1, int x2, int y2 )
//scale the bevels to the res.
gr_setcolor( BM_XRGB(0,0,0) );
for (w=5*(SWIDTH/((MenuHires)?640.0:320.0));w>=0;w--)
gr_urect( x2-w, y1+w*((SHEIGHT/((MenuHires)?480.0:200.0))/(SWIDTH/((MenuHires)?640.0:320.0))), x2-w, y2-(SHEIGHT/((MenuHires)?480.0:200.0)) );//right edge
for (h=5*(SHEIGHT/((MenuHires)?480.0:200.0));h>=0;h--)
gr_urect( x1+h*((SWIDTH/((MenuHires)?640.0:320.0))/(SHEIGHT/((MenuHires)?480.0:200.0))), y2-h, x2, y2-h );//bottom edge
for (w=5*(SWIDTH/((HiresGFX)?640.0:320.0));w>=0;w--)
gr_urect( x2-w, y1+w*((SHEIGHT/((HiresGFX)?480.0:200.0))/(SWIDTH/((HiresGFX)?640.0:320.0))), x2-w, y2-(SHEIGHT/((HiresGFX)?480.0:200.0)) );//right edge
for (h=5*(SHEIGHT/((HiresGFX)?480.0:200.0));h>=0;h--)
gr_urect( x1+h*((SWIDTH/((HiresGFX)?640.0:320.0))/(SHEIGHT/((HiresGFX)?480.0:200.0))), y2-h, x2, y2-h );//bottom edge
Gr_scanline_darkening_level = GR_FADE_LEVELS;
}
@ -665,9 +665,9 @@ extern int network_request_player_names(int);
ubyte Hack_DblClick_MenuMode=0;
#endif
#define CLOSE_X ((MenuHires?15:7)*MENSCALE_X)
#define CLOSE_Y ((MenuHires?15:7)*MENSCALE_Y)
#define CLOSE_SIZE FONTSCALE_X(MenuHires?10:5)
#define CLOSE_X ((HiresGFX?15:7)*MENSCALE_X)
#define CLOSE_Y ((HiresGFX?15:7)*MENSCALE_Y)
#define CLOSE_SIZE FONTSCALE_X(HiresGFX?10:5)
void draw_close_box(int x,int y)
{
@ -899,15 +899,15 @@ int newmenu_do4( char * title, char * subtitle, int nitems, newmenu_item * item,
mprintf(( 0, "Right offset = %d\n", right_offset ));
// Find min point of menu border
w += (MenuHires?60:30)*MENSCALE_X;
h += (MenuHires?60:30)*MENSCALE_Y;
w += (HiresGFX?60:30)*MENSCALE_X;
h += (HiresGFX?60:30)*MENSCALE_Y;
/* If window is as or almost as big as screen define hard size so it fits (with borders and stuff).
Also make use of MENSCALE_* so we are sure it does scale correct if font does scale or not */
if (w >= (MenuHires?640:320)*MENSCALE_X-3)
w=(MenuHires?638:318)*MENSCALE_X;
if (h >= (MenuHires?480:200)*MENSCALE_Y-3)
h=(MenuHires?478:198)*MENSCALE_Y;
if (w >= (HiresGFX?640:320)*MENSCALE_X-3)
w=(HiresGFX?638:318)*MENSCALE_X;
if (h >= (HiresGFX?480:200)*MENSCALE_Y-3)
h=(HiresGFX?478:198)*MENSCALE_Y;
x = (grd_curcanv->cv_bitmap.bm_w-w)/2;
y = (grd_curcanv->cv_bitmap.bm_h-h)/2;
@ -926,7 +926,7 @@ int newmenu_do4( char * title, char * subtitle, int nitems, newmenu_item * item,
bg.menu_canvas = gr_create_sub_canvas( &grd_curscreen->sc_canvas, x, y, w+MENSCALE_X, h+MENSCALE_Y );
gr_set_current_canvas(bg.menu_canvas);
ty = (MenuHires?30:15)*MENSCALE_Y;
ty = (HiresGFX?30:15)*MENSCALE_Y;
#ifndef OGL
if ( filename == NULL ) {
@ -989,8 +989,8 @@ int newmenu_do4( char * title, char * subtitle, int nitems, newmenu_item * item,
// Update all item's x & y values.
for (i=0; i<nitems; i++ ) {
item[i].x = (MenuHires?30:15)*MENSCALE_X + twidth + right_offset;
item[i].y += (MenuHires?30:15)*MENSCALE_Y;
item[i].x = (HiresGFX?30:15)*MENSCALE_X + twidth + right_offset;
item[i].y += (HiresGFX?30:15)*MENSCALE_Y;
if ( item[i].type==NM_TYPE_RADIO ) {
fm = -1; // find first marked one
for ( j=0; j<nitems; j++ ) {
@ -1475,7 +1475,7 @@ int newmenu_do4( char * title, char * subtitle, int nitems, newmenu_item * item,
if (ScrollOffset != 0) {
gr_get_string_size(UP_ARROW_MARKER, &arrow_width, &arrow_height, &aw);
x2 = grd_curcanv->cv_bitmap.bm_x + item[ScrollOffset].x-(MenuHires?24:12);
x2 = grd_curcanv->cv_bitmap.bm_x + item[ScrollOffset].x-(HiresGFX?24:12);
y1 = grd_curcanv->cv_bitmap.bm_y + item[ScrollOffset].y-((string_height+1)*ScrollOffset);
x1 = x1 - arrow_width;
y2 = y1 + arrow_height;
@ -1495,7 +1495,7 @@ int newmenu_do4( char * title, char * subtitle, int nitems, newmenu_item * item,
}
if (ScrollOffset+MaxDisplayable<nitems) {
gr_get_string_size(DOWN_ARROW_MARKER, &arrow_width, &arrow_height, &aw);
x2 = grd_curcanv->cv_bitmap.bm_x + item[ScrollOffset+MaxDisplayable-1].x-(MenuHires?24:12);
x2 = grd_curcanv->cv_bitmap.bm_x + item[ScrollOffset+MaxDisplayable-1].x-(HiresGFX?24:12);
y1 = grd_curcanv->cv_bitmap.bm_y + item[ScrollOffset+MaxDisplayable-1].y-((string_height+1)*ScrollOffset);
x1 = x1 - arrow_width;
y2 = y1 + arrow_height;
@ -1757,21 +1757,21 @@ int newmenu_do4( char * title, char * subtitle, int nitems, newmenu_item * item,
grd_curcanv->cv_font = SELECTED_FONT;
sy=item[ScrollOffset].y-((string_height+FONTSCALE_Y(1))*ScrollOffset);
sx=item[ScrollOffset].x-(MenuHires?24:12);
sx=item[ScrollOffset].x-(HiresGFX?24:12);
if (ScrollOffset!=0)
nm_rstring( &bg, (MenuHires?20:10), sx, sy, UP_ARROW_MARKER );
nm_rstring( &bg, (HiresGFX?20:10), sx, sy, UP_ARROW_MARKER );
else
nm_rstring( &bg, (MenuHires?20:10), sx, sy, " " );
nm_rstring( &bg, (HiresGFX?20:10), sx, sy, " " );
sy=item[ScrollOffset+MaxDisplayable-1].y-((string_height+FONTSCALE_Y(1))*ScrollOffset);
sx=item[ScrollOffset+MaxDisplayable-1].x-(MenuHires?24:12);
sx=item[ScrollOffset+MaxDisplayable-1].x-(HiresGFX?24:12);
if (ScrollOffset+MaxDisplayable<nitems)
nm_rstring( &bg, (MenuHires?20:10), sx, sy, DOWN_ARROW_MARKER );
nm_rstring( &bg, (HiresGFX?20:10), sx, sy, DOWN_ARROW_MARKER );
else
nm_rstring( &bg, (MenuHires?20:10), sx, sy, " " );
nm_rstring( &bg, (HiresGFX?20:10), sx, sy, " " );
}

View file

@ -110,18 +110,11 @@ hli highest_levels[MAX_MISSIONS];
//version 24 -> 25: add d2x keys array
#define COMPATIBLE_PLAYER_FILE_VERSION 17
#define WINDOWSIZE 1
#define RESOLUTION 2
#define MOUSE_SENSITIVITY 4
#define JOY_DEADZONE 8
int Default_leveling_on=1;
extern ubyte SecondaryOrder[],PrimaryOrder[];
extern void InitWeaponOrdering();
static int Player_render_width = 0;
static int Player_render_height = 0;
int new_player_config()
{
int i,j,control_choice;
@ -171,9 +164,6 @@ int read_player_d2x(char *filename)
int rc = 0;
char line[20],*word;
int Stop=0;
char plxver[6];
sprintf(plxver,"v0.00");
f = PHYSFSX_openReadBuffered(filename);
@ -185,46 +175,7 @@ int read_player_d2x(char *filename)
cfgets(line,20,f);
word=splitword(line,':');
strupr(word);
if (strstr(word,"PLX VERSION"))
{
d_free(word);
cfgets(line,20,f);
word=splitword(line,'=');
strupr(word);
while(!strstr(word,"END") && !PHYSFS_eof(f))
{
if(!strcmp(word,"PLX VERSION"))
{
int maj=0,min=0;
sscanf(line,"%i.%i",&maj,&min);
sprintf(plxver,"v%i.%d",maj,min);
}
d_free(word);
cfgets(line,20,f);
word=splitword(line,'=');
strupr(word);
}
}
else if (strstr(word,"RESOLUTION"))
{
d_free(word);
cfgets(line,20,f);
word=splitword(line,'=');
strupr(word);
while(!strstr(word,"END") && !PHYSFS_eof(f))
{
if(!strcmp(word,"WIDTH"))
sscanf(line,"%i",&Player_render_width);
if(!strcmp(word,"HEIGHT"))
sscanf(line,"%i",&Player_render_height);
d_free(word);
cfgets(line,20,f);
word=splitword(line,'=');
strupr(word);
}
}
else if (strstr(word,"MOUSE"))
if (strstr(word,"MOUSE"))
{
d_free(word);
cfgets(line,20,f);
@ -293,10 +244,8 @@ int read_player_d2x(char *filename)
int write_player_d2x(char *filename)
{
PHYSFS_file *fin, *fout;
PHYSFS_file *fout;
int rc=0;
int Stop=0;
char line[20];
char tempfile[PATH_MAX];
char str[256];
@ -313,166 +262,28 @@ int write_player_d2x(char *filename)
if(fout)
{
fin=PHYSFSX_openReadBuffered(filename);
if(!fin)
{
sprintf (str, "[D2X OPTIONS]\n");
PHYSFSX_puts(fout, str);
sprintf (str, "[resolution]\n");
PHYSFSX_puts(fout, str);
sprintf (str, "width=%i\n", SM_W(Game_screen_mode));
PHYSFSX_puts(fout, str);
sprintf (str, "height=%d\n", SM_H(Game_screen_mode));
PHYSFSX_puts(fout, str);
sprintf (str, "[end]\n");
PHYSFSX_puts(fout, str);
sprintf (str, "[mouse]\n");
PHYSFSX_puts(fout, str);
sprintf (str, "sensitivity=%d\n",Config_mouse_sensitivity);
PHYSFSX_puts(fout, str);
sprintf (str, "[end]\n");
PHYSFSX_puts(fout, str);
sprintf (str, "[joystick]\n");
PHYSFSX_puts(fout, str);
sprintf (str, "deadzone=%d\n", joy_deadzone);
PHYSFSX_puts(fout, str);
sprintf (str, "[end]\n");
PHYSFSX_puts(fout, str);
sprintf (str, "[plx version]\n");
PHYSFSX_puts(fout, str);
sprintf (str, "plx version=%s\n", VERSION);
PHYSFSX_puts(fout, str);
sprintf (str, "[end]\n");
PHYSFSX_puts(fout, str);
sprintf (str, "[end]\n");
PHYSFSX_puts(fout, str);
}
else
{
int printed=0;
while(!Stop && !PHYSFS_eof(fin))
{
cfgets(line,20,fin);
strupr(line);
if (strstr(line,"PLX VERSION"))
{
while(!strstr(line,"END")&&!PHYSFS_eof(fin))
{
cfgets(line,20,fin);
strupr(line);
}
}
else if (strstr(line,"RESOLUTION"))
{
sprintf (str, "[resolution]\n");
PHYSFSX_puts(fout, str);
sprintf (str, "width=%i\n", SM_W(Game_screen_mode));
PHYSFSX_puts(fout, str);
sprintf (str, "height=%d\n", SM_H(Game_screen_mode));
PHYSFSX_puts(fout, str);
sprintf (str, "[end]\n");
PHYSFSX_puts(fout, str);
while(!strstr(line,"END")&&!PHYSFS_eof(fin))
{
cfgets(line,20,fin);
strupr(line);
}
printed |= RESOLUTION;
}
else if (strstr(line,"MOUSE"))
{
sprintf (str, "[mouse]\n");
PHYSFSX_puts(fout, str);
sprintf (str, "sensitivity=%d\n",Config_mouse_sensitivity);
PHYSFSX_puts(fout, str);
sprintf (str, "[end]\n");
PHYSFSX_puts(fout, str);
while(!strstr(line,"END")&&!PHYSFS_eof(fin))
{
cfgets(line,20,fin);
strupr(line);
}
printed |= MOUSE_SENSITIVITY;
}
else if (strstr(line,"JOYSTICK"))
{
sprintf (str, "[joystick]\n");
PHYSFSX_puts(fout, str);
sprintf (str, "deadzone=%d\n", joy_deadzone);
PHYSFSX_puts(fout, str);
sprintf (str, "[end]\n");
PHYSFSX_puts(fout, str);
while(!strstr(line,"END")&&!PHYSFS_eof(fin))
{
cfgets(line,20,fin);
strupr(line);
}
printed |= JOY_DEADZONE;
}
else if (strstr(line,"END"))
{
Stop=1;
}
else
{
if(line[0]=='['&&!strstr(line,"D2X OPTIONS"))
while(!strstr(line,"END") && !PHYSFS_eof(fin))
{
sprintf (str, "%s\n", line);
PHYSFSX_puts(fout, str);
cfgets(line,20,fin);
strupr(line);
}
sprintf (str, "%s\n", line);
PHYSFSX_puts(fout, str);
}
if(!Stop&&PHYSFS_eof(fin))
Stop=1;
}
if(!(printed&RESOLUTION))
{
sprintf (str, "[resolution]\n");
PHYSFSX_puts(fout, str);
sprintf (str, "width=%i\n", SM_W(Game_screen_mode));
PHYSFSX_puts(fout, str);
sprintf (str, "height=%d\n", SM_H(Game_screen_mode));
PHYSFSX_puts(fout, str);
sprintf (str, "[end]\n");
PHYSFSX_puts(fout, str);
}
if(!(printed&MOUSE_SENSITIVITY))
{
sprintf (str, "[mouse]\n");
PHYSFSX_puts(fout, str);
sprintf (str, "sensitivity=%d\n",Config_mouse_sensitivity);
PHYSFSX_puts(fout, str);
sprintf (str, "[end]\n");
PHYSFSX_puts(fout, str);
}
if(!(printed&JOY_DEADZONE))
{
sprintf (str, "[joystick]\n");
PHYSFSX_puts(fout, str);
sprintf (str, "deadzone=%d\n",joy_deadzone);
PHYSFSX_puts(fout, str);
sprintf (str, "[end]\n");
PHYSFSX_puts(fout, str);
}
sprintf (str, "[plx version]\n");
PHYSFSX_puts(fout, str);
sprintf (str, "plx version=%s\n", VERSION);
PHYSFSX_puts(fout, str);
sprintf (str, "[end]\n");
PHYSFSX_puts(fout, str);
sprintf (str, "[end]\n");
PHYSFSX_puts(fout, str);
PHYSFS_close(fin);
}
sprintf (str, "[D2X OPTIONS]\n");
PHYSFSX_puts(fout, str);
sprintf (str, "[mouse]\n");
PHYSFSX_puts(fout, str);
sprintf (str, "sensitivity=%d\n",Config_mouse_sensitivity);
PHYSFSX_puts(fout, str);
sprintf (str, "[end]\n");
PHYSFSX_puts(fout, str);
sprintf (str, "[joystick]\n");
PHYSFSX_puts(fout, str);
sprintf (str, "deadzone=%d\n", joy_deadzone);
PHYSFSX_puts(fout, str);
sprintf (str, "[end]\n");
PHYSFSX_puts(fout, str);
sprintf (str, "[plx version]\n");
PHYSFSX_puts(fout, str);
sprintf (str, "plx version=%s\n", VERSION);
PHYSFSX_puts(fout, str);
sprintf (str, "[end]\n");
PHYSFSX_puts(fout, str);
sprintf (str, "[end]\n");
PHYSFSX_puts(fout, str);
PHYSFS_close(fout);
if(rc==0)
@ -489,15 +300,11 @@ int write_player_d2x(char *filename)
extern int Guided_in_big_window;
int Automap_always_hires=0; // FIXME: unused - remove me
//this length must match the value in escort.c
#define GUIDEBOT_NAME_LEN 9
extern char guidebot_name[];
extern char real_guidebot_name[];
WIN(extern char win95_current_joyname[]);
ubyte control_type_dos,control_type_win;
@ -544,20 +351,17 @@ int read_player_file()
return -1;
}
//skip Game_window_w,Game_window_h
PHYSFS_seek(file,PHYSFS_tell(file)+2*sizeof(short));
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);
Default_display_mode = 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);
if (player_file_version >= 19)
Automap_always_hires = cfile_read_byte(file);
PHYSFS_seek(file,PHYSFS_tell(file)+sizeof(sbyte)); //skip Automap_always_hires
Auto_leveling_on = Default_leveling_on;
@ -696,14 +500,6 @@ int read_player_file()
strlwr(filename);
read_player_d2x(filename);
if (Player_render_width && Player_render_height && Game_screen_mode != SM(Player_render_width, Player_render_height))
{
Game_screen_mode = SM(Player_render_width,Player_render_height);
game_init_render_buffers(
Player_render_width,
Player_render_height, VR_NONE, 0);
}
return EZERO;
read_player_file_failed:
@ -800,18 +596,17 @@ int write_player_file()
PHYSFS_writeULE32(file, SAVE_FILE_ID);
PHYSFS_writeULE16(file, PLAYER_FILE_VERSION);
// skip Game_window_w, Game_window_h
PHYSFS_seek(file,PHYSFS_tell(file)+2*(sizeof(PHYSFS_uint16)));
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_save!=-1)?Cockpit_mode_save:Cockpit_mode); //if have saved mode, write it instead of letterbox/rear view
PHYSFSX_writeU8(file, Default_display_mode);
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, Automap_always_hires);
PHYSFS_seek(file,PHYSFS_tell(file)+sizeof(PHYSFS_uint8)); // skip Automap_always_hires
//write higest level info
PHYSFS_writeULE16(file, n_highest_levels);

View file

@ -87,8 +87,8 @@ char scores_filename[128];
#define XX (7)
#define YY (-3)
#define LHX(x) ((x)*(MenuHires?FONTSCALE_X(2):FONTSCALE_X(1)))
#define LHY(y) ((y)*(MenuHires?FONTSCALE_Y(2.4):FONTSCALE_Y(1)))
#define LHX(x) ((x)*(HiresGFX?FONTSCALE_X(2):FONTSCALE_X(1)))
#define LHY(y) ((y)*(HiresGFX?FONTSCALE_Y(2.4):FONTSCALE_Y(1)))
char * get_scores_filename()
@ -378,7 +378,7 @@ ReshowScores:
gr_set_current_canvas(NULL);
if (MenuHires)
if (HiresGFX)
gr_init_sub_canvas(&canvas, &grd_curscreen->sc_canvas, (SWIDTH - FONTSCALE_X(640))/2, (SHEIGHT - FONTSCALE_Y(480))/2, FONTSCALE_X(640), FONTSCALE_Y(480));
else
gr_init_sub_canvas(&canvas, &grd_curscreen->sc_canvas, (SWIDTH - FONTSCALE_X(320))/2, (SHEIGHT - FONTSCALE_Y(200))/2, FONTSCALE_X(320), FONTSCALE_Y(200));

View file

@ -181,7 +181,7 @@ void state_callback(int nitems,newmenu_item * items, int * last_key, int citem)
if ( citem > 0 ) {
if ( sc_bmp[citem-1] ) {
if (MenuHires) {
if (HiresGFX) {
grs_canvas *save_canv = grd_curcanv;
grs_canvas *temp_canv = gr_create_canvas(THUMBNAIL_W*2,(THUMBNAIL_H*24/10));
grs_point vertbuf[3] = {{0,0}, {0,0}, {i2f(THUMBNAIL_W*2),i2f(THUMBNAIL_H*24/10)} };

View file

@ -239,7 +239,7 @@ void show_titles(void)
played = PlayMovie("pre_i.mve",0);
if (!played) {
strcpy(filename,MenuHires?"pre_i1b.pcx":"pre_i1.pcx");
strcpy(filename,HiresGFX?"pre_i1b.pcx":"pre_i1.pcx");
while (PHYSFS_exists(filename))
{
@ -271,7 +271,7 @@ void show_titles(void)
song_playing = 1;
con_printf( CON_DEBUG, "\nShowing logo screens..." );
strcpy(filename, MenuHires?"iplogo1b.pcx":"iplogo1.pcx"); // OEM
strcpy(filename, HiresGFX?"iplogo1b.pcx":"iplogo1.pcx"); // OEM
if (! cfexist(filename))
strcpy(filename, "iplogo1.pcx"); // SHAREWARE
if (! cfexist(filename))
@ -279,7 +279,7 @@ void show_titles(void)
if (cfexist(filename))
show_title_screen(filename, 1, 1);
strcpy(filename, MenuHires?"logob.pcx":"logo.pcx"); // OEM
strcpy(filename, HiresGFX?"logob.pcx":"logo.pcx"); // OEM
if (! cfexist(filename))
strcpy(filename, "logo.pcx"); // SHAREWARE
if (! cfexist(filename))
@ -307,7 +307,7 @@ void show_titles(void)
if (!played)
{
strcpy(filename,MenuHires?"oem1b.pcx":"oem1.pcx");
strcpy(filename,HiresGFX?"oem1b.pcx":"oem1.pcx");
while (PHYSFS_exists(filename))
{
@ -327,9 +327,9 @@ void show_loading_screen(ubyte *title_pal)
int pcx_error;
char filename[14];
strcpy(filename, MenuHires?"descentb.pcx":"descent.pcx");
strcpy(filename, HiresGFX?"descentb.pcx":"descent.pcx");
if (! cfexist(filename))
strcpy(filename, MenuHires?"descntob.pcx":"descento.pcx"); // OEM
strcpy(filename, HiresGFX?"descntob.pcx":"descento.pcx"); // OEM
if (! cfexist(filename))
strcpy(filename, "descentd.pcx"); // SHAREWARE
if (! cfexist(filename))
@ -339,8 +339,6 @@ void show_loading_screen(ubyte *title_pal)
set_screen_mode(SCREEN_MENU);
#endif
FontHires = FontHiresAvailable && MenuHires;
if ((pcx_error=pcx_read_fullscr( filename, title_pal ))==PCX_ERROR_NONE) {
//vfx_set_palette_sub( title_pal );
gr_palette_clear();
@ -869,7 +867,7 @@ int show_briefing_message(int screen_num, char *message)
init_char_pos(bsp->text_ulx, bsp->text_uly);
} else {
bsp=&Briefing_screens[0];
init_char_pos(bsp->text_ulx, bsp->text_uly-(8*(1+MenuHires)));
init_char_pos(bsp->text_ulx, bsp->text_uly-(8*(1+HiresGFX)));
}
while (!done) {
@ -899,7 +897,7 @@ int show_briefing_message(int screen_num, char *message)
;
} else if (ch == 'T') {
tab_stop = get_message_num(&message);
tab_stop*=(1+MenuHires);
tab_stop*=(1+HiresGFX);
prev_ch = 10; // read to eoln
} else if (ch == 'R') {
if (Robot_canv != NULL) {
@ -991,7 +989,7 @@ int show_briefing_message(int screen_num, char *message)
fname2[i++]='x';
fname2[i++]=0;
if ((MenuHires && cfexist(fname2)) || !cfexist(fname))
if ((HiresGFX && cfexist(fname2)) || !cfexist(fname))
load_new_briefing_screen (fname2);
else
load_new_briefing_screen (fname);
@ -1003,7 +1001,6 @@ int show_briefing_message(int screen_num, char *message)
}
#endif
}
//load_new_briefing_screen (MenuHires?"end01b.pcx":"end01.pcx");
} else if (ch == 'B') {
char bitmap_name[32];
@ -1079,7 +1076,7 @@ int show_briefing_message(int screen_num, char *message)
if (!GotZ) {
Int3(); // Hey ryan!!!! You gotta load a screen before you start
// printing to it! You know, $Z !!!
load_new_briefing_screen (MenuHires?"end01b.pcx":"end01.pcx");
load_new_briefing_screen (HiresGFX?"end01b.pcx":"end01.pcx");
}
new_page = 1;
@ -1104,7 +1101,7 @@ int show_briefing_message(int screen_num, char *message)
if (prev_ch != '\\') {
prev_ch = ch;
if (DumbAdjust==0)
Briefing_text_y += FONTSCALE_Y(8*(MenuHires+1));
Briefing_text_y += FONTSCALE_Y(8*(HiresGFX+1));
else
DumbAdjust--;
Briefing_text_x = bsp->text_ulx;
@ -1132,7 +1129,7 @@ int show_briefing_message(int screen_num, char *message)
if (!GotZ) {
Int3(); // Hey ryan!!!! You gotta load a screen before you start
// printing to it! You know, $Z !!!
load_new_briefing_screen (MenuHires?"end01b.pcx":"end01.pcx");
load_new_briefing_screen (HiresGFX?"end01b.pcx":"end01.pcx");
}
#ifdef OGL
@ -1277,7 +1274,8 @@ int show_briefing_message(int screen_num, char *message)
}
#ifdef OGL
gr_free_bitmap_data (&briefing_bm);
if (!init_briefing_bm)
gr_free_bitmap_data (&briefing_bm);
init_briefing_bm=1;
#endif
@ -1614,13 +1612,13 @@ void show_order_form()
key_flush();
strcpy(exit_screen, MenuHires?"ordrd2ob.pcx":"ordrd2o.pcx"); // OEM
strcpy(exit_screen, HiresGFX?"ordrd2ob.pcx":"ordrd2o.pcx"); // OEM
if (! cfexist(exit_screen))
strcpy(exit_screen, MenuHires?"orderd2b.pcx":"orderd2.pcx"); // SHAREWARE, prefer mac if hires
strcpy(exit_screen, HiresGFX?"orderd2b.pcx":"orderd2.pcx"); // SHAREWARE, prefer mac if hires
if (! cfexist(exit_screen))
strcpy(exit_screen, MenuHires?"orderd2.pcx":"orderd2b.pcx"); // SHAREWARE, have to rescale
strcpy(exit_screen, HiresGFX?"orderd2.pcx":"orderd2b.pcx"); // SHAREWARE, have to rescale
if (! cfexist(exit_screen))
strcpy(exit_screen, MenuHires?"warningb.pcx":"warning.pcx"); // D1
strcpy(exit_screen, HiresGFX?"warningb.pcx":"warning.pcx"); // D1
if (! cfexist(exit_screen))
return; // D2 registered