On Thu, 13 Nov 1997, John Evans wrote: > > I will again grumble about how to know if one certain spec was hanged to > > the one certain mob... :I > > > > I'm working on code now that will not just show "SpecProc" when you stat > a mob, but will give you the name of the spec proc as well. I don't know > if it is even possible without some major changes, but I'm working on it > because it's a very good idea. :) It certainly is; just have some table set up like: /* Three times the fun! */ #define SPECNAME(fun) { fun, #fun }, struct { SpecFun *fun; char *name; } specfun_names[] = { SPECNAME(spec_something) SPECNAME(spec_somethingelse) {NULL, NULL} /* to terminate the table */ }; This will generate something like: { spec_something, "spec_somethig" } (somewhat easier than having to type spec_something then "spec_something"). If you come from a non-C background you may frown at those preprocessor tricks, but I use whatever will allow me to add something in just one place, and automatically update the table without me having to type the same thing in N times. Anyway, you'd then just run through this table, match spec fun pointers and then return the appropriate string. And the other way when you want to lookup a spec fun pointer from a string when loading the areas (which AFAICS stock circle does not do right now, but assigns the spec fun via hardcoding - which seems a bit an unfortunate way to do this; I guess this was something inherited from Diku). ============================================================================= Erwin Andreasen Herlev, Denmark <erwin@pip.dknet.dk> UNIX System Programmer <URL:http://pip.dknet.dk/~erwin/> <*> (not speaking for) DDE ============================================================================= +------------------------------------------------------------+ | 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/08/00 PST