
my code is bad and i should feel bad
By: a guest on
Aug 19th, 2012 | syntax:
C++ | size: 1.51 KB | hits: 17 | expires: Never
//check the view rect to see if we need to load or unload any chunk
bool tl, tm, tr,
ml, mr,
bl, bm, br = false;
sf::IntRect view = mCamera->GetViewRect();
int cx = std::floor(mCamera->GetOffset().x / 2048.0f);
int cy = std::floor(mCamera->GetOffset().y / 2048.0f);
int cxtl = cx * 2048.0f;
int cytl = cy * 2048.0f;
int cxbr = (cx + 1) * 2048.0f;
int cybr = (cy + 1) * 2048.0f;
if (view.left < cxtl)
{
ml = true;
if (view.top < cytl)
{
tl = true;
}
if (view.top + view.height > cybr)
{
bl = true;
bm = true;
}
}
if (view.left + view.width > cxbr)
{
mr = true;
if (view.top < cytl)
{
tr = true;
tm = true;
}
if (view.top + view.height > cybr)
{
br = true;
bm = true;
}
}
if (view.top < cytl)
{
tm = true;
}
if (tl)
loadChunkAt(cx - 1, cy - 1);
else
unloadChunkAt(cx - 1, cy - 1);
if (tm)
loadChunkAt(cx, cy - 1);
else
unloadChunkAt(cx, cy - 1);
if (tr)
loadChunkAt(cx + 1, cy - 1);
else
unloadChunkAt(cx + 1, cy - 1);
if (ml)
loadChunkAt(cx - 1, cy);
else
unloadChunkAt(cx - 1, cy);
if (mr)
loadChunkAt(cx + 1, cy);
else
unloadChunkAt(cx + 1, cy);
if (bl)
loadChunkAt(cx - 1, cy + 1);
else
unloadChunkAt(cx - 1, cy + 1);
if (bm)
loadChunkAt(cx, cy + 1);
else
unloadChunkAt(cx, cy + 1);
if (br)
loadChunkAt(cx + 1, cy + 1);
else
unloadChunkAt(cx + 1, cy + 1);