tunnelbridge_cmd.c
changeset 1562 20af59a8bc3b
parent 1542 62a03537ad0b
child 1585 9746fa4b40a7
--- a/tunnelbridge_cmd.c	Fri Mar 25 16:10:33 2005 +0000
+++ b/tunnelbridge_cmd.c	Fri Mar 25 17:30:54 2005 +0000
@@ -197,6 +197,9 @@
 
 	direction = 0;
 
+	if (bridge_type >= MAX_BRIDGES) // out of bounds bridge
+		return_cmd_error(STR_5015_CAN_T_BUILD_BRIDGE_HERE);
+
 	/* check if valid, and make sure that (x,y) are smaller than (sx,sy) */
 	if (x == sx) {
 		if (y == sy)
@@ -1046,7 +1049,7 @@
 			}
 
 			// bridge ending.
-			b = _bridge_sprite_table[_map2[ti->tile]>>4][6];
+			b = _bridge_sprite_table[(_map2[ti->tile] >> 4) & 0xF][6];
 			b += (tmp&(3<<1))*4; /* actually ((tmp>>2)&3)*8 */
 			b += (tmp&1); // direction
 			if (ti->tileh == 0) b += 4; // sloped "entrance" ?
@@ -1106,7 +1109,7 @@
 				DrawGroundSprite(image);
 			}
 			// get bridge sprites
-			b = _bridge_sprite_table[_map2[ti->tile]>>4][_map2[ti->tile]&0xF] + tmp * 4;
+			b = _bridge_sprite_table[(_map2[ti->tile] >> 4) & 0xF][_map2[ti->tile]&0xF] + tmp * 4;
 
 			z = GetBridgeHeight(ti) + 5;