Here is a small fix: when I went to get the snippet from the code, I
realized there was a better way I could do it, and re-wrote some small
portions. However, when I went to get the LList<> snippet, I realized I
made a small mistake. Here is the fix:
(quickie: just replace the iter.Peek() calls with iter.Next() calls)
*** Begin Snippet ***
void list_scanned_chars(LList<CharData *> &list, CharData * ch, int
distance, int door) {
const char * how_far[] = {
"close by",
"nearby",
"to the",
"far off",
"far in the distance"
};
char relation;
CharData * i;
UInt32 count = 0, one_sent = 0;
LListIterator<CharData *> iter(list);
while((i = iter.Next())) {
if (ch->CanSee(i))
count++;
}
if (!count)
return;
iter.Reset();
while((i = iter.Next())) {
if (!ch->CanSee(i))
continue;
relation = relation_colors[ch->GetRelation(i)];
if (!one_sent) ch->send("You see `%c%s", relation, i->GetName());
else ch->send("`%c%s", relation, i->GetName());
if (--count > 1) send_to_char("`n, ", ch);
else if (count == 1) send_to_char(" `nand ", ch);
else ch->send(" `n%s %s.\r\n", how_far[distance], dirs[door]);
one_sent++;
}
}
*** End Snippet ***
+------------------------------------------------------------+
| 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