/**************************************************************************
* Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer, *
* Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe. *
* *
* Merc Diku Mud improvements copyright (C) 1992, 1993 by Michael *
* Chastain, Michael Quan, and Mitchell Tse. *
* *
* In order to use any part of this Merc Diku Mud, you must comply with *
* both the original Diku license in 'license.doc' as well the Merc *
* license in 'license.txt'. In particular, you may not remove either of *
* these copyright notices. *
* *
* Much time and thought has gone into this software and you are *
* benefiting. We hope that you share your changes too. What goes *
* around, comes around. *
***************************************************************************
* ROM 2.4 is copyright 1993-1998 Russ Taylor *
* ROM has been brought to you by the ROM consortium *
* Russ Taylor (rtaylor@hypercube.org) *
* Gabrielle Taylor (gtaylor@hypercube.org) *
* Brian Moore (zump@rom.org) *
* By using this code, you have agreed to follow the terms of the *
* ROM license, in the file Rom24/doc/rom.license *
***************************************************************************
* 1stMud ROM Derivative (c) 2001-2004 by Markanth *
* http://www.firstmud.com/ <markanth@firstmud.com> *
* By using this code you have agreed to follow the term of *
* the 1stMud license in ../doc/1stMud/LICENSE *
***************************************************************************/
#ifndef __OLC_LIST_H_
#define __OLC_LIST_H_ 1
Olc_Fun(oedit_list)
{
return redit_olist(n_fun, ch, argument);
}
Olc_Fun(medit_list)
{
return redit_mlist(n_fun, ch, argument);
}
Olc_Fun(cedit_list)
{
do_clist(n_fun, ch, argument);
return false;
}
Olc_Fun(aedit_list)
{
do_alist(n_fun, ch, argument);
return false;
}
Olc_Fun(redit_list)
{
RoomIndex *pRoomIndex;
AreaData *pArea;
Buffer *buf1;
char arg[MAX_INPUT_LENGTH];
bool found;
vnum_t vnum;
Column *Cd;
one_argument(argument, arg);
pArea = ch->in_room->area;
buf1 = new_buf();
Cd = new_column();
set_cols(Cd, ch, 2, COLS_BUF, buf1);
found = false;
for (vnum = pArea->min_vnum; vnum <= pArea->max_vnum; vnum++)
{
if ((pRoomIndex = get_room_index(vnum)))
{
found = true;
print_cols(Cd, "[%5ld] %s", vnum, capitalize(pRoomIndex->name));
}
}
if (!found)
bprintln(buf1, "Room(s) not found in this area.");
else
cols_nl(Cd);
sendpage(ch, buf_string(buf1));
free_buf(buf1);
free_column(Cd);
return false;
}
Olc_Fun(redit_mlist)
{
CharIndex *pMobIndex;
AreaData *pArea;
Buffer *buf1;
char arg[MAX_INPUT_LENGTH];
bool fAll, found;
vnum_t vnum;
Column *Cd;
one_argument(argument, arg);
if (NullStr(arg))
{
cmd_syntax(ch, NULL, n_fun, "<all/name>", NULL);
return false;
}
buf1 = new_buf();
Cd = new_column();
set_cols(Cd, ch, 2, COLS_BUF, buf1);
pArea = ch->in_room->area;
fAll = !str_cmp(arg, "all");
found = false;
for (vnum = pArea->min_vnum; vnum <= pArea->max_vnum; vnum++)
{
if ((pMobIndex = get_char_index(vnum)) != NULL)
{
if (fAll || is_name(arg, pMobIndex->player_name))
{
found = true;
print_cols(Cd, "[%5ld] %s", pMobIndex->vnum,
capitalize(pMobIndex->short_descr));
}
}
}
if (!found)
{
chprintln(ch, "Mobile(s) not found in this area.");
free_buf(buf1);
free_column(Cd);
return false;
}
else
cols_nl(Cd);
sendpage(ch, buf_string(buf1));
free_buf(buf1);
free_column(Cd);
return false;
}
Olc_Fun(redit_olist)
{
ObjIndex *pObjIndex;
AreaData *pArea;
Buffer *buf1;
char arg[MAX_INPUT_LENGTH];
bool fAll, found;
vnum_t vnum;
Column *Cd;
one_argument(argument, arg);
if (NullStr(arg))
{
cmd_syntax(ch, NULL, n_fun, "<all/name/item_type>", NULL);
return false;
}
pArea = ch->in_room->area;
buf1 = new_buf();
Cd = new_column();
set_cols(Cd, ch, 2, COLS_BUF, buf1);
fAll = !str_cmp(arg, "all");
found = false;
for (vnum = pArea->min_vnum; vnum <= pArea->max_vnum; vnum++)
{
if ((pObjIndex = get_obj_index(vnum)))
{
if (fAll || is_name(arg, pObjIndex->name)
|| (int) flag_value(type_flags, arg) == pObjIndex->item_type)
{
found = true;
print_cols(Cd, "[%5ld] %s", pObjIndex->vnum,
capitalize(pObjIndex->short_descr));
}
}
}
if (!found)
{
bprintln(buf1, "Object(s) not found in this area.");
}
else
cols_nl(Cd);
sendpage(ch, buf_string(buf1));
free_buf(buf1);
free_column(Cd);
return false;
}
Olc_Fun(cledit_list)
{
int i;
for (i = 0; i < top_class; i++)
{
chprintlnf(ch, "%d) %-12s", i + 1, class_table[i].name[0]);
}
return false;
}
Olc_Fun(cmdedit_list)
{
CmdData *c;
Buffer *b;
Column *Cd;
b = new_buf();
Cd = new_column();
set_cols(Cd, ch, 6, COLS_BUF, b);
for (c = cmd_first; c; c = c->next)
{
print_cols(Cd, "[%2d] %s", c->level, c->name);
}
cols_nl(Cd);
sendpage(ch, buf_string(b));
free_buf(b);
free_column(Cd);
return false;
}
Olc_Fun(dedit_list)
{
DeityData *i;
bool found = false;
for (i = deity_first; i; i = i->next)
{
found = true;
chprintlnf(ch, "\t%-12s (%s) : %s", i->name,
flag_string(ethos_types, i->ethos), GetStr(i->desc,
"No description."));
}
if (!found)
chprintln(ch, "No deities.");
return true;
}
Olc_Fun(gredit_list)
{
int i, x;
Column *Cd;
Buffer *b;
Cd = new_column();
b = new_buf();
set_cols(Cd, ch, 2, COLS_BUF, b);
for (i = 0; i < top_group; i++)
{
for (x = 0; group_table[i].spells[x] != NULL; x++)
;
print_cols(Cd, "%s (%d spells)", group_table[i].name, x);
}
cols_nl(Cd);
sendpage(ch, buf_string(b));
free_column(Cd);
free_buf(b);
return false;
}
Olc_Fun(mpedit_list)
{
int count = 1;
ProgCode *mprg;
Buffer *buffer;
bool fAll = !str_cmp(argument, "all");
char blah;
AreaData *ad;
buffer = new_buf();
for (mprg = mprog_first; mprg != NULL; mprg = mprg->next)
if (fAll
|| Entre(ch->in_room->area->min_vnum - 1, mprg->vnum,
ch->in_room->area->max_vnum + 1))
{
ad = mprg->area;
if (ad == NULL)
blah = '?';
else if (IsBuilder(ch, ad))
blah = '*';
else
blah = ' ';
bprintlnf(buffer, "[%3d] (%c) %5ld", count, blah, mprg->vnum);
count++;
}
if (count == 1)
{
if (fAll)
bprintln(buffer, "No existing MobPrograms.");
else
bprintln(buffer, "No existing MobPrograms in this area.");
}
sendpage(ch, buf_string(buffer));
free_buf(buffer);
return false;
}
Olc_Fun(opedit_list)
{
int count = 1;
ProgCode *oprg;
Buffer *buffer;
bool fAll = !str_cmp(argument, "all");
char blah;
AreaData *ad;
buffer = new_buf();
for (oprg = oprog_first; oprg != NULL; oprg = oprg->next)
if (fAll
|| Entre(ch->in_room->area->min_vnum - 1, oprg->vnum,
ch->in_room->area->max_vnum + 1))
{
ad = oprg->area;
if (ad == NULL)
blah = '?';
else if (IsBuilder(ch, ad))
blah = '*';
else
blah = ' ';
bprintlnf(buffer, "[%3d] (%c) %5ld", count, blah, oprg->vnum);
count++;
}
if (count == 1)
{
if (fAll)
bprintln(buffer, "No existing ObjPrograms.");
else
bprintln(buffer, "No existing ObjPrograms in this area.");
}
sendpage(ch, buf_string(buffer));
free_buf(buffer);
return false;
}
Olc_Fun(rpedit_list)
{
int count = 1;
ProgCode *rprg;
Buffer *buffer;
bool fAll = !str_cmp(argument, "all");
char blah;
AreaData *ad;
buffer = new_buf();
for (rprg = rprog_first; rprg != NULL; rprg = rprg->next)
if (fAll
|| Entre(ch->in_room->area->min_vnum - 1, rprg->vnum,
ch->in_room->area->max_vnum + 1))
{
ad = rprg->area;
if (ad == NULL)
blah = '?';
else if (IsBuilder(ch, ad))
blah = '*';
else
blah = ' ';
bprintlnf(buffer, "[%3d] (%c) %5ld", count, blah, rprg->vnum);
count++;
}
if (count == 1)
{
if (fAll)
bprintln(buffer, "No existing RoomPrograms.");
else
bprintln(buffer, "No existing RoomPrograms in this area.");
}
sendpage(ch, buf_string(buffer));
free_buf(buffer);
return false;
}
Olc_Fun(raedit_list)
{
RaceData *i;
int count = 0;
chprintln(ch, "Num Race Name");
chprintln(ch, draw_line(ch, NULL, 0));
for (i = race_first; i; i = i->next)
{
if (!NullStr(i->name))
{
count++;
chprintlnf(ch, "[%2d] %-30s", count, i->name);
}
}
chprintln(ch, draw_line(ch, NULL, 0));
return false;
}
Olc_Fun(skedit_list)
{
int i;
Column *Cd;
Buffer *b;
b = new_buf();
Cd = new_column();
set_cols(Cd, ch, 2, COLS_BUF, b);
for (i = 0; i < top_skill; i++)
{
print_cols(Cd, "%s '%s'",
skill_table[i].spell_fun == spell_null ? "skill" : "spell",
skill_table[i].name);
}
cols_nl(Cd);
sendpage(ch, buf_string(b));
free_buf(b);
free_column(Cd);
return false;
}
Olc_Fun(sedit_list)
{
SocialData *s;
Column *Cd;
Buffer *b;
b = new_buf();
Cd = new_column();
set_cols(Cd, ch, 6, COLS_BUF, b);
for (s = social_first; s; s = s->next)
print_cols(Cd, s->name);
cols_nl(Cd);
sendpage(ch, buf_string(b));
free_buf(b);
free_column(Cd);
return false;
}
Olc_Fun(songedit_list)
{
int i;
Column *Cd;
Buffer *b;
b = new_buf();
Cd = new_column();
set_cols(Cd, ch, 2, COLS_BUF, b);
for (i = 0; i < top_song; i++)
{
print_cols(Cd, "%s by %s (%d lines)", song_table[i].name,
song_table[i].group, song_table[i].lines);
}
cols_nl(Cd);
sendpage(ch, buf_string(b));
free_buf(b);
free_column(Cd);
return false;
}
Olc_Fun(hedit_list)
{
HelpData *pHelp;
GetEdit(ch, HelpData, pHelp);
if (!str_cmp(argument, "all"))
{
Column *Cd;
int cnt;
Buffer *buffer;
buffer = new_buf();
Cd = new_column();
set_cols(Cd, ch, 6, COLS_BUF, buffer);
for (cnt = 0, pHelp = help_first; pHelp; pHelp = pHelp->next, cnt++)
{
print_cols(Cd, "%3d. %s", cnt + 1, pHelp->keyword);
}
cols_nl(Cd);
sendpage(ch, buf_string(buffer));
free_buf(buffer);
free_column(Cd);
return false;
}
if (NullStr(argument))
{
cmd_syntax(ch, NULL, n_fun, "all", NULL);
return false;
}
return false;
}
Olc_Fun(coledit_list)
{
int i;
Column *Cd;
Buffer *b;
b = new_buf();
Cd = new_column();
set_cols(Cd, ch, 2, COLS_BUF, b);
for (i = 0; i < top_color; i++)
{
print_cols(Cd, "%s (%s)", color_table[i].name,
color_table[i].description);
}
cols_nl(Cd);
sendpage(ch, buf_string(b));
free_buf(b);
free_column(Cd);
return false;
}
Olc_Fun(chanedit_list)
{
int i;
for (i = 0; i < top_channel; i++)
chprintlnf(ch, "%2d) %s{x", i, format_channel(&channel_table[i], ch));
return true;
}
#endif