Merge the GCC5 and build fix branches.

This fixes all warnings produced by GCC 5, except the ones related to
system functions.  Those could be fixed by including the proper headers,
but it would be better to replace the system-dependent code with
functions from mdport.c.
This commit is contained in:
John "Elwin" Edwards 2016-03-11 19:47:52 -05:00
commit 8df0a6308d
52 changed files with 416 additions and 392 deletions

View file

@ -78,7 +78,7 @@ f_slot(void)
* Find a particular slot in the table
*/
struct delayed_action *
find_slot(int (*func)())
find_slot(void (*func)())
{
reg int i;
reg struct delayed_action *dev;
@ -95,7 +95,7 @@ find_slot(int (*func)())
* Start a daemon, takes a function.
*/
void
start_daemon(int (*func)(), int arg, int type)
start_daemon(void (*func)(), void *arg, int type)
{
reg struct delayed_action *dev;
@ -103,7 +103,7 @@ start_daemon(int (*func)(), int arg, int type)
if (dev != NULL) {
dev->d_type = type;
dev->d_func = func;
dev->d_.arg = arg;
dev->d_.varg = arg;
dev->d_time = DAEMON;
demoncnt += 1; /* update count */
}
@ -115,7 +115,7 @@ start_daemon(int (*func)(), int arg, int type)
* Remove a daemon from the list
*/
void
kill_daemon(int (*func)())
kill_daemon(void (*func)())
{
reg struct delayed_action *dev;
reg int i;
@ -154,7 +154,7 @@ do_daemons(int flag)
* Executing each one, giving it the proper arguments
*/
if (dev->d_type == flag && dev->d_time == DAEMON)
(*dev->d_func)(dev->d_.arg);
(*dev->d_func)(dev->d_.varg);
}
@ -163,7 +163,7 @@ do_daemons(int flag)
* Start a fuse to go off in a certain number of turns
*/
void
fuse(int (*func)(), int arg, int time, int type)
fuse(void (*func)(), void *arg, int time, int type)
{
reg struct delayed_action *wire;
@ -171,7 +171,10 @@ fuse(int (*func)(), int arg, int time, int type)
if (wire != NULL) {
wire->d_type = type;
wire->d_func = func;
wire->d_.arg = arg;
if (func == changeclass || func == res_strength)
wire->d_.arg = *(int *) arg;
else
wire->d_.varg = arg;
wire->d_time = time;
fusecnt += 1; /* update count */
}
@ -183,7 +186,7 @@ fuse(int (*func)(), int arg, int time, int type)
* Increase the time until a fuse goes off
*/
void
lengthen(int (*func)(), int xtime)
lengthen(void (*func)(), int xtime)
{
reg struct delayed_action *wire;
@ -198,7 +201,7 @@ lengthen(int (*func)(), int xtime)
* Put out a fuse
*/
void
extinguish(int (*func)())
extinguish(void (*func)())
{
reg struct delayed_action *wire;
@ -232,8 +235,10 @@ do_fuses(int flag)
if(flag == wire->d_type && wire->d_time > 0 &&
--wire->d_time == 0) {
wire->d_type = EMPTY;
if (wire->d_func != NULL)
if (wire->d_func == changeclass || wire->d_func == res_strength)
(*wire->d_func)(wire->d_.arg);
else if (wire->d_func != NULL)
(*wire->d_func)(wire->d_.varg);
fusecnt -= 1;
}
}

View file

@ -111,7 +111,7 @@ doctor(struct thing *tp)
void
swander(void)
{
start_daemon(rollwand, 0, BEFORE);
start_daemon(rollwand, NULL, BEFORE);
}
/*
@ -134,7 +134,7 @@ rollwand(void)
if (levtype != POSTLEV)
wanderer();
kill_daemon(rollwand);
fuse(swander, 0, WANDERTIME, BEFORE);
fuse(swander, NULL, WANDERTIME, BEFORE);
}
between = 0;
}
@ -663,7 +663,7 @@ spell_recovery(void)
time = SPELLTIME - max(17-pstats.s_intel, 0);
time = max(time, 5);
if (spell_power > 0) spell_power--;
fuse(spell_recovery, 0, time, AFTER);
fuse(spell_recovery, NULL, time, AFTER);
}
/*
* give the hero back some prayer points
@ -676,7 +676,7 @@ prayer_recovery(void)
time = SPELLTIME - max(17-pstats.s_wisdom, 0);
time = max(time, 5);
if (pray_time > 0) pray_time--;
fuse(prayer_recovery, 0, time, AFTER);
fuse(prayer_recovery, NULL, time, AFTER);
}
/*
* give the hero back some chant points
@ -689,5 +689,5 @@ chant_recovery(void)
time = SPELLTIME - max(17-pstats.s_wisdom, 0);
time = max(time, 5);
if (chant_time > 0) chant_time--;
fuse(chant_recovery, 0, time, AFTER);
fuse(chant_recovery, NULL, time, AFTER);
}

View file

@ -294,7 +294,7 @@ effect(struct thing *att, struct thing *def, struct object *weap, bool thrown,
if (on(player, HASSTINK)) lengthen(unstink, STINKTIME);
else {
turn_on(player, HASSTINK);
fuse(unstink, 0, STINKTIME, AFTER);
fuse(unstink, NULL, STINKTIME, AFTER);
}
}
}
@ -308,8 +308,10 @@ effect(struct thing *att, struct thing *def, struct object *weap, bool thrown,
msg("You cringe at %s's chilling touch.",
prname(attname, FALSE));
chg_str(-1);
if (lost_str++ == 0)
fuse(res_strength, 0, CHILLTIME, AFTER);
if (lost_str++ == 0) {
int fuse_arg = 0;
fuse(res_strength, &fuse_arg, CHILLTIME, AFTER);
}
else lengthen(res_strength, CHILLTIME);
}
}
@ -344,7 +346,7 @@ effect(struct thing *att, struct thing *def, struct object *weap, bool thrown,
}
else {
turn_on(*def, HASDISEASE);
fuse(cure_disease, 0, roll(HEALTIME,SICKTIME), AFTER);
fuse(cure_disease, NULL, roll(HEALTIME,SICKTIME), AFTER);
msg(terse ? "You have been diseased."
: "You have contracted a disease!");
}
@ -478,7 +480,7 @@ effect(struct thing *att, struct thing *def, struct object *weap, bool thrown,
turn_off(*att, CANDANCE);
turn_on(*def, ISDANCE);
msg("You begin to dance uncontrollably!");
fuse(undance, 0, roll(2,4), AFTER);
fuse(undance, NULL, roll(2,4), AFTER);
}
/*
@ -491,7 +493,7 @@ effect(struct thing *att, struct thing *def, struct object *weap, bool thrown,
(find_slot(suffocate) == 0)) {
turn_on(*att, DIDSUFFOCATE);
msg("%s is beginning to suffocate you.", prname(attname, TRUE));
fuse(suffocate, 0, roll(9,3), AFTER);
fuse(suffocate, NULL, roll(9,3), AFTER);
}
/*
@ -530,11 +532,11 @@ effect(struct thing *att, struct thing *def, struct object *weap, bool thrown,
msg("You smell an unpleasant odor.");
else {
int odor_str = -(rnd(6)+1);
int fuse_arg2 = 0;
msg("You are overcome by a foul odor.");
if (lost_str == 0) {
chg_str(odor_str);
fuse(res_strength, 0, SMELLTIME, AFTER);
fuse(res_strength, &fuse_arg2, SMELLTIME, AFTER);
lost_str -= odor_str;
}
else lengthen(res_strength, SMELLTIME);

View file

@ -174,7 +174,7 @@ wghtchk(void)
ch = CCHAR( mvwinch(stdscr, hero.y, hero.x) );
if((ch != FLOOR && ch != PASSAGE)) {
extinguish(wghtchk);
fuse(wghtchk,TRUE,1,AFTER);
fuse(wghtchk, NULL, 1, AFTER);
inwhgt = FALSE;
return;
}

View file

@ -538,7 +538,7 @@ roll_em(struct thing *att_er, struct thing *def_er, struct object *weap,
if (find_slot(unconfuse))
lengthen(unconfuse, HUHDURATION);
else
fuse(unconfuse, 0, HUHDURATION, AFTER);
fuse(unconfuse, NULL, HUHDURATION, AFTER);
turn_on(player, ISHUH);
}
else msg("You feel dizzy, but it quickly passes.");

View file

@ -393,18 +393,18 @@ main(int argc, char *argv[], char *envp[])
* Start up daemons and fuses
*/
start_daemon(doctor, &player, AFTER);
fuse(swander, 0, WANDERTIME, AFTER);
fuse(swander, NULL, WANDERTIME, AFTER);
if (player.t_ctype == C_MAGICIAN || player.t_ctype == C_RANGER)
fuse(spell_recovery, 0, SPELLTIME, AFTER);
fuse(spell_recovery, NULL, SPELLTIME, AFTER);
if (player.t_ctype == C_DRUID || player.t_ctype == C_RANGER)
fuse(chant_recovery, 0, SPELLTIME, AFTER);
fuse(chant_recovery, NULL, SPELLTIME, AFTER);
if (player.t_ctype == C_CLERIC || player.t_ctype == C_PALADIN)
fuse(prayer_recovery, 0, SPELLTIME, AFTER);
start_daemon(stomach, 0, AFTER);
fuse(prayer_recovery, NULL, SPELLTIME, AFTER);
start_daemon(stomach, NULL, AFTER);
if (player.t_ctype == C_THIEF ||
player.t_ctype == C_ASSASIN ||
player.t_ctype == C_MONK)
start_daemon(trap_look, 0, AFTER);
start_daemon(trap_look, NULL, AFTER);
/* Does this character have any special knowledge? */
switch (player.t_ctype) {

View file

@ -81,11 +81,11 @@ changeclass(int newclass)
* if he becomes a spell caster of some kind, give him a fuse
*/
if (newclass == C_MAGICIAN || newclass == C_RANGER)
fuse(spell_recovery, 0, SPELLTIME, AFTER);
fuse(spell_recovery, NULL, SPELLTIME, AFTER);
if (newclass == C_DRUID || newclass == C_RANGER)
fuse(chant_recovery, 0, SPELLTIME, AFTER);
fuse(chant_recovery, NULL, SPELLTIME, AFTER);
if ((newclass==C_CLERIC || newclass==C_PALADIN) && !cur_misc[HEIL_ANKH])
fuse(prayer_recovery, 0, SPELLTIME, AFTER);
fuse(prayer_recovery, NULL, SPELLTIME, AFTER);
/*
* if he's changing from a fighter then may have to change
* his sword since only fighter can use two-handed
@ -117,7 +117,7 @@ changeclass(int newclass)
* if he becomes a thief then add the trap_look() daemon
*/
if (newclass == C_THIEF || newclass == C_ASSASIN || newclass == C_MONK)
start_daemon(trap_look, 0, AFTER);
start_daemon(trap_look, NULL, AFTER);
char_type = player.t_ctype = newclass;
save = pstats.s_hpt;
max_stats.s_hpt = pstats.s_hpt = 0;
@ -1025,7 +1025,7 @@ use_mm(int which)
msg("aaAAACHOOOooo. Cough. Cough. Sneeze. Sneeze.");
if (!find_slot(dust_appear)) {
turn_on(player, ISINVIS);
fuse(dust_appear, 0, DUSTTIME, AFTER);
fuse(dust_appear, NULL, DUSTTIME, AFTER);
PLAYER = IPLAYER;
light(&hero);
}
@ -1054,7 +1054,7 @@ use_mm(int which)
if (find_slot(unchoke))
lengthen(unchoke, DUSTTIME);
else
fuse(unchoke, 0, DUSTTIME, AFTER);
fuse(unchoke, NULL, DUSTTIME, AFTER);
turn_on(player, ISHUH);
turn_on(player, ISBLIND);
light(&hero);

View file

@ -649,7 +649,7 @@ wake_monster(int y, int x)
if (find_slot(unconfuse))
lengthen(unconfuse, HUHDURATION);
else {
fuse(unconfuse, 0, HUHDURATION, AFTER);
fuse(unconfuse, NULL, HUHDURATION, AFTER);
msg("%s's gaze has confused you.",prname(mname, TRUE));
turn_on(player, ISHUH);
}
@ -691,7 +691,7 @@ wake_monster(int y, int x)
if (!save(VS_WAND, &player, 0)) {
msg("The gaze of %s blinds you", prname(mname, FALSE));
turn_on(player, ISBLIND);
fuse(sight, 0, rnd(30)+20, AFTER);
fuse(sight, NULL, rnd(30)+20, AFTER);
light(&hero);
}
}

View file

@ -33,8 +33,8 @@
struct optstruct {
char *o_name; /* option name */
char *o_prompt; /* prompt for interactive entry */
int *o_opt; /* pointer to thing to set */
int (*o_putfunc)(); /* function to print value */
void *o_opt; /* pointer to thing to set */
void (*o_putfunc)(); /* function to print value */
int (*o_getfunc)(); /* function to get value interactively */
};
@ -45,9 +45,9 @@ int get_bool(bool *bp, WINDOW *win);
void put_str(char *str, WINDOW *win);
int get_str(char *opt, WINDOW *win);
void put_abil(int *ability, WINDOW *win);
void get_abil(int *abil, WINDOW *win);
int get_abil(int *abil, WINDOW *win);
void put_quest(int *quest, WINDOW *win);
void get_quest(int *quest, WINDOW *win);
int get_quest(int *quest, WINDOW *win);
int get_ro(WINDOW *win, int oy, int ox);
int get_str_prot(char *opt, WINDOW *win);
@ -56,55 +56,55 @@ bool allowchange(OPTION *op);
OPTION optlist[] = {
{"terse", "Terse output: ",
(int *) &terse, put_bool, get_bool },
(void *) &terse, put_bool, get_bool },
{"flush", "Flush typeahead during battle: ",
(int *) &fight_flush, put_bool, get_bool },
(void *) &fight_flush, put_bool, get_bool },
{"jump", "Show position only at end of run: ",
(int *) &jump, put_bool, get_bool },
(void *) &jump, put_bool, get_bool },
{"step", "Do inventories one line at a time: ",
(int *) &slow_invent, put_bool, get_bool },
(void *) &slow_invent, put_bool, get_bool },
{"askme", "Ask me about unidentified things: ",
(int *) &askme, put_bool, get_bool },
(void *) &askme, put_bool, get_bool },
{"pickup", "Pick things up automatically: ",
(int *) &auto_pickup, put_bool, get_bool },
(void *) &auto_pickup, put_bool, get_bool },
{"overlay", "Overlay menu: ",
(int *) &menu_overlay, put_bool, get_bool },
(void *) &menu_overlay, put_bool, get_bool },
{"name", "Name: ",
(int *) whoami, put_str, get_str_prot },
(void *) whoami, put_str, get_str_prot },
{"file", "Save file: ",
(int *) file_name, put_str, get_str_prot },
(void *) file_name, put_str, get_str_prot },
{"score", "Score file: ",
(int *) score_file, put_str, get_score },
(void *) score_file, put_str, get_score },
{"class", "Character class: ",
(int *)&char_type, put_abil, get_abil },
(void *)&char_type, put_abil, get_abil },
{"quest", "Quest item: ",
(int *) &quest_item, put_quest, get_quest }
(void *) &quest_item, put_quest, get_quest }
};
/*
* The ability field is read-only
*/
void
int
get_abil(int *abil, WINDOW *win)
{
register int oy, ox;
getyx(win, oy, ox);
put_abil(abil, win);
get_ro(win, oy, ox);
return get_ro(win, oy, ox);
}
/*
* The quest field is read-only
*/
void
int
get_quest(int *quest, WINDOW *win)
{
register int oy, ox;
getyx(win, oy, ox);
waddstr(win, rel_magic[*quest].mi_name);
get_ro(win, oy, ox);
return get_ro(win, oy, ox);
}
/*
@ -387,14 +387,15 @@ parse_opts(char *str)
strcpy((char *)op->o_opt, (char *)value);
}
else if (*op->o_opt == -1) { /* Only init ability once */
else if (*(int *)op->o_opt == -1) {
/* Only init ability once */
register int len = strlen(value);
register int i;
if (isupper(value[0])) value[0] = tolower(value[0]);
for (i=0; i<NUM_CHARTYPES-1; i++) {
if (EQSTR(value, char_class[i].name, len)) {
*op->o_opt = i;
*(int *)op->o_opt = i;
break;
}
}

View file

@ -249,12 +249,13 @@ picked_up:
/* Relics can do strange things when you pick them up */
if (obj->o_type == RELIC) {
int newclass;
switch (obj->o_which) {
/* the ankh of Heil gives you prayers */
case HEIL_ANKH:
msg("The ankh welds itself into your hand.");
if (player.t_ctype != C_CLERIC && player.t_ctype != C_PALADIN)
fuse(prayer_recovery, 0, SPELLTIME, AFTER);
fuse(prayer_recovery, NULL, SPELLTIME, AFTER);
/* A cloak must be worn. */
when EMORI_CLOAK:
@ -306,7 +307,7 @@ picked_up:
msg("The excrutiating pain slowly turns into a dull throb.");
when QUILL_NAGROM:
fuse(quill_charge,0,player.t_ctype==C_MAGICIAN ? 4 : 8,AFTER);
fuse(quill_charge,NULL,player.t_ctype==C_MAGICIAN ? 4 : 8,AFTER);
/* Weapons will insist on being wielded. */
when MUSTY_DAGGER:
@ -316,7 +317,8 @@ picked_up:
/* For the daggers start a fuse to change player to a thief. */
/* and set a daemon to eat gold. */
if (obj->o_which == MUSTY_DAGGER) {
fuse(changeclass, C_THIEF, roll(20, 20), AFTER);
newclass = C_THIEF;
fuse(changeclass, &newclass, roll(20, 20), AFTER);
if (purse > 0)
msg("Your purse feels lighter");
else
@ -326,7 +328,8 @@ picked_up:
}
/* For the axe start a fuse to change player to a fighter. */
if (obj->o_which == AXE_AKLAD)
fuse(changeclass, C_FIGHTER, roll(20, 20), AFTER);
newclass = C_FIGHTER;
fuse(changeclass, &newclass, roll(20, 20), AFTER);
if (cur_weapon != NULL) {
msg("The artifact insists you release your current weapon.");
if (!dropcheck(cur_weapon)) {

View file

@ -150,7 +150,7 @@ add_haste(bool blessed)
else {
msg("You feel yourself moving %sfaster.", blessed ? "much " : "");
turn_on(player, ISHASTE);
fuse(nohaste, 0, roll(hasttime, hasttime), AFTER);
fuse(nohaste, NULL, roll(hasttime, hasttime), AFTER);
}
}
@ -206,7 +206,7 @@ add_slow(void)
lengthen(noslow, roll(HASTETIME,HASTETIME));
else {
turn_on(player, ISSLOW);
fuse(noslow, 0, roll(HASTETIME,HASTETIME), AFTER);
fuse(noslow, NULL, roll(HASTETIME,HASTETIME), AFTER);
}
}
}
@ -324,7 +324,7 @@ quaff(int which, int kind, int flags, bool is_potion)
}
else { /* Just light a fuse for how long player is safe */
if (off(player, ISCLEAR)) {
fuse(unclrhead, 0, CLRDURATION, AFTER);
fuse(unclrhead, NULL, CLRDURATION, AFTER);
msg("A faint blue aura surrounds your head.");
}
else { /* If we have a fuse lengthen it, else we
@ -491,7 +491,7 @@ quaff(int which, int kind, int flags, bool is_potion)
{
msg("A cloak of darkness falls around you.");
turn_on(player, ISBLIND);
fuse(sight, 0, SEEDURATION, AFTER);
fuse(sight, NULL, SEEDURATION, AFTER);
light(&hero);
}
else
@ -501,7 +501,7 @@ quaff(int which, int kind, int flags, bool is_potion)
if (off(player, CANSEE)) {
turn_on(player, CANSEE);
msg("Your eyes begin to tingle.");
fuse(unsee, 0, blessed ? SEEDURATION*3 :SEEDURATION, AFTER);
fuse(unsee, NULL, blessed ? SEEDURATION*3 :SEEDURATION, AFTER);
light(&hero);
}
else if (find_slot(unsee) != 0)
@ -523,7 +523,7 @@ quaff(int which, int kind, int flags, bool is_potion)
if (on(player, CANINWALL))
lengthen(unphase, duration*PHASEDURATION);
else {
fuse(unphase, 0, duration*PHASEDURATION, AFTER);
fuse(unphase, NULL, duration*PHASEDURATION, AFTER);
turn_on(player, CANINWALL);
}
msg("You feel %slight-headed!",
@ -547,7 +547,7 @@ quaff(int which, int kind, int flags, bool is_potion)
}
}
else {
fuse(land, 0, duration*FLYTIME, AFTER);
fuse(land, NULL, duration*FLYTIME, AFTER);
turn_on(player, ISFLY);
}
if (say_message) {
@ -610,7 +610,7 @@ quaff(int which, int kind, int flags, bool is_potion)
if (off(player, ISINVIS)) {
turn_on(player, ISINVIS);
msg("You have a tingling feeling all over your body");
fuse(appear, 0, blessed ? GONETIME*3 : GONETIME, AFTER);
fuse(appear, NULL, blessed ? GONETIME*3 : GONETIME, AFTER);
PLAYER = IPLAYER;
light(&hero);
}
@ -675,7 +675,7 @@ quaff(int which, int kind, int flags, bool is_potion)
if (!find_slot(unskill)) { /* No skill */
pstats.s_lvladj = -2;
pstats.s_lvl += pstats.s_lvladj;
fuse(unskill, 0, SKILLDURATION, AFTER);
fuse(unskill, NULL, SKILLDURATION, AFTER);
}
else { /* Has an artifical skill */
/* Is the skill beneficial? */
@ -714,7 +714,7 @@ quaff(int which, int kind, int flags, bool is_potion)
if (!find_slot(unskill)) {
pstats.s_lvladj = adjust;
pstats.s_lvl += pstats.s_lvladj;
fuse(unskill, 0,
fuse(unskill, NULL,
blessed ? SKILLDURATION*2 : SKILLDURATION, AFTER);
}
else { /* Has an artifical skill */
@ -763,7 +763,7 @@ quaff(int which, int kind, int flags, bool is_potion)
}
}
else {
fuse(nofire, 0, duration*FIRETIME, AFTER);
fuse(nofire, NULL, duration*FIRETIME, AFTER);
turn_on(player, NOFIRE);
}
if (say_message) {
@ -789,7 +789,7 @@ quaff(int which, int kind, int flags, bool is_potion)
}
}
else {
fuse(nocold, 0, duration*COLDTIME, AFTER);
fuse(nocold, NULL, duration*COLDTIME, AFTER);
turn_on(player, NOCOLD);
}
if (say_message) {
@ -811,7 +811,7 @@ quaff(int which, int kind, int flags, bool is_potion)
lengthen(nobolt, duration*BOLTTIME);
}
else {
fuse(nobolt, 0, duration*BOLTTIME, AFTER);
fuse(nobolt, NULL, duration*BOLTTIME, AFTER);
turn_on(player, NOBOLT);
}
if (say_message)

View file

@ -90,9 +90,9 @@ ring_on(struct linked_list *item)
}
}
when R_SEARCH:
start_daemon(ring_search, 0, AFTER);
start_daemon(ring_search, NULL, AFTER);
when R_TELEPORT:
start_daemon(ring_teleport, 0, AFTER);
start_daemon(ring_teleport, NULL, AFTER);
}
status(FALSE);
if (r_know[obj->o_which] && r_guess[obj->o_which])

