void ScoreTableDrawNames (int *sorted) { int j, x; int color; if (gameData.score.bNoMovieMessage) { fontManager.SetColorRGBi (RED_RGBA, 1, 0, 0); GrPrintF (NULL, CENTERSCREEN-LHX (40), LHY (20), " (Movie not played)"); } for (j = 0; j<gameData.multiplayer.nPlayers; j++) { if (gameData.app.nGameMode & GM_TEAM) color = GetTeam (sorted [j]); else color = sorted [j]; x = LHX (70 + CENTERING_OFFSET (gameData.multiplayer.nPlayers) + j*25) + xOffs; if (gameData.multiplayer.players [sorted [j]].connected == 0) fontManager.SetColorRGBi (GRAY_RGBA, 1, 0, 0); else fontManager.SetColorRGBi (RGBA_PAL2 (playerColors [color].red, playerColors [color].green, playerColors [color].blue), 1, 0, 0); GrPrintF (NULL, x, LHY (40) + yOffs, "%c", gameData.multiplayer.players [sorted [j]].callsign [0]); } x = LHX (72 + CENTERING_OFFSET (gameData.multiplayer.nPlayers) + gameData.multiplayer.nPlayers*25) + xOffs; fontManager.SetColorRGBi (GRAY_RGBA, 1, 0, 0); GrPrintF (NULL, x, LHY (40) + yOffs, "K/E"); }
void kmatrix_draw_names (int *sorted) { int j, x; int color; if (Kmatrix_nomovie_message) { GrSetFontColorRGBi (RED_RGBA, 1, 0, 0); GrPrintF (CENTERSCREEN-LHX (40), LHY (20), " (Movie not played)"); } for (j=0; j<gameData.multi.nPlayers; j++) { if (gameData.app.nGameMode & GM_TEAM) color = GetTeam (sorted [j]); else color = sorted [j]; x = LHX (70 + CENTERING_OFFSET (gameData.multi.nPlayers) + j*25) + xOffs; if (gameData.multi.players [sorted [j]].connected==0) GrSetFontColorRGBi (GRAY_RGBA, 1, 0, 0); else GrSetFontColorRGBi (RGBA_PAL2 (player_rgb [color].r, player_rgb [color].g, player_rgb [color].b), 1, 0, 0); GrPrintF (x, LHY (40) + yOffs, "%c", gameData.multi.players [sorted [j]].callsign [0]); } x = LHX (72 + CENTERING_OFFSET (gameData.multi.nPlayers) + gameData.multi.nPlayers*25) + xOffs; GrSetFontColorRGBi (GRAY_RGBA, 1, 0, 0); GrPrintF (x, LHY (40) + yOffs, "K/E"); }
void kmatrix_draw_coop_names (int *sorted) { sorted=sorted; if (Kmatrix_nomovie_message) { GrSetFontColorRGBi (RED_RGBA, 1, 0, 0); GrPrintF (CENTERSCREEN-LHX (40), LHY (20), " (Movie not played)"); } GrSetFontColorRGBi (RGBA_PAL2 (63,31,31), 1, 0, 0); GrPrintF (CENTERSCREEN, LHY (40), "SCORE"); GrSetFontColorRGBi (RGBA_PAL2 (63,31,31), 1, 0, 0); GrPrintF (CENTERSCREEN+LHX (50), LHY (40), "DEATHS"); }
void ScoreTableDrawCoopNames (int *sorted) { sorted=sorted; if (gameData.score.bNoMovieMessage) { fontManager.SetColorRGBi (RED_RGBA, 1, 0, 0); GrPrintF (NULL, CENTERSCREEN-LHX (40), LHY (20), " (Movie not played)"); } fontManager.SetColorRGBi (RGBA_PAL2 (63,31,31), 1, 0, 0); GrPrintF (NULL, CENTERSCREEN, LHY (40), "SCORE"); fontManager.SetColorRGBi (RGBA_PAL2 (63,31,31), 1, 0, 0); GrPrintF (NULL, CENTERSCREEN+LHX (50), LHY (40), "DEATHS"); }
void scores_draw_item( int i, stats_info * stats ) { char buffer[20]; int y; WIN(DDGRLOCK(dd_grd_curcanv)); y = 7+70+i*9; if (i==0) y -= 8; if ( i==MAX_HIGH_SCORES ) { y += 8; //scores_rprintf( 17+33+XX, y+YY, "" ); } else { scores_rprintf( 17+33+XX, y+YY, "%d.", i+1 ); } if (strlen(stats->name)==0) { GrPrintF( LHX(26+33+XX)+xOffs, LHY(y+YY)+yOffs, TXT_EMPTY ); WIN(DDGRUNLOCK(dd_grd_curcanv)); return; } GrPrintF( LHX(26+33+XX)+xOffs, LHY(y+YY)+yOffs, "%s", stats->name ); int_to_string(stats->score, buffer); scores_rprintf( 109+33+XX, y+YY, "%s", buffer ); GrPrintF( LHX(125+33+XX)+xOffs, LHY(y+YY)+yOffs, "%s", MENU_DIFFICULTY_TEXT(stats->diff_level) ); if ( (stats->starting_level > 0 ) && (stats->ending_level > 0 )) scores_rprintf( 192+33+XX, y+YY, "%d-%d", stats->starting_level, stats->ending_level ); else if ( (stats->starting_level < 0 ) && (stats->ending_level > 0 )) scores_rprintf( 192+33+XX, y+YY, "S%d-%d", -stats->starting_level, stats->ending_level ); else if ( (stats->starting_level < 0 ) && (stats->ending_level < 0 )) scores_rprintf( 192+33+XX, y+YY, "S%d-S%d", -stats->starting_level, -stats->ending_level ); else if ( (stats->starting_level > 0 ) && (stats->ending_level < 0 )) scores_rprintf( 192+33+XX, y+YY, "%d-S%d", stats->starting_level, -stats->ending_level ); { int h, m, s; h = stats->seconds/3600; s = stats->seconds%3600; m = s / 60; s = s % 60; scores_rprintf( 311-42+XX, y+YY, "%d:%02d:%02d", h, m, s ); } WIN(DDGRUNLOCK(dd_grd_curcanv)); }
void ScoreTableDrawCoop () { int i, color; int sorted [MAX_NUM_NET_PLAYERS]; MultiSortKillList (); WIN (DDGRLOCK (dd_grd_curcanv)); grdCurCanv->cvFont = MEDIUM3_FONT; GrString (0x8000, LHY (10), "COOPERATIVE SUMMARY", NULL); grdCurCanv->cvFont = SMALL_FONT; MultiGetKillList (sorted); ScoreTableDrawCoopNames (sorted); for (i=0; i<gameData.multiplayer.nPlayers; i++) { color = sorted [i]; if (gameData.multiplayer.players [sorted [i]].connected==0) GrSetFontColorRGBi (GRAY_RGBA, 1, 0, 0); else GrSetFontColorRGBi (RGBA_PAL2 (playerColors [color].r, playerColors [color].g, playerColors [color].b), 1, 0, 0); ScoreTableDrawCoopItem (i, sorted); } ScoreTableDrawDeaths (sorted); WIN (DDGRUNLOCK (dd_grd_curcanv)); WINDOS ( DDGrSetCurrentCanvas (NULL), GrSetCurrentCanvas (NULL) ); PA_DFX (pa_set_frontbuffer_current ()); PA_DFX (pa_set_backbuffer_current ()); GrPaletteStepLoad (NULL); GrUpdate (0); }
void CStatusBar::DrawScore (void) { char szScore [20]; int x, y; int w, h, aw; static int lastX [4] = {SB_SCORE_RIGHT_L, SB_SCORE_RIGHT_L, SB_SCORE_RIGHT_H, SB_SCORE_RIGHT_H}; static int nIdLabel = 0, nIdScore = 0; CCanvas::Push (); fontManager.SetScale (floor (float (CCanvas::Current ()->Width ()) / 640.0f)); CCanvas::SetCurrent (CurrentGameScreen ()); strcpy (szScore, (IsMultiGame && !IsCoopGame) ? TXT_KILLS : TXT_SCORE); strcat (szScore, ":"); fontManager.Current ()->StringSize (szScore, w, h, aw); fontManager.SetColorRGBi (MEDGREEN_RGBA, 1, 0, 0); nIdLabel = PrintF (&nIdLabel, -(ScaleX (SB_SCORE_LABEL_X + int (w / fontManager.Scale ())) - w), SB_SCORE_Y, szScore); sprintf (szScore, "%5d", (IsMultiGame && !IsCoopGame) ? LOCALPLAYER.netKillsTotal : LOCALPLAYER.score); fontManager.Current ()->StringSize (szScore, w, h, aw); x = ScaleX (SB_SCORE_RIGHT) - w - LHY (2); y = SB_SCORE_Y; #if 0 //erase old score CCanvas::Current ()->SetColorRGBi (RGB_PAL (0, 0, 0)); Rect (lastX [(gameStates.video.nDisplayMode ? 2 : 0) + gameStates.render.vr.nCurrentPage], y, SB_SCORE_RIGHT, y + GAME_FONT->Height ()); #endif fontManager.SetColorRGBi ((IsMultiGame && !IsCoopGame) ? MEDGREEN_RGBA : GREEN_RGBA, 1, 0, 0); nIdScore = PrintF (&nIdScore, -x, y, szScore); lastX [(gameStates.video.nDisplayMode ? 2 : 0) + gameStates.render.vr.nCurrentPage] = x; fontManager.SetScale (1.0f); CCanvas::Pop (); }
void kmatrix_draw_coop_deaths (int *sorted) { int j, x, y; int sw, sh, aw; char reactor_message [50]; y = LHY (55 + gameData.multi.nPlayers * 9) + yOffs; // GrSetFontColor (gr_getcolor (player_rgb [j].r,player_rgb [j].g,player_rgb [j].b),-1); GrSetFontColorRGBi (GRAY_RGBA, 1, 0, 0); x = CENTERSCREEN+LHX (50) + xOffs; GrPrintF (x, y, TXT_DEATHS); for (j=0; j<gameData.multi.nPlayers; j++) { x = CENTERSCREEN+LHX (50) + xOffs; GrPrintF (x, y, "%d", gameData.multi.players [sorted [j]].netKilledTotal); } y = LHY (55 + 72 + 35) + yOffs; x = LHX (35) + xOffs; GrSetFontColorRGBi (RGBA_PAL2 (63,20,0), 1, 0, 0); GrGetStringSize ("P-Playing E-Escaped D-Died", &sw, &sh, &aw); if (! ((gameData.app.nGameMode & GM_MODEM) || (gameData.app.nGameMode & GM_SERIAL))) GrPrintF (CENTERSCREEN- (sw/2), y,"P-Playing E-Escaped D-Died"); y += (sh+5); GrGetStringSize ("V-Viewing scores W-Waiting", &sw, &sh, &aw); if (! ((gameData.app.nGameMode & GM_MODEM) || (gameData.app.nGameMode & GM_SERIAL))) GrPrintF (CENTERSCREEN- (sw/2), y,"V-Viewing scores W-Waiting"); y+=LHY (20); GrSetFontColorRGBi (WHITE_RGBA, 1, 0, 0); if (gameData.multi.players [gameData.multi.nLocalPlayer].connected==7) { GrGetStringSize ("Waiting for other players...",&sw, &sh, &aw); GrPrintF (CENTERSCREEN- (sw/2), y,"Waiting for other players..."); } else { GrGetStringSize (TXT_PRESS_ANY_KEY2, &sw, &sh, &aw); GrPrintF (CENTERSCREEN- (sw/2), y, TXT_PRESS_ANY_KEY2); } if (gameData.reactor.countdown.nSecsLeft <=0) kmatrix_reactor (TXT_REACTOR_EXPLODED); else { sprintf ((char *)&reactor_message, "%s: %d %s ", TXT_TIME_REMAINING, gameData.reactor.countdown.nSecsLeft, TXT_SECONDS); kmatrix_reactor ((char *)&reactor_message); } }
void ScoreTableDrawCoopDeaths (int *sorted) { int j, x, y; int sw, sh, aw; char reactor_message [50]; y = LHY (55 + gameData.multiplayer.nPlayers * 9) + yOffs; // fontManager.SetColor (gr_getcolor (playerColors [j].r,playerColors [j].g,playerColors [j].b),-1); fontManager.SetColorRGBi (GRAY_RGBA, 1, 0, 0); x = CENTERSCREEN+LHX (50) + xOffs; GrPrintF (NULL, x, y, TXT_DEATHS); for (j=0; j<gameData.multiplayer.nPlayers; j++) { x = CENTERSCREEN+LHX (50) + xOffs; GrPrintF (NULL, x, y, "%d", gameData.multiplayer.players [sorted [j]].netKilledTotal); } y = LHY (55 + 72 + 35) + yOffs; x = LHX (35) + xOffs; fontManager.SetColorRGBi (RGBA_PAL2 (63,20,0), 1, 0, 0); fontManager.Current ()->StringSize ("P-Playing E-Escaped D-Died", sw, sh, aw); if (! ((gameData.app.nGameMode & GM_MODEM) || (gameData.app.nGameMode & GM_SERIAL))) GrPrintF (NULL, CENTERSCREEN- (sw/2), y,"P-Playing E-Escaped D-Died"); y += (sh+5); fontManager.Current ()->StringSize ("V-Viewing scores W-Waiting", sw, sh, aw); if (! ((gameData.app.nGameMode & GM_MODEM) || (gameData.app.nGameMode & GM_SERIAL))) GrPrintF (NULL, CENTERSCREEN- (sw/2), y,"V-Viewing scores W-Waiting"); y+=LHY (20); fontManager.SetColorRGBi (WHITE_RGBA, 1, 0, 0); if (LOCALPLAYER.connected==7) { fontManager.Current ()->StringSize ("Waiting for other players...",sw, sh, aw); GrPrintF (NULL, CENTERSCREEN- (sw/2), y,"Waiting for other players..."); } else { fontManager.Current ()->StringSize (TXT_PRESS_ANY_KEY2, sw, sh, aw); GrPrintF (NULL, CENTERSCREEN- (sw/2), y, TXT_PRESS_ANY_KEY2); } if (gameData.reactor.countdown.nSecsLeft <=0) ScoreTableReactor (TXT_REACTOR_EXPLODED); else { sprintf (reinterpret_cast<char*> (&reactor_message), "%s: %d %s ", TXT_TIME_REMAINING, gameData.reactor.countdown.nSecsLeft, TXT_SECONDS); ScoreTableReactor (reinterpret_cast<char*> (&reactor_message)); } }
void ScoreTableDrawCoopItem (int i, int *sorted) { int x, y = LHY (50+i*9) + yOffs; // Print CPlayerData name. GrPrintF (NULL, LHX (CENTERING_OFFSET (gameData.multiplayer.nPlayers)) + xOffs, y, "%s", gameData.multiplayer.players [sorted [i]].callsign); GrPrintF (NULL, LHX (CENTERING_OFFSET (gameData.multiplayer.nPlayers)-15) + xOffs,y,"%c",szConditionLetters [gameData.multiplayer.players [sorted [i]].connected]); x = CENTERSCREEN + xOffs; fontManager.SetColorRGBi (RGBA_PAL2 (60,40,10),1, 0, 0); GrPrintF (NULL, x, y, "%d", gameData.multiplayer.players [sorted [i]].score); x = CENTERSCREEN+LHX (50) + xOffs; fontManager.SetColorRGBi (RGBA_PAL2 (60,40,10),1, 0, 0); GrPrintF (NULL, x, y, "%d", gameData.multiplayer.players [sorted [i]].netKilledTotal); }
void kmatrix_draw_coop_item (int i, int *sorted) { int x, y = LHY (50+i*9) + yOffs; // Print player name. GrPrintF (LHX (CENTERING_OFFSET (gameData.multi.nPlayers)) + xOffs, y, "%s", gameData.multi.players [sorted [i]].callsign); GrPrintF (LHX (CENTERING_OFFSET (gameData.multi.nPlayers)-15) + xOffs,y,"%c",ConditionLetters [gameData.multi.players [sorted [i]].connected]); x = CENTERSCREEN + xOffs; GrSetFontColorRGBi (RGBA_PAL2 (60,40,10),1, 0, 0); GrPrintF (x, y, "%d", gameData.multi.players [sorted [i]].score); x = CENTERSCREEN+LHX (50) + xOffs; GrSetFontColorRGBi (RGBA_PAL2 (60,40,10),1, 0, 0); GrPrintF (x, y, "%d", gameData.multi.players [sorted [i]].netKilledTotal); }
void kmatrix_draw_deaths (int *sorted) { int y,x; int sw, sh, aw; char reactor_message [50]; y = LHY (55 + 72 + 35) + yOffs; x = LHX (35) + xOffs; GrSetFontColorRGBi (RGBA_PAL2 (63,20,0), 1, 0, 0); GrGetStringSize ("P-Playing E-Escaped D-Died", &sw, &sh, &aw); if (! ((gameData.app.nGameMode & GM_MODEM) || (gameData.app.nGameMode & GM_SERIAL))) GrPrintF (CENTERSCREEN- (sw/2), y,"P-Playing E-Escaped D-Died"); y+= (sh+5); GrGetStringSize ("V-Viewing scores W-Waiting", &sw, &sh, &aw); if (! ((gameData.app.nGameMode & GM_MODEM) || (gameData.app.nGameMode & GM_SERIAL))) GrPrintF (CENTERSCREEN- (sw/2), y,"V-Viewing scores W-Waiting"); y+=LHY (20); GrSetFontColorRGBi (WHITE_RGBA, 1, 0, 0); if (gameData.multi.players [gameData.multi.nLocalPlayer].connected==7) { GrGetStringSize ("Waiting for other players...",&sw, &sh, &aw); GrPrintF (CENTERSCREEN- (sw/2), y,"Waiting for other players..."); } else { GrGetStringSize (TXT_PRESS_ANY_KEY2, &sw, &sh, &aw); GrPrintF (CENTERSCREEN- (sw/2), y, TXT_PRESS_ANY_KEY2); } if (gameData.reactor.countdown.nSecsLeft <=0) kmatrix_reactor (TXT_REACTOR_EXPLODED); else { sprintf ((char *)&reactor_message, "%s: %d %s ", TXT_TIME_REMAINING, gameData.reactor.countdown.nSecsLeft, TXT_SECONDS); kmatrix_reactor ((char *)&reactor_message); } if (gameData.app.nGameMode & (GM_HOARD | GM_ENTROPY)) kmatrix_phallic (); }
void ScoreTableDrawDeaths (int *sorted) { int y,x; int sw, sh, aw; char reactor_message [50]; y = LHY (55 + 72 + 35) + yOffs; x = LHX (35) + xOffs; fontManager.SetColorRGBi (RGBA_PAL2 (63,20,0), 1, 0, 0); fontManager.Current ()->StringSize ("P-Playing E-Escaped D-Died", sw, sh, aw); if (! ((gameData.app.nGameMode & GM_MODEM) || (gameData.app.nGameMode & GM_SERIAL))) GrPrintF (NULL, CENTERSCREEN- (sw/2), y,"P-Playing E-Escaped D-Died"); y+= (sh+5); fontManager.Current ()->StringSize ("V-Viewing scores W-Waiting", sw, sh, aw); if (! ((gameData.app.nGameMode & GM_MODEM) || (gameData.app.nGameMode & GM_SERIAL))) GrPrintF (NULL, CENTERSCREEN- (sw/2), y,"V-Viewing scores W-Waiting"); y+=LHY (20); fontManager.SetColorRGBi (WHITE_RGBA, 1, 0, 0); if (LOCALPLAYER.connected==7) { fontManager.Current ()->StringSize ("Waiting for other players...",sw, sh, aw); GrPrintF (NULL, CENTERSCREEN- (sw/2), y,"Waiting for other players..."); } else { fontManager.Current ()->StringSize (TXT_PRESS_ANY_KEY2, sw, sh, aw); GrPrintF (NULL, CENTERSCREEN- (sw/2), y, TXT_PRESS_ANY_KEY2); } if (gameData.reactor.countdown.nSecsLeft <=0) ScoreTableReactor (TXT_REACTOR_EXPLODED); else { sprintf (reinterpret_cast<char*> (&reactor_message), "%s: %d %s ", TXT_TIME_REMAINING, gameData.reactor.countdown.nSecsLeft, TXT_SECONDS); ScoreTableReactor (reinterpret_cast<char*> (&reactor_message)); } if (gameData.app.nGameMode & (GM_HOARD | GM_ENTROPY)) ScoreTablePhallic (); }
void kmatrix_redraw () { int i, color; int sorted [MAX_NUM_NET_PLAYERS]; xOffs = (grdCurCanv->cv_bitmap.bm_props.w - 640) / 2; yOffs = (grdCurCanv->cv_bitmap.bm_props.h - 480) / 2; if (xOffs < 0) xOffs = 0; if (yOffs < 0) yOffs = 0; if (gameData.app.nGameMode & GM_MULTI_COOP) { kmatrix_redraw_coop (); return; } MultiSortKillList (); WIN (DDGRLOCK (dd_grd_curcanv)); grdCurCanv->cv_font = MEDIUM3_FONT; GrString (0x8000, LHY (10), TXT_KILL_MATRIX_TITLE ); grdCurCanv->cv_font = SMALL_FONT; MultiGetKillList (sorted); kmatrix_draw_names (sorted); for (i=0; i<gameData.multi.nPlayers; i++) { if (gameData.app.nGameMode & GM_TEAM) color = GetTeam (sorted [i]); else color = sorted [i]; if (gameData.multi.players [sorted [i]].connected==0) GrSetFontColorRGBi (GRAY_RGBA, 1, 0, 0); else GrSetFontColorRGBi (RGBA_PAL2 (player_rgb [color].r, player_rgb [color].g, player_rgb [color].b), 1, 0, 0); kmatrix_draw_item (i, sorted); } kmatrix_draw_deaths (sorted); #if defined (POLY_ACC) pa_save_clut (); pa_update_clut (grPalette, 0, 256, 0); #endif PA_DFX (pa_set_frontbuffer_current ()); GrUpdate (0); PA_DFX (pa_set_backbuffer_current ()); #if defined (POLY_ACC) pa_restore_clut (); #endif WIN (DDGRUNLOCK (dd_grd_curcanv)); GrPaletteStepLoad (NULL); }
void ScoreTableReactor (char *message) { static char oldmessage [50]={0}; int sw, sh, aw; if ((gameData.app.nGameMode & GM_MODEM) || (gameData.app.nGameMode & GM_SERIAL)) return; grdCurCanv->cvFont = SMALL_FONT; if (oldmessage [0]!=0) { GrSetFontColorRGBi (RGBA_PAL2 (0, 1, 0), 1, 0, 0); GrGetStringSize (oldmessage, &sw, &sh, &aw); } GrSetFontColorRGBi (RGBA_PAL2 (0, 32, 63), 1, 0, 0); GrGetStringSize (message, &sw, &sh, &aw); GrPrintF (NULL, CENTERSCREEN- (sw/2), LHY (55+72+12), message); strcpy ((char *)&oldmessage,message); }
void CStatusBar::DrawAddedScore (void) { if (IsMultiGame && !IsCoopGame) return; int nScore, nTime; if (!(nScore = cockpit->AddedScore (gameStates.render.vr.nCurrentPage))) return; int x, w, h, aw, color; char szScore [32]; static int lastX [4] = {SB_SCORE_RIGHT_L, SB_SCORE_RIGHT_L, SB_SCORE_RIGHT_H, SB_SCORE_RIGHT_H}; static int nIdTotalScore = 0; cockpit->SetScoreTime (nTime = cockpit->ScoreTime () - gameData.time.xFrame); if (nTime > 0) { color = X2I (nTime * 20) + 10; if (color < 10) color = 10; else if (color > 31) color = 31; if (gameStates.app.cheats.bEnabled) sprintf (szScore, "%s", TXT_CHEATER); else sprintf (szScore, "%5d", nScore); fontManager.Current ()->StringSize (szScore, w, h, aw); x = SB_SCORE_ADDED_RIGHT - w - LHY (2); fontManager.SetColorRGBi (RGBA_PAL2 (0, color, 0), 1, 0, 0); CCanvas::Push (); CCanvas::SetCurrent (CurrentGameScreen ()); nIdTotalScore = PrintF (&nIdTotalScore, x, SB_SCORE_ADDED_Y, szScore); CCanvas::Pop (); lastX [(gameStates.video.nDisplayMode ? 2 : 0) + gameStates.render.vr.nCurrentPage] = x; } #if 1 else { //erase old score //CCanvas::Current ()->SetColorRGBi (RGB_PAL (0, 0, 0)); //OglDrawFilledRect (lastX [(gameStates.video.nDisplayMode?2:0)+gameStates.render.vr.nCurrentPage], SB_SCORE_ADDED_Y, SB_SCORE_ADDED_RIGHT, SB_SCORE_ADDED_Y+GAME_FONT->Height ()); cockpit->SetScoreTime (0); cockpit->SetAddedScore (gameStates.render.vr.nCurrentPage, 0); } #endif }
void ScoreTableReactor (const char *message) { static char oldmessage [50]={0}; int sw, sh, aw; if ((gameData.app.nGameMode & GM_MODEM) || (gameData.app.nGameMode & GM_SERIAL)) return; fontManager.SetCurrent (SMALL_FONT); if (oldmessage [0]!=0) { fontManager.SetColorRGBi (RGBA_PAL2 (0, 1, 0), 1, 0, 0); fontManager.Current ()->StringSize (oldmessage, sw, sh, aw); } fontManager.SetColorRGBi (RGBA_PAL2 (0, 32, 63), 1, 0, 0); fontManager.Current ()->StringSize (message, sw, sh, aw); GrPrintF (NULL, CENTERSCREEN- (sw/2), LHY (55+72+12), message); strcpy (reinterpret_cast<char*> (&oldmessage), message); }
void ScoreTableDrawItem (int i, int *sorted) { int j, x, y; char temp [10]; y = LHY (50+i*9) + yOffs; // Print CPlayerData name. GrPrintF (NULL, LHX (CENTERING_OFFSET (gameData.multiplayer.nPlayers)) + xOffs, y, "%s", gameData.multiplayer.players [sorted [i]].callsign); if (! ((gameData.app.nGameMode & GM_MODEM) || (gameData.app.nGameMode & GM_SERIAL))) GrPrintF (NULL, LHX (CENTERING_OFFSET (gameData.multiplayer.nPlayers)-15),y,"%c",szConditionLetters [gameData.multiplayer.players [sorted [i]].connected]); for (j=0; j<gameData.multiplayer.nPlayers; j++) { x = LHX (70 + CENTERING_OFFSET (gameData.multiplayer.nPlayers) + j*25) + xOffs; if (sorted [i]==sorted [j]) { if (gameData.multigame.kills.matrix [sorted [i]][sorted [j]] == 0) { fontManager.SetColorRGBi (RGBA_PAL2 (10,10,10), 1, 0, 0); GrPrintF (NULL, x, y, "%d", gameData.multigame.kills.matrix [sorted [i]][sorted [j]]); } else { fontManager.SetColorRGBi (RGBA_PAL2 (25,25,25), 1, 0, 0); GrPrintF (NULL, x, y, "-%d", gameData.multigame.kills.matrix [sorted [i]][sorted [j]]); } } else { if (gameData.multigame.kills.matrix [sorted [i]][sorted [j]] <= 0) { fontManager.SetColorRGBi (RGBA_PAL2 (10,10,10), 1, 0, 0); GrPrintF (NULL, x, y, "%d", gameData.multigame.kills.matrix [sorted [i]][sorted [j]]); } else { fontManager.SetColorRGBi (RGBA_PAL2 (25,25,25), 1, 0, 0); GrPrintF (NULL, x, y, "%d", gameData.multigame.kills.matrix [sorted [i]][sorted [j]]); } } } if (gameData.multiplayer.players [sorted [i]].netKilledTotal + gameData.multiplayer.players [sorted [i]].netKillsTotal==0) sprintf (temp,"N/A"); else sprintf (temp,"%d%%", (int) ((double) ((double)gameData.multiplayer.players [sorted [i]].netKillsTotal/ ((double)gameData.multiplayer.players [sorted [i]].netKilledTotal+ (double)gameData.multiplayer.players [sorted [i]].netKillsTotal))*100.0)); x = LHX (60 + CENTERING_OFFSET (gameData.multiplayer.nPlayers) + gameData.multiplayer.nPlayers*25) + xOffs; fontManager.SetColorRGBi (RGBA_PAL2 (25,25,25),1, 0, 0); GrPrintF (NULL, x ,y,"%4d/%s",gameData.multiplayer.players [sorted [i]].netKillsTotal,temp); }
void ScoreTablePhallic (void) { int sw, sh, aw; char message [80]; if (! (gameData.app.nGameMode & GM_HOARD)) return; if ((gameData.app.nGameMode & GM_MODEM) || (gameData.app.nGameMode & GM_SERIAL)) return; if (gameData.score.nPhallicMan==-1) strcpy (message,TXT_NO_RECORD); else sprintf (message, TXT_BEST_RECORD, gameData.multiplayer.players [gameData.score.nPhallicMan].callsign,gameData.score.nPhallicLimit); fontManager.SetCurrent (SMALL_FONT); fontManager.SetColorRGBi (WHITE_RGBA, 1, 0, 0); fontManager.Current ()->StringSize (message, sw, sh, aw); GrPrintF (NULL, CENTERSCREEN- (sw/2), LHY (55+72+3), message); }
void kmatrix_phallic () { int sw, sh, aw; char message [80]; if (! (gameData.app.nGameMode & GM_HOARD)) return; if ((gameData.app.nGameMode & GM_MODEM) || (gameData.app.nGameMode & GM_SERIAL)) return; if (PhallicMan==-1) strcpy (message,TXT_NO_RECORD); else sprintf (message, TXT_BEST_RECORD, gameData.multi.players [PhallicMan].callsign,PhallicLimit); grdCurCanv->cv_font = SMALL_FONT; GrSetFontColorRGBi (WHITE_RGBA, 1, 0, 0); GrGetStringSize (message, &sw, &sh, &aw); GrPrintF (CENTERSCREEN- (sw/2), LHY (55+72+3), message); }
void scores_rprintf(int x, int y, char * format, ... ) { va_list args; char buffer[128]; int w, h, aw; char *p; va_start(args, format ); vsprintf(buffer,format,args); va_end(args); //replace the digit '1' with special wider 1 for (p=buffer;*p;p++) if (*p=='1') *p = (char)132; gr_get_string_size(buffer, &w, &h, &aw ); gr_string( LHX(x)-w, LHY(y), buffer ); }
void _CDECL_ scores_rprintf(int x, int y, char * format, ... ) { va_list args; char buffer[128]; int w, h, aw; char *p; va_start(args, format ); vsprintf(buffer,format,args); va_end(args); //replace the digit '1' with special wider 1 for (p=buffer;*p;p++) if (*p=='1') *p=(char)132; GrGetStringSize(buffer, &w, &h, &aw ); GrString( LHX(x)-w+xOffs, LHY(y)+yOffs, buffer ); }
void ScoreTableRedraw () { int i, color; int sorted [MAX_NUM_NET_PLAYERS]; xOffs = (grdCurCanv->cvBitmap.bmProps.w - 640) / 2; yOffs = (grdCurCanv->cvBitmap.bmProps.h - 480) / 2; if (xOffs < 0) xOffs = 0; if (yOffs < 0) yOffs = 0; if (gameData.app.nGameMode & GM_MULTI_COOP) { ScoreTableDrawCoop (); return; } MultiSortKillList (); WIN (DDGRLOCK (dd_grd_curcanv)); grdCurCanv->cvFont = MEDIUM3_FONT; GrString (0x8000, LHY (10), TXT_KILL_MATRIX_TITLE, NULL); grdCurCanv->cvFont = SMALL_FONT; MultiGetKillList (sorted); ScoreTableDrawNames (sorted); for (i=0; i<gameData.multiplayer.nPlayers; i++) { if (gameData.app.nGameMode & GM_TEAM) color = GetTeam (sorted [i]); else color = sorted [i]; if (!gameData.multiplayer.players [sorted [i]].connected) GrSetFontColorRGBi (GRAY_RGBA, 1, 0, 0); else GrSetFontColorRGBi (RGBA_PAL2 (playerColors [color].r, playerColors [color].g, playerColors [color].b), 1, 0, 0); ScoreTableDrawItem (i, sorted); } ScoreTableDrawDeaths (sorted); PA_DFX (pa_set_frontbuffer_current ()); GrUpdate (0); PA_DFX (pa_set_backbuffer_current ()); WIN (DDGRUNLOCK (dd_grd_curcanv)); GrPaletteStepLoad (NULL); }
void CHUD::DrawHomingWarning (void) { if (cockpit->Hide ()) return; static int nIdLock = 0; if ((LOCALPLAYER.homingObjectDist >= 0) && (gameData.time.xGame & 0x4000)) { int x = 0x8000, y = CCanvas::Current ()->Height () - m_info.nLineSpacing; if ((hudIcons.Visible () && (extraGameInfo [0].nWeaponIcons == 2)) || (hudIcons.Inventory () && (extraGameInfo [0].nWeaponIcons & 1))) y -= LHY (20); if ((m_info.weaponBoxUser [0] != WBU_WEAPON) || (m_info.weaponBoxUser [1] != WBU_WEAPON)) { int wy = (m_info.weaponBoxUser [0] != WBU_WEAPON) ? SW_y [0] : SW_y [1]; y = min (y, (wy - m_info.nLineSpacing - gameData.render.window.y)); } fontManager.SetColorRGBi (GREEN_RGBA, 1, 0, 0); nIdLock = GrPrintF (&nIdLock, x, y, TXT_LOCK); } }
void kmatrix_redraw_coop () { int i, color; int sorted [MAX_NUM_NET_PLAYERS]; MultiSortKillList (); WIN (DDGRLOCK (dd_grd_curcanv)); grdCurCanv->cv_font = MEDIUM3_FONT; GrString (0x8000, LHY (10), "COOPERATIVE SUMMARY" ); grdCurCanv->cv_font = SMALL_FONT; MultiGetKillList (sorted); kmatrix_draw_coop_names (sorted); for (i=0; i<gameData.multi.nPlayers; i++) { color = sorted [i]; if (gameData.multi.players [sorted [i]].connected==0) GrSetFontColorRGBi (GRAY_RGBA, 1, 0, 0); else GrSetFontColorRGBi (RGBA_PAL2 (player_rgb [color].r, player_rgb [color].g, player_rgb [color].b), 1, 0, 0); kmatrix_draw_coop_item (i, sorted); } kmatrix_draw_deaths (sorted); WIN (DDGRUNLOCK (dd_grd_curcanv)); WINDOS ( DDGrSetCurrentCanvas (NULL), GrSetCurrentCanvas (NULL) ); #if defined (POLY_ACC) pa_save_clut (); pa_update_clut (grPalette, 0, 256, 0); #endif PA_DFX (pa_set_frontbuffer_current ()); PA_DFX (pa_set_backbuffer_current ()); #if defined (POLY_ACC) pa_restore_clut (); #endif GrPaletteStepLoad (NULL); GrUpdate (0); }
void ScoreTableDrawCoop (void) { int i, color; int sorted [MAX_PLAYERS]; MultiSortKillList (); fontManager.SetCurrent (MEDIUM3_FONT); GrString (0x8000, LHY (10), "COOPERATIVE SUMMARY", NULL); fontManager.SetCurrent (SMALL_FONT); MultiGetKillList (sorted); ScoreTableDrawCoopNames (sorted); for (i=0; i<gameData.multiplayer.nPlayers; i++) { color = sorted [i]; if (gameData.multiplayer.players [sorted [i]].connected==0) fontManager.SetColorRGBi (GRAY_RGBA, 1, 0, 0); else fontManager.SetColorRGBi (RGBA_PAL2 (playerColors [color].red, playerColors [color].green, playerColors [color].blue), 1, 0, 0); ScoreTableDrawCoopItem (i, sorted); } ScoreTableDrawDeaths (sorted); CCanvas::SetCurrent (NULL); //paletteManager.ResumeEffect (); GrUpdate (1); }
void ScoreTableRedraw (void) { int i, color; int sorted [MAX_PLAYERS]; xOffs = (CCanvas::Current ()->Width () - 640) / 2; yOffs = (CCanvas::Current ()->Height () - 480) / 2; if (xOffs < 0) xOffs = 0; if (yOffs < 0) yOffs = 0; if (gameData.app.nGameMode & GM_MULTI_COOP) { ScoreTableDrawCoop (); return; } MultiSortKillList (); fontManager.SetCurrent (MEDIUM3_FONT); GrString (0x8000, LHY (10), TXT_KILL_MATRIX_TITLE, NULL); fontManager.SetCurrent (SMALL_FONT); MultiGetKillList (sorted); ScoreTableDrawNames (sorted); for ( i =0; i<gameData.multiplayer.nPlayers; i++) { if (gameData.app.nGameMode & GM_TEAM) color = GetTeam (sorted [i]); else color = sorted [i]; if (!gameData.multiplayer.players [sorted [i]].connected) fontManager.SetColorRGBi (GRAY_RGBA, 1, 0, 0); else fontManager.SetColorRGBi (RGBA_PAL2 (playerColors [color].red, playerColors [color].green, playerColors [color].blue), 1, 0, 0); ScoreTableDrawItem (i, sorted); } ScoreTableDrawDeaths (sorted); GrUpdate (1); //paletteManager.ResumeEffect (); }
int CMenuItem::GetSize (int h, int aw, int& nStringWidth, int& nStringHeight, int& nAverageWidth, int& nMenus, int& nOthers, int bTiny) { if (!gameStates.app.bEnglish) m_nKey = *(m_text - 1); if (m_nKey) { if (gameOpts->menus.nHotKeys < 0) { if ((m_nKey < KEY_1) || (m_nKey > KEY_0)) m_nKey = -1; } else if (gameOpts->menus.nHotKeys == 0) m_nKey = 0; } m_bRedraw = 1; m_y = h; fontManager.Current ()->StringSize (m_text, nStringWidth, nStringHeight, nAverageWidth); nStringHeight += 2 * bTiny; m_rightOffset = 0; if (gameStates.multi.bSurfingNet) nStringHeight += LHY (3); m_savedText [0] = '\0'; if (m_nType == NM_TYPE_SLIDER) { int w1, h1, aw1; nOthers++; m_savedText [0] = '\t'; m_savedText [1] = SLIDER_LEFT [0]; memset (m_savedText + 2, SLIDER_MIDDLE [0], (m_maxValue - m_minValue + 1)); m_savedText [m_maxValue - m_minValue + 2] = SLIDER_RIGHT [0]; fontManager.Current ()->StringSize (m_savedText, w1, h1, aw1); nStringWidth += w1 + aw; } else if (m_nType == NM_TYPE_MENU) { nMenus++; } else if (m_nType == NM_TYPE_CHECK) { int w1, h1, aw1; nOthers++; fontManager.Current ()->StringSize (NORMAL_CHECK_BOX, w1, h1, aw1); m_rightOffset = w1; fontManager.Current ()->StringSize (CHECKED_CHECK_BOX, w1, h1, aw1); if (w1 > m_rightOffset) m_rightOffset = w1; } else if (m_nType == NM_TYPE_RADIO) { int w1, h1, aw1; nOthers++; fontManager.Current ()->StringSize (NORMAL_RADIO_BOX, w1, h1, aw1); m_rightOffset = w1; fontManager.Current ()->StringSize (CHECKED_RADIO_BOX, w1, h1, aw1); if (w1 > m_rightOffset) m_rightOffset = w1; } else if (m_nType == NM_TYPE_NUMBER) { int w1, h1, aw1; char szValue [20]; nOthers++; sprintf (szValue, "%d", m_maxValue); fontManager.Current ()->StringSize (szValue, w1, h1, aw1); m_rightOffset = w1; sprintf (szValue, "%d", m_minValue); fontManager.Current ()->StringSize (szValue, w1, h1, aw1); if (w1 > m_rightOffset) m_rightOffset = w1; } else if (m_nType == NM_TYPE_INPUT) { SetText (m_text, m_savedText); nOthers++; nStringWidth = m_nTextLen * CCanvas::Current ()->Font ()->Width () + ((gameStates.menus.bHires ? 3 : 1) * m_nTextLen); if (nStringWidth > MAX_TEXT_WIDTH) nStringWidth = MAX_TEXT_WIDTH; m_value = -1; } else if (m_nType == NM_TYPE_INPUT_MENU) { SetText (m_text, m_savedText); nMenus++; nStringWidth = m_nTextLen * CCanvas::Current ()->Font ()->Width () + ((gameStates.menus.bHires ? 3 : 1) * m_nTextLen); m_value = -1; m_group = 0; } m_w = nStringWidth; m_h = nStringHeight; return nStringHeight; }
void scores_view(int citem) { fix t0 = 0, t1; int c,i,done,looper; int k, bRedraw = 0; 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 }; bkg bg; memset (&bg, 0, sizeof (bg)); ReshowScores: scores_read(); SetScreenMode(SCREEN_MENU); WINDOS( DDGrSetCurrentCanvas(NULL), GrSetCurrentCanvas(NULL) ); xOffs = (grdCurCanv->cv_bitmap.bm_props.w - 640) / 2; yOffs = (grdCurCanv->cv_bitmap.bm_props.h - 480) / 2; if (xOffs < 0) xOffs = 0; if (yOffs < 0) yOffs = 0; GameFlushInputs(); done = 0; looper = 0; while(!done) { if (!bRedraw || gameOpts->menus.nStyle) { NMDrawBackground(&bg,xOffs, yOffs, xOffs + 640, xOffs + 480, bRedraw); grdCurCanv->cv_font = MEDIUM3_FONT; WIN(DDGRLOCK(dd_grd_curcanv)); GrString( 0x8000, yOffs + LHY(15), TXT_HIGH_SCORES ); grdCurCanv->cv_font = SMALL_FONT; GrSetFontColorRGBi (RGBA_PAL (31,26,5), 1, 0, 0); GrString( xOffs + LHX(31+33+XX), yOffs + LHY(46+7+YY), TXT_NAME ); GrString( xOffs + LHX(82+33+XX), yOffs + LHY(46+7+YY), TXT_SCORE ); GrString( xOffs + LHX(127+33+XX), yOffs + LHY(46+7+YY), TXT_SKILL ); GrString( xOffs + LHX(170+33+XX), yOffs + LHY(46+7+YY), TXT_LEVELS ); // GrString( 202, 46, "Kills" ); // GrString( 234, 46, "Rescues" ); GrString( xOffs + LHX(288-42+XX), yOffs + LHY(46+7+YY), TXT_TIME ); if ( citem < 0 ) GrString( 0x8000, yOffs + LHY(175), TXT_PRESS_CTRL_R ); GrSetFontColorRGBi (RGBA_PAL (28,28,28), 1, 0, 0); //GrPrintF( 0x8000, yOffs + LHY(31), "%c%s%c - %s", 34, Scores.cool_saying, 34, Scores.stats[0].name ); WIN(DDGRUNLOCK(dd_grd_curcanv)); for (i=0; i<MAX_HIGH_SCORES; i++ ) { //@@if (i==0) { //@@ GrSetFontColorRGBi (RGBA_PAL (28,28,28), 1, 0, 0); //@@} else { //@@ GrSetFontColor( grFadeTable[BM_XRGB(28,28,28)+((28-i*2)*256)], 1, 0, 0); //@@} c = 28 - i * 2; GrSetFontColorRGBi (RGBA_PAL (c, c, c), 1, 0, 0); scores_draw_item( i, Scores.stats + i); } GrPaletteFadeIn( NULL,32, 0); #ifdef OGL if (citem < 0) GrUpdate (0); #endif bRedraw = 1; } if ( citem > -1 ) { t1 = TimerGetFixedSeconds(); //if (t1 - t0 >= F1_0/128 ) { t0 = t1; //@@GrSetFontColor( grFadeTable[fades[looper]*256+BM_XRGB(28,28,28)], -1 ); c = 7 + fades [looper]; GrSetFontColorRGBi (RGBA_PAL (c, c, c), 1, 0, 0); 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 ); } GrUpdate (0); } for (i=0; i<4; i++ ) if (joy_get_button_down_cnt(i)>0) done=1; for (i=0; i<3; i++ ) if (MouseButtonDownCount(i)>0) done=1; //see if redbook song needs to be restarted songs_check_redbook_repeat(); #ifdef WINDOWS { MSG msg; DoMessageStuff(&msg); if (_RedrawScreen) { _RedrawScreen = FALSE; goto ReshowScores; } DDGRRESTORE; } #endif k = KeyInKey(); switch( k ) { case KEY_CTRLED+KEY_R: if ( citem < 0 ) { // Reset scores... if ( ExecMessageBox( NULL, NULL, 2, TXT_NO, TXT_YES, TXT_RESET_HIGH_SCORES )==1 ) { CFDelete(get_scores_filename(), gameFolders.szDataDir); GrPaletteFadeOut (NULL, 32, 0 ); goto ReshowScores; } } break; case KEY_BACKSP: Int3(); k = 0; break; case KEY_PRINT_SCREEN: SaveScreenShot (NULL, 0); k = 0; break; case KEY_ENTER: case KEY_SPACEBAR: case KEY_ESC: done=1; break; } } // Restore background and exit GrPaletteFadeOut (NULL, 32, 0 ); #ifdef WINDOWS DDGRRESTORE; #endif WINDOS( DDGrSetCurrentCanvas(NULL), GrSetCurrentCanvas(NULL) ); GameFlushInputs(); NMRemoveBackground (&bg); }
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(); }