[ BUG ] OasisOLC v1.5 *blink*

From: David Klasinc (bigwhale@CAPYBARA.SK-PTTSC.LJ.EDUS.SI)
Date: 11/14/97


This is what I noticed...

olc_add_to_save_list() is always called like this: (this is stripped
straight from the patch which is located on George's page)

+  olc_add_to_save_list(zone_table[OLC_ZNUM(d)].number, OLC_SAVE_OBJ);

Ok, here it seems, that zone VNUM's are added to the save list...

But then in oedit_save_to_disk() these are first few lines:

+  sprintf(buf, "%s/%d.new", OBJ_PREFIX, zone_table[zone_num].number);
+  if (!(fp = fopen(buf, "w+"))) {
+    mudlog("SYSERR: OLC: Cannot open objects file!", BRF, LVL_BUILDER, TRUE);
+    return;
+  }

I've noticed that xxx_save_to_disk() accepts one parameter zone_num in
this case which would be zone number that woill be saved... So far so
good... I also noticed, that this zone_num parameter has to be zone's real
number,, since it gets resolved to the vnum in that sprintf()... ok, no
problem here..

Here is the problem...

comm.c search for this:

+        switch (entry->type) {
+        case OLC_SAVE_ROOM: redit_save_to_disk(entry->zone); break;
+        case OLC_SAVE_OBJ:  oedit_save_to_disk(entry->zone); break;
+        case OLC_SAVE_MOB:  medit_save_to_disk(entry->zone); break;
+        case OLC_SAVE_ZONE: zedit_save_to_disk(entry->zone); break;

this is where that shutdown now was implemented and stuff...

Heck, if we added changes to the list in VNUM's and every xxx_save_to_disk
tries to convert them again into vnums, foobar will happen...

Am I right here? It seems weird to me, that nobody noticed this before...


     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |

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