if (save) {
const char *type = NULL;
switch (subcmd) {
case SCMD_OLC_REDIT: type = "room"; break;
case SCMD_OLC_ZEDIT: type = "zone"; break;
case SCMD_OLC_SEDIT: type = "shop"; break;
case SCMD_OLC_MEDIT: type = "mobile"; break;
case SCMD_OLC_OEDIT: type = "object"; break;
/* -mm 42600 */
case SCMD_OASIS_AEDIT: type = "social"; break;
}
if (!type) {
send_to_char("Oops, I forgot what you wanted to
save.\r\n", ch);
return;
}
sprintf(buf, "Saving all %ss in zone %d.\r\n", type,
zone_table[OLC_ZNUM(d)].number);
send_to_char(buf, ch);
sprintf(buf, "OLC: %s saves %s info for zone %d.",
GET_NAME(ch), type, zone_table[OLC_ZNUM(d)].number);
mudlog(buf, CMP, MAX(LVL_BUILDER, GET_INVIS_LEV(ch)), TRUE);
switch (subcmd) {
case SCMD_OLC_REDIT: redit_save_to_disk(OLC_ZNUM(d)); break;
case SCMD_OLC_ZEDIT: zedit_save_to_disk(OLC_ZNUM(d)); break;
case SCMD_OLC_OEDIT: oedit_save_to_disk(OLC_ZNUM(d)); break;
case SCMD_OLC_MEDIT: medit_save_to_disk(OLC_ZNUM(d)); break;
case SCMD_OLC_SEDIT: sedit_save_to_disk(OLC_ZNUM(d)); break;
/* -mm 42500 */
case SCMD_OASIS_AEDIT: aedit_save_to_disk(d); break;
}
free(d->olc);
return;
}
if (subcmd != SCMD_OASIS_AEDIT)
OLC_NUM(d) = number;
else {
OLC_NUM(d) = 0;
OLC_STORAGE(d) = str_dup(buf1);
for (OLC_ZNUM(d) = 0; (OLC_ZNUM(d) <= top_of_socialt);
OLC_ZNUM(d)++) {
if (is_abbrev(OLC_STORAGE(d),
soc_mess_list[OLC_ZNUM(d)].command))
break;
}
if (OLC_ZNUM(d) > top_of_socialt) {
if (find_command(OLC_STORAGE(d)) > NOTHING) {
cleanup_olc(d, CLEANUP_ALL);
send_to_char("That command already exists.\r\n",
ch);
return;
}
sprintf(buf, "Do you wish to add the '%s' action? ",
OLC_STORAGE(d));
send_to_char(buf, ch);
OLC_MODE(d) = AEDIT_CONFIRM_ADD;
}
else {
sprintf(buf, "Do you wish to edit the '%s' action? ",
soc_mess_list[OLC_ZNUM(d)].command);
send_to_char(buf, ch);
OLC_MODE(d) = AEDIT_CONFIRM_EDIT;
}
}
/*
* Steal player's descriptor start up subcommands.
*/
switch (subcmd) {
case SCMD_OLC_TRIGEDIT:
if ((real_num = real_trigger(number)) >= 0)
trigedit_setup_existing(d, real_num);
else
trigedit_setup_new(d);
STATE(d) = CON_TRIGEDIT;
break;
case SCMD_OLC_REDIT:
if ((real_num = real_room(number)) >= 0)
redit_setup_existing(d, real_num);
else
redit_setup_new(d);
STATE(d) = CON_REDIT;
break;
case SCMD_OLC_ZEDIT:
if ((real_num = real_room(number)) < 0) {
send_to_char("That room does not exist.\r\n", ch);
free(d->olc);
return;
}
zedit_setup(d, real_num);
STATE(d) = CON_ZEDIT;
break;
case SCMD_OLC_MEDIT:
if ((real_num = real_mobile(number)) < 0)
medit_setup_new(d);
else
medit_setup_existing(d, real_num);
STATE(d) = CON_MEDIT;
break;
case SCMD_OLC_OEDIT:
if ((real_num = real_object(number)) >= 0)
oedit_setup_existing(d, real_num);
else
oedit_setup_new(d);
STATE(d) = CON_OEDIT;
break;
case SCMD_OLC_SEDIT:
if ((real_num = real_shop(number)) >= 0)
sedit_setup_existing(d, real_num);
else
sedit_setup_new(d);
STATE(d) = CON_SEDIT;
break;
case SCMD_OASIS_AEDIT:
STATE(d) = CON_AEDIT;
break;
default:
break;
}
act("$n starts using OLC.", TRUE, d->character, 0, 0, TO_ROOM);
SET_BIT(PLR_FLAGS(ch), PLR_WRITING);
}
}
+------------------------------------------------------------+
| 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