changeset 306:057c5114e244

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.
author John "Elwin" Edwards
date Sat, 17 Apr 2021 15:41:12 -0400
parents 3900f3cfe07d
children 32bc72dcbf4f
files srogue/pstats.c srogue/rip.c srogue/rogue.ext
diffstat 3 files changed, 8 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/srogue/pstats.c	Thu Apr 15 20:55:34 2021 -0400
+++ b/srogue/pstats.c	Sat Apr 17 15:41:12 2021 -0400
@@ -21,7 +21,7 @@
  *	Changes players hit points
  */
 void
-chg_hpt(int howmany, bool alsomax, char what)
+chg_hpt(int howmany, bool alsomax, unsigned char what)
 {
 	nochange = FALSE;
 	if(alsomax)
--- a/srogue/rip.c	Thu Apr 15 20:55:34 2021 -0400
+++ b/srogue/rip.c	Sat Apr 17 15:41:12 2021 -0400
@@ -61,7 +61,7 @@
 
 #include <time.h>
 void
-death(char monst)
+death(unsigned char monst)
 {
 	reg char *killer;
 	int dp;
@@ -122,7 +122,7 @@
  *	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 @@
 	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;
--- a/srogue/rogue.ext	Thu Apr 15 20:55:34 2021 -0400
+++ b/srogue/rogue.ext	Sat Apr 17 15:41:12 2021 -0400
@@ -62,14 +62,14 @@
 char   *charge_str(struct object *obj);
 void    check_level(void);
 void    chg_abil(int what, int amt, int how);
-void    chg_hpt(int howmany, bool alsomax, char what);
+void    chg_hpt(int howmany, bool alsomax, unsigned char what);
 void    command(void);
 bool    cordok(int y, int x);
 void    create_obj(bool fscr);
 void    cur_null(struct object *op);
 void    dbotline(WINDOW *scr, char *message);
 bool    dead_end(char ch);
-void    death(char monst);
+void    death(unsigned char monst);
 void    del_pack(struct linked_list *what);
 bool    diag_ok(struct coord *sp, struct coord *ep);
 void    dip_it(void);
@@ -208,7 +208,7 @@
 bool    save(int which);
 bool    save_game(void);
 bool    save_throw(int which, struct thing *tp);
-void    score(int amount, int aflag, char monst);
+void    score(int amount, int aflag, unsigned char monst);
 void    sell_it(void);
 void    setoflg(struct object *what, long bit);
 void    setup(void);
@@ -244,4 +244,4 @@
 void    whatis(struct linked_list *what);
 void    wield(void);
 char    winat(int y, int x);
-void    writelog(int amount, int aflag, char monst);
+void    writelog(int amount, int aflag, unsigned char monst);