Mag_Materials

From: Angus Mezick (angus@EDGIL.CCMAIL.COMPUSERVE.COM)
Date: 07/13/98


   I have a question about the implementation of this.  The function is in, just
not used anywhere... How about this type of setup for using this funtion:

struct mat_components {
int spell_num;     // integer index of the spell
int item1;         // vnum of 1st component
int item2;         // vnum of 2nd component
int item3;         // vnum of 3rd component
bool extract;      // extract on use
int wear_out;      // if not extract, how many pts of dam to do to the obj
bool verbose;      // give the wart message (read mag_materials in magic.c :)
};
struct mat_components mag_stuff[] =
{
{ SPELL_FIREBALL, RED_STONE, ASH, -1, TRUE,0,FALSE},
{-1,-1,-1,-1,0,0,0}
};

Keep the mag_stuff[] array in spell_num order when adding items.  Have a
function to check this on boot, just to keep from shooting yourself in the foot,
and to count the number of rows for later usage.

When a spell has the MAG_MATERIAL flag, do a binary search to find the correct
row, and then run it.  Would do a linear search (correct term) but this list
could REALLY grow if the mud likes many spells that have many components.

This is a VERY limited implementation though.  There just needs to be an easy
way to add materials to spells and right now there is only manual spells.

--Angus


     +------------------------------------------------------------+
     | 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