Skip to content

Instantly share code, notes, and snippets.

@YellowAfterlife
Created August 20, 2014 21:02
Show Gist options
  • Select an option

  • Save YellowAfterlife/06407efa609e2278937c to your computer and use it in GitHub Desktop.

Select an option

Save YellowAfterlife/06407efa609e2278937c to your computer and use it in GitHub Desktop.
/// draw_background_layer(index, x, y, bx, by, bw, bh)
/// draw_background_layer(index, x, y, view)
// Simulates built-in background drawing behaviour (for non-use-for-3d backgrounds).
var idx = argument[0], bi;
bi = background_index[idx]
if (bi == -1) return 0
if (!background_visible[idx]) return 0
if (!background_exists(bi)) return 0
var ox = argument[1], oy = argument[2],
rx, ry, rw, rh;
// pull arguments
if (argument_count > 4) {
rx = argument[3]; ry = argument[4];
rw = argument[5]; rh = argument[6];
} else {
rx = view_xview[argument[3]]
ry = view_yview[argument[3]]
rw = view_wview[argument[3]]
rh = view_hview[argument[3]]
}
var bx = background_x[idx], bw = background_get_width(bi),
by = background_y[idx], bh = background_get_height(bi),
bsx = background_xscale[idx],
bsy = background_yscale[idx],
bc = background_blend[idx],
ba = background_alpha[idx],
br = 0,
ui, u0, u1, ux = bw * bsx, // x iterator
vi, v0, v1, vx = bh * bsy; // y iterator
if (background_htiled[idx]) {
u0 = (bx - rx) % ux; if (u0 > 0) u0 -= ux
u1 = u0 + ceil(rw / ux) * ux
} else {
u0 = bx
u1 = u0 + ux
}
if (background_vtiled[idx]) {
v0 = (by - ry) % vx; if (v0 > 0) v0 -= vx
v1 = v0 + ceil(rh / vx) * vx
} else {
v0 = by
v1 = v0 + vx
}
for (ui = u0; ui < u1; ui += ux)
for (vi = v0; vi < v1; vi += vx) {
draw_background_ext(bi, ox + ui, oy + vi, bsx, bsy, 0, bc, ba)
br++
}
return br
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment