Mercurial > hg > early-roguelike
comparison arogue5/rogue.h @ 114:a5433ba4cabf
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.
author | John "Elwin" Edwards |
---|---|
date | Fri, 28 Mar 2014 10:57:03 -0700 |
parents | dfeed24bb616 |
children | aac28331e71d |
comparison
equal
deleted
inserted
replaced
113:aa582a02eb5d | 114:a5433ba4cabf |
---|---|
723 */ | 723 */ |
724 | 724 |
725 struct delayed_action { | 725 struct delayed_action { |
726 int d_type; | 726 int d_type; |
727 int (*d_func)(); | 727 int (*d_func)(); |
728 int d_arg; | 728 void *d_arg; |
729 int d_time; | 729 int d_time; |
730 }; | 730 }; |
731 | 731 |
732 /* | 732 /* |
733 * level types | 733 * level types |