arogue5: fix some daemon-related pointer/int casting.

Daemons and fuses take a single argument, nominally an int but either
ignored or unsafely cast to a pointer.  Its type has now been changed
to void*.

The save/restore code no longer tries to store this argument in the
savefile.  For doctor(), this is not a problem, because player is the
only argument it is ever given as a daemon.  However, alchemy() will
fail to do anything when passed NULL.  Fixing this would be complicated
but possible.

Summary: the code is slightly safer, but alchemy jugs are guaranteed to
stop working after save and restore, instead of just extremely likely.
This commit is contained in:
John "Elwin" Edwards 2014-03-28 10:57:03 -07:00
parent dff96acf36
commit 7b0ec1230e
3 changed files with 9 additions and 10 deletions

View file

@ -725,7 +725,7 @@
struct delayed_action {
int d_type;
int (*d_func)();
int d_arg;
void *d_arg;
int d_time;
};