Crossfire Server, Trunk
R21670
|
#include "global.h"
#include <errno.h>
#include <string.h>
#include "sproto.h"
#include "output_file.h"
Go to the source code of this file.
Data Structures | |
struct | score_table |
struct | scr |
Macros | |
#define | _GNU_SOURCE |
Typedefs | |
typedef struct scr | score |
Functions | |
static void | add_score (score_table *table, score *new_score, score *old_score) |
static char * | draw_one_high_score (const score *sc, char *buf, size_t size) |
static int | get_score (char *bp, score *sc) |
void | hiscore_check (object *op, int quiet) |
void | hiscore_display (object *op, int max, const char *match) |
void | hiscore_init (void) |
static void | hiscore_load (score_table *table) |
static void | hiscore_save (const score_table *table) |
static void | put_score (const score *sc, char *buf, size_t size) |
Variables | |
static score_table | hiscore_table |
Hiscore handling functions.
Definition in file hiscore.c.
|
static |
Adds the given score-structure to the high-score list, but only if it was good enough to deserve a place.
table | the highscore table to add to. |
new_score | score to add. |
old_score | returns the old player score. |
Definition at line 182 of file hiscore.c.
References score_table::entry, scr::exp, HIGHSCORE_LENGTH, hiscore_save(), scr::name, and scr::position.
Referenced by hiscore_check().
|
static |
Formats one score to display to a player.
sc | score to format. |
buf | buffer to write to. Will contain suitably formatted score. |
size | length of buf. |
Definition at line 155 of file hiscore.c.
References scr::exp, FMT64, scr::killer, scr::maplevel, scr::maxgrace, scr::maxhp, scr::maxsp, scr::name, scr::position, snprintf, and scr::title.
Referenced by hiscore_check(), and hiscore_display().
|
static |
The opposite of put_score(), get_score reads from the given buffer into a static score structure, and returns a pointer to it.
bp | string to parse. |
sc | returns the parsed score. |
Definition at line 110 of file hiscore.c.
References BIG_NAME, scr::exp, FMT64, scr::killer, scr::maplevel, scr::maxgrace, scr::maxhp, scr::maxsp, scr::name, split_string(), and scr::title.
Referenced by hiscore_load().
void hiscore_check | ( | object * | op, |
int | quiet | ||
) |
Checks if player should enter the hiscore, and if so writes her into the list.
op | player to check. |
quiet | If set, don't print anything out - used for periodic updates during game play or when player unexpected quits - don't need to print anything in those cases |
Definition at line 301 of file hiscore.c.
References add_score(), BIG_NAME, obj::contr, draw_ext_info(), draw_one_high_score(), scr::exp, liv::exp, FLAG_WAS_WIZ, HIGHSCORE_LENGTH, scr::killer, pl::killer, obj::map, scr::maplevel, MAX_BUF, scr::maxgrace, liv::maxgrace, scr::maxhp, liv::maxhp, scr::maxsp, liv::maxsp, MSG_TYPE_ADMIN, MSG_TYPE_ADMIN_HISCORE, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_ERROR, scr::name, obj::name, mapdef::name, pl::name_changed, NDI_UNIQUE, mapdef::path, player_get_title(), scr::position, QUERY_FLAG, obj::stats, and scr::title.
Referenced by apply_savebed(), command_kick2(), emergency_save(), key_confirm_quit(), kill_player_permadeath(), leave(), and process_players1().
void hiscore_display | ( | object * | op, |
int | max, | ||
const char * | match | ||
) |
Displays the high score file.
op | player asking for the score file. |
max | maximum number of scores to display. |
match | if non-empty, will only print players with name or title containing the string (non case-sensitive). |
Definition at line 382 of file hiscore.c.
References draw_ext_info(), draw_one_high_score(), score_table::entry, HIGHSCORE_LENGTH, llevDebug, LOG(), MAX_BUF, MSG_TYPE_ADMIN, MSG_TYPE_ADMIN_HISCORE, scr::name, NDI_UNIQUE, strcasestr_local, and scr::title.
Referenced by command_hiscore().
void hiscore_init | ( | void | ) |
Initializes the module.
Definition at line 286 of file hiscore.c.
References score_table::fname, HIGHSCORE, hiscore_load(), Settings::localdir, settings, and snprintf.
Referenced by init().
|
static |
Loads the hiscore_table from the highscore file.
table | the highscore table to load. |
Definition at line 244 of file hiscore.c.
References score_table::entry, score_table::fname, get_score(), HIGHSCORE_LENGTH, llevDebug, llevError, llevInfo, LOG(), MAX_BUF, and scr::position.
Referenced by hiscore_init().
|
static |
Saves the highscore_table into the highscore file.
table | the highscore table to save. |
Definition at line 76 of file hiscore.c.
References score_table::entry, score_table::fname, HIGHSCORE_LENGTH, llevDebug, LOG(), MAX_BUF, scr::name, of_close(), of_open(), and put_score().
Referenced by add_score().
|
static |
Writes the given score structure to specified buffer.
sc | score to write. |
buf | buffer to write to. |
size | buf's size. |
Definition at line 66 of file hiscore.c.
References scr::exp, FMT64, scr::killer, scr::maplevel, scr::maxgrace, scr::maxhp, scr::maxsp, scr::name, snprintf, and scr::title.
Referenced by hiscore_save().
|
static |