Weapons that cast spells (was SpecProcs on weapons)

From: Mark Crichton (macricht@indyunix.iupui.edu)
Date: 07/23/95


        Hello again.
        I am trying to put the finishing touches on my weapons-can-cast-spells
in combat addition to the bpl8 code, but I hvae run into a slight problem in
the hit() function.  I am trying to check to see if my test object has a spell
attached to it, but when the test tries to do the same thing for a npc, I'm
getting what appears to be a deref. of a NULL pointer.  Here is where my code
is crashing:

in fight.c:

void hit(struct char_data * ch, struct char_data * victim, int type)
{
  struct obj_data *wielded = GET_EQ(ch, WEAR_WIELD);
  int w_type, victim_ac, calc_thaco, dam, diceroll;

  extern int thaco[NUM_CLASSES][LVL_IMPL+1];
  extern byte backstab_mult[];
  extern struct str_app_type str_app[];
  extern struct dex_app_type dex_app[];

/*This is HACK code thru here...I wanna see if I can deref the Lbolt correctly*//* THIS LINE SIGSEVS WHEN IT HITS A NPC...NO IDEA WHY.... */
fprintf(stderr, "The spell being used is: %d\n",
                       wielded->spell_affect[0].spelltype);

/*END OF HACK!!*/

And here is the relevant stuff from structs.h:
/* Used in obj_file_elem *DONT CHANGE* */
struct obj_spell_type {
        ush_int spelltype;  /*number of spell*/
        ush_int level;  /*level of spell*/
        ush_int percentage; /*percentage of success*/
};

/* ================== Memory Structure for Objects ================== */
struct obj_data {
   obj_num item_number;         /* Where in data-base                   */
   room_num in_room;            /* In what room -1 when conta/carr      */
   struct obj_flag_data obj_flags;/* Object information               */
   struct obj_affected_type affected[MAX_OBJ_AFFECT];  /* affects */
   struct obj_spell_type spell_affect[MAX_SPELL_AFFECT];

I have no idea what is going on.  Even if I give NPCs my test item to wield and
use, I still get a crash. I know I'm missing SOMETHING, but I have not a clue
of what it is.  If I can get the $%^&* thing fixed, I will definitely post
some diffs if the demand is great enough.

TIA
Mark Crichton

P.S.  I really hope this isn't some stupid pointer error I've overlooked....



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