Problems with Oasis save list

From: Del (caminturn@earthlink.net)
Date: 07/28/01


Anyone else mess around with the new Oasis yet and run across this problem?

I was trying to figure out the sedit.c/shop.c bug (since it crashes my
bundle). I ran across a little incompatibility with the save list.

The new oasis saves the zone numbers to the 'save_list' however
when you go to save them you can't use the zone number.

example: (don't do this in zone 0 to show the true effect)
redit -> b -> 0 -> q -> y  (save internal)
type olc to see the zone show up
then type redit save <zone you just edited a room from>
you see:
> Saving all rooms in zone 0.
type olc again, you see your zone listed.
Then type
redit save <zone * 100 (like 1200)>
> Saving all rooms in zone 0.
type olc again and whala
> All world files are up to date.

In oasis.c when you type redit save <zone>, it takes the zone number
and tries to use this
   if ((OLC_ZNUM(d) = real_zone_by_thing(number)) == -1) {
which won't work becuase 'number' is the zone number not a vnum!

I fixed it by adding in this, (oasis.c)

  /*
   * Find the zone.
   */
+   if (save) {
+     if ((OLC_ZNUM(d) = real_zone(number)) < 0) {  /* is this a good way to
check? */
+       send_to_char("Sorry, there is no zone for that number!\r\n", ch);
+       free(d->olc);
+       d->olc = NULL;
+       return;
+     }
+   }
-  if ((OLC_ZNUM(d) = real_zone_by_thing(number)) == -1) {
+  else if ((OLC_ZNUM(d) = real_zone_by_thing(number)) == -1) {
    send_to_char("Sorry, there is no zone for that number!\r\n", ch);
    free(d->olc);
    d->olc = NULL;
    return;
  }

Please, let me know if there is a better way to do this! (I was tired and
was getting frustrated at making it work correctly).

--
   +---------------------------------------------------------------+
   | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
   | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
   +---------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/06/01 PST