Super-Rogue: fix some out-of-range constants.

Constants K_ARROW etc., for causes of death other than monsters, are in
the 240-255 range.  They were often passed to functions taking char,
which is usually signed, making the values out of range.

The function declarations have been changed to unsigned char, which is
also the type used by the scoreboard code.
This commit is contained in:
John "Elwin" Edwards 2021-04-17 15:41:12 -04:00
parent 844379d679
commit 3ac49bdaa0
3 changed files with 8 additions and 8 deletions

View file

@ -61,7 +61,7 @@ void showpack(bool winner, char *howso);
#include <time.h>
void
death(char monst)
death(unsigned char monst)
{
reg char *killer;
int dp;
@ -122,7 +122,7 @@ int oldpurse;
* Figure score and post it.
*/
void
score(int amount, int aflag, char monst)
score(int amount, int aflag, unsigned char monst)
{
reg struct sc_ent *scp, *sc2;
reg int i, prflags = 0;
@ -219,7 +219,7 @@ score(int amount, int aflag, char monst)
showtop(prflags); /* print top ten list */
}
void writelog(int amount, int aflag, char monst)
void writelog(int amount, int aflag, unsigned char monst)
{
char logmessage[220], ltemp[80], mlev[40];
char *killer;