if (!surface_exists(surf)) surf = surface_create(512, 512); timer++; surface_set_target(surf); draw_clear_alpha(c_white, 0); var cx = (camerax() / 2) - 200; var cy = (cameray() / 2) - 200; var cw = cx + 400 + (camerawidth() / 2); var ch = cy + 400 + (cameraheight() / 2); for (var i = 0; i < array_length(canopies); i++) { var canopy = canopies[i]; if (canopy[_X] >= cx && canopy[_X] <= cw && canopy[_Y] >= cy && canopy[_Y] <= ch) draw_sprite_ext(sprite_index, canopy[_INDEX], (canopy[_X] + (sin((timer * canopy[_MULT]) + canopy[_OFFSET]) * 8)) - cx, canopy[_Y] - cy, 1, 1, canopy[_ROT], c_black, 1); } surface_reset_target(); draw_surface_ext(surf, camerax() - 200, cameray() - 200, 2, 2, 0, shadowcolor, shadowalpha);