Difference for main/credits.c from version 1.2 to 1.3


version 1.2 version 1.3
Line 19
 
Line 19
  * Routines to display the credits.   * Routines to display the credits.
  *    *
  * $Log$   * $Log$
    * Revision 1.3  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.2  1999/08/05 22:53:41  sekmu   * Revision 1.2  1999/08/05 22:53:41  sekmu
  *   *
  * D3D patch(es) from ADB   * D3D patch(es) from ADB
Line 181
 
Line 184
 #include "compbit.h"  #include "compbit.h"
 #include "songs.h"  #include "songs.h"
   
 #define ROW_SPACING 11  //#define ROW_SPACING 11
 #define NUM_LINES 20 //19  //#define NUM_LINES 20 //19
   
 ubyte fade_values[200] = { 1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,8,9,9,10,10,  ubyte fade_values[200] = { 1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,8,9,9,10,10,
 11,11,12,12,12,13,13,14,14,15,15,15,16,16,17,17,17,18,18,19,19,19,20,20,  11,11,12,12,12,13,13,14,14,15,15,15,16,16,17,17,17,18,18,19,19,19,20,20,
Line 204
 
Line 207
 {  {
  int i, j, l, done;   int i, j, l, done;
  CFILE * file;   CFILE * file;
  char buffer[NUM_LINES][80];   char (*buffer)[80];
  grs_bitmap backdrop;   grs_bitmap backdrop;
    grs_canvas menucanv;
  ubyte backdrop_palette[768];   ubyte backdrop_palette[768];
  int pcx_error;   int pcx_error;
  int buffer_line = 0;   int buffer_line = 0;
  fix last_time;   fix last_time;
  fix time_delay = 4180; // ~ F1_0 / 12.9   fix time_delay = 4180*200/SHEIGHT; // ~ F1_0 / 12.9
  int first_line_offset,extra_inc=0;   int first_line_offset,extra_inc=0;
  int have_bin_file = 0;   int have_bin_file = 0;
    ubyte *fade_values_scalled;
    int num_lines;
  char * tempp;   char * tempp;
    int ROW_SPACING;
   
    gr_use_palette_table( "credits.256" );
    //we need to reload the fonts, because we are using a different palette.  But we also want to load the correct sized font.  Thus, the gamefont_curfontname() calls.  -MPM
    header_font = gr_init_font( gamefont_curfontname(0));// "font1-1.fnt" );
    title_font = gr_init_font( gamefont_curfontname(3));//"font2-3.fnt" );
    names_font = gr_init_font( gamefont_curfontname(2));//"font2-2.fnt" );
    ROW_SPACING=names_font->ft_h+1;
   
    l = SHEIGHT;
    fade_values_scalled = malloc(l);
    scale_line(fade_values, fade_values_scalled, 200, l);//hey, why not?  Its just a one dimensional bitmap :) -MPM
   
   // memset(fade_values_scalled, 31, l);
   // memcpy(fade_values_scalled, fade_values, 100);
   // memcpy(fade_values_scalled+l-100, fade_values+100, 100);
  set_screen_mode(SCREEN_MENU);   set_screen_mode(SCREEN_MENU);
    num_lines = l/ROW_SPACING + 1;
    buffer = malloc(num_lines*80);// l*80); <--typo? -MPM
   
  // Clear out all tex buffer lines.   // Clear out all tex buffer lines.
  for (i=0; i<NUM_LINES; i++ ) buffer[i][0] = 0;   for (i=0; i<num_lines; i++ ) buffer[i][0] = 0;
   
  have_bin_file = 0;   have_bin_file = 0;
  file = cfopen( "credits.tex", "rb" );   file = cfopen( "credits.tex", "rb" );
Line 229
 
Line 252
  have_bin_file = 1;   have_bin_file = 1;
  }   }
   
  gr_use_palette_table( "credits.256" );  
  header_font = gr_init_font( "font1-1.fnt" );  
  title_font = gr_init_font( "font2-3.fnt" );  
  names_font = gr_init_font( "font2-2.fnt" );  
  gr_init_bitmap_data (&backdrop);   gr_init_bitmap_data (&backdrop);
  pcx_error = pcx_read_bitmap("stars.pcx",&backdrop,grd_curcanv->cv_bitmap.bm_type,backdrop_palette);   pcx_error = pcx_read_bitmap("stars.pcx",&backdrop,BM_LINEAR,//grd_curcanv->cv_bitmap.bm_type,
    backdrop_palette);
  if (pcx_error != PCX_ERROR_NONE) {   if (pcx_error != PCX_ERROR_NONE) {
  cfclose(file);   cfclose(file);
  return;   return;
Line 244
 
Line 264
   
  gr_remap_bitmap_good( &backdrop,backdrop_palette, -1, -1 );   gr_remap_bitmap_good( &backdrop,backdrop_palette, -1, -1 );
   
    gr_init_sub_canvas(&menucanv, VR_offscreen_menu, 0, 0, SWIDTH, SHEIGHT);//if the game res higher than the menu res, VR_offscreen_menu is too big. -MPM
   
  gr_set_current_canvas(NULL);   gr_set_current_canvas(NULL);
  gr_bitmap(0,0,&backdrop);   show_fullscr(&backdrop);
   
         gr_update();          gr_update();
   
Line 265
 
Line 287
   
   
   
  buffer_line = (buffer_line+1) % NUM_LINES;   buffer_line = (buffer_line+1) % num_lines;
  if (cfgets( buffer[buffer_line], 80, file )) {   if (cfgets( buffer[buffer_line], 80, file )) {
  char *p;   char *p;
  if (have_bin_file) { // is this a binary tbl file   if (have_bin_file) { // is this a binary tbl file
Line 290
 
Line 312
   
  y = first_line_offset - i;   y = first_line_offset - i;
   
  gr_set_current_canvas(VR_offscreen_menu);   //gr_set_current_canvas(VR_offscreen_menu);
  gr_bitmap(0,0,&backdrop);   gr_set_current_canvas(&menucanv);
  for (j=0; j<NUM_LINES; j++ ) {   show_fullscr(&backdrop);
    for (j=0; j<num_lines; j++ ) {
  char *s;   char *s;
   
  l = (buffer_line + j + 1 ) %  NUM_LINES;   l = (buffer_line + j + 1 ) % num_lines;
  s = buffer[l];   s = buffer[l];
   
  if ( s[0] == '!' ) {   if ( s[0] == '!' ) {
Line 309
 
Line 332
  } else   } else
  grd_curcanv->cv_font = names_font;   grd_curcanv->cv_font = names_font;
   
  gr_bitblt_fade_table = fade_values;   gr_bitblt_fade_table = fade_values_scalled;
   
  tempp = strchr( s, '\t' );   tempp = strchr( s, '\t' );
  if ( tempp ) {   if ( tempp ) {
Line 329
 
Line 352
  else   else
  y += ROW_SPACING;   y += ROW_SPACING;
  }   }
  gr_bm_ubitblt(320, 200, 0, 0, 0, 0, &(VR_offscreen_menu->cv_bitmap), &(grd_curscreen->sc_canvas.cv_bitmap) );   gr_bm_ubitblt(
    GWIDTH, GHEIGHT,
    0, 0, 0, 0,
    &VR_offscreen_menu->cv_bitmap,
    &grd_curscreen->sc_canvas.cv_bitmap
    );
   
                         gr_update();                          gr_update();
   
Line 360
 
Line 387
  k = 0;   k = 0;
  }   }
   
  if ((k>0)||(done>NUM_LINES)) {   if ((k>0)||(done>num_lines)) {
  gr_close_font(header_font);   gr_close_font(header_font);
  gr_close_font(title_font);   gr_close_font(title_font);
  gr_close_font(names_font);   gr_close_font(names_font);
Line 369
 
Line 396
  gr_free_bitmap_data (&backdrop);   gr_free_bitmap_data (&backdrop);
  cfclose(file);   cfclose(file);
  songs_play_song( SONG_TITLE, 1 );   songs_play_song( SONG_TITLE, 1 );
    free(fade_values_scalled);
  return;   return;
  }   }
  }   }
   
  if (buffer[(buffer_line + 1 ) %  NUM_LINES][0] == '!') {   if (buffer[(buffer_line + 1 ) % num_lines][0] == '!') {
  first_line_offset -= ROW_SPACING-ROW_SPACING/2;   first_line_offset -= ROW_SPACING-ROW_SPACING/2;
  if (first_line_offset <= -ROW_SPACING) {   if (first_line_offset <= -ROW_SPACING) {
  first_line_offset += ROW_SPACING;   first_line_offset += ROW_SPACING;

Legend:
line(s) removed in v.1.2 
line(s) changed
 line(s) added in v.1.3