@@ -68,7 +68,7 @@ void seeoff(int mode) /* 1 to redo @, 0 to leave them */
6868 if (u .udispl && mode ) {
6969 u .udispl = 0 ;
7070 /* Original 1984: levl[u.udisx][u.udisy].scrsym = news0(u.udisx,u.udisy); */
71- levl [(unsigned char )u .udisx ][(unsigned char )u .udisy ].scrsym =
71+ levl [(int )u .udisx ][(int )u .udisy ].scrsym =
7272 news0 (u .udisx , u .udisy ); /* MODERN: safe array indexing */
7373 }
7474#ifndef QUEST
@@ -131,8 +131,8 @@ void domove(void) {
131131 }
132132
133133 /* Original 1984: ust = &levl[u.ux][u.uy]; */
134- ust = & levl [(unsigned char )u .ux ]
135- [(unsigned char )u .uy ]; /* MODERN: safe array indexing */
134+ ust = & levl [(int )u .ux ]
135+ [(int )u .uy ]; /* MODERN: safe array indexing */
136136 oldx = u .ux ;
137137 oldy = u .uy ;
138138 if (!u .uswallow && (trap = t_at (u .ux + u .dx , u .uy + u .dy )) && trap -> tseen )
@@ -176,8 +176,8 @@ void domove(void) {
176176 return ;
177177 }
178178 /* Original 1984: tmpr = &levl[u.ux+u.dx][u.uy+u.dy]; */
179- tmpr = & levl [(unsigned char )(u .ux + u .dx )]
180- [(unsigned char )(u .uy + u .dy )]; /* MODERN: safe array indexing */
179+ tmpr = & levl [(int )(u .ux + u .dx )]
180+ [(int )(u .uy + u .dy )]; /* MODERN: safe array indexing */
181181 if (IS_ROCK (tmpr -> typ ) ||
182182 (u .dx && u .dy && (tmpr -> typ == DOOR || ust -> typ == DOOR ))) {
183183 flags .move = 0 ;
@@ -191,8 +191,8 @@ void domove(void) {
191191 /* Original 1984: if(isok(rx,ry) && !IS_ROCK(levl[rx][ry].typ) &&
192192 * (levl[rx][ry].typ != DOOR || !(u.dx && u.dy)) && */
193193 if (isok (rx , ry ) &&
194- !IS_ROCK (levl [(unsigned char )rx ][(unsigned char )ry ].typ ) &&
195- (levl [(unsigned char )rx ][(unsigned char )ry ].typ != DOOR ||
194+ !IS_ROCK (levl [(int )rx ][(int )ry ].typ ) &&
195+ (levl [(int )rx ][(int )ry ].typ != DOOR ||
196196 !(u .dx && u .dy )) && /* MODERN: safe array indexing */
197197 !sobj_at (ENORMOUS_ROCK , rx , ry )) {
198198 if (m_at (rx , ry )) {
@@ -215,8 +215,8 @@ void domove(void) {
215215 }
216216 /* Original 1984: if(levl[rx][ry].typ == POOL) { levl[rx][ry].typ = ROOM;
217217 */
218- if (levl [(unsigned char )rx ][(unsigned char )ry ].typ == POOL ) {
219- levl [(unsigned char )rx ][(unsigned char )ry ].typ =
218+ if (levl [(int )rx ][(int )ry ].typ == POOL ) {
219+ levl [(int )rx ][(int )ry ].typ =
220220 ROOM ; /* MODERN: safe array indexing */
221221 mnewsym (rx , ry );
222222 prl (rx , ry );
@@ -250,8 +250,8 @@ void domove(void) {
250250 IS_ROCK(levl[u.ux+u.dx][u.uy].typ))){ */
251251 (!u .dx || !u .dy ||
252252 (IS_ROCK (
253- levl [(unsigned char )u .ux ][(unsigned char )(u .uy + u .dy )].typ ) &&
254- IS_ROCK (levl [(unsigned char )(u .ux + u .dx )][(unsigned char )u .uy ]
253+ levl [(int )u .ux ][(int )(u .uy + u .dy )].typ ) &&
254+ IS_ROCK (levl [(int )(u .ux + u .dx )][(int )u .uy ]
255255 .typ )))) { /* MODERN: safe array indexing */
256256 pline ("However, you can squeeze yourself into a small opening." );
257257 break ;
@@ -262,8 +262,8 @@ void domove(void) {
262262 /* Original 1984: if(u.dx && u.dy && IS_ROCK(levl[u.ux][u.uy+u.dy].typ) &&
263263 * IS_ROCK(levl[u.ux+u.dx][u.uy].typ) && */
264264 if (u .dx && u .dy &&
265- IS_ROCK (levl [(unsigned char )u .ux ][(unsigned char )(u .uy + u .dy )].typ ) &&
266- IS_ROCK (levl [(unsigned char )(u .ux + u .dx )][(unsigned char )u .uy ]
265+ IS_ROCK (levl [(int )u .ux ][(int )(u .uy + u .dy )].typ ) &&
266+ IS_ROCK (levl [(int )(u .ux + u .dx )][(int )u .uy ]
267267 .typ ) && /* MODERN: safe array indexing */
268268 invent &&
269269 inv_weight () + 40 > 0 ) {
@@ -542,7 +542,7 @@ void lookaround(void) {
542542 /* Original 1984: if(flags.run == 1 && levl[u.ux][u.uy].typ == ROOM) return;
543543 */
544544 if (flags .run == 1 &&
545- levl [(unsigned char )u .ux ][(unsigned char )u .uy ].typ == ROOM )
545+ levl [(int )u .ux ][(int )u .uy ].typ == ROOM )
546546 return ; /* MODERN: safe array indexing */
547547#ifdef QUEST
548548 if (u .ux0 == u .ux + u .dx && u .uy0 == u .uy + u .dy )
@@ -763,7 +763,7 @@ void setsee(void) {
763763 return ;
764764 }
765765 /* Original 1984: if(!levl[u.ux][u.uy].lit) { */
766- if (!levl [(unsigned char )u .ux ][(unsigned char )u .uy ]
766+ if (!levl [(int )u .ux ][(int )u .uy ]
767767 .lit ) { /* Bounds already checked above */
768768 seelx = u .ux - 1 ;
769769 seehx = u .ux + 1 ;
@@ -773,25 +773,25 @@ void setsee(void) {
773773 /* Original 1984: for(seelx = u.ux; levl[seelx-1][u.uy].lit; seelx--); etc.
774774 */
775775 /* MODERN: Add bounds checking to prevent array access beyond levl bounds */
776- for (seelx = u .ux ; seelx > 1 && levl [seelx - 1 ][(unsigned char )u .uy ].lit ;
776+ for (seelx = u .ux ; seelx > 1 && levl [seelx - 1 ][(int )u .uy ].lit ;
777777 seelx -- )
778778 ;
779779 for (seehx = u .ux ;
780- seehx < COLNO - 2 && levl [seehx + 1 ][(unsigned char )u .uy ].lit ; seehx ++ )
780+ seehx < COLNO - 2 && levl [seehx + 1 ][(int )u .uy ].lit ; seehx ++ )
781781 ;
782- for (seely = u .uy ; seely > 1 && levl [(unsigned char )u .ux ][seely - 1 ].lit ;
782+ for (seely = u .uy ; seely > 1 && levl [(int )u .ux ][seely - 1 ].lit ;
783783 seely -- )
784784 ;
785785 for (seehy = u .uy ;
786- seehy < ROWNO - 2 && levl [(unsigned char )u .ux ][seehy + 1 ].lit ; seehy ++ )
786+ seehy < ROWNO - 2 && levl [(int )u .ux ][seehy + 1 ].lit ; seehy ++ )
787787 ;
788788 }
789789 for (y = seely ; y <= seehy ; y ++ )
790790 for (x = seelx ; x <= seehx ; x ++ ) {
791791 prl (x , y );
792792 }
793793 /* Original 1984: if(!levl[u.ux][u.uy].lit) seehx = 0; */
794- if (!levl [(unsigned char )u .ux ][(unsigned char )u .uy ].lit )
794+ if (!levl [(int )u .ux ][(int )u .uy ].lit )
795795 seehx = 0 ; /* Bounds already validated above */
796796 else {
797797 if (seely == u .uy )
0 commit comments