It seems that my *ch pointer gets dereferenced somewhere in my new event
type. This is a complete copy of the event and all the code that goes with
it. SOO, I'm warning you, if you don't feel like reading a little, delete
this message now. Here we go:
ALL OF THIS IS AT THE BOTTOM OF EVENTS.C:
struct death_trap_type {
struct char_data *ch;
}
EVENTFUNC(timed_dt)
{
struct death_trap_type *dt = (struct death_trap_type *) event_obj;
struct char_data *ch;
void die(struct char_data *ch, struct char_data *killer);
ch = dt->ch;
GET_TIMED_DT(ch) = NULL;
act("The gas in the room takes it's toll on you and you die!", FALSE,
ch, 0, 0, TO_CHAR);
act("$n drops dead from harmful toxins.", FALSE, ch, 0, 0, TO_NOTVICT);
die(ch, NULL);
if(event_obj)
free(event_obj);
return 0;
}
void call_timed_dt(struct char_data *ch)
{
struct death_trap_type *dt;
CREATE(dt, struct death_trap_type, 1);
dt->ch = ch;
GET_TIMED_DT(ch) = event_create(timed_dt, dt, 4);
}
Now, in events.h:
#define GET_TIMED_DT(ch) ((ch)->timed_dt) /* I put it in the struct,
don't feel like writing it.*/
Now, in act.movement.c (do_simple_move) i called
if(ch->in_room == certain_room)
call_timed_dt(ch);
Any idea where the hell ch could be dereferenced? Thanks for any help.
Chuck Reed | "Jesus saves . . . . he passes to Moses. |
creed@i-55.com | Moses shoots, HE SCORES!" -Unknown |
+------------------------------------------------------------+
| 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