… | |
… | |
246 | /* searches around for more victims to infect */ |
246 | /* searches around for more victims to infect */ |
247 | int |
247 | int |
248 | check_infection (object *disease) |
248 | check_infection (object *disease) |
249 | { |
249 | { |
250 | int x, y, range, mflags; |
250 | int x, y, range, mflags; |
251 | mapstruct *map, *map2; |
251 | maptile *map, *map2; |
252 | object *tmp; |
252 | object *tmp; |
253 | sint16 i, j, i2, j2; |
|
|
254 | |
253 | |
255 | range = abs (disease->magic); |
254 | range = abs (disease->magic); |
|
|
255 | |
256 | if (disease->env) |
256 | if (disease->env) |
257 | { |
257 | { |
258 | x = disease->env->x; |
258 | x = disease->env->x; |
259 | y = disease->env->y; |
259 | y = disease->env->y; |
260 | map = disease->env->map; |
260 | map = disease->env->map; |
261 | } |
261 | } |
262 | else |
262 | else |
263 | { |
263 | { |
264 | x = disease->x; |
264 | x = disease->x; |
265 | y = disease->y; |
265 | y = disease->y; |
266 | map = disease->map; |
266 | map = disease->map; |
267 | } |
267 | } |
268 | |
268 | |
269 | if (map == NULL) |
269 | if (!map) |
270 | return 0; |
270 | return 0; |
|
|
271 | |
271 | for (i = x - range; i <= x + range; i++) |
272 | for (int i = x - range; i <= x + range; i++) |
272 | { |
|
|
273 | for (j = y - range; j <= y + range; j++) |
273 | for (int j = y - range; j <= y + range; j++) |
274 | { |
274 | { |
|
|
275 | sint16 i2, j2; |
275 | mflags = get_map_flags (map, &map2, i, j, &i2, &j2); |
276 | mflags = get_map_flags (map, &map2, i, j, &i2, &j2); |
|
|
277 | |
276 | if (!(mflags & P_OUT_OF_MAP) && (mflags & P_IS_ALIVE)) |
278 | if (!(mflags & P_OUT_OF_MAP) && (mflags & P_IS_ALIVE)) |
277 | { |
|
|
278 | for (tmp = get_map_ob (map2, i2, j2); tmp; tmp = tmp->above) |
279 | for (tmp = get_map_ob (map2, i2, j2); tmp; tmp = tmp->above) |
279 | { |
|
|
280 | infect_object (tmp, disease, 0); |
280 | infect_object (tmp, disease, 0); |
281 | } |
|
|
282 | } |
|
|
283 | } |
281 | } |
284 | } |
282 | |
285 | return 1; |
283 | return 1; |
286 | } |
284 | } |
287 | |
285 | |
288 | |
286 | |
289 | /* check to see if an object is infectable: |
287 | /* check to see if an object is infectable: |