void scores_view(int citem) { fix time_out_value; fix t1; int i,done,looper; int k; byte fades[64] = { 1,1,1,2,2,3,4,4,5,6,8,9,10,12,13,15,16,17,19,20,22,23,24,26,27,28,28,29,30,30,31,31,31,31,31,30,30,29,28,28,27,26,24,23,22,20,19,17,16,15,13,12,10,9,8,6,5,4,4,3,2,2,1,1 }; ReshowScores: scores_read(); set_screen_mode(SCREEN_MENU); gr_set_current_canvas(NULL); nm_draw_background(0,0,grd_curcanv->cv_bitmap.bm_w, grd_curcanv->cv_bitmap.bm_h ); grd_curcanv->cv_font = Gamefonts[GFONT_MEDIUM_3]; gr_string( 0x8000, 15, TXT_HIGH_SCORES ); grd_curcanv->cv_font = Gamefonts[GFONT_SMALL]; gr_set_fontcolor( BM_XRGB(31,26,5), -1 ); gr_string( 31+33+XX, 46+7+YY, TXT_NAME ); gr_string( 82+33+XX, 46+7+YY, TXT_SCORE ); gr_string( 127+33+XX, 46+7+YY, TXT_SKILL ); gr_string( 170+33+XX, 46+7+YY, TXT_LEVELS ); // gr_string( 202, 46, "Kills" ); // gr_string( 234, 46, "Rescues" ); gr_string( 288-42+XX, 46+7+YY, TXT_TIME ); if ( citem < 0 ) gr_string( 0x8000, 175, TXT_PRESS_CTRL_R ); gr_set_fontcolor( BM_XRGB(28,28,28), -1 ); gr_printf( 0x8000, 31, "%c%s%c - %s", 34, Scores.cool_saying, 34, Scores.stats[0].name ); for (i=0; i<MAX_HIGH_SCORES; i++ ) { if (i==0) { gr_set_fontcolor( BM_XRGB(28,28,28), -1 ); } else { gr_set_fontcolor( gr_fade_table[BM_XRGB(28,28,28)+((28-i*2)*256)], -1 ); } scores_draw_item( i, &Scores.stats[i] ); } gr_palette_fade_in( gr_palette,32, 0); game_flush_inputs(); done = 0; looper = 0; time_out_value = timer_get_fixed_seconds()+i2f(60*5); while(!done) { if ( citem > -1 ) { t1 = timer_get_fixed_seconds(); if ( t1 > time_out_value ) done = 1; while ( timer_get_fixed_seconds() < t1+F1_0/128 ); gr_set_fontcolor( gr_fade_table[fades[looper]*256+BM_XRGB(28,28,28)], -1 ); looper++; if (looper>63) looper=0; if ( citem == MAX_HIGH_SCORES ) scores_draw_item( MAX_HIGH_SCORES, &Last_game ); else scores_draw_item( citem, &Scores.stats[citem] ); } for (i=0; i<4; i++ ) if (joy_get_button_down_cnt(i)>0) done=1; for (i=0; i<3; i++ ) if (mouse_button_down_count(i)>0) done=1; k = key_inkey(); switch( k ) { case KEY_CTRLED+KEY_R: if ( citem < 0 ) { // Reset scores... if ( nm_messagebox( NULL, 2, TXT_NO, TXT_YES, TXT_RESET_HIGH_SCORES )==1 ) { remove( get_scores_filename() ); gr_palette_fade_out( gr_palette, 32, 0 ); goto ReshowScores; } } break; case KEY_BACKSP: Int3(); k = 0; break; case KEY_PRINT_SCREEN: save_screen_shot(0); k = 0; break; case KEY_ENTER: case KEY_SPACEBAR: case KEY_ESC: done=1; break; } } // Restore background and exit gr_palette_fade_out( gr_palette, 32, 0 ); gr_set_current_canvas(NULL); game_flush_inputs(); }
void scores_view(int citem) { grs_canvas *center_canv; fix t1; int i,done,looper; int k; sbyte fades[64] = { 1,1,1,2,2,3,4,4,5,6,8,9,10,12,13,15,16,17,19,20,22,23,24,26,27,28,28,29,30,30,31,31,31,31,31,30,30,29,28,28,27,26,24,23,22,20,19,17,16,15,13,12,10,9,8,6,5,4,4,3,2,2,1,1 }; ReshowScores: scores_read(); set_screen_mode(SCREEN_MENU); gr_set_current_canvas(NULL); nm_draw_background(0, 0, GWIDTH-1, GHEIGHT-1); // args are x,y,x2,y2 NOT x,y,w,h center_canv = gr_create_sub_canvas(grd_curcanv, GWIDTH/2-LHX(160), 0, LHX(320), GHEIGHT); gr_set_current_canvas(center_canv); grd_curcanv->cv_font = MEDIUM3_FONT; gr_string( 0x8000, LHY(15), TXT_HIGH_SCORES ); grd_curcanv->cv_font = SMALL_FONT; gr_set_fontcolor( BM_XRGB(31,26,5), -1 ); gr_string( LHX(31+33+XX), LHY(46+7+YY), TXT_NAME ); gr_string( LHX(82+33+XX), LHY(46+7+YY), TXT_SCORE ); gr_string( LHX(127+33+XX), LHY(46+7+YY), TXT_SKILL ); gr_string( LHX(170+33+XX), LHY(46+7+YY), TXT_LEVELS ); // gr_string( 202, 46, "Kills" ); // gr_string( 234, 46, "Rescues" ); gr_string( LHX(288-42+XX), LHY(46+7+YY), TXT_TIME ); if ( citem < 0 ) gr_string( 0x8000, LHY(175), TXT_PRESS_CTRL_R ); gr_set_fontcolor( BM_XRGB(28,28,28), -1 ); gr_printf( 0x8000, LHY(31), "%c%s%c - %s", 34, Scores.cool_saying, 34, Scores.stats[0].name ); for (i=0; i<MAX_HIGH_SCORES; i++ ) { //@@if (i==0) { //@@ gr_set_fontcolor( BM_XRGB(28,28,28), -1 ); //@@} else { //@@ gr_set_fontcolor( gr_fade_table[BM_XRGB(28,28,28)+((28-i*2)*256)], -1 ); //@@} gr_set_fontcolor( BM_XRGB(28-i*2,28-i*2,28-i*2), -1 ); scores_draw_item( i, &Scores.stats[i] ); } gr_palette_fade_in( gr_palette,32, 0); #ifdef OGL vid_update(); #endif game_flush_inputs(); done = 0; looper = 0; while(!done) { if ( citem > -1 ) { t1 = timer_get_fixed_seconds(); while ( timer_get_fixed_seconds() < t1+F1_0/128 ); //@@gr_set_fontcolor( gr_fade_table[fades[looper]*256+BM_XRGB(28,28,28)], -1 ); gr_set_fontcolor( BM_XRGB(7+fades[looper],7+fades[looper],7+fades[looper]), -1 ); looper++; if (looper>63) looper=0; if ( citem == MAX_HIGH_SCORES ) scores_draw_item( MAX_HIGH_SCORES, &Last_game ); else scores_draw_item( citem, &Scores.stats[citem] ); vid_update(); } for (i=0; i<4; i++ ) if (joy_get_button_down_cnt(i)>0) done=1; for (i=0; i<3; i++ ) if (mouse_button_down_count(i)>0) done=1; //see if redbook song needs to be restarted songs_check_redbook_repeat(); k = newmenu_inkey(); switch( k ) { case KEY_CTRLED+KEY_R: if ( citem < 0 ) { // Reset scores... if ( nm_messagebox( NULL, 2, TXT_NO, TXT_YES, TXT_RESET_HIGH_SCORES )==1 ) { PHYSFS_delete(get_scores_filename()); gr_palette_fade_out( gr_palette, 32, 0 ); goto ReshowScores; } } break; case KEY_BACKSP: Int3(); k = 0; break; case KEY_PRINT_SCREEN: save_screen_shot(0); k = 0; break; case KEY_ENTER: case KEY_SPACEBAR: case KEY_ESC: done=1; break; } } // Restore background and exit gr_palette_fade_out( gr_palette, 32, 0 ); gr_set_current_canvas(NULL); gr_free_sub_canvas(center_canv); game_flush_inputs(); }