I couldn't find a fix for Iedit under OasisOLC v2.0, so I tried to diagnose it myself. After much trial and error, I came up with: (struct obj_data *temp_ptr = NULL) at top of oedit_parse. case OEDIT_CONFIRM_SAVESTRING: switch (*arg) { case 'y': case 'Y': if(STATE(d) == CON_OEDIT) { send_to_char("Saving object to memory.\r\n", d->character); oedit_save_internally(d); sprintf(buf, "OLC: %s edits obj %d", GET_NAME(d->character), OLC_NUM(d)); mudlog(buf, CMP, MAX(LVL_BUILDER, GET_INVIS_LEV(d->character)), TRUE); cleanup_olc(d, CLEANUP_STRUCTS); } else { /* case is iedit */ send_to_char("Commiting iedit changes.\r\n", d->character); > temp_ptr = OLC_IEDIT(d); > free(temp_ptr); > CREATE(OLC_IEDIT(d), struct obj_data, 1); > clear_object(OLC_IEDIT(d)); > copy_object(OLC_IEDIT(d), OLC_OBJ(d)); /* Was: *(OLC_IEDIT(d)) = *(OLC_OBJ(d)); /* This also handles the comment left in the file on saving and freeing the pointer */ /* copy_object likes to crash without a clear_object first. */ sprintf(buf, "OLC: %s uses iedit", GET_NAME(d->character)); mudlog(buf, CMP, MAX(LVL_BUILDER, GET_INVIS_LEV(d->character)), TRUE); if (d->character) { REMOVE_BIT(PLR_FLAGS(d->character), PLR_WRITING); STATE(d) = CON_PLAYING; act("$n stops using OLC.", TRUE, d->character, 0, 0, TO_ROOM); } > cleanup_olc(d, CLEANUP_STRUCTS); free(d->olc); > return; } > /* Return was here, OEDIT would like to fall through, though. */ /* Fall through. */ case 'n': It appears to be working (only some quick tests) now, but it seems slow coming out of the editors, although this might be because I was running it under GDB. Anyway, anybody notice anything important I did wrong? Also, there's another fix you need to do: In genobj.c, object_update(): for (obj = object_list; obj; obj = obj->next) { > if (obj->item_number != refobj->item_number || OBJ_FLAGGED(obj, ITEM_UNIQUE_SAVE)) /* Was: if (obj->item_number != refobj->item_number) */ continue; That will keep your unique items from being overwritten if the original is oeditted. Alright, please let me know, -Tony +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 04/10/01 PDT