Mercurial > hg > early-roguelike
view xrogue/mach_dep.h @ 298:5a94c9b3181e
UltraRogue: clear the next_obj field when removing items from the floor.
The next_obj field is a pointer which the top item in a stack uses to
keep a list of the other items. When removing an item from the stack,
rem_obj() failed to set next_obj to NULL, which can cause items in
monster inventory to point to items earlier in the inventory list.
That causes infinite co-recursion when saving or restoring.
author | John "Elwin" Edwards |
---|---|
date | Thu, 08 Feb 2018 20:54:34 -0500 |
parents | 4b1999ac91cf |
children |
line wrap: on
line source
/* mach_dep.h - machine dependents XRogue: Expeditions into the Dungeons of Doom Copyright (C) 1991 Robert Pietkivitch All rights reserved. Based on "Advanced Rogue" Copyright (C) 1984, 1985 Michael Morgan, Ken Dalka and AT&T All rights reserved. Based on "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. */ /* * define/undefine that the wizard commands exist */ #ifndef HAVE_CONFIG_H #undef WIZARD #endif #if defined(_WIN32) #define fstat _fstat #define stat _stat #define open _open #define popen _popen #define pclose _pclose #if !defined(__MINGW32__) #define PATH_MAX _MAX_PATH #endif #endif #define NOOP(x) (x += 0) extern char *md_getusername(); extern char *md_gethomedir(); extern char *md_getroguedir(); extern void md_flushinp(); extern char *md_getshell(); extern char *md_gethostname(); extern void md_dobinaryio(); extern char *md_getpass(); extern void md_init(); extern char *xcrypt(); /* * define if you want to limit scores to one per class per userid */ #ifndef HAVE_CONFIG_H /* #define LIMITSCORE 1*/ #undef LIMITSCORE #endif /* * fudge factor allowed in time for saved game */ #define FUDGE_TIME 200 /* File locations. Define here if necessary. */ #if 0 #define SCOREFILE "xrogue.scr" #define LOGFILE "xrogue.log" #endif