View file

@ -1113,7 +1113,7 @@ struct quill {
struct delayed_action {
int d_type;
int (*d_func)();
void (*d_func)();
union {
int arg;
void *varg;
@ -1212,18 +1212,18 @@ int encread(char *start, unsigned int size, int inf);
int encwrite(char *start, unsigned int size, int outf);
void endmsg(void);
void explode(struct thing *tp);
void extinguish(int (*func)());
void extinguish(void (*func)());
void fall(struct linked_list *item, bool pr);
coord *fallpos(coord *pos, bool be_clear, int range);
void fatal(char *s);
bool fight(coord *mp, struct object *weap, bool thrown);
struct linked_list *find_mons(int y, int x);
struct linked_list *find_obj(int y, int x);
struct delayed_action *find_slot(int (*func)());
struct delayed_action *find_slot(void (*func)());
int findmindex(char *name);
void fix_stick(struct object *cur);
void fumble(void);
void fuse(int (*func)(), int arg, int time, int type);
void fuse(void (*func)(), void *arg, int time, int type);
void genmonsters(int least, bool treas);
coord get_coordinates(void);
bool get_dir(coord *direction);
@ -1256,11 +1256,11 @@ bool is_current(struct object *obj);
bool is_magic(struct object *obj);
bool isatrap(char ch);
int itemweight(struct object *wh);
void kill_daemon(int (*func)());
void kill_daemon(void (*func)());
void killed(struct linked_list *item, bool pr, bool points, bool treasure);
void lake_check(coord *place);
void land(void);
void lengthen(int (*func)(), int xtime);
void lengthen(void (*func)(), int xtime);
void light(coord *cp);
bool lit_room(struct room *rp);
void look(bool wakeup, bool runend);
@ -1357,7 +1357,7 @@ bool skirmish(struct thing *attacker, coord *mp, struct object *weap,
bool thrown);
struct linked_list *spec_item(int type, int which, int hit, int damage);
void spell_recovery(void);
void start_daemon(int (*func)(), int arg, int type);
void start_daemon(void (*func)(), void *arg, int type);
void status(bool display);
void steal(void);
bool step_ok(int y, int x, int can_on_monst, struct thing *flgptr);

View file

@ -1504,7 +1504,7 @@ rs_write_daemons(FILE *savef, struct delayed_action *d_list, int count)
func = 15;
else if (d_list[i].d_func == unstink)
func = 16;
else if (d_list[i].d_func == (int (*)()) res_strength)
else if (d_list[i].d_func == res_strength)
func = 17;
else if (d_list[i].d_func == undance)
func = 18;
@ -1644,7 +1644,7 @@ rs_read_daemons(int inf, struct delayed_action *d_list, int count)
break;
case 16: d_list[i].d_func = unstink;
break;
case 17: d_list[i].d_func = (int (*)()) res_strength;
case 17: d_list[i].d_func = res_strength;
break;
case 18: d_list[i].d_func = undance;
break;

View file

@ -590,7 +590,7 @@ do_zap(struct thing *zapper, struct object *obj, coord *direction, int which,
turn_on(player, HASDISEASE);
turn_on(player, HASINFEST);
turn_on(player, DOROT);
fuse(cure_disease, 0, roll(HEALTIME,SICKTIME), AFTER);
fuse(cure_disease, NULL, roll(HEALTIME,SICKTIME), AFTER);
infest_dam++;
}
else msg("You fell momentarily sick");
@ -1188,7 +1188,7 @@ at_hero: if (!save(VS_BREATH, &player,
rnd(20)+HUHDURATION);
else {
turn_on(player, ISHUH);
fuse(unconfuse, 0,
fuse(unconfuse, NULL,
rnd(20)+HUHDURATION, AFTER);
msg(
"The confusion gas has confused you.");

View file

@ -209,7 +209,7 @@ confus_player(void)
if (find_slot(unconfuse))
lengthen(unconfuse, HUHDURATION);
else
fuse(unconfuse, 0, HUHDURATION, AFTER);
fuse(unconfuse, NULL, HUHDURATION, AFTER);
turn_on(player, ISHUH);
}
else msg("You feel dizzy for a moment, but it quickly passes.");

View file

@ -327,7 +327,7 @@ wear(void)
msg("Wearing %s", inv_name(obj,TRUE));
cur_misc[WEAR_GAUNTLET] = obj;
if (obj->o_which == MM_FUMBLE)
start_daemon(fumble, 0, AFTER);
start_daemon(fumble, NULL, AFTER);
/*
* the jewel of attacks does an aggavate monster
*/
@ -351,7 +351,7 @@ wear(void)
msg("Wearing %s",inv_name(obj,TRUE));
cur_misc[WEAR_NECKLACE] = obj;
msg("The necklace is beginning to strangle you!");
start_daemon(strangle, 0, AFTER);
start_daemon(strangle, NULL, AFTER);
otherwise:
msg("What a strange item you have!");
}