Mercurial > hg > early-roguelike
view rogue3/machdep.h @ 83:09db0cf536af
Properly handle invalid room references in savefiles.
In all games, rs_write_room_reference() stored -1 for a nonexistent
room, but rs_read_room_reference() did not check for out-of-bounds
values, leading to pointers to rooms[-1], which sometimes caused
crashes. rs_read_room_reference() has now been modified to use NULL
instead.
Some of the games required further changes to replace NULL with the
pointer to the actual room. Others are capable of handling NULL for
objects not in any room.
author | John "Elwin" Edwards |
---|---|
date | Thu, 08 Aug 2013 12:41:35 -0700 |
parents | c6d58901ddc0 |
children | 07c4d4883ef2 |
line wrap: on
line source
/* * machine dependicies * * %G% (Berkeley) %W% * * Rogue: Exploring the Dungeons of Doom * Copyright (C) 1980, 1981 Michael Toy, Ken Arnold and Glenn Wichman * All rights reserved. * * See the file LICENSE.TXT for full copyright and licensing information. */ /* * Variables for checking to make sure the system isn't too loaded * for people to play */ /* Comment out MAXLOAD or MAXUSERS to disable a check */ #define AUTHORUID 0 #define MAXUSERS 25 /* max number of users for this game */ #define MAXLOAD 40 /* 10 * max 15 minute load average */ #define CHECKTIME 15 /* number of minutes between load checks */ /* Locations of various files. Comment out to disable. */ /* The list of top ten scores. */ #define SCOREFILE "/var/local/games/roguelike/rogue3.scr" /* A text file with a record of every game. */ #define LOGFILE "/var/local/games/roguelike/rogue3.log" /* A standard location for saved games. */ #define SAVEDIR "/var/local/games/roguelike/rogue3save/"