Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10 5/3/83; site rayssd.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!rayssd!dhb From: dhb@rayssd.UUCP Newsgroups: net.games.rogue Subject: Re: The FLAME hits --More-- Message-ID: <556@rayssd.UUCP> Date: Tue, 6-Nov-84 12:36:49 EST Article-I.D.: rayssd.556 Posted: Tue Nov 6 12:36:49 1984 Date-Received: Thu, 8-Nov-84 00:26:36 EST References: <237@wjvax.UUCP> Organization: Raytheon Co., Portsmouth RI Lines: 26 I think that the save game bug is one of the worst things in the entire game. Most of the rest of the things can be worked around by careful playing but not this one. If you have ever seen the source to the game you will understand not only the cause of this bug but the complexity of attempting to resolve it. The way the program saves the game is by finding out the beginning address of the data space, doing an sbrk() to find the end of the data space, and then writing the entire data space to the file. The restore routine simply finds out the size of the file, sets the size of the data space to that amount, and then reads the file in. When I first saw this I almost choked. This is not to say that I think the authors are poor programmers, just that the code is EXTREMELY un-portable (I was trying to port an old version (3.8) of the program to another operating system at the time!). This method of doing the save/restore is also highly prone to problems (witness the current bug) due to the fact that a large portion of the data space contains pointers. Just let me state again that I am not critizing the quality of the save/restore routines coding, only it's portablity. If any of the authors are interested, I have a save/restore routine about 95% finished which should alleviate these problems. -- Dave Brierley Raytheon Co.; Portsmouth RI; (401)-847-8000 x4073 ...!decvax!brunix!rayssd!dhb ...!allegra!rayssd!dhb ...!linus!rayssd!dhb