From: "Mathew Earle Reuther" <graymere@zipcon.net>
> > Looks like a bug, I think that should actually be:
> > if ((real_num = real_room(number)) == NOWHERE) {
>
> Would the other cases then want to == NOWHERE or NOTHING as well? It
> would seem from the context that that would make sense and they all used
> to be < 0 (which is equivalent to == NOWHERE/NOTHING) . . . Or is it just
> the ZEDIT SCMD?
>
> For example:
>
> case SCMD_OASIS_OEDIT:
> if ((real_num = real_object(number)) != NOTHING)
> oedit_setup_existing(d, real_num);
> else
> oedit_setup_new(d);
> STATE(d) = CON_OEDIT;
> break;
>
The other cases check if the room/obj/mob exists (!= NOTHING), and if
so, calls the 'setup_existing'. Otherwise it sets up a new one.
> As opposed to what the zedit scmd looks like after the fix in the last
> email:
>
> case SCMD_OASIS_ZEDIT:
> if ((real_num = real_room(number)) == NOWHERE) {
> send_to_char(ch, "That room does not exist.\r\n");
> free(d->olc);
> d->olc = NULL;
> return;
> }
> zedit_setup(d, real_num);
> STATE(d) = CON_ZEDIT;
> break;
Zedit isn't supposed to set up a new zone if one doesn't exist. And you were
right; It was a typo.
The correct solution is using '== NOWHERE' in the zedit case, and '!=
NOTHING'
in the others, or if you wish them to be uniform:
case SCMD_OASIS_ZEDIT:
if ((real_num = real_room(number)) != NOWHERE) {
zedit_setup(d, real_num);
STATE(d) = CON_ZEDIT;
} else {
send_to_char(ch, "That room does not exist.\r\n");
free(d->olc);
d->olc = NULL;
return;
}
break;
Welcor, whu throvz up hiz handz ind dizgust off hiz lousi tiping skilz
--
+---------------------------------------------------------------+
| FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
| Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
| Newbie List: http://groups.yahoo.com/group/circle-newbies/ |
+---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 06/25/03 PDT