diff --git a/arogue5/daemon.c b/arogue5/daemon.c index 59fc05d..102744b 100644 --- a/arogue5/daemon.c +++ b/arogue5/daemon.c @@ -70,7 +70,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; @@ -87,7 +87,7 @@ find_slot(int (*func)()) * Start a daemon, takes a function. */ void -start_daemon(int (*func)(), void *arg, int type) +start_daemon(void (*func)(), void *arg, int type) { reg struct delayed_action *dev; @@ -107,7 +107,7 @@ start_daemon(int (*func)(), void *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; @@ -155,7 +155,7 @@ do_daemons(int flag) * Start a fuse to go off in a certain number of turns */ void -fuse(int (*func)(), void *arg, int time, int type) +fuse(void (*func)(), void *arg, int time, int type) { reg struct delayed_action *wire; @@ -175,7 +175,7 @@ fuse(int (*func)(), void *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; @@ -190,7 +190,7 @@ lengthen(int (*func)(), int xtime) * Put out a fuse */ void -extinguish(int (*func)()) +extinguish(void (*func)()) { reg struct delayed_action *wire; diff --git a/arogue5/fight.c b/arogue5/fight.c index 7735b56..c983de2 100644 --- a/arogue5/fight.c +++ b/arogue5/fight.c @@ -20,17 +20,18 @@ bool roll_em(struct thing *att_er, struct thing *def_er, struct object *weap, bool hurl, struct object *cur_weapon, bool back_stab); -void hit(struct object *weapon, struct thing *tp, char *er, char *ee, - bool back_stab); -void miss(struct object *weapon, struct thing *tp, char *er, char *ee); +void hit(struct object *weapon, struct thing *tp, const char *er, + const char *ee, bool back_stab); +void miss(struct object *weapon, struct thing *tp, const char *er, + const char *ee); int dext_plus(int dexterity); int str_plus(short str); int add_dam(short str); int hung_dam(void); -void thunk(struct object *weap, struct thing *tp, char *mname); -void m_thunk(struct object *weap, struct thing *tp, char *mname); -void bounce(struct object *weap, struct thing *tp, char *mname); -void m_bounce(struct object *weap, struct thing *tp, char *mname); +void thunk(struct object *weap, struct thing *tp, const char *mname); +void m_thunk(struct object *weap, struct thing *tp, const char *mname); +void bounce(struct object *weap, struct thing *tp, const char *mname); +void m_bounce(struct object *weap, struct thing *tp, const char *mname); struct object *wield_weap(struct object *thrown, struct thing *mp); void explode(struct thing *tp); @@ -1037,7 +1038,7 @@ roll_em(struct thing *att_er, struct thing *def_er, struct object *weap, */ char * -prname(char *who, bool upper) +prname(const char *who, bool upper) { static char tbuf[LINELEN]; @@ -1062,7 +1063,8 @@ prname(char *who, bool upper) */ void -hit(struct object *weapon, struct thing *tp, char *er, char *ee, bool back_stab) +hit(struct object *weapon, struct thing *tp, const char *er, const char *ee, + bool back_stab) { register char *s = NULL; char @@ -1119,7 +1121,7 @@ hit(struct object *weapon, struct thing *tp, char *er, char *ee, bool back_stab) */ void -miss(struct object *weapon, struct thing *tp, char *er, char *ee) +miss(struct object *weapon, struct thing *tp, const char *er, const char *ee) { register char *s = NULL; char @@ -1226,7 +1228,7 @@ hung_dam(void) */ void -thunk(struct object *weap, struct thing *tp, char *mname) +thunk(struct object *weap, struct thing *tp, const char *mname) { /* tp: Defender */ char *def_name; /* Name of defender */ @@ -1254,7 +1256,7 @@ thunk(struct object *weap, struct thing *tp, char *mname) */ void -m_thunk(struct object *weap, struct thing *tp, char *mname) +m_thunk(struct object *weap, struct thing *tp, const char *mname) { char *att_name; /* Name of attacker */ @@ -1281,7 +1283,7 @@ m_thunk(struct object *weap, struct thing *tp, char *mname) */ void -bounce(struct object *weap, struct thing *tp, char *mname) +bounce(struct object *weap, struct thing *tp, const char *mname) { /* tp: Defender */ char *def_name; /* Name of defender */ @@ -1309,7 +1311,7 @@ bounce(struct object *weap, struct thing *tp, char *mname) */ void -m_bounce(struct object *weap, struct thing *tp, char *mname) +m_bounce(struct object *weap, struct thing *tp, const char *mname) { char *att_name; /* Name of attacker */ diff --git a/arogue5/options.c b/arogue5/options.c index f7e4c99..4a08ee0 100644 --- a/arogue5/options.c +++ b/arogue5/options.c @@ -28,8 +28,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 */ }; @@ -39,38 +39,38 @@ int get_ro(WINDOW *win, int oy, int ox); int get_restr(char *optstr, WINDOW *win); int get_score(char *optstr, 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); void put_bool(bool *b, WINDOW *win); int get_bool(bool *bp, WINDOW *win); void put_str(char *str, WINDOW *win); 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 }, {"name", "Name: ", - (int *) whoami, put_str, get_restr }, + (void *) whoami, put_str, get_restr }, {"fruit", "Fruit: ", - (int *) fruit, put_str, get_str }, + (void *) fruit, put_str, get_str }, {"file", "Save file: ", - (int *) file_name, put_str, get_restr }, + (void *) file_name, put_str, get_restr }, {"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 } }; /* For fields that would be restricted if use_savedir is set. */ @@ -111,27 +111,27 @@ int get_score(char *optstr, WINDOW *win) /* * 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); } /* @@ -416,18 +416,19 @@ parse_opts(char *str) if (op->o_putfunc != put_abil) strcpy((char *)op->o_opt, 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); if (isupper(value[0])) value[0] = tolower(value[0]); if (EQSTR(value, "fighter", len)) - *op->o_opt = C_FIGHTER; + *(int *)op->o_opt = C_FIGHTER; else if (EQSTR(value, "magic", min(len, 5))) - *op->o_opt = C_MAGICIAN; + *(int *)op->o_opt = C_MAGICIAN; else if (EQSTR(value, "cleric", len)) - *op->o_opt = C_CLERIC; + *(int *)op->o_opt = C_CLERIC; else if (EQSTR(value, "thief", len)) - *op->o_opt = C_THIEF; + *(int *)op->o_opt = C_THIEF; } } break; diff --git a/arogue5/rogue.h b/arogue5/rogue.h index 8bb1936..38ae143 100644 --- a/arogue5/rogue.h +++ b/arogue5/rogue.h @@ -724,7 +724,7 @@ struct delayed_action { int d_type; - int (*d_func)(); + void (*d_func)(); void *d_arg; int d_time; }; @@ -1013,17 +1013,17 @@ int encread(char *start, unsigned int size, int inf); int encwrite(char *start, unsigned int size, FILE *outf); void endit(int sig); void endmsg(void); -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)()); void fix_stick(struct object *cur); void fumble(void); -void fuse(int (*func)(), void *arg, int time, int type); +void fuse(void (*func)(), void *arg, int time, int type); void genmonsters(int least, bool treas); bool get_dir(void); struct linked_list *get_item(struct linked_list *list, char *purpose, int type); @@ -1053,11 +1053,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); 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); @@ -1133,7 +1133,7 @@ bool shoot_ok(char ch); char show(int y, int x); void sight(void); struct linked_list *spec_item(int type, int which, int hit, int damage); -void start_daemon(int (*func)(), void *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); @@ -1165,6 +1165,7 @@ void use_mm(int which); char *vowelstr(char *str); void wait_for(WINDOW *win, char ch); struct linked_list *wake_monster(int y, int x); +void wanderer(void); void waste_time(void); char *weap_name(struct object *obj); void wear(void); diff --git a/arogue7/daemon.c b/arogue7/daemon.c index 5addb22..b9e52a5 100644 --- a/arogue7/daemon.c +++ b/arogue7/daemon.c @@ -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; } } diff --git a/arogue7/daemons.c b/arogue7/daemons.c index da5d976..241bebe 100644 --- a/arogue7/daemons.c +++ b/arogue7/daemons.c @@ -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); } diff --git a/arogue7/effects.c b/arogue7/effects.c index 082026c..8066e0f 100644 --- a/arogue7/effects.c +++ b/arogue7/effects.c @@ -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); diff --git a/arogue7/encumb.c b/arogue7/encumb.c index c703379..b92e904 100644 --- a/arogue7/encumb.c +++ b/arogue7/encumb.c @@ -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; } diff --git a/arogue7/fight.c b/arogue7/fight.c index a94e2f2..b172ac0 100644 --- a/arogue7/fight.c +++ b/arogue7/fight.c @@ -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."); diff --git a/arogue7/main.c b/arogue7/main.c index 55fbadb..db650da 100644 --- a/arogue7/main.c +++ b/arogue7/main.c @@ -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) { diff --git a/arogue7/misc.c b/arogue7/misc.c index 536124c..1304ad4 100644 --- a/arogue7/misc.c +++ b/arogue7/misc.c @@ -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); diff --git a/arogue7/monsters.c b/arogue7/monsters.c index 65a775d..a574b3e 100644 --- a/arogue7/monsters.c +++ b/arogue7/monsters.c @@ -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); } } diff --git a/arogue7/options.c b/arogue7/options.c index 488da76..5ae0bcf 100644 --- a/arogue7/options.c +++ b/arogue7/options.c @@ -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; io_opt = i; + *(int *)op->o_opt = i; break; } } diff --git a/arogue7/pack.c b/arogue7/pack.c index 46c52f1..a9363ec 100644 --- a/arogue7/pack.c +++ b/arogue7/pack.c @@ -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)) { diff --git a/arogue7/potions.c b/arogue7/potions.c index a22fab5..122ed06 100644 --- a/arogue7/potions.c +++ b/arogue7/potions.c @@ -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) diff --git a/arogue7/rings.c b/arogue7/rings.c index 1c87346..7cb33c2 100644 --- a/arogue7/rings.c +++ b/arogue7/rings.c @@ -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]) diff --git a/arogue7/rogue.h b/arogue7/rogue.h index 0544bea..311f181 100644 --- a/arogue7/rogue.h +++ b/arogue7/rogue.h @@ -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); diff --git a/arogue7/state.c b/arogue7/state.c index 98fe107..928ae05 100644 --- a/arogue7/state.c +++ b/arogue7/state.c @@ -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; diff --git a/arogue7/sticks.c b/arogue7/sticks.c index 12002f2..f5aa0cb 100644 --- a/arogue7/sticks.c +++ b/arogue7/sticks.c @@ -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."); diff --git a/arogue7/util.c b/arogue7/util.c index cde6869..9ccb23d 100644 --- a/arogue7/util.c +++ b/arogue7/util.c @@ -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."); diff --git a/arogue7/wear.c b/arogue7/wear.c index 9a7a8cb..7447054 100644 --- a/arogue7/wear.c +++ b/arogue7/wear.c @@ -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!"); } diff --git a/rogue4/daemon.c b/rogue4/daemon.c index fa02989..48b1463 100644 --- a/rogue4/daemon.c +++ b/rogue4/daemon.c @@ -48,7 +48,7 @@ d_slot(void) * Find a particular slot in the table */ struct delayed_action * -find_slot(int (*func)()) +find_slot(void (*func)()) { register int i; register struct delayed_action *dev; @@ -64,7 +64,7 @@ find_slot(int (*func)()) * Start a daemon, takes a function. */ void -start_daemon(int (*func)(), int arg, int type) +start_daemon(void (*func)(), int arg, int type) { register struct delayed_action *dev; @@ -80,7 +80,7 @@ start_daemon(int (*func)(), int arg, int type) * Remove a daemon from the list */ void -kill_daemon(int (*func)()) +kill_daemon(void (*func)()) { register struct delayed_action *dev; @@ -118,7 +118,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)(), int arg, int time, int type) { register struct delayed_action *wire; @@ -134,7 +134,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) { register struct delayed_action *wire; @@ -148,7 +148,7 @@ lengthen(int (*func)(), int xtime) * Put out a fuse */ void -extinguish(int (*func)()) +extinguish(void (*func)()) { register struct delayed_action *wire; diff --git a/rogue4/fight.c b/rogue4/fight.c index 2c0ae82..c7ed6df 100644 --- a/rogue4/fight.c +++ b/rogue4/fight.c @@ -22,8 +22,8 @@ long e_levels[] = { }; bool roll_em(THING *thatt, THING *thdef, THING *weap, bool hurl); -void hit(char *er, char *ee); -void miss(char *er, char *ee); +void hit(const char *er, const char *ee); +void miss(const char *er, const char *ee); int str_plus(str_t str); int add_dam(str_t str); void thunk(THING *weap, const char *mname); @@ -446,7 +446,7 @@ roll_em(THING *thatt, THING *thdef, THING *weap, bool hurl) * The print name of a combatant */ char * -prname(char *who, bool upper) +prname(const char *who, bool upper) { static char tbuf[MAXSTR]; @@ -470,7 +470,7 @@ prname(char *who, bool upper) * Print a message to indicate a succesful hit */ void -hit(char *er, char *ee) +hit(const char *er, const char *ee) { register char *s = ""; @@ -496,7 +496,7 @@ hit(char *er, char *ee) * Print a message to indicate a poor swing */ void -miss(char *er, char *ee) +miss(const char *er, const char *ee) { register char *s = ""; diff --git a/rogue4/misc.c b/rogue4/misc.c index 6fe845d..f1151bb 100644 --- a/rogue4/misc.c +++ b/rogue4/misc.c @@ -345,7 +345,7 @@ aggravate(void) * "an". */ char * -vowelstr(char *str) +vowelstr(const char *str) { switch (*str) { diff --git a/rogue4/options.c b/rogue4/options.c index a4bc062..f14b70f 100644 --- a/rogue4/options.c +++ b/rogue4/options.c @@ -27,8 +27,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 */ }; @@ -43,23 +43,23 @@ int get_str(char *opt, WINDOW *win); 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 }, {"passgo", "Follow turnings in passageways: ", - (int *) &passgo, put_bool, get_bool }, + (void *) &passgo, put_bool, get_bool }, {"name", "Name: ", - (int *) whoami, put_str, get_str }, + (void *) whoami, put_str, get_str }, {"fruit", "Fruit: ", - (int *) fruit, put_str, get_str }, + (void *) fruit, put_str, get_str }, {"file", "Save file: ", - (int *) file_name, put_str, get_str } + (void *) file_name, put_str, get_str } }; /* diff --git a/rogue4/rogue.h b/rogue4/rogue.h index 8fc4e6e..fdfa3ff 100644 --- a/rogue4/rogue.h +++ b/rogue4/rogue.h @@ -324,7 +324,7 @@ typedef struct { struct delayed_action { int d_type; - int (*d_func)(); + void (*d_func)(); int d_arg; int d_time; }; @@ -484,6 +484,7 @@ void _attach(THING **list, THING *item); void _detach(THING **list, THING *item); void _free_list(THING **ptr); bool add_haste(bool potion); +void add_line(char *fmt, char *arg); void add_pack(THING *obj, bool silent); void add_str(str_t *sp, int amt); void addmsg(char *fmt, ...); @@ -515,9 +516,10 @@ bool dropcheck(THING *op); void eat(void); int encread(void *starta, int size, int inf); void encwrite(void *starta, int size, FILE *outf); +void end_line(void); void endmsg(void); void enter_room(coord *cp); -void extinguish(int (*func)()); +void extinguish(void (*func)()); void fall(THING *obj, bool pr); bool fallpos(coord *pos, coord *newpos, bool pass); void fatal(char *s); @@ -526,7 +528,7 @@ THING *find_obj(int y, int x); void fire_bolt(coord *start, coord *dir, char *name); void fix_stick(THING *cur); void flush_type(void); -void fuse(int (*func)(), int arg, int time, int type); +void fuse(void (*func)(), int arg, int time, int type); void genocide(void); bool get_dir(void); THING *get_item(char *purpose, int type); @@ -547,11 +549,11 @@ void invis_on(void); bool is_current(THING *obj); bool is_magic(THING *obj); bool issymlink(char *sp); -void kill_daemon(int (*func)()); +void kill_daemon(void (*func)()); void killed(THING *tp, bool pr); void leave(int sig); void leave_room(coord *cp); -void lengthen(int (*func)(), int xtime); +void lengthen(void (*func)(), int xtime); bool lock_sc(void); void look(bool wakeup); void missile(int ydelta, int xdelta); @@ -601,7 +603,7 @@ void shell(void); void show_win(WINDOW *scr, char *message); void sight(void); int sign(int nm); -void start_daemon(int (*func)(), int arg, int type); +void start_daemon(void (*func)(), int arg, int type); void start_score(void); void status(void); bool step_ok(char ch); @@ -619,7 +621,7 @@ void unconfuse(void); char *unctrol(char ch); void unlock_sc(void); void unsee(void); -char *vowelstr(char *str); +char *vowelstr(const char *str); char *xcrypt(const char *key, const char *setting); void w_wait_for(WINDOW *win, char ch); void wait_for(char ch); diff --git a/rogue4/state.c b/rogue4/state.c index 07f10fd..13e95c3 100644 --- a/rogue4/state.c +++ b/rogue4/state.c @@ -70,6 +70,9 @@ #define READSTAT ((format_error == 0) && (read_error == 0)) #define WRITESTAT (write_error == 0) +int rs_write_int(FILE *savef, int c); +int rs_read_int(int inf, int *i); + int read_error = FALSE; int write_error = FALSE; int format_error = FALSE; @@ -1533,7 +1536,7 @@ rs_write_thing(FILE *savef, THING *t) return(WRITESTAT); } -int +void rs_fix_thing(THING *t) { THING *item; diff --git a/rogue4/things.c b/rogue4/things.c index db6e161..292dba4 100644 --- a/rogue4/things.c +++ b/rogue4/things.c @@ -438,11 +438,11 @@ discovered(void) if (ch == '*') { print_disc(POTION); - add_line(""); + add_line("", NULL); print_disc(SCROLL); - add_line(""); + add_line("", NULL); print_disc(RING); - add_line(""); + add_line("", NULL); print_disc(STICK); end_line(); } @@ -505,7 +505,7 @@ print_disc(char type) num_found++; } if (num_found == 0) - add_line(nothing(type)); + add_line(nothing(type), NULL); } /* @@ -533,9 +533,8 @@ set_order(short *order, int numthings) * add_line: * Add a line to the list of discoveries */ -/* VARARGS1 */ -add_line(fmt, arg) -char *fmt, *arg; +void +add_line(char *fmt, char *arg) { if (line_cnt == 0) { @@ -545,7 +544,7 @@ char *fmt, *arg; } if (slow_invent) { - if (*fmt != '\0') + if (fmt != NULL && *fmt != '\0') msg(fmt, arg); line_cnt++; } @@ -575,7 +574,8 @@ char *fmt, *arg; * end_line: * End the list of lines */ -end_line() +void +end_line(void) { if (!slow_invent) if (line_cnt == 1 && !newpage) @@ -584,7 +584,7 @@ end_line() msg(lastfmt, lastarg); } else - add_line(NULL); + add_line(NULL, NULL); line_cnt = 0; newpage = FALSE; } diff --git a/srogue/daemon.c b/srogue/daemon.c index 441f1e0..40035fb 100644 --- a/srogue/daemon.c +++ b/srogue/daemon.c @@ -34,7 +34,7 @@ struct delayed_action d_list[MAXDAEMONS] = { * Insert a function in the daemon list. */ struct delayed_action * -d_insert(int (*func)(), int arg, int type, int time) +d_insert(void (*func)(), int arg, int type, int time) { reg struct delayed_action *dev; @@ -72,7 +72,7 @@ d_delete(struct delayed_action *wire) * Find a particular slot in the table */ struct delayed_action * -find_slot(int (*func)()) +find_slot(void (*func)()) { reg struct delayed_action *dev; @@ -87,7 +87,7 @@ find_slot(int (*func)()) * Start a daemon, takes a function. */ void -start_daemon(int (*func)(), int arg, int type) +start_daemon(void (*func)(), int arg, int type) { d_insert(func, arg, type, DAEMON); } @@ -112,7 +112,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) +fuse(void (*func)(), int arg, int time) { d_insert(func, arg, AFTER, time); } @@ -122,7 +122,7 @@ fuse(int (*func)(), int arg, int time) * Increase the time until a fuse goes off */ void -lengthen(int (*func)(), int xtime) +lengthen(void (*func)(), int xtime) { reg struct delayed_action *wire; @@ -136,7 +136,7 @@ lengthen(int (*func)(), int xtime) * Put out a fuse. Find all such fuses and kill them. */ void -extinguish(int (*func)()) +extinguish(void (*func)()) { reg struct delayed_action *dev; diff --git a/srogue/rogue.ext b/srogue/rogue.ext index 6439723..b009320 100644 --- a/srogue/rogue.ext +++ b/srogue/rogue.ext @@ -96,7 +96,7 @@ int encread(void *starta, unsigned int size, int inf); void encwrite(void *starta, unsigned int size, FILE *outf); void endit(int a); void endmsg(void); -void extinguish(int (*func)()); +void extinguish(void (*func)()); int extras(void); void fall(struct linked_list *item, bool pr); bool fallpos(struct coord *pos, struct coord *newpos, bool passages); @@ -105,7 +105,7 @@ bool fight(struct 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); void fix_stick(struct object *cur); -void fuse(int (*func)(), int arg, int time); +void fuse(void (*func)(), int arg, int time); void game_err(int a); void genocide(void); bool get_dir(void); @@ -140,7 +140,7 @@ bool isatrap(char ch); bool isring(int hand, int ring); bool iswearing(int ring); void killed(struct linked_list *item, bool pr); -void lengthen(int (*func)(), int xtime); +void lengthen(void (*func)(), int xtime); void lev_mon(void); void light(struct coord *cp); void look(bool wakeup); @@ -215,7 +215,7 @@ void setup(void); char show(int y, int x); bool showtop(int showname); void sight(int fromfuse); -void start_daemon(int (*func)(), int arg, int type); +void start_daemon(void (*func)(), int arg, int type); void status(int fromfuse); bool step_ok(unsigned char ch); void stomach(int fromfuse); diff --git a/srogue/rogue.h b/srogue/rogue.h index d171fe2..a003572 100644 --- a/srogue/rogue.h +++ b/srogue/rogue.h @@ -531,7 +531,7 @@ char *xcrypt(const char *key, const char *setting); struct delayed_action { int d_type; - int (*d_func)(); + void (*d_func)(); int d_arg; int d_time; }; @@ -565,7 +565,7 @@ struct monlev { struct linked_list { struct linked_list *l_next; struct linked_list *l_prev; - char *l_data; /* Various structure pointers */ + void *l_data; /* Various structure pointers */ }; diff --git a/xrogue/bolt.c b/xrogue/bolt.c index a41e26c..b108237 100644 --- a/xrogue/bolt.c +++ b/xrogue/bolt.c @@ -341,7 +341,7 @@ at_hero: if (!save(VS_BREATH, &player, rnd(20)+HUHDURATION); else { turn_on(player, ISHUH); - fuse(unconfuse, (VOID *)NULL, + fuse(unconfuse, NULL, rnd(20)+HUHDURATION, AFTER); msg("The confusion gas has confused you."); } diff --git a/xrogue/command.c b/xrogue/command.c index 5226eb6..6102e86 100644 --- a/xrogue/command.c +++ b/xrogue/command.c @@ -693,7 +693,7 @@ quit(int sig) * Reset the signal in case we got here via an interrupt */ - if ((VOID(*)())signal(SIGINT, quit) != (VOID(*)())quit) + if (signal(SIGINT, quit) != quit) mpos = 0; getyx(cw, oy, ox); diff --git a/xrogue/daemon.c b/xrogue/daemon.c index 8d36bc7..7b3acc7 100644 --- a/xrogue/daemon.c +++ b/xrogue/daemon.c @@ -74,7 +74,7 @@ f_slot(void) */ struct delayed_action * -find_slot(int (*func)()) +find_slot(void (*func)()) { reg int i; reg struct delayed_action *dev; @@ -91,7 +91,7 @@ find_slot(int (*func)()) */ void -start_daemon(int (*dfunc)(), VOID *arg, int type) +start_daemon(void (*dfunc)(), void *arg, int type) { reg struct delayed_action *dev; @@ -111,7 +111,7 @@ start_daemon(int (*dfunc)(), VOID *arg, int type) */ void -kill_daemon(int (*dfunc)()) +kill_daemon(void (*dfunc)()) { reg struct delayed_action *dev; reg int i; @@ -164,7 +164,7 @@ do_daemons(int flag) */ void -fuse(int (*dfunc)(), VOID *arg, int time, int type) +fuse(void (*dfunc)(), void *arg, int time, int type) { reg struct delayed_action *wire; @@ -172,7 +172,10 @@ fuse(int (*dfunc)(), VOID *arg, int time, int type) if (wire != NULL) { wire->d_type = type; wire->d_func = dfunc; - wire->d_arg.vp = arg; + if (dfunc == changeclass || dfunc == res_strength) + wire->d_arg.i = *(int *) arg; + else + wire->d_arg.vp = arg; wire->d_time = time; fusecnt += 1; /* update count */ } @@ -184,7 +187,7 @@ fuse(int (*dfunc)(), VOID *arg, int time, int type) */ void -lengthen(int (*dfunc)(), int xtime) +lengthen(void (*dfunc)(), int xtime) { reg struct delayed_action *wire; @@ -199,7 +202,7 @@ lengthen(int (*dfunc)(), int xtime) */ void -extinguish(int (*dfunc)()) +extinguish(void (*dfunc)()) { reg struct delayed_action *wire; @@ -220,26 +223,28 @@ extinguish(int (*dfunc)()) void do_fuses(int flag) { - struct delayed_action *wire; - int i; + struct delayed_action *wire; + int i; - /* - * Step though the list - */ - for (i = 0; i < MAXFUSES; i++) { - wire = &f_list[i]; + /* + * Step though the list + */ + for (i = 0; i < MAXFUSES; i++) { + wire = &f_list[i]; /* * Decrementing counters and starting things we want. We also need * to remove the fuse from the list once it has gone off. */ - if(flag == wire->d_type && wire->d_time > 0 && + if(flag == wire->d_type && wire->d_time > 0 && --wire->d_time == 0) { - wire->d_type = EMPTY; - if (wire->d_func != NULL) - (*wire->d_func)(wire->d_arg.vp); - fusecnt -= 1; - } + wire->d_type = EMPTY; + if (*wire->d_func == changeclass || *wire->d_func == res_strength) + (*wire->d_func)(wire->d_arg.i); + else if (wire->d_func != NULL) + (*wire->d_func)(wire->d_arg.vp); + fusecnt -= 1; } + } } /* diff --git a/xrogue/daemons.c b/xrogue/daemons.c index 82e431d..9fb7dd8 100644 --- a/xrogue/daemons.c +++ b/xrogue/daemons.c @@ -114,7 +114,7 @@ doctor(struct thing *tp) void swander(void) { - start_daemon(rollwand, (VOID *)NULL, BEFORE); + start_daemon(rollwand, NULL, BEFORE); } /* @@ -137,7 +137,7 @@ rollwand(void) if (levtype != POSTLEV) wanderer(); kill_daemon(rollwand); - fuse(swander, (VOID *)NULL, WANDERTIME, BEFORE); + fuse(swander, NULL, WANDERTIME, BEFORE); } between = 0; } @@ -222,13 +222,12 @@ unphase(void) * Player can no longer fly */ -int +void land(void) { turn_off(player, ISFLY); msg("You regain your normal weight"); running = FALSE; - return(0); } /* @@ -253,7 +252,7 @@ sight(void) * Restore player's strength */ -int +void res_strength(long howmuch) { @@ -271,7 +270,6 @@ res_strength(long howmuch) min(pstats.s_str + howmuch, max_stats.s_str + ring_value(R_ADDSTR)); updpack(TRUE, &player); - return(0); } /* @@ -507,12 +505,11 @@ alchemy(struct object *obj) * otto's irresistable dance wears off */ -int +void undance(void) { turn_off(player, ISDANCE); msg ("Your feet take a break.....whew!"); - return(0); } /* @@ -615,7 +612,7 @@ quill_charge(void) return; if (tobj->o_charges < QUILLCHARGES) tobj->o_charges++; - fuse (quill_charge, (VOID *)NULL, player.t_ctype == C_MAGICIAN ? 4 : 8, AFTER); + fuse (quill_charge, NULL, player.t_ctype == C_MAGICIAN ? 4 : 8, AFTER); } /* @@ -637,12 +634,11 @@ unskill(void) * charge up the cloak of Emori */ -int +void cloak_charge(struct object *obj) { if (obj->o_charges < 1) obj->o_charges = 1; - return(0); } /* @@ -723,7 +719,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, (VOID *)NULL, time, AFTER); + fuse(spell_recovery, NULL, time, AFTER); } /* @@ -738,7 +734,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, (VOID *)NULL, time, AFTER); + fuse(prayer_recovery, NULL, time, AFTER); } /* @@ -753,6 +749,6 @@ chant_recovery(void) time = SPELLTIME - max(17-pstats.s_wisdom, 0); time = max(time, 5); if (chant_time > 0) chant_time--; - fuse(chant_recovery, (VOID *)NULL, time, AFTER); + fuse(chant_recovery, NULL, time, AFTER); } diff --git a/xrogue/eat.c b/xrogue/eat.c index b48f43d..122d8e2 100644 --- a/xrogue/eat.c +++ b/xrogue/eat.c @@ -153,7 +153,7 @@ eat(void) } else { turn_on(player, HASDISEASE); - fuse(cure_disease, (VOID *)NULL, roll(HEALTIME,SICKTIME),AFTER); + fuse(cure_disease, NULL, roll(HEALTIME,SICKTIME),AFTER); msg("You become ill. "); } } diff --git a/xrogue/effects.c b/xrogue/effects.c index b6ce3a8..b80d05d 100644 --- a/xrogue/effects.c +++ b/xrogue/effects.c @@ -309,7 +309,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, (VOID *)NULL, STINKTIME, AFTER); + fuse(unstink, NULL, STINKTIME, AFTER); } } } @@ -323,8 +323,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, (VOID *)NULL, CHILLTIME, AFTER); + if (lost_str++ == 0) { + int temp_arg = 0; + fuse(res_strength, &temp_arg, CHILLTIME, AFTER); + } else lengthen(res_strength, CHILLTIME); } } @@ -359,7 +361,7 @@ effect(struct thing *att, struct thing *def, struct object *weap, bool thrown, } else { turn_on(*def, HASDISEASE); - fuse(cure_disease, (VOID *)NULL, roll(HEALTIME,SICKTIME), AFTER); + fuse(cure_disease, NULL, roll(HEALTIME,SICKTIME), AFTER); msg(terse ? "You have been diseased!" : "You have contracted an annoying disease!"); } @@ -491,7 +493,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, (VOID *)NULL, roll(2,4), AFTER); + fuse(undance, NULL, roll(2,4), AFTER); } /* @@ -504,7 +506,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, (VOID *)NULL, roll(9,3), AFTER); + fuse(suffocate, NULL, roll(9,3), AFTER); } /* @@ -548,11 +550,12 @@ effect(struct thing *att, struct thing *def, struct object *weap, bool thrown, else { int odor_str = -(rnd(6)+1); + int temp_arg2 = 0; msg("You are overcome by a foul odor!"); if (lost_str == 0) { chg_str(odor_str); - fuse(res_strength, (VOID *)NULL, SMELLTIME, AFTER); + fuse(res_strength, &temp_arg2, SMELLTIME, AFTER); lost_str -= odor_str; } else lengthen(res_strength, SMELLTIME); diff --git a/xrogue/encumb.c b/xrogue/encumb.c index 8aa9063..18c9848 100644 --- a/xrogue/encumb.c +++ b/xrogue/encumb.c @@ -169,7 +169,7 @@ wghtchk(void) ch = mvwinch(stdscr, hero.y, hero.x); if((ch != FLOOR && ch != PASSAGE)) { extinguish(wghtchk); - fuse(wghtchk, (VOID *)NULL, 1, AFTER); + fuse(wghtchk, NULL, 1, AFTER); inwhgt = FALSE; return; } diff --git a/xrogue/fight.c b/xrogue/fight.c index 724603d..45c7940 100644 --- a/xrogue/fight.c +++ b/xrogue/fight.c @@ -564,7 +564,7 @@ roll_em(struct thing *att_er, struct thing *def_er, struct object *weap, if (find_slot(unconfuse)) lengthen(unconfuse, HUHDURATION); else - fuse(unconfuse, (VOID *)NULL, HUHDURATION, AFTER); + fuse(unconfuse, NULL, HUHDURATION, AFTER); turn_on(player, ISHUH); } else msg("You feel dizzy, but it quickly passes."); @@ -966,7 +966,6 @@ killed(struct linked_list *item, bool pr, bool points, bool treasure) register struct linked_list *pitem, *nexti, *mitem; char *monst; int adj; /* used for hit point adj. below. */ - long temp; tp = THINGPTR(item); @@ -1029,8 +1028,7 @@ killed(struct linked_list *item, bool pr, bool points, bool treasure) if (roll(1,100) < killed_chance) { msg("You had a feeling this was going to happen... "); msg("**POOF** "); - temp = C_ASSASSIN; /* make him pay */ - changeclass(&temp); + changeclass(C_ASSASSIN); /* make him pay */ } else { switch (rnd(9)) { diff --git a/xrogue/main.c b/xrogue/main.c index 8ffb759..cdaf917 100644 --- a/xrogue/main.c +++ b/xrogue/main.c @@ -244,19 +244,19 @@ main(int argc, char *argv[], char *envp[]) * Start up daemons and fuses */ start_daemon(doctor, &player, AFTER); - fuse(swander, (VOID *)NULL, WANDERTIME, AFTER); + fuse(swander, NULL, WANDERTIME, AFTER); /* Give characters their innate abilities */ if (player.t_ctype == C_MAGICIAN || player.t_ctype == C_RANGER) - fuse(spell_recovery, (VOID *)NULL, SPELLTIME, AFTER); + fuse(spell_recovery, NULL, SPELLTIME, AFTER); if (player.t_ctype == C_DRUID || player.t_ctype == C_MONK) - fuse(chant_recovery, (VOID *)NULL, SPELLTIME, AFTER); + fuse(chant_recovery, NULL, SPELLTIME, AFTER); if (player.t_ctype == C_CLERIC || player.t_ctype == C_PALADIN) - fuse(prayer_recovery, (VOID *)NULL, SPELLTIME, AFTER); - start_daemon(stomach, (VOID *)NULL, AFTER); + fuse(prayer_recovery, NULL, SPELLTIME, AFTER); + start_daemon(stomach, NULL, AFTER); if (player.t_ctype == C_THIEF || player.t_ctype == C_ASSASSIN || player.t_ctype == C_MONK) - start_daemon(trap_look, (VOID *)NULL, AFTER); + start_daemon(trap_look, NULL, AFTER); /* Does this character have any special knowledge? */ switch (player.t_ctype) { diff --git a/xrogue/misc.c b/xrogue/misc.c index 1ffaffc..71be11f 100644 --- a/xrogue/misc.c +++ b/xrogue/misc.c @@ -24,9 +24,9 @@ */ void -changeclass(long *newclass) +changeclass(int newclass) { - if (*newclass == player.t_ctype) { + if (newclass == player.t_ctype) { msg("You feel more skillful."); raise_level(); } @@ -38,19 +38,19 @@ changeclass(long *newclass) */ long save; - msg("You are transformed into a %s! ", char_class[*newclass].name); + msg("You are transformed into a %s! ", char_class[newclass].name); /* * if he becomes a thief or an assassin give him studded leather armor */ - if ((*newclass == C_THIEF || *newclass == C_ASSASSIN) && + if ((newclass == C_THIEF || newclass == C_ASSASSIN) && cur_armor != NULL && cur_armor->o_which != STUDDED_LEATHER) cur_armor->o_which = STUDDED_LEATHER; /* * if he becomes a monk he can't wear any armor * so give him a cloak of protection */ - if (*newclass == C_MONK && cur_armor != NULL) { + if (newclass == C_MONK && cur_armor != NULL) { cur_armor->o_ac = armors[cur_armor->o_which].a_class - cur_armor->o_ac; cur_armor->o_type = MM; @@ -62,8 +62,8 @@ changeclass(long *newclass) /* * otherwise give him plate armor */ - if ((*newclass != C_THIEF || - *newclass != C_ASSASSIN || *newclass != C_MONK) && + if ((newclass != C_THIEF || + newclass != C_ASSASSIN || newclass != C_MONK) && cur_armor != NULL && cur_armor->o_which != PLATE_ARMOR) cur_armor->o_which = PLATE_ARMOR; @@ -81,12 +81,12 @@ changeclass(long *newclass) /* * if he becomes a spell caster of some kind, give him a fuse */ - if (*newclass == C_MAGICIAN || *newclass == C_RANGER) - fuse(spell_recovery, (VOID *)NULL, SPELLTIME, AFTER); - if (*newclass == C_DRUID || *newclass == C_MONK) - fuse(chant_recovery, (VOID *)NULL, SPELLTIME, AFTER); - if ((*newclass==C_CLERIC || *newclass==C_PALADIN) && !cur_misc[HEIL_ANKH]) - fuse(prayer_recovery, (VOID *)NULL, SPELLTIME, AFTER); + if (newclass == C_MAGICIAN || newclass == C_RANGER) + fuse(spell_recovery, NULL, SPELLTIME, AFTER); + if (newclass == C_DRUID || newclass == C_MONK) + fuse(chant_recovery, NULL, SPELLTIME, AFTER); + if ((newclass==C_CLERIC || newclass==C_PALADIN) && !cur_misc[HEIL_ANKH]) + fuse(prayer_recovery, NULL, SPELLTIME, AFTER); /* * if he's changing from a fighter, ranger, or paladin then we * may have to change his sword since only these types can wield @@ -98,8 +98,8 @@ changeclass(long *newclass) cur_weapon != NULL && cur_weapon->o_type == WEAPON && (cur_weapon->o_which == BASWORD || cur_weapon->o_which == TWOSWORD) && - !(*newclass == C_FIGHTER || *newclass == C_RANGER || - *newclass == C_PALADIN) && + !(newclass == C_FIGHTER || newclass == C_RANGER || + newclass == C_PALADIN) && cur_weapon->o_which == TWOSWORD) cur_weapon->o_which = SWORD; @@ -113,8 +113,8 @@ changeclass(long *newclass) cur_weapon != NULL && cur_weapon->o_type == WEAPON && (cur_weapon->o_which == BASWORD || cur_weapon->o_which == TWOSWORD) && - !(*newclass == C_THIEF || *newclass == C_ASSASSIN || - *newclass == C_MONK) && + !(newclass == C_THIEF || newclass == C_ASSASSIN || + newclass == C_MONK) && cur_weapon->o_which == BASWORD) cur_weapon->o_which = SWORD; @@ -130,12 +130,12 @@ changeclass(long *newclass) * if he becomes a thief, assassin, or monk then add * the trap_look() daemon */ - if (*newclass == C_THIEF || *newclass == C_ASSASSIN || - *newclass == C_MONK) - start_daemon(trap_look, (VOID *)NULL, AFTER); + if (newclass == C_THIEF || newclass == C_ASSASSIN || + newclass == C_MONK) + start_daemon(trap_look, NULL, AFTER); /* adjust stats */ - char_type = player.t_ctype = *newclass; + char_type = player.t_ctype = newclass; save = pstats.s_hpt; max_stats.s_hpt = pstats.s_hpt = 0; max_stats.s_lvl = pstats.s_lvl = 0; @@ -1029,7 +1029,7 @@ use_mm(int which) else msg("Ahh.. Ahh... Choo!! "); if (!find_slot(dust_appear)) { turn_on(player, ISINVIS); - fuse(dust_appear, (VOID *)NULL, DUSTTIME, AFTER); + fuse(dust_appear, NULL, DUSTTIME, AFTER); PLAYER = IPLAYER; light(&hero); } @@ -1059,7 +1059,7 @@ use_mm(int which) if (find_slot(unchoke)) lengthen(unchoke, DUSTTIME); else - fuse(unchoke, (VOID *)NULL, DUSTTIME, AFTER); + fuse(unchoke, NULL, DUSTTIME, AFTER); turn_on(player, ISHUH); turn_on(player, ISBLIND); light(&hero); @@ -1103,7 +1103,7 @@ use_mm(int which) when MM_SKILLS: detach (pack, item); inpack--; - changeclass(&obj->o_ac); + changeclass(obj->o_ac); when MM_CRYSTAL: { register char *str; diff --git a/xrogue/monsters.c b/xrogue/monsters.c index db3c9d6..d3c5aac 100644 --- a/xrogue/monsters.c +++ b/xrogue/monsters.c @@ -685,7 +685,7 @@ wake_monster(int y, int x) if (find_slot(unconfuse)) lengthen(unconfuse, HUHDURATION); else { - fuse(unconfuse, (VOID *)NULL, HUHDURATION, AFTER); + fuse(unconfuse, NULL, HUHDURATION, AFTER); msg("%s's gaze has confused you.",prname(mname, TRUE)); turn_on(player, ISHUH); } @@ -727,7 +727,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, (VOID *)NULL, rnd(30)+20, AFTER); + fuse(sight, NULL, rnd(30)+20, AFTER); light(&hero); } } diff --git a/xrogue/options.c b/xrogue/options.c index 91497e9..1e743e5 100644 --- a/xrogue/options.c +++ b/xrogue/options.c @@ -34,8 +34,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 */ }; @@ -47,83 +47,83 @@ 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); -void get_default(bool *bp, WINDOW *win); +int get_quest(int *quest, WINDOW *win); +int get_default(bool *bp, WINDOW *win); int get_str_prot(char *opt, WINDOW *win); int get_score(char *opt, WINDOW *win); 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 type: ", - (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 }, {"default", "Default Attributes: ", - (int *) &def_attr, put_bool, get_default } + (void *) &def_attr, put_bool, get_default } }; /* * The default attribute field is read-only */ -void +int get_default(bool *bp, WINDOW *win) { register int oy, ox; getyx(win, oy, ox); put_bool(bp, win); - get_ro(win, oy, ox); + return get_ro(win, oy, ox); } /* * The ability (class) 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); } /* @@ -411,13 +411,14 @@ parse_opts(char *str) strcpy((char *)op->o_opt, 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; for (i=0; io_opt = i; + *(int *)op->o_opt = i; break; } } diff --git a/xrogue/pack.c b/xrogue/pack.c index 0129c73..e3fdefc 100644 --- a/xrogue/pack.c +++ b/xrogue/pack.c @@ -36,15 +36,7 @@ add_pack(struct linked_list *item, bool silent) register struct object *obj, *op = NULL; register bool exact, from_floor; bool giveflag = 0; - static long cleric = C_CLERIC, - monk = C_MONK, - magician = C_MAGICIAN, - assassin = C_ASSASSIN, - druid = C_DRUID, - thief = C_THIEF, - fighter = C_FIGHTER, - ranger = C_RANGER, - paladin = C_PALADIN; + int newclass; if (item == NULL) { @@ -259,12 +251,14 @@ picked_up: 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, (VOID *)NULL, SPELLTIME, AFTER); + fuse(prayer_recovery, NULL, SPELLTIME, AFTER); /* start a fuse to change player into a paladin */ if (quest_item != HEIL_ANKH) { msg("You hear a strange, distant hypnotic calling... "); - if (player.t_ctype != C_PALADIN && obj->o_which ==HEIL_ANKH) - fuse(changeclass, &paladin, roll(8, 8), AFTER); + if (player.t_ctype != C_PALADIN && obj->o_which ==HEIL_ANKH) { + newclass = C_PALADIN; + fuse(changeclass, &newclass, roll(8, 8), AFTER); + } } /* A cloak must be worn. */ @@ -287,8 +281,10 @@ picked_up: /* start a fuse to change player into a monk */ if (quest_item != EMORI_CLOAK) { msg("You suddenly become calm and quiet. "); - if (player.t_ctype != C_MONK && obj->o_which == EMORI_CLOAK) - fuse(changeclass, &monk, roll(8, 8), AFTER); + if (player.t_ctype != C_MONK && obj->o_which == EMORI_CLOAK) { + newclass = C_MONK; + fuse(changeclass, &newclass, roll(8, 8), AFTER); + } } /* The amulet must be worn. */ @@ -312,7 +308,8 @@ picked_up: if (player.t_ctype != C_MAGICIAN && obj->o_which == STONEBONES_AMULET) { msg("You sense approaching etheric forces... "); - fuse(changeclass, &magician, roll(8, 8), AFTER); + newclass = C_MAGICIAN; + fuse(changeclass, &newclass, roll(8, 8), AFTER); } } @@ -331,17 +328,21 @@ picked_up: /* start a fuse to change player into an assassin */ if (quest_item != EYE_VECNA) { msg("Your blood rushes and you begin to sweat profusely... "); - if (player.t_ctype != C_ASSASSIN && obj->o_which == EYE_VECNA) - fuse(changeclass, &assassin, roll(8, 8), AFTER); + if (player.t_ctype != C_ASSASSIN && obj->o_which == EYE_VECNA) { + newclass = C_ASSASSIN; + fuse(changeclass, &newclass, roll(8, 8), AFTER); + } } when QUILL_NAGROM: - fuse(quill_charge,(VOID *)NULL, 8, AFTER); + fuse(quill_charge, NULL, 8, AFTER); /* start a fuse to change player into a druid */ if (quest_item != QUILL_NAGROM) { msg("You begin to see things differently... "); - if (player.t_ctype != C_DRUID && obj->o_which == QUILL_NAGROM) - fuse(changeclass, &druid, roll(8, 8), AFTER); + if (player.t_ctype != C_DRUID && obj->o_which == QUILL_NAGROM) { + newclass = C_DRUID; + fuse(changeclass, &newclass, roll(8, 8), AFTER); + } } /* Weapons will insist on being wielded. */ @@ -362,7 +363,8 @@ picked_up: if (player.t_ctype != C_THIEF && obj->o_which == MUSTY_DAGGER) { msg("You look about furtively. "); - fuse(changeclass, &thief, roll(8, 8), AFTER); + newclass = C_THIEF; + fuse(changeclass, &newclass, roll(8, 8), AFTER); } } /* start a fuse to change player into a fighter */ @@ -370,7 +372,8 @@ picked_up: if (player.t_ctype != C_FIGHTER && obj->o_which == AXE_AKLAD) { msg("Your bones feel strengthened. "); - fuse(changeclass, &fighter, roll(8, 8), AFTER); + newclass = C_FIGHTER; + fuse(changeclass, &newclass, roll(8, 8), AFTER); } } if (cur_weapon != NULL) { @@ -405,8 +408,10 @@ picked_up: /* start a fuse to change player into a ranger */ if (quest_item != BRIAN_MANDOLIN) { msg("You are transfixed with empathy. "); - if (player.t_ctype != C_RANGER && obj->o_which == BRIAN_MANDOLIN) - fuse(changeclass, &ranger, roll(8, 8), AFTER); + if (player.t_ctype != C_RANGER && obj->o_which == BRIAN_MANDOLIN) { + newclass = C_RANGER; + fuse(changeclass, &newclass, roll(8, 8), AFTER); + } } /* add to the music */ @@ -415,8 +420,10 @@ picked_up: /* start a fuse to change player into a cleric */ if (quest_item != GERYON_HORN) { msg("You follow their calling. "); - if (player.t_ctype != C_CLERIC && obj->o_which == GERYON_HORN) - fuse(changeclass, &cleric, roll(8, 8), AFTER); + if (player.t_ctype != C_CLERIC && obj->o_which == GERYON_HORN) { + newclass = C_CLERIC; + fuse(changeclass, &newclass, roll(8, 8), AFTER); + } } /* the card can not be picked up, it must be traded for */ diff --git a/xrogue/player.c b/xrogue/player.c index 5045ac2..e6c73fa 100644 --- a/xrogue/player.c +++ b/xrogue/player.c @@ -510,7 +510,7 @@ give(struct thing *th) /* just let him roam around */ turn_on(*th, ISRUN); if (on(*th, ISFLEE)) turn_off(*th, ISFLEE); - runto(th, &player); + runto(th, &hero); th->t_action = A_NIL; return; } @@ -537,7 +537,7 @@ give(struct thing *th) turn_on(*th, ISRUN); if (on(*th, ISFLEE)) turn_off(*th, ISFLEE); - runto(th, &player); + runto(th, &hero); th->t_action = A_NIL; return; } diff --git a/xrogue/potions.c b/xrogue/potions.c index 7c0d197..7042659 100644 --- a/xrogue/potions.c +++ b/xrogue/potions.c @@ -27,11 +27,11 @@ int add_intelligence(int change); int add_strength(int change); int add_wisdom(int change); -int res_charisma(int howmuch); -int res_constitution(int howmuch); -int res_dexterity(int howmuch); -int res_intelligence(int howmuch); -int res_wisdom(int howmuch); +void res_charisma(int howmuch); +void res_constitution(int howmuch); +void res_dexterity(int howmuch); +void res_intelligence(int howmuch); +void res_wisdom(int howmuch); /* * add_abil is an array of functions used to change attributes. It must be @@ -48,7 +48,7 @@ int (*add_abil[NUMABILITIES])() = { * ordered according to the attribute definitions in rogue.h. */ -int (*res_abil[NUMABILITIES])() = { +void (*res_abil[NUMABILITIES])() = { res_intelligence, res_strength, res_wisdom, res_dexterity, res_constitution, res_charisma }; @@ -172,7 +172,7 @@ add_haste(bool blessed) else { msg("You feel yourself moving %sfaster.", blessed ? "much " : ""); turn_on(player, ISHASTE); - fuse(nohaste, (VOID *)NULL, roll(hasttime, hasttime), AFTER); + fuse(nohaste, NULL, roll(hasttime, hasttime), AFTER); } } @@ -232,7 +232,7 @@ add_slow(void) lengthen(noslow, roll(HASTETIME,HASTETIME)); else { turn_on(player, ISSLOW); - fuse(noslow, (VOID *)NULL, roll(HASTETIME,HASTETIME), AFTER); + fuse(noslow, NULL, roll(HASTETIME,HASTETIME), AFTER); } } } @@ -353,7 +353,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, (VOID *)NULL, 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 @@ -518,7 +518,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, (VOID *)NULL, SEEDURATION, AFTER); + fuse(sight, NULL, SEEDURATION, AFTER); light(&hero); } else @@ -529,7 +529,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, (VOID *)NULL, blessed ? SEEDURATION*3 :SEEDURATION, AFTER); + fuse(unsee, NULL, blessed ? SEEDURATION*3 :SEEDURATION, AFTER); light(&hero); } else if (find_slot(unsee) != 0) { @@ -553,7 +553,7 @@ quaff(int which, int kind, int flags, bool is_potion) if (on(player, CANINWALL)) lengthen(unphase, duration*PHASEDURATION); else { - fuse(unphase, (VOID *)NULL, duration*PHASEDURATION, AFTER); + fuse(unphase, NULL, duration*PHASEDURATION, AFTER); turn_on(player, CANINWALL); } msg("You feel %slight-headed!", @@ -577,7 +577,7 @@ quaff(int which, int kind, int flags, bool is_potion) } } else { - fuse(land, (VOID *)NULL, duration*FLYTIME, AFTER); + fuse(land, NULL, duration*FLYTIME, AFTER); turn_on(player, ISFLY); } if (say_message) { @@ -641,7 +641,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, (VOID *)NULL, blessed ? GONETIME*3 : GONETIME, AFTER); + fuse(appear, NULL, blessed ? GONETIME*3 : GONETIME, AFTER); PLAYER = IPLAYER; light(&hero); } @@ -703,7 +703,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, (VOID *)NULL, SKILLDURATION, AFTER); + fuse(unskill, NULL, SKILLDURATION, AFTER); } else { /* Has an artifical skill */ /* Is the skill beneficial? */ @@ -759,7 +759,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, (VOID *)NULL, + fuse(unskill, NULL, blessed ? SKILLDURATION*2 : SKILLDURATION, AFTER); } else { /* Has an artifical skill */ @@ -819,7 +819,7 @@ quaff(int which, int kind, int flags, bool is_potion) say_message = FALSE; } else { - fuse(nofire, (VOID *)NULL, duration*FIRETIME, AFTER); + fuse(nofire, NULL, duration*FIRETIME, AFTER); turn_on(player, NOFIRE); } if (say_message) { @@ -856,7 +856,7 @@ quaff(int which, int kind, int flags, bool is_potion) say_message = FALSE; } else { - fuse(nocold, (VOID *)NULL, duration*COLDTIME, AFTER); + fuse(nocold, NULL, duration*COLDTIME, AFTER); turn_on(player, NOCOLD); } if (say_message) { @@ -890,7 +890,7 @@ quaff(int which, int kind, int flags, bool is_potion) say_message = FALSE; } else { - fuse(nobolt, (VOID *)NULL, duration*BOLTTIME, AFTER); + fuse(nobolt, NULL, duration*BOLTTIME, AFTER); turn_on(player, NOBOLT); } if (say_message) { @@ -945,13 +945,13 @@ quaff(int which, int kind, int flags, bool is_potion) * if called with zero the restore fully */ -int +void res_dexterity(int howmuch) { short save_max; int ring_str; - if (howmuch < 0) return(0); + if (howmuch < 0) return; /* Discount the ring value */ ring_str = ring_value(R_ADDHIT); @@ -970,7 +970,7 @@ res_dexterity(int howmuch) pstats.s_dext += ring_str; max_stats.s_dext = save_max; } - return(0); + return; } /* @@ -978,13 +978,13 @@ res_dexterity(int howmuch) * Restore player's intelligence */ -int +void res_intelligence(int howmuch) { short save_max; int ring_str; - if (howmuch <= 0) return(0); + if (howmuch <= 0) return; /* Discount the ring value */ ring_str = ring_value(R_ADDINTEL); @@ -998,7 +998,7 @@ res_intelligence(int howmuch) pstats.s_intel += ring_str; max_stats.s_intel = save_max; } - return(0); + return; } /* @@ -1006,13 +1006,13 @@ res_intelligence(int howmuch) * Restore player's wisdom */ -int +void res_wisdom(int howmuch) { short save_max; int ring_str; - if (howmuch <= 0) return(0); + if (howmuch <= 0) return; /* Discount the ring value */ ring_str = ring_value(R_ADDWISDOM); @@ -1026,7 +1026,7 @@ res_wisdom(int howmuch) pstats.s_wisdom += ring_str; max_stats.s_wisdom = save_max; } - return(0); + return; } /* @@ -1034,13 +1034,13 @@ res_wisdom(int howmuch) * Restore the players constitution. */ -int +void res_constitution(int howmuch) { if (howmuch > 0) pstats.s_const = min(pstats.s_const + howmuch, max_stats.s_const); - return(0); + return; } /* @@ -1048,12 +1048,12 @@ res_constitution(int howmuch) * Restore the players charisma. */ -int +void res_charisma(int howmuch) { if (howmuch > 0) pstats.s_charisma = min(pstats.s_charisma + howmuch, max_stats.s_charisma); - return(0); + return; } diff --git a/xrogue/rings.c b/xrogue/rings.c index ee61bfd..4e1cf0d 100644 --- a/xrogue/rings.c +++ b/xrogue/rings.c @@ -100,9 +100,9 @@ ring_on(struct linked_list *item) } } when R_SEARCH: - start_daemon(ring_search, (VOID *)NULL, AFTER); + start_daemon(ring_search, NULL, AFTER); when R_TELEPORT: - start_daemon(ring_teleport, (VOID *)NULL, AFTER); + start_daemon(ring_teleport, NULL, AFTER); } status(FALSE); if (r_know[obj->o_which] && r_guess[obj->o_which]) { diff --git a/xrogue/rogue.h b/xrogue/rogue.h index 547cb80..f648c8e 100644 --- a/xrogue/rogue.h +++ b/xrogue/rogue.h @@ -20,12 +20,8 @@ #include "config.h" #endif -/* - * some compiler don't handle void pointers well so - */ #include #define reg register -#define VOID long #undef lines #define ENCREAD encread #define ENCWRITE encwrite @@ -933,9 +929,9 @@ struct delayed_action { int d_type; - int (*d_func)(); + void (*d_func)(); union { - VOID *vp; + void *vp; int i; } d_arg; int d_time; @@ -1249,7 +1245,7 @@ int can_shoot(coord *er, coord *ee, coord *shoot_dir); bool cansee(int y, int x); void carry_obj(struct thing *mp, int chance); void cast(void); -void changeclass(long *newclass); +void changeclass(int newclass); void chant(void); void chant_recovery(void); void chase(struct thing *tp, coord *ee, struct room *rer, struct room *ree, @@ -1258,7 +1254,7 @@ long check_level(void); void check_residue(struct thing *tp); void chg_str(int amt); void choose_qst(void); -int cloak_charge(struct object *obj); +void cloak_charge(struct object *obj); void command(void); void confus_player(void); int const_bonus(void); @@ -1310,19 +1306,19 @@ void endit(int sig); void endmsg(void); void exit_game(int flag); void explode(struct thing *tp); -void extinguish(int (*dfunc)()); +void extinguish(void (*dfunc)()); 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 fright(struct thing *th); void fumble(void); -void fuse(int (*dfunc)(), VOID *arg, int time, int type); +void fuse(void (*dfunc)(), void *arg, int time, int type); void genmonsters(int least, bool treas); coord get_coordinates(void); bool get_dir(coord *direction); @@ -1359,10 +1355,10 @@ 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 (*dfunc)()); +void kill_daemon(void (*dfunc)()); void killed(struct linked_list *item, bool pr, bool points, bool treasure); -int land(void); -void lengthen(int (*dfunc)(), int xtime); +void land(void); +void lengthen(void (*dfunc)(), int xtime); void light(coord *cp); bool lit_room(struct room *rp); void look(bool wakeup, bool runend); @@ -1415,7 +1411,7 @@ void raise_level(void); short randmonster(bool wander, bool no_unique); void read_scroll(int which, int flag, bool is_scroll); void reap(void); -int res_strength(long howmuch); +void res_strength(long howmuch); bool restore(char *file, char *envp[]); void restscr(WINDOW *scr); int ring_eat(int hand); @@ -1452,7 +1448,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 (*dfunc)(), VOID *arg, int type); +void start_daemon(void (*dfunc)(), 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); @@ -1475,7 +1471,7 @@ void trap_look(void); void unchoke(void); void unclrhead(void); void unconfuse(void); -int undance(void); +void undance(void); void unphase(void); void unsee(void); void unskill(void); @@ -1648,7 +1644,6 @@ extern FILE *scorefi; extern FILE *logfile; extern LEVTYPE levtype; extern int (*add_abil[NUMABILITIES])(int); /* Functions to change abilities */ -extern int (*res_abil[NUMABILITIES])(); /* Functions to change abilities */ extern int mf_count; /* move_free counter - see actions.c(m_act()) */ extern int mf_jmpcnt; /* move_free counter for # of jumps */ extern int killed_chance; /* cumulative chance for goodies to loose it, fight.c */ diff --git a/xrogue/state.c b/xrogue/state.c index 610bc6d..a9b7752 100644 --- a/xrogue/state.c +++ b/xrogue/state.c @@ -57,7 +57,6 @@ #include #include #include -#undef VOID #undef MOUSE_MOVED #elif defined(__DJGPP__) #include diff --git a/xrogue/sticks.c b/xrogue/sticks.c index 4332647..df2a0a7 100644 --- a/xrogue/sticks.c +++ b/xrogue/sticks.c @@ -513,7 +513,7 @@ do_zap(struct thing *zapper, struct object *obj, coord *direction, int which, pstats.s_hpt = -1; msg("Your life has been sucked out from you! --More--"); wait_for(' '); - death(zapper); + death(zapper->t_index); } else msg("You feel a great drain on your system."); @@ -613,7 +613,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, (VOID *)NULL, roll(HEALTIME,SICKTIME), AFTER); + fuse(cure_disease, NULL, roll(HEALTIME,SICKTIME), AFTER); infest_dam++; } else if (sick == FALSE) msg("You feel momentarily sick"); diff --git a/xrogue/util.c b/xrogue/util.c index fc0472d..0e584bc 100644 --- a/xrogue/util.c +++ b/xrogue/util.c @@ -203,7 +203,7 @@ confus_player(void) if (find_slot(unconfuse)) lengthen(unconfuse, HUHDURATION); else - fuse(unconfuse, (VOID *)NULL, HUHDURATION, AFTER); + fuse(unconfuse, NULL, HUHDURATION, AFTER); turn_on(player, ISHUH); } else msg("You feel dizzy for a moment, but it quickly passes."); diff --git a/xrogue/wear.c b/xrogue/wear.c index bc092cb..ef16512 100644 --- a/xrogue/wear.c +++ b/xrogue/wear.c @@ -328,7 +328,7 @@ wear(void) msg("Wearing %s", inv_name(obj,TRUE)); cur_misc[WEAR_GAUNTLET] = obj; if (obj->o_which == MM_FUMBLE) - start_daemon(fumble, (VOID *)NULL, AFTER); + start_daemon(fumble, NULL, AFTER); /* * the jewel of attacks does an aggavate monster */ @@ -358,7 +358,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, (VOID *)NULL, AFTER); + start_daemon(strangle, NULL, AFTER); otherwise: msg("What a strange item you have!"); }