ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/server/hiscore.C
(Generate patch)

Comparing deliantra/server/server/hiscore.C (file contents):
Revision 1.14 by root, Tue Dec 26 08:54:59 2006 UTC vs.
Revision 1.19 by root, Sun Mar 18 03:05:40 2007 UTC

1/* 1/*
2 CrossFire, A Multiplayer game for X-windows 2 * CrossFire, A Multiplayer game for X-windows
3 3 *
4 * Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team
4 Copyright (C) 2002 Mark Wedel & Crossfire Development Team 5 * Copyright (C) 2002 Mark Wedel & Crossfire Development Team
5 Copyright (C) 1992 Frank Tore Johansen 6 * Copyright (C) 1992 Frank Tore Johansen
6 7 *
7 This program is free software; you can redistribute it and/or modify 8 * This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 9 * it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or 10 * the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version. 11 * (at your option) any later version.
11 12 *
12 This program is distributed in the hope that it will be useful, 13 * This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details. 16 * GNU General Public License for more details.
16 17 *
17 You should have received a copy of the GNU General Public License 18 * You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software 19 * along with this program; if not, write to the Free Software
19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 21 *
21 The authors can be reached via e-mail at <crossfire@schmorp.de> 22 * The authors can be reached via e-mail at <crossfire@schmorp.de>
22*/ 23 */
23 24
24#include <global.h> 25#include <global.h>
25#include <sproto.h> 26#include <sproto.h>
26 27
27/* 28/*
40 41
41/* 42/*
42 * spool works mostly like strtok(char *, ":"), but it can also 43 * spool works mostly like strtok(char *, ":"), but it can also
43 * log a specified error message if something goes wrong. 44 * log a specified error message if something goes wrong.
44 */ 45 */
45
46char * 46char *
47spool (char *bp, char *error) 47spool (char *bp, const char *error)
48{ 48{
49 static char *prev_pos = NULL; 49 static char *prev_pos = NULL;
50 char *next_pos; 50 char *next_pos;
51 51
52 if (bp == NULL) 52 if (bp == NULL)
75 75
76/* 76/*
77 * Does what it says, copies the contents of the first score structure 77 * Does what it says, copies the contents of the first score structure
78 * to the second one. 78 * to the second one.
79 */ 79 */
80
81static void 80static void
82copy_score (score *sc1, score *sc2) 81copy_score (score *sc1, score *sc2)
83{ 82{
84 assign (sc2->name , sc1->name); 83 assign (sc2->name , sc1->name);
85 assign (sc2->title , sc1->title); 84 assign (sc2->title , sc1->title);
93 92
94/* 93/*
95 * Writes the given score structure to a static buffer, and returns 94 * Writes the given score structure to a static buffer, and returns
96 * a pointer to it. 95 * a pointer to it.
97 */ 96 */
98
99static char * 97static char *
100put_score (score *sc) 98put_score (score *sc)
101{ 99{
102 static char buf[MAX_BUF]; 100 static char buf[MAX_BUF];
103 101
265 score *old_score; 263 score *old_score;
266 264
267 if (op->stats.exp == 0) 265 if (op->stats.exp == 0)
268 return; 266 return;
269 267
270 if (op->contr->explore)
271 {
272 new_draw_info (NDI_UNIQUE, 0, op, "Since you were in explore mode,");
273 new_draw_info (NDI_UNIQUE, 0, op, "you can't enter the high-score list.");
274 return;
275 }
276
277 assign (new_score.name, op->name); 268 assign (new_score.name, op->name);
278 assign (new_score.title, op->title.length () ? &op->title : op->contr->title); 269 assign (new_score.title, op->title.length () ? &op->title : op->contr->title);
279 assign (new_score.killer, op->contr->killer[0] ? op->contr->killer : "a dungeon collapse"); 270 assign (new_score.killer, op->contr->killer[0] ? op->contr->killer : "a dungeon collapse");
280 assign (new_score.maplevel, op->map ? op->map->name ? op->map->name : op->map->path : ""); 271 assign (new_score.maplevel, op->map ? op->map->name ? &op->map->name : &op->map->path : "");
281 272
282 new_score.exp = op->stats.exp; 273 new_score.exp = op->stats.exp;
283 new_score.maxhp = op->stats.maxhp; 274 new_score.maxhp = op->stats.maxhp;
284 new_score.maxsp = op->stats.maxsp; 275 new_score.maxsp = op->stats.maxsp;
285 new_score.maxgrace = op->stats.maxgrace; 276 new_score.maxgrace = op->stats.maxgrace;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines