Re: do_look at "Nov 2, 98 08:16:21 pm"

From: Christian Loth (sg618lo@UNIDUI.UNI-DUISBURG.DE)
Date: 11/03/98


Brandon Lees wrote:
> I want 2 change do_look so that if there is more than one of an item
> it will be listed as <2x> a sword instead of being listed twice.  Any
> suggestions on how to go about doing this?

I'd say there're about three possibilities:
a) treat items as a linked lists, and 'add' a new entry when objects
   get into the same room/inventory/container/whatever. And then simply
   add the name once, and count the members.

b) if you feel like pointer juggling: add a counter variable to your
   objects and do some dynamic memory wizardry. (thats btw how the
   RoM handles it. Now before I hear cries of 'memory fragmentation':
   we will also (shortly) use a memory pool class for that matter
   which will reduce that problem together with our overloaded
   versions of operator new and operator delete ;) ). In short:
   when an items gets into the same room/inv/cont, free it,
   and increase the counter of the already existing one. This
   method saves memory, BUT is cruel in memory fragmentation
   (if you don't implement your own memory management that is...),
   rather 'unsafe' (read: bugprone) and has some runtime overhead
   (all the browsing through lists, etc.). However, we at the RoM
   consider memory more valuable than runtime.
   However: a *GOOD* understanding of ptrs is needed for this.

c) hmm...if you don't feel like being creative yourself: I believe
   there's a code patch somewhere.

- Chris

| Christian Loth,    |           REALM OF MAGIC             |
|            | telnet 4000               |
|                                     |                   |

     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | |

This archive was generated by hypermail 2b30 : 12/15/00 PST