From 4520ba5a6505562262ba3f6ebb372a1cff23210b Mon Sep 17 00:00:00 2001 From: David Meyer Date: Tue, 26 Mar 2024 00:02:00 +0900 Subject: [PATCH] Fiddled and added notes to put_scores() --- roguegg | Bin 148384 -> 148384 bytes score.c | 360 +++++++++++++++++++++++++++++--------------------------- 2 files changed, 187 insertions(+), 173 deletions(-) diff --git a/roguegg b/roguegg index 575f1e0ed30f0ac2a0636aa07098d892ec8d9456..e5f4c540945438e046217311ef2a66bf1afec540 100755 GIT binary patch delta 29757 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 KOlc?9v;BX|P#pIF delta 29821 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

(+@*f|IE6=FLPpE3uDlqEX>T2s$ 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 B%dr3e diff --git a/score.c b/score.c index ec280b5..ff4961f 100644 --- a/score.c +++ b/score.c @@ -337,206 +337,220 @@ write_score_entry(const struct score_entry *se, int rank, FILE *fp) void put_scores(const object *monster, short other) { - short i, rank=-1, found_player = -1, numscores = NUM_SCORE_ENTRIES; - short rank_exp=-1, expscore = FIRST_EXP_SCORE, found_player_exp = -1; - struct score_entry scores[NUM_SCORE_ENTRIES]; - const char *name; - FILE *fp; - boolean dopause = score_only; + short i, rank=-1, found_player = -1, numscores = NUM_SCORE_ENTRIES; + short rank_exp=-1, expscore = FIRST_EXP_SCORE, found_player_exp = -1; + struct score_entry scores[NUM_SCORE_ENTRIES]; + const char *name; + FILE *fp; + boolean dopause = score_only; - md_lock(1); + md_lock(1); - setegid(egid); - if ((fp = fopen(_PATH_SCOREFILE, "r+")) == NULL && - (fp = fopen(_PATH_SCOREFILE, "w+")) == NULL) { - setegid(gid); - messagef(0, "cannot read/write/create score file"); - sf_error(); - } - setegid(gid); - rewind(fp); - (void)xxx(1); + setegid(egid); + if ((fp = fopen(_PATH_SCOREFILE, "r+")) == NULL && + (fp = fopen(_PATH_SCOREFILE, "w+")) == NULL) { + setegid(gid); + messagef(0, "cannot read/write/create score file"); + sf_error(); + } + setegid(gid); + rewind(fp); + (void)xxx(1); - /* Initialize scores array */ - for (i = 0; i < NUM_SCORE_ENTRIES; i++) { - scores[i].gold = -1L; - scores[i].username[0] = '\0'; - scores[i].death[0] = '\0'; - scores[i].nickname[0] = '\0'; - } + /* Initialize scores array */ + for (i = 0; i < NUM_SCORE_ENTRIES; i++) { + scores[i].gold = -1L; + scores[i].username[0] = '\0'; + scores[i].death[0] = '\0'; + scores[i].nickname[0] = '\0'; + } - for (i = 0; i < NUM_SCORE_ENTRIES; i++) { - if (read_score_entry(&scores[i], fp) == 0) { - break; - } - } + for (i = 0; i < NUM_SCORE_ENTRIES; i++) { + if (read_score_entry(&scores[i], fp) == 0) { + break; + } + } - /* Search the gold score list. */ - for (i = 0; i < FIRST_EXP_SCORE; i++) { - if (!strcmp(scores[i].username, login_name)) { - /* found our score */ - if (rogue.gold < scores[i].gold) { - /* we didn't do as well as last time */ - /* score_only = 1;*/ - } else { - /* we did better; mark entry for removal */ - found_player = i; - } - break; - } - } + /* Gold&Glory + * At the end of a game, the rogueist's gold and experience scores can be in + * one of the following conditions with respect to the top scores: + * 1. The rogueist is not in the top scorer list + * --> Add rogueist to top score list if score is high enough + * 2. The rogueist is in the top score list, but his current score is not greater + * than his previous top score + * --> Do nothing + * 3. The rogueist is in the top score list, and his current score is greater + * than his previous top score + * --> Remove rogueist from top score list; readd rogueist at new rank + * (condition of gold and experience scores are independent) + */ - /* Search the exp score list. */ - for (i = FIRST_EXP_SCORE; i < NUM_SCORE_ENTRIES; i++) { - if (!strcmp(scores[i].username, login_name)) { - /* found our score */ - if (rogue.exp_points < scores[i].gold) { - /* we didn't do as well as last time */ - /* score_only = 1;*/ - } else { - /* we did better; mark entry for removal */ - found_player_exp = i; - } - break; - } - } + /* Search the gold score list. */ + for (i = 0; i < FIRST_EXP_SCORE; i++) { + if (!strcmp(scores[i].username, login_name)) { + /* found our score */ + if (rogue.gold < scores[i].gold) { + /* we didn't do as well as last time */ + score_only = 1; + } else { + /* we did better; mark entry for removal */ + found_player = i; + } + break; + } + } - if (found_player == -1 && found_player_exp == -1) score_only = 1; + /* Search the exp score list. */ + for (i = FIRST_EXP_SCORE; i < NUM_SCORE_ENTRIES; i++) { + if (!strcmp(scores[i].username, login_name)) { + /* found our score */ + if (rogue.exp_points < scores[i].gold) { + /* we didn't do as well as last time */ + score_only = 1; + } else { + /* we did better; mark entry for removal */ + found_player_exp = i; + } + break; + } + } - /* Remove superseded entries, if any. */ - if (found_player != -1) { - for (i = found_player; i < FIRST_EXP_SCORE-1; i++) { - scores[i] = scores[i+1]; - } - scores[i].gold = -1L; - scores[i].username[0] = '\0'; - scores[i].death[0] = '\0'; - scores[i].nickname[0] = '\0'; - } - if (found_player_exp != -1) { - for (i = found_player_exp; i < NUM_SCORE_ENTRIES-1; i++) { - scores[i] = scores[i+1]; - } - scores[i].gold = -1L; - scores[i].username[0] = '\0'; - scores[i].death[0] = '\0'; - scores[i].nickname[0] = '\0'; - } + /* if (found_player == -1 && found_player_exp == -1) score_only = 1;*/ + + /* Remove superseded entries, if any. */ + if (found_player != -1) { + for (i = found_player; i < FIRST_EXP_SCORE-1; i++) { + scores[i] = scores[i+1]; + } + scores[i].gold = -1L; + scores[i].username[0] = '\0'; + scores[i].death[0] = '\0'; + scores[i].nickname[0] = '\0'; + } + if (found_player_exp != -1) { + for (i = found_player_exp; i < NUM_SCORE_ENTRIES-1; i++) { + scores[i] = scores[i+1]; + } + scores[i].gold = -1L; + scores[i].username[0] = '\0'; + scores[i].death[0] = '\0'; + scores[i].nickname[0] = '\0'; + } - /* If we're going to insert ourselves, do it now */ - if (!score_only) { + /* If we're going to insert ourselves, do it now */ + if (!score_only) { + + /* Gold&Glory: did we make the top gold list? */ + /* if we aren't better than anyone, add at end. */ + rank = FIRST_EXP_SCORE; + + /* Otherwise, find our slot. */ + for (i = 0; i < FIRST_EXP_SCORE; i++) { + if (rogue.gold >= scores[i].gold) { + rank = i; + break; + } + } - /* Gold&Glory: did we make the top gold list? */ - /* if we aren't better than anyone, add at end. */ - rank = FIRST_EXP_SCORE; - - /* Otherwise, find our slot. */ - for (i = 0; i < FIRST_EXP_SCORE; i++) { - if (rogue.gold >= scores[i].gold) { - rank = i; - break; - } - } + if (rank < FIRST_EXP_SCORE) { + /* Open up a slot */ + for (i = FIRST_EXP_SCORE-1; i > rank; i--) { + scores[i] = scores[i-1]; + } - if (rank < FIRST_EXP_SCORE) { - /* Open up a slot */ - for (i = FIRST_EXP_SCORE-1; i > rank; i--) { - scores[i] = scores[i-1]; - } + /* Put our info in the slot */ + make_score(&scores[rank], monster, other, TOP_GOLD); + } + + /* Gold&Glory: did we make the top experience list? */ + /* if we aren't better than anyone, add at end. */ + rank_exp = NUM_SCORE_ENTRIES; - /* Put our info in the slot */ - make_score(&scores[rank], monster, other, TOP_GOLD); - } + /* Otherwise, find our slot. */ + for (i = FIRST_EXP_SCORE; i < NUM_SCORE_ENTRIES; i++) { + if (rogue.exp_points >= scores[i].gold) { + rank_exp = i; + break; + } + } - /* Gold&Glory: did we make the top experience list? */ - /* if we aren't better than anyone, add at end. */ - rank_exp = NUM_SCORE_ENTRIES; + if (rank_exp < NUM_SCORE_ENTRIES) { + /* Open up a slot */ + for (i = NUM_SCORE_ENTRIES-1; i > rank; i--) { + scores[i] = scores[i-1]; + } - /* Otherwise, find our slot. */ - for (i = FIRST_EXP_SCORE; i < NUM_SCORE_ENTRIES; i++) { - if (rogue.exp_points >= scores[i].gold) { - rank_exp = i; - break; - } - } - - if (rank_exp < NUM_SCORE_ENTRIES) { - /* Open up a slot */ - for (i = NUM_SCORE_ENTRIES-1; i > rank; i--) { - scores[i] = scores[i-1]; - } - - /* Put our info in the slot */ - make_score(&scores[rank_exp], monster, other, TOP_EXP); - } + /* Put our info in the slot */ + make_score(&scores[rank_exp], monster, other, TOP_EXP); + } - /* Now rewrite the score file */ + /* Now rewrite the score file */ + + md_ignore_signals(); + rewind(fp); + (void)xxx(1); - md_ignore_signals(); - rewind(fp); - (void)xxx(1); + for (i = 0; i < numscores; i++) { + write_score_entry(&scores[i], i, fp); + } + } + md_lock(0); + fclose(fp); - for (i = 0; i < numscores; i++) { - write_score_entry(&scores[i], i, fp); - } - } - md_lock(0); - fclose(fp); + /* Display the scores */ - /* Display the scores */ + clear(); + mvaddstr(3, 27, "Top Gold & Glory Rogueists"); + mvaddstr(7, 0, "Rank Gold Name"); - clear(); - mvaddstr(3, 27, "Top Gold & Glory Rogueists"); - mvaddstr(7, 0, "Rank Gold Name"); + for (i = 0; i < FIRST_EXP_SCORE; i++) { + if (scores[i].gold == -1L) break; + if (i == rank) { + standout(); + } - for (i = 0; i < FIRST_EXP_SCORE; i++) { - if (scores[i].gold == -1L) break; - if (i == rank) { - standout(); - } + if (scores[i].nickname[0]) { + name = scores[i].nickname; + } else { + name = scores[i].username; + } - if (scores[i].nickname[0]) { - name = scores[i].nickname; - } else { - name = scores[i].username; - } + mvprintw(i+8, 0, "%2d %6ld %s: %s", + i+1, scores[i].gold, name, scores[i].death); - mvprintw(i+8, 0, "%2d %6ld %s: %s", - i+1, scores[i].gold, name, scores[i].death); + if (i == rank) { + standend(); + } + } - if (i == rank) { - standend(); - } - } + mvaddstr(14, 0, "Rank Lvl/Exp Name"); - mvaddstr(14, 0, "Rank Lvl/Exp Name"); + for (i = FIRST_EXP_SCORE; i < NUM_SCORE_ENTRIES; i++) { + if (scores[i].gold == -1L) break; + if (i == rank_exp) { + standout(); + } - for (i = FIRST_EXP_SCORE; i < NUM_SCORE_ENTRIES; i++) { - if (scores[i].gold == -1L) break; - if (i == rank_exp) { - standout(); - } + if (scores[i].nickname[0]) { + name = scores[i].nickname; + } else { + name = scores[i].username; + } - if (scores[i].nickname[0]) { - name = scores[i].nickname; - } else { - name = scores[i].username; - } + mvprintw(i+10, 0, "%2d %2d/%-6ld %s: %s", + i+1 - expscore, get_exp_level(scores[i].gold), scores[i].gold, + name, scores[i].death); - mvprintw(i+10, 0, "%2d %2d/%-6ld %s: %s", - i+1 - expscore, get_exp_level(scores[i].gold), scores[i].gold, - name, scores[i].death); - - if (i == rank_exp) { - standend(); - } - } - refresh(); - messagef(0, "%s", ""); /* gcc objects to just "" */ - if (dopause) { - messagef(0, "%s", ""); - } - clean_up(""); + if (i == rank_exp) { + standend(); + } + } + refresh(); + messagef(0, "%s", ""); /* gcc objects to just "" */ + if (dopause) { + messagef(0, "%s", ""); + } + clean_up(""); } static