(This is the "Dungeon Designs" column from the December 1990 issue of the Eamon Adventurer's Guild newsletter. Copyright 1990 Eamon Adventurer's Guild, 7625 Hawkhaven Dr., Clemmons, NC 27012-9408. You may reproduce this freely as long as this credit remains attached to the article.) Using 10 directions in version 7.0. By Tom Zuchowski and Robert Parker While working on one of his adventures, Rob had terrible problems with database corruption in the EAMON.ROOMS file. The problem was traced to the fact that it was to be a 10-direction adventure instead of the normal 6 directions. Version 7.0 allows for an average of 4 digits for each of the 6 directions from a given room plus the lighting status, for a total of 32 bytes (including CR's after each value). Rob's adventure used lots of special room connections and was averaging very close to 4 digits for ten directions, for a total of about 50 bytes. This meant that the room data was overrunning the disk record space that was allotted for it. Version 7.0 can accommodate different record lengths, depending on the author-specified length for the room name. It defaults to a room name length of 38 bytes, but a wide latitude of name lengths can be specified when the adventure is initialized, or later with the RESIZE FILES utility. The allotted record space for room data cannot be so easily modified, but room data shares the same record with the room name. Thus it is quite easy to make more space for extra room data by specifying a longer room name than you really intend to use. For a 10-direction adventure, you should specify a room name length that is at least 20 bytes longer than you really intend to use. For example, if you plan to use the default 38-byte name length, you should specify a name length of at least 58 bytes. Then you must remember not to let your room name run past the first line even though the editor shows that you have another half-line available. Yes, this is a kluge fix, but it is very easy to implement. If you don't want to do something mickeymouse like this, you have two other options for 10-direction adventures: 1) Limit your room data to an average of 2 bytes per room connection. As long as you don't exceed 20 bytes (plus an additional 10 bytes for CR's), the data will fit very well within the standard record space. 2) Rework the DUNGEON INIT, EDIT, & LIST programs to accommodate the extra space. This isn't very difficult to do but then you must somehow make sure that no one ever runs a normal DDD on the adventure. Rob opted for a modification of option #1. He reworked his room connections to use fewer bytes. But he also deleted the UP and DOWN directions from the database, which gave him an average of 2.75 bytes per direction to play with. ----------------- So how does one make a 10-direction adventure? The mods to the MAIN PGM are actually quite simple: 1) Add 4 to the number in the DATA statement at line 31910. 2) Add NE,NW,SE,NW to the command list at line 31920, between DOWN and GET. 3) At Line 290, immediately after the GOTO, add the number 3000 four more times, so that the line has 3000 a total of ten times, consecutively. Next, you must modify the EAMON.NAME file by running this small pgm: 10 D$ = CHR$(4) 20 PRINT D$"OPEN EAMON.NAME" 30 PRINT D$"READ EAMON.NAME" 40 INPUT AN$: INPUT ND$: INPUT DV$ 50 PRINT D$"WRITE EAMON.NAME" 60 PRINT AN$: PRINT "10": PRINT DV$ 70 PRINT D$"CLOSE" That's all there is to it!