X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=d86fa57267864ca83e626f6917683fddb8966c8a;hb=e4b2e4f943c20af98956d30fd3014888e9f75416;hp=d1629867c96a2668cb0f1f282e4c54ab04c64936;hpb=77eea34405c119f20f461acae08cd77ec5c21dd6;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index d1629867..d86fa572 100644 --- a/src/screens.c +++ b/src/screens.c @@ -1739,15 +1739,7 @@ void DrawMainMenu(void) OpenDoor(DOOR_CLOSE_1 | DOOR_OPEN_2); -#if defined(PLATFORM_EMSCRIPTEN) - EM_ASM - ( - FS.syncfs(function(err) - { - assert(!err); - }); - ); -#endif + SyncEmscriptenFilesystem(); } static void gotoTopLevelDir(void) @@ -5059,6 +5051,12 @@ void DrawHallOfFame(int level_nr, int highlight_position) else SetAnimStatus(GAME_MODE_PSEUDO_SCORESNEW); + LoadServerScore(level_nr); + + // correct highlight position after adding server scores + if (highlight_position >= 0) + highlight_position = scores.last_added; + FadeSetEnterScreen(); FadeOut(fade_mask); @@ -5077,6 +5075,24 @@ void DrawHallOfFame(int level_nr, int highlight_position) FadeIn(fade_mask); } +static char *getHallOfFameScoreText(int nr) +{ + if (!level.rate_time_over_score) + return int2str(scores.entry[nr].score, 5); // show normal score + + if (level.use_step_counter) + return int2str(scores.entry[nr].time, 5); // show number of steps + + static char score_text[10]; + int time_seconds = scores.entry[nr].time / FRAMES_PER_SECOND; + int mm = (time_seconds / 60) % 60; + int ss = (time_seconds % 60); + + sprintf(score_text, "%02d:%02d", mm, ss); // show playing time + + return score_text; +} + static void drawHallOfFameList(int level_nr, int first_entry, int highlight_position) { @@ -5113,7 +5129,7 @@ static void drawHallOfFameList(int level_nr, int first_entry, if (!strEqual(scores.entry[entry].name, EMPTY_PLAYER_NAME)) DrawText(mSX + dx2, sy, scores.entry[entry].name, font_nr2); - DrawText(mSX + dx3, sy, int2str(scores.entry[entry].score, 5), font_nr4); + DrawText(mSX + dx3, sy, getHallOfFameScoreText(entry), font_nr4); } redraw_mask |= REDRAW_FIELD;