From: Jason Wilkins (fenix@IO.COM)
Date: 09/22/98

I'm new to the list.  I'm a very experienced coder, and system
administrator.  But I grew out of actually playing muds a long time ago.
My main interest in CircleMUD is to get ideas from the code on how to
implement a multiplayer game, and how to go about making it fun.  The game
I am developing will be MUD-like in that I am trying to capture the same
freedom of action and community, but it certainly will not be text-based.
However, my code does not exclude the possibility of having a text-based
interface, so a MUD could definitely be written from my design.

I joined the list in case there was anything I didn't understand about the
code.  All in all however it seems to be very well designed, because I
understood most of the design after reading the code for about 30 minutes.

I have one question thats been bothering me, and then I'll lurk some more

In the file with main(), comm.c I believe, there is a utility function
that says it was rewritten to stop a warning (passing a structure back on
the stack, or temporary area I believe), but is says that they sacrificed
thread safeness to do it.  Its not thread safe because it keeps its return
value in a static structure.  Why not just add a parameter to the function
that points to where to put the answer?

do this:

void function(int x, y, z, struct mystruct *my)
 my->answer = x + y + z;


you would call this like this:

 struct mystruct my;

 function(1, 2, 3, &my);

instead of this:

struct mystruct *function(int x, y, z)
 static mystruct my;

 my.answer = x + y + z;

 return &my;

which is called like this:

 struct mystruct *my;

 my = function(1, 2, 3);

Its just a nit-pick.  I was just wondering if there was a reason that it
was done this way?  The way I propose is also the most efficient.  So that
doesn't seem to be an issue.  It seems to just be laziness, I understand
completely.  Make the change that will cause you to change the least code.


         The Phoenix - President of The Artistic Intuition Company
    Caelius * Zen-X * Mirror Reflex * Runica * X-Domain * Infinite Realms

     | 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