--- deliantra/server/common/los.C 2007/01/15 21:06:18 1.19 +++ deliantra/server/common/los.C 2007/02/16 21:38:18 1.22 @@ -43,7 +43,7 @@ int index; } blocks; -blocks block[MAP_CLIENT_X][MAP_CLIENT_Y]; +blocks block[(MAP_CLIENT_X | 1) + 1][(MAP_CLIENT_Y | 1) + 1]; // still a speed hack static void expand_lighted_sight (object *op); @@ -298,7 +298,6 @@ if (op->map->darkness > 0) /* player is on a dark map */ expand_lighted_sight (op); - /* clear mark squares */ for (x = 0; x < op->contr->ns->mapx; x++) for (y = 0; y < op->contr->ns->mapy; y++) @@ -306,9 +305,6 @@ op->contr->blocked_los[x][y] = 0; } - - - /* returns true if op carries one or more lights * This is a trivial function now days, but it used to * be a bit longer. Probably better for callers to just @@ -490,21 +486,17 @@ for (y = (MAP_CLIENT_Y - op->contr->ns->mapy) / 2 - 1; y < (MAP_CLIENT_Y + op->contr->ns->mapy) / 2 + 1; y++) check_wall (op, x, y); - /* do the los of the player. 3 (potential) cases */ if (QUERY_FLAG (op, FLAG_BLIND)) /* player is blind */ blinded_sight (op); else expand_sight (op); + //TODO: no range-checking whatsoever :( if (QUERY_FLAG (op, FLAG_XRAYS)) - { - int x, y; - - for (x = -2; x <= 2; x++) - for (y = -2; y <= 2; y++) - op->contr->blocked_los[dx + x][dy + y] = 0; - } + for (int x = -2; x <= 2; x++) + for (int y = -2; y <= 2; y++) + op->contr->blocked_los[dx + x][dy + y] = 0; } /* update all_map_los is like update_all_los below,