warning fix
The new code provoked several warnings; this fixes one of them. Moving the declaration of 'rolecount' would have been sufficient, but I've gone another way.
This commit is contained in:
@@ -2122,7 +2122,7 @@ E boolean FDECL(validrole, (int));
|
|||||||
E boolean FDECL(validrace, (int, int));
|
E boolean FDECL(validrace, (int, int));
|
||||||
E boolean FDECL(validgend, (int, int, int));
|
E boolean FDECL(validgend, (int, int, int));
|
||||||
E boolean FDECL(validalign, (int, int, int));
|
E boolean FDECL(validalign, (int, int, int));
|
||||||
E int NDECL(randrole);
|
E int FDECL(randrole, (BOOLEAN_P));
|
||||||
E int FDECL(randrace, (int));
|
E int FDECL(randrace, (int));
|
||||||
E int FDECL(randgend, (int, int));
|
E int FDECL(randgend, (int, int));
|
||||||
E int FDECL(randalign, (int, int));
|
E int FDECL(randalign, (int, int));
|
||||||
|
|||||||
14
src/pray.c
14
src/pray.c
@@ -2095,15 +2095,13 @@ aligntyp alignment;
|
|||||||
if (!Hallucination)
|
if (!Hallucination)
|
||||||
return align_gname(alignment);
|
return align_gname(alignment);
|
||||||
|
|
||||||
/* Count the roles, so that we can pick one at random. */
|
/* Some roles (Priest) don't have a pantheon unless we're playing as
|
||||||
int rolecount = 0;
|
that role, so keep trying until we get a role which does have one.
|
||||||
while (roles[rolecount].filecode)
|
[If playing a Priest, the current pantheon will be twice as likely
|
||||||
rolecount++;
|
to get picked as any of the others. That's not significant enough
|
||||||
|
to bother dealing with.] */
|
||||||
/* The priest may not have initialized god names. If this is the
|
|
||||||
case, and we roll priest, we need to try again. */
|
|
||||||
do
|
do
|
||||||
which = rn2_on_display_rng(rolecount);
|
which = randrole(TRUE);
|
||||||
while (!roles[which].lgod);
|
while (!roles[which].lgod);
|
||||||
|
|
||||||
switch (rn2_on_display_rng(9)) {
|
switch (rn2_on_display_rng(9)) {
|
||||||
|
|||||||
15
src/role.c
15
src/role.c
@@ -787,9 +787,16 @@ int rolenum;
|
|||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
randrole()
|
randrole(for_display)
|
||||||
|
boolean for_display;
|
||||||
{
|
{
|
||||||
return rn2(SIZE(roles) - 1);
|
int res = SIZE(roles) - 1;
|
||||||
|
|
||||||
|
if (for_display)
|
||||||
|
res = rn2_on_display_rng(res);
|
||||||
|
else
|
||||||
|
res = rn2(res);
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
STATIC_OVL int
|
STATIC_OVL int
|
||||||
@@ -805,7 +812,7 @@ randrole_filtered()
|
|||||||
&& ok_gend(i, ROLE_NONE, ROLE_RANDOM, ROLE_NONE)
|
&& ok_gend(i, ROLE_NONE, ROLE_RANDOM, ROLE_NONE)
|
||||||
&& ok_align(i, ROLE_NONE, ROLE_NONE, ROLE_RANDOM))
|
&& ok_align(i, ROLE_NONE, ROLE_NONE, ROLE_RANDOM))
|
||||||
set[n++] = i;
|
set[n++] = i;
|
||||||
return n ? set[rn2(n)] : randrole();
|
return n ? set[rn2(n)] : randrole(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
@@ -2088,7 +2095,7 @@ role_init()
|
|||||||
if (flags.pantheon == -1) { /* new game */
|
if (flags.pantheon == -1) { /* new game */
|
||||||
flags.pantheon = flags.initrole; /* use own gods */
|
flags.pantheon = flags.initrole; /* use own gods */
|
||||||
while (!roles[flags.pantheon].lgod) /* unless they're missing */
|
while (!roles[flags.pantheon].lgod) /* unless they're missing */
|
||||||
flags.pantheon = randrole();
|
flags.pantheon = randrole(FALSE);
|
||||||
}
|
}
|
||||||
if (!urole.lgod) {
|
if (!urole.lgod) {
|
||||||
urole.lgod = roles[flags.pantheon].lgod;
|
urole.lgod = roles[flags.pantheon].lgod;
|
||||||
|
|||||||
Reference in New Issue
Block a user