Re: [CODE] bug fix in zedit new

From: Ray Campbell (goalie19@IDT.NET)
Date: 07/29/97

Andrew Helm wrote:

> There are two bugs in zedit.c, in the function zedit_new_zone().
> Find the lines that read:
>   /*. Make a new zone in memory.*/
>   CREATE(new_table, struct zone_data, top_of_zone_table);
>   new_table[top_of_zone_table + 1].number = 32000;
>   for(i = 0; i <= top_of_zone_table + 1; i++)
>     if(!found)
>       if (i > top_of_zone_table || zone_table[i].number > vzone_num)
>       { found = 1;
> The first bug is in the line that reads:
>    CREATE(new_table, struct zone_data, top_of_zone_table);
> Change this line to:
>    CREATE(new_table, struct zone_data, top_of_zone_table+2);
> The next bug is in the line that reads:
>    for(i = 0; i <= top_of_zone_table + 1;i++);
> Change this line to
>    for(i = 0; i <= top_of_zone_table;i++);

   Ok, this looked great, but is it too good to be true?
I added this little fix and tested it out, this is what I got:
I created a new zone and typed show zones
I see this for the zone I jsut created:
32000 (null)                         Age:   0; Reset:   0 (0); Top:
where it should be:
33 New Zone                      Age:   0; Reset:   30(2); Top:    3399

Ok, now, all I could think of was changing the line:
  new_table[top_of_zone_table + 1].number = 32000;
  new_table[top_of_zone_table + 2].number = 32000;
to coincide with the previous, but this resulted in an even more
interesting problem...but thats besides the point...
Granted, this is all fixed by a reboot, which cleans up show zones and
shows the right stuff, and I can edit the zone fine, but before I do
that it tell me there is no zone for that number.
So I looked in /lib/world/zon (and wld) and the 33.zon and 33.wld's
where all there...and in the index its just something in
one of those lines in zedit.c
just to let you know...

     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | |

This archive was generated by hypermail 2b30 : 12/08/00 PST