Changing someone elses existing code, which is the case with CircleMud, is all about using the 'grep' command and studying the code. Over time as you work with the files you'll know where everything is. You know you want to do something to thaco, so first off you want to locate all references to thaco grep -in thaco *.[ch] Will search for the word thaco in all .c and .h files in the current directory. Case doesn't matter and the line number of matches will be displayed. class.c and fight.c are the only .c files that use it. Obviously you plan to remove the calc_thaco calls and replace it with something like calc_thaco = GET_THACO(ch); Thaco is something you plan to store on the character. So you think, what else is stored on the character and how is it accessed. GET_EXP(ch) is one you see everywhere and common Circle practice. grep GET_EXP *.h Just look for its actual definition on .h files, not everywhere its actually used. utils.h:322:#define GET_EXP(ch) ((ch)->points.exp) So we want to add something in utils.h like #define GET_THACO(ch) ((ch)->points.thaco) After some digging with grep for points, youll find it in structs.h /* Char's points. Used in char_file_u *DO*NOT*CHANGE* */ struct char_point_data { So you add your thaco variable to the points structure, noting the warning that it will change the player file and you'll either have to start a new player file, or re-write the player file loading/saving to account for the new variable and convert your present player file to the new format. Coding circle is all about searching for things. Just about anything you can imagine is already in there, or at least the building blocks are. New spell, look at everything related to an existing spell. New variable, look at everything about some variable just like the one you want to add. etc. Dont forget to locate wherever things like exp get initilized for new players and add a bit to initialize your thaco. -------------------------------------------------------------------------- Ron Hensley (ronh@intercom.net) Network Administrator - ICNet Internet Services -------------------------------------------------------------------------- ----- Original Message ----- From: Doyle Tracy <doyletracy@home.com> To: <CIRCLE@post.queensu.ca> Sent: Saturday, August 14, 1999 11:31 AM Subject: Adding Character Attributes > Hi everyone, > > I'm new to coding circlemud and I was wondering if there were any docs, > or if anyone could tell me all the files I need to change to add a new > character attribute? I'm adding THAC0 to the character so it can just be > looked up instead of making the thaco function call every round during a > fight. Has anyone done this yet? > > Thanks, > Doyle > Doyle Tracy > Home: doyletracy@home.com > Work: doyle_tracy@nai.com > http://members.home.net/dwtracy1 > UIN: 1744184 > AIM: AxlDT > > > +------------------------------------------------------------+ > | Ensure that you have read the CircleMUD Mailing List FAQ: | > | http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | > +------------------------------------------------------------+ > +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST