support shareware datafiles\!
authorBradley Bell <btb@icculus.org>
Tue, 30 Jul 2002 11:05:53 +0000 (11:05 +0000)
committerBradley Bell <btb@icculus.org>
Tue, 30 Jul 2002 11:05:53 +0000 (11:05 +0000)
12 files changed:
2d/font.c
include/gr.h
include/grdef.h
main/game.c
main/gamefont.c
main/gamefont.h
main/gamemine.c
main/inferno.c
main/movie.c
main/newmenu.c
main/piggy.c
main/titles.c

index c47a2ff..e13f965 100644 (file)
--- a/2d/font.c
+++ b/2d/font.c
@@ -1,4 +1,4 @@
-/* $Id: font.c,v 1.15 2002-07-27 03:10:52 btb Exp $ */
+/* $Id: font.c,v 1.16 2002-07-30 11:05:53 btb Exp $ */
 /*
 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
@@ -1622,6 +1622,7 @@ grs_font * gr_init_font( char * fontname )
                int i;
                for (i=0;i<MAX_OPEN_FONTS;i++)
                        open_font[i].ptr = NULL;
+                       open_font[i].dataptr = NULL;
                first_time=0;
        }
 
@@ -1633,12 +1634,16 @@ grs_font * gr_init_font( char * fontname )
 
        fontfile = cfopen(fontname, "rb");
 
-       if (!fontfile)
-               Error( "Can't open font file %s", fontname );
+       if (!fontfile) {
+               con_printf(CON_VERBOSE, "Can't open font file %s", fontname);
+               return NULL;
+       }
 
        cfread(file_id, 4, 1, fontfile);
-       if ( !strncmp( file_id, "NFSP", 4 ) )
-               Error( "File %s is not a font file", fontname );
+       if ( !strncmp( file_id, "NFSP", 4 ) ) {
+               con_printf(CON_NORMAL, "File %s is not a font file", fontname );
+               return NULL;
+       }
 
        datasize = cfile_read_int(fontfile);
        datasize -= GRS_FONT_SIZE; // subtract the size of the header.
index 8c63e62..fa9c772 100644 (file)
@@ -321,6 +321,7 @@ int gr_uaaline(fix x0,fix y0,fix x1,fix y1);
 void gr_bitmap(int x,int y,grs_bitmap *bm);
 void gr_ubitmap(int x,int y,grs_bitmap *bm);
 void gr_bitmap_scale_to(grs_bitmap *src, grs_bitmap *dst);
+void show_fullscr(grs_bitmap *bm);
 
 // bitmap function with transparency
 void gr_bitmapm( int x, int y, grs_bitmap *bm );
index 91b2147..e5c0550 100644 (file)
@@ -1,3 +1,4 @@
+/* $Id: grdef.h,v 1.4 2002-07-30 11:05:53 btb Exp $ */
 /*
 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
@@ -11,25 +12,10 @@ AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
 COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
 */
 /*
- * $Source: /cvs/cvsroot/d2x/include/grdef.h,v $
- * $Revision: 1.3 $
- * $Author: bradleyb $
- * $Date: 2002-02-15 12:21:45 $
  *
  * Internal definitions for graphics lib.
  *
- * $Log: not supported by cvs2svn $
- * Revision 1.2  2001/11/14 10:31:40  bradleyb
- * change __ENV_WINDOWS__ to __WINDOWS__, __ENV_MSDOS__ to __MSDOS__
- *
- * Revision 1.1.1.2  2001/01/19 03:34:09  bradleyb
- * Import of d2x-0.0.9-pre1
- *
- * Revision 1.2  1999/11/20 10:05:16  donut
- * variable size menu patch from Jan Bobrowski.  Variable menu font size support and a bunch of fixes for menus that didn't work quite right, by me (MPM).
- *
- * Revision 1.1.1.1  1999/06/14 22:02:14  donut
- * Import of d1x 1.37 source.
+ * Old Log:
  *
  * Revision 1.5  1995/09/14  15:36:33  allender
  * added stuff for 68k version
@@ -77,7 +63,6 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
 #define USE_2D_ASM 1
  
 void gr_init_bitmap_alloc( grs_bitmap *bm, int mode, int x, int y, int w, int h, int bytesperline);
-void show_fullscr(grs_bitmap *bm);
 void gr_init_sub_bitmap (grs_bitmap *bm, grs_bitmap *bmParent, int x, int y, int w, int h );
 void gr_init_bitmap( grs_bitmap *bm, int mode, int x, int y, int w, int h, int bytesperline, unsigned char * data );
 
index e82746e..da3d1fd 100644 (file)
@@ -16,7 +16,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
 #endif
 
 #ifdef RCS
-char game_rcsid[] = "$Id: game.c,v 1.12 2002-07-27 22:39:57 btb Exp $";
+char game_rcsid[] = "$Id: game.c,v 1.13 2002-07-30 11:05:53 btb Exp $";
 #endif
 
 #ifdef WINDOWS
@@ -906,7 +906,7 @@ WIN(static int saved_window_h);
                                                                        dd_grd_screencanv->canvas.cv_bitmap.bm_w,
                                                                        dd_grd_screencanv->canvas.cv_bitmap.bm_h);
                        MenuHires = 1;
-                       FontHires = 1;
+                       FontHires = FontHiresAvailable;
 
                #else
                {
@@ -934,7 +934,7 @@ WIN(static int saved_window_h);
                        gr_init_sub_canvas( &VR_screen_pages[0], &grd_curscreen->sc_canvas, 0, 0, grd_curscreen->sc_w, grd_curscreen->sc_h );
                        gr_init_sub_canvas( &VR_screen_pages[1], &grd_curscreen->sc_canvas, 0, 0, grd_curscreen->sc_w, grd_curscreen->sc_h );
 
-                       FontHires = MenuHires;
+                       FontHires = FontHiresAvailable && MenuHires;
 
                }
                #endif
@@ -1026,15 +1026,15 @@ WIN(static int saved_window_h);
                init_cockpit();
 
        #ifdef WINDOWS
-               FontHires = (Current_display_mode != 0);
+               FontHires = FontHiresAvailable && (Current_display_mode != 0);
                MenuHires = 1;
        #else
-               FontHires = MenuHires = ((Current_display_mode != 0) && (Current_display_mode != 2));
+               FontHires = FontHiresAvailable && (MenuHires = ((Current_display_mode != 0) && (Current_display_mode != 2)));
        #endif
 
                if ( VR_render_mode != VR_NONE )        {
                        // for 640x480 or higher, use hires font.
-                       if ( grd_curscreen->sc_h > 400 )
+                       if (FontHiresAvailable && (grd_curscreen->sc_h > 400))
                                FontHires = 1;
                        else
                                FontHires = 0;
index 3f4eac0..8f28d11 100644 (file)
@@ -16,7 +16,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
 #endif
 
 #ifdef RCS
-static char rcsid[] = "$Id: gamefont.c,v 1.2 2001-01-31 15:17:52 bradleyb Exp $";
+static char rcsid[] = "$Id: gamefont.c,v 1.3 2002-07-30 11:05:53 btb Exp $";
 #endif
 
 #include <stdlib.h>
@@ -27,6 +27,7 @@ static char rcsid[] = "$Id: gamefont.c,v 1.2 2001-01-31 15:17:52 bradleyb Exp $"
 
 //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
@@ -50,9 +51,15 @@ void gamefont_init()
 
        if (Gamefont_installed) return;
        Gamefont_installed = 1;
+       FontHiresAvailable = 1;
 
-       for (i=0; i<MAX_FONTS; i+)
+       for (i=0; i<MAX_FONTS; i+=2)
                Gamefonts[i] = gr_init_font(Gamefont_filenames[i]);
+       for (i=1; i<MAX_FONTS; i+=2) {
+               Gamefonts[i] = gr_init_font(Gamefont_filenames[i]);
+               if (!Gamefonts[i])
+                       FontHiresAvailable = 0;
+       }
 
        atexit( gamefont_close );
 }
index 7f1599b..f5caa8e 100644 (file)
@@ -46,5 +46,6 @@ void gamefont_init();
 void gamefont_close();
 
 extern int FontHires;
+extern int FontHiresAvailable;
 
 #endif
index 6540ac1..f937992 100644 (file)
@@ -16,7 +16,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
 #endif
 
 #ifdef RCS
-static char rcsid[] = "$Id: gamemine.c,v 1.6 2002-07-30 04:52:45 btb Exp $";
+static char rcsid[] = "$Id: gamemine.c,v 1.7 2002-07-30 11:05:53 btb Exp $";
 #endif
 
 #include <stdio.h>
@@ -613,11 +613,11 @@ void read_verts(int segnum,CFILE *LoadFile)
 void read_special(int segnum,ubyte bit_mask,CFILE *LoadFile)
 {
        if (bit_mask & (1 << MAX_SIDES_PER_SEGMENT)) {
-               // Read ubyte   Segments[segnum].special
+               // Read ubyte   Segment2s[segnum].special
                Segment2s[segnum].special = cfile_read_byte(LoadFile);
-               // Read byte    Segments[segnum].matcen_num
+               // Read byte    Segment2s[segnum].matcen_num
                Segment2s[segnum].matcen_num = cfile_read_byte(LoadFile);
-               // Read short   Segments[segnum].value
+               // Read short   Segment2s[segnum].value
                Segment2s[segnum].value = cfile_read_short(LoadFile);
        } else {
                Segment2s[segnum].special = 0;
@@ -776,7 +776,9 @@ int load_mine_data_compiled(CFILE *LoadFile)
        validate_segment_all();                 // Fill in side type and normals.
 
        for (i=0; i<Num_segments; i++) {
+#ifndef SHAREWARE
                segment2_read(&Segment2s[i], LoadFile);
+#endif
                fuelcen_activate( &Segments[i], Segment2s[i].special );
        }
 
index 61bfa00..e19b79f 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: inferno.c,v 1.34 2002-07-26 09:25:10 btb Exp $ */
+/* $Id: inferno.c,v 1.35 2002-07-30 11:05:53 btb Exp $ */
 /*
 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
@@ -839,9 +839,9 @@ int main(int argc,char **argv)
                gr_set_mode(MenuHires?SM(640,480):SM(320,200));
 #endif
 
-               FontHires = MenuHires;
+               FontHires = FontHiresAvailable && MenuHires;
 
-               if ((pcx_error=pcx_read_bitmap( filename, &grd_curcanv->cv_bitmap, grd_curcanv->cv_bitmap.bm_type, title_pal ))==PCX_ERROR_NONE)        {
+               if ((pcx_error=pcx_read_fullscr( filename, title_pal ))==PCX_ERROR_NONE)        {
                        //vfx_set_palette_sub( title_pal );
                        gr_palette_clear();
                        gr_palette_fade_in( title_pal, 32, 0 );
@@ -1116,7 +1116,7 @@ void show_order_form()
        #endif
        #endif
 
-       if ((pcx_error=pcx_read_bitmap( exit_screen, &grd_curcanv->cv_bitmap, grd_curcanv->cv_bitmap.bm_type, title_pal ))==PCX_ERROR_NONE) {
+       if ((pcx_error=pcx_read_fullscr( exit_screen, title_pal ))==PCX_ERROR_NONE) {
                //vfx_set_palette_sub( title_pal );
                gr_palette_fade_in( title_pal, 32, 0 );
                key_getch();
index 5cd7360..d27e7fb 100644 (file)
@@ -1,4 +1,4 @@
-/* $ Id: $ */
+/* $Id: movie.c,v 1.8 2002-07-30 11:05:53 btb Exp $ */
 /*
 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
@@ -17,7 +17,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
 #endif
 
 #ifdef RCS
-static char rcsid[] = "$Id: movie.c,v 1.7 2002-07-26 20:59:41 btb Exp $";
+static char rcsid[] = "$Id: movie.c,v 1.8 2002-07-30 11:05:53 btb Exp $";
 #endif
 
 #define DEBUG_LEVEL CON_NORMAL
@@ -125,10 +125,9 @@ int PlayMovie(const char *filename, int must_have)
        int save_sample_rate;
 #endif
        
-       con_printf(DEBUG_LEVEL, "movie: PlayMovie: %s %d\n", filename, must_have);
-
 #ifndef RELEASE
-       if (FindArg("-nomovies"))
+       //if (FindArg("-nomovies"))
+       if (!FindArg("-movies"))
                return MOVIE_NOT_PLAYED;
 #endif
 
@@ -185,8 +184,6 @@ int RunMovie(char *filename, int hires_flag, int must_have,int dx,int dy)
        int frame_num;
        MVESTREAM *mve;
 
-       con_printf(DEBUG_LEVEL, "movie: RunMovie: %s, %d, %d, %d\n", filename, hires_flag, must_have, dx, dy);
-
        // Open Movie file.  If it doesn't exist, no movie, just return.
 
        filehndl = open_movie_file(filename,must_have);
@@ -265,8 +262,6 @@ int RunMovie(char *filename, int hires_flag, int must_have,int dx,int dy)
 
 int InitMovieBriefing()
 {
-       con_printf(DEBUG_LEVEL, "movie: InitMovieBriefing\n");
-
 #if 0
        if (MenuHires)
                gr_set_mode(SM(640,480));
@@ -355,7 +350,6 @@ int InitRobotMovie(char *filename)
 
        RoboFilePos=lseek (RoboFile,0L,SEEK_CUR);
 
-       con_printf(DEBUG_LEVEL, "movie: InitRobotMovie: FilePos=%d!\n",RoboFilePos);
        return 1;
 #else
        return 0;
@@ -373,8 +367,6 @@ ubyte *subtitle_raw_data;
 //search for next field following whitespace 
 ubyte *next_field(ubyte *p)
 {
-       con_printf(DEBUG_LEVEL, "movie: next_field: %c\n", *p);
-
        while (*p && !isspace(*p))
                p++;
 
@@ -398,8 +390,6 @@ int init_subtitles(char *filename)
        ubyte *p;
        int have_binary = 0;
 
-       con_printf(DEBUG_LEVEL, "movie: init_subtitles: %s\n", filename);
-
        Num_subtitles = 0;
 
        if (! FindArg("-subtitles"))
@@ -469,8 +459,6 @@ int init_subtitles(char *filename)
 
 void close_subtitles()
 {
-       con_printf(DEBUG_LEVEL, "movie: close_subtitles\n");
-
        if (subtitle_raw_data)
                d_free(subtitle_raw_data);
        subtitle_raw_data = NULL;
@@ -486,8 +474,6 @@ void draw_subtitles(int frame_num)
        int t,y;
        int must_erase=0;
 
-       con_printf(DEBUG_LEVEL, "movie: draw_subtitles: %d\n", frame_num);
-
        if (frame_num == 0) {
                num_active_subtitles = 0;
                next_subtitle = 0;
@@ -528,7 +514,6 @@ void draw_subtitles(int frame_num)
        //now draw the current subtitles
        for (t=0;t<num_active_subtitles;t++)
                if (active_subtitles[t] != -1) {
-                       con_printf(DEBUG_LEVEL, "%s\n", Subtitles[active_subtitles[t]].msg);
                        gr_string(0x8000,y,Subtitles[active_subtitles[t]].msg);
                        y += line_spacing+1;
                }
@@ -548,14 +533,10 @@ movielib *init_new_movie_lib(char *filename,FILE *fp)
        int i,n;
        movielib *table;
 
-       con_printf(DEBUG_LEVEL, "movie: init_new_movie_lib: %s\n", filename);
-
        //read movie file header
 
        nfiles = file_read_int(fp);             //get number of files
 
-       con_printf(DEBUG_LEVEL, "movie: init_new_movie_lib: -> %d files\n", nfiles);
-
        //table = d_malloc(sizeof(*table) + sizeof(ml_entry)*nfiles);
        MALLOC(table, movielib, 1);
        MALLOC(table->movies, ml_entry, nfiles);
@@ -572,12 +553,8 @@ movielib *init_new_movie_lib(char *filename,FILE *fp)
                if ( n != 1 )
                        break;          //end of file (probably)
 
-               con_printf(DEBUG_LEVEL, "movie: init_new_movie_lib: -> %s\n", table->movies[i].name);
-
                len = file_read_int(fp);
 
-               con_printf(DEBUG_LEVEL, "movie: init_new_movie_lib: --> %d\n", len);
-
                table->movies[i].len = len;
                table->movies[i].offset = offset;
 
@@ -600,8 +577,6 @@ movielib *init_old_movie_lib(char *filename,FILE *fp)
        int i;
        movielib *table,*table2;
 
-       con_printf(DEBUG_LEVEL, "movie: init_old_movie_lib: %s\n", filename);
-
        nfiles = 0;
 
        //allocate big table
@@ -654,8 +629,6 @@ movielib *init_movie_lib(char *filename)
        char id[4];
        FILE * fp;
  
-       con_printf(DEBUG_LEVEL, "movie: init_movie_lib: %s\n", filename);
-
        fp = fopen( filename, "rb" );
        if ( fp == NULL ) 
                return NULL;
@@ -676,8 +649,6 @@ movielib *init_movie_lib(char *filename)
 
 void close_movie(int i)
 {
-       con_printf(DEBUG_LEVEL, "movie: close_movie\n");
-
        if (movie_libs[i]) {
                d_free(movie_libs[i]->movies);
                d_free(movie_libs[i]);
@@ -689,8 +660,6 @@ void close_movies()
 {
        int i;
 
-       con_printf(DEBUG_LEVEL, "movie: close_movies\n");
-
        for (i=0;i<N_MOVIE_LIBS;i++)
                close_movie(i);
 }
@@ -700,10 +669,9 @@ void init_movie(char *filename,int libnum,int is_robots,int required)
 {
        int high_res;
 
-       con_printf(DEBUG_LEVEL, "movie: init_movie: %s, %d, %d, %d\n", filename, libnum, is_robots, required);
-
 #ifndef RELEASE
-       if (FindArg("-nomovies")) {
+       //if (FindArg("-nomovies")) {
+       if (!FindArg("-movies")) {
                movie_libs[libnum] = NULL;
                return;
        }
@@ -764,8 +732,6 @@ void init_movies()
        int i;
        int is_robots;
 
-       con_printf(DEBUG_LEVEL, "movie: init_movies\n");
-
        for (i=0;i<N_BUILTIN_MOVIE_LIBS;i++) {
 
                if (!strnicmp(movielib_files[i],"robot",5))
@@ -795,8 +761,6 @@ int search_movie_lib(movielib *lib,char *filename,int must_have)
        int i;
        int filehandle;
 
-       con_printf(DEBUG_LEVEL, "movie: search_movie_lib: %s, %s, %d\n", lib->name, filename, must_have);
-
        if (lib == NULL)
                return -1;
 
@@ -836,8 +800,6 @@ int open_movie_file(char *filename,int must_have)
 {
        int filehandle,i;
 
-       con_printf(DEBUG_LEVEL, "movie: open_movie_file: %s %d\n", filename, must_have);
-
        for (i=0;i<N_MOVIE_LIBS;i++) {
                if ((filehandle = search_movie_lib(movie_libs[i],filename,must_have)) != -1)
                        return filehandle;
index f999d4c..68b9289 100644 (file)
@@ -168,7 +168,11 @@ void nm_draw_background1(char * filename)
        //@@Assert(grd_curcanv->cv_bitmap.bm_w == 320);
        //@@Assert(grd_curcanv->cv_bitmap.bm_h == 200);
 
+#ifdef SHAREWARE
+       bmp = gr_create_bitmap(320,200); //high res pcx not available
+#else
        bmp = gr_create_bitmap(grd_curcanv->cv_bitmap.bm_w,grd_curcanv->cv_bitmap.bm_h);
+#endif
 
        pcx_error = pcx_read_bitmap(filename,bmp,bmp->bm_type,pal);
        Assert(pcx_error == PCX_ERROR_NONE);
@@ -194,7 +198,7 @@ WIN(DDGRLOCK(dd_grd_curcanv));
     pa_save_clut();
     pa_update_clut(gr_palette, 0, 256, 0);
 #endif
-       gr_bitmap(0,0,bmp);
+       show_fullscr(bmp);
 #if defined(POLY_ACC)
     pa_restore_clut();
 #endif
index d80871e..21675a1 100644 (file)
@@ -16,7 +16,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
 #endif
 
 #ifdef RCS
-static char rcsid[] = "$Id: piggy.c,v 1.12 2002-07-30 04:52:45 btb Exp $";
+static char rcsid[] = "$Id: piggy.c,v 1.13 2002-07-30 11:05:53 btb Exp $";
 #endif
 
 
@@ -69,7 +69,7 @@ static char rcsid[] = "$Id: piggy.c,v 1.12 2002-07-30 04:52:45 btb Exp $";
 #ifdef SHAREWARE
        #define DEFAULT_HAMFILE         "d2demo.ham"
        #define DEFAULT_PIGFILE         DEFAULT_PIGFILE_SHAREWARE
-       #define DEFAULT_SNDFILE                 "descent2.s11"
+       #define DEFAULT_SNDFILE                 DEFAULT_HAMFILE //"descent2.s11"
 #else
        #define DEFAULT_HAMFILE         "descent2.ham"
        #define DEFAULT_PIGFILE         DEFAULT_PIGFILE_REGISTERED
@@ -971,7 +971,6 @@ int read_hamfile()
                //int i;
 
                bm_read_all( ham_fp );  // Note connection to above if!!!
-               printf("position: %d\n", cftell(ham_fp));
                cfread( GameBitmapXlat, sizeof(ushort)*MAX_BITMAP_FILES, 1, ham_fp );
                // no swap here?
                //for (i = 0; i < MAX_BITMAP_FILES; i++) {
@@ -1000,7 +999,7 @@ int read_hamfile()
 
                //Read sounds
 
-               for (i=0; i<N_sounds; i++ )     {
+               for (i=0; i<N_sounds; i++ ) {
                        DiskSoundHeader_read(&sndh, ham_fp);
                        temp_sound.length = sndh.length;
                        temp_sound.data = (ubyte *)(sndh.offset + header_size + sound_start);
@@ -1076,7 +1075,7 @@ int read_sndfile()
 
        //Read sounds
 
-       for (i=0; i<N_sounds; i++ )     {
+       for (i=0; i<N_sounds; i++ ) {
                DiskSoundHeader_read(&sndh, snd_fp);
                //size -= sizeof(DiskSoundHeader);
                temp_sound.length = sndh.length;
index dca63d3..bb9d8fa 100644 (file)
@@ -213,7 +213,7 @@ int show_title_screen( char * filename, int allow_keys, int from_hog_only )
 
        //vfx_set_palette_sub( New_pal );
 #ifdef OGL
-       gr_palette_load( New_pal );
+       gr_palette_load( New_pal );
 #else
        gr_palette_clear();     
 #endif
@@ -223,7 +223,7 @@ int show_title_screen( char * filename, int allow_keys, int from_hog_only )
                gr_set_current_canvas( NULL )
        );
        WIN(DDGRLOCK(dd_grd_curcanv));
-               gr_bitmap( 0, 0, &title_bm );
+       show_fullscr(&title_bm);
        WIN(DDGRUNLOCK(dd_grd_curcanv));
 
        WIN(DDGRRESTORE);