Mercurial > hg > early-roguelike
view rogue5/score.h @ 114:a5433ba4cabf
arogue5: fix some daemon-related pointer/int casting.
Daemons and fuses take a single argument, nominally an int but either
ignored or unsafely cast to a pointer. Its type has now been changed
to void*.
The save/restore code no longer tries to store this argument in the
savefile. For doctor(), this is not a problem, because player is the
only argument it is ever given as a daemon. However, alchemy() will
fail to do anything when passed NULL. Fixing this would be complicated
but possible.
Summary: the code is slightly safer, but alchemy jugs are guaranteed to
stop working after save and restore, instead of just extremely likely.
author | John "Elwin" Edwards |
---|---|
date | Fri, 28 Mar 2014 10:57:03 -0700 |
parents | f502bf60e6e4 |
children |
line wrap: on
line source
/* * Score file structure * * @(#)score.h 4.6 (Berkeley) 02/05/99 * * Rogue: Exploring the Dungeons of Doom * Copyright (C) 1980-1983, 1985, 1999 Michael Toy, Ken Arnold and Glenn Wichman * All rights reserved. * * See the file LICENSE.TXT for full copyright and licensing information. */ struct sc_ent { uid_t sc_uid; int sc_score; unsigned int sc_flags; int sc_monster; char sc_name[MAXSTR]; int sc_level; unsigned int sc_time; }; typedef struct sc_ent SCORE; void rd_score(SCORE *top_ten); void wr_score(SCORE *top_ten);