OoooOOOOooh! Thanks! My workload just got cut in half!
----- Original Message ----- From: "Cameron Matthews-Dickson" <[EMAIL PROTECTED]> To: "Jeremy Hill" <[EMAIL PROTECTED]>; <[email protected]> Sent: Sunday, July 14, 2002 10:37 AM Subject: Re: hack way of sorting who list by level > I posted what you need to do the qsort method a while back....here it is > again....this version sorts alphabetically...simple change to make it by > level.... > > int comparedescs(const void *d1, const void *d2) > { > typedef DESCRIPTOR_DATA DD; > return strcmp((*(DD **)d1)->character->name, (*(DD > **)d2)->character->name); > } > > void do_whotest(CHAR_DATA *ch, char *argument) > { > DESCRIPTOR_DATA *d, *list[50]; > int x, cnt; > > for(cnt = 0, d = descriptor_list; d; d = d->next, cnt++) > { > if(d->character) > list[cnt] = d; > } > > send_to_char("Before sort:\n\r", ch); > for(x = 0; x < cnt; x++) > printf_to_char(ch, "%s\n\r", list[x]->character->name); > > qsort(list, cnt, sizeof(DESCRIPTOR_DATA *), comparedescs); > > send_to_char("\n\rAfter sort:\n\r", ch); > for(x = 0; x < cnt; x++) > printf_to_char(ch, "%s\n\r", list[x]->character->name); > } > > Cam > > ----- Original Message ----- > From: "Jeremy Hill" <[EMAIL PROTECTED]> > To: <[email protected]> > Sent: Sunday, July 14, 2002 12:12 AM > Subject: Re: hack way of sorting who list by level > > > > http://www.the-infinite.org/lists/romlist/2000/01/msg00221.html > > > > Opinion: > > Would the above be an acceptable place to start on sorting characters for > who? > > > > I think it looks very promising. > > > > > > ----- Original Message ----- > > From: "Cameron Matthews-Dickson" <[EMAIL PROTECTED]> > > To: "Jeremy Hill" <[EMAIL PROTECTED]> > > Sent: Saturday, July 13, 2002 7:12 PM > > Subject: Re: hack way of sorting who list by level > > > > > > > Well, > > > A sorted linked-list would be faster as far as outputting the who > list > > > since all you'd have to do is iterate through it. Doing the qsort would > > > mean putting the descriptor_list into an array and then calling qsort on > it > > > which would be a little slower. Having a sorted linked list is a little > > > slower for insertions....both options would be better than your current > > > solution, I would think.... > > > > > > Cam > > > > > > > > > ----- Original Message ----- > > > From: "Jeremy Hill" <[EMAIL PROTECTED]> > > > To: <[email protected]> > > > Sent: Saturday, July 13, 2002 7:25 PM > > > Subject: hack way of sorting who list by level > > > > > > > > > > Based on: > > > > > > > > int i; > > > > for (i = 1; i <= MAX_LEVEL; i++) > > > > { > > > > for ( d = descriptor_list; d != NULL; d = d->next ) > > > > { > > > > CHAR_DATA *wch; > > > > ... > > > > (wch to descriptor) > > > > ... > > > > if (wch->level == i) > > > > print_to_who(wch); > > > > } > > > > } > > > > > > > > I figure this will work, but on a MUD with 310 levels and just 10 > people > > > on, it > > > > would generate 3,100 loops. > > > > > > > > A couple of questions: > > > > 1. In your expert opinion, is this a miserable way to do it? Pros? > Cons? > > > I > > > > figure sorting or qsorting the linked list of characters would be > better. > > > > > > > > 2. Would it be easier to add players to the list of players on connect > so > > > they > > > > are automatically sorted by level? > > > > > > > > > > > > -- > > > > ROM mailing list > > > > [email protected] > > > > http://www.rom.org/cgi-bin/mailman/listinfo/rom > > > > > > > > > > -- > > ROM mailing list > > [email protected] > > http://www.rom.org/cgi-bin/mailman/listinfo/rom > >

