[CODE] OLC error in oedit.c (stock)

From: Joel Rosner (jhr18@COLUMBIA.EDU)
Date: 01/31/98

I'm an IMP on a mud that is in the process of starting up and one of the
other IMP's noticed what appears to be a stock error in oedit.c  The mud
instance where this occurs is where you edit an item, say obj 13004, in
our case, a pile of riveted chainmail, and go to Option C, the Values
menu, where you can make changes like Apply to AC.  When we do that it
doesn't save the first value entered and immediately upon entering the
first value, throws you back out the main menu.  This only occurs on
pre-existing items, not new ones being created.  We added a fix of a
sort by adding this line:
OLC_VAL(d) = 1;

into the case: OEDIT_VALUE_1 in oedit.c  (I didn't add this) and the
case is near the end of the file, so a simple search should find it.  I
can't give an exact place in part because the olc code is highly
confusing to me at times.  The error is apparently caused by this line:
(in case C: which is slightly above the case: OEDIT_VALUE_1)

GET_OBJ_VAL(OLC_OBJ(d), 0) = 0;

These three lines follow immediately afterwards, but the error occurs on
the first entry (since that's when we get thrown out).
GET_OBJ_VAL(OLC_OBJ(d), 1) = 0;
GET_OBJ_VAL(OLC_OBJ(d), 2) = 0;
GET_OBJ_VAL(OLC_OBJ(d), 3) = 0;

Now I have no idea why it works, but what it does is this:  the first
value can be entered and you are still thrown back to the main oedit
menu, but the first value is now stored.

Unfortunately, neither I nor the other IMP's can figure out how to solve
it and were wondering if some of the more experienced (or inexperienced,
depending on how simple this is) people on the list could help us out?

Thanks in advance,

PS The mud is mud.dwango.com 4500 (for those of you who might want/need
to know)

     | 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/15/00 PST