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

@ -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.");
}

View file

@ -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);

View file

@ -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;
}
}
}
/*

View file

@ -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);
}

View file

@ -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. ");
}
}

View file

@ -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);

View file

@ -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;
}

View file

@ -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)) {

View file

@ -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) {

View file

@ -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;

View file

@ -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);
}
}

View file

@ -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; 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

@ -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 */

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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]) {

View file

@ -20,12 +20,8 @@
#include "config.h"
#endif
/*
* some compiler don't handle void pointers well so
*/
#include <assert.h>
#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 */

View file

@ -57,7 +57,6 @@
#include <Lmcons.h>
#include <shlobj.h>
#include <Shlwapi.h>
#undef VOID
#undef MOUSE_MOVED
#elif defined(__DJGPP__)
#include <process.h>

View file

@ -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");

View file

@ -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.");

View file

@ -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!");
}