mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2024-12-31 22:19:44 +01:00
Don't manually write out INBOUNDS_ARR() checks
When this is done, there is potential for a mistake to occur when writing out the bounds check, which is eliminated when using the macro instead. Luckily, this doesn't seem to have happened, but what's even worse is I hardcoded 400 instead of using SDL_arraysize(ed.level), so if the size of ed.level the bounds checks would all be wrong, which wouldn't be good. But that's fixed now, too.
This commit is contained in:
parent
7b20d90446
commit
f02dcbfdad
4 changed files with 8 additions and 8 deletions
|
@ -1190,7 +1190,7 @@ void entityclass::createentity( float xp, float yp, int t, float vx /*= 0*/, flo
|
|||
#if !defined(NO_CUSTOM_LEVELS)
|
||||
// Special case for gray Warp Zone tileset!
|
||||
int room = game.roomx-100 + (game.roomy-100) * ed.maxwidth;
|
||||
bool custom_gray = room >= 0 && room < 400
|
||||
bool custom_gray = INBOUNDS_ARR(room, ed.level)
|
||||
&& ed.level[room].tileset == 3 && ed.level[room].tilecol == 6;
|
||||
#else
|
||||
bool custom_gray = false;
|
||||
|
|
|
@ -1569,7 +1569,7 @@ void Graphics::drawentities()
|
|||
#if !defined(NO_CUSTOM_LEVELS)
|
||||
// Special case for gray Warp Zone tileset!
|
||||
int room = game.roomx-100 + (game.roomy-100) * ed.maxwidth;
|
||||
bool custom_gray = room >= 0 && room < 400
|
||||
bool custom_gray = INBOUNDS_ARR(room, ed.level)
|
||||
&& ed.level[room].tileset == 3 && ed.level[room].tilecol == 6;
|
||||
#else
|
||||
bool custom_gray = false;
|
||||
|
|
|
@ -111,7 +111,7 @@ void scriptclass::run()
|
|||
int temprx=ss_toi(words[1])-1;
|
||||
int tempry=ss_toi(words[2])-1;
|
||||
int curlevel=temprx+(ed.maxwidth*(tempry));
|
||||
bool inbounds = curlevel >= 0 && curlevel < 400;
|
||||
bool inbounds = INBOUNDS_ARR(curlevel, ed.level);
|
||||
if (inbounds)
|
||||
{
|
||||
ed.level[curlevel].warpdir=ss_toi(words[3]);
|
||||
|
@ -151,7 +151,7 @@ void scriptclass::run()
|
|||
if (words[0] == "ifwarp")
|
||||
{
|
||||
int room = ss_toi(words[1])-1+(ed.maxwidth*(ss_toi(words[2])-1));
|
||||
if (room >= 0 && room < 400 && ed.level[room].warpdir == ss_toi(words[3]))
|
||||
if (INBOUNDS_ARR(room, ed.level) && ed.level[room].warpdir == ss_toi(words[3]))
|
||||
{
|
||||
load("custom_"+words[4]);
|
||||
position--;
|
||||
|
|
|
@ -1567,7 +1567,7 @@ void editorclass::switch_tileset(const bool reversed /*= false*/)
|
|||
{
|
||||
const char* tilesets[] = {"Space Station", "Outside", "Lab", "Warp Zone", "Ship"};
|
||||
const size_t roomnum = levx + levy*maxwidth;
|
||||
if (roomnum >= SDL_arraysize(level))
|
||||
if (!INBOUNDS_ARR(roomnum, level))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -1601,7 +1601,7 @@ void editorclass::switch_tileset(const bool reversed /*= false*/)
|
|||
void editorclass::switch_tilecol(const bool reversed /*= false*/)
|
||||
{
|
||||
const size_t roomnum = levx + levy*maxwidth;
|
||||
if (roomnum >= SDL_arraysize(level))
|
||||
if (!INBOUNDS_ARR(roomnum, level))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -1626,7 +1626,7 @@ void editorclass::switch_tilecol(const bool reversed /*= false*/)
|
|||
void editorclass::clamp_tilecol(const int rx, const int ry, const bool wrap /*= false*/)
|
||||
{
|
||||
const size_t roomnum = rx + ry*maxwidth;
|
||||
if (roomnum >= SDL_arraysize(level))
|
||||
if (!INBOUNDS_ARR(roomnum, level))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -1676,7 +1676,7 @@ void editorclass::clamp_tilecol(const int rx, const int ry, const bool wrap /*=
|
|||
void editorclass::switch_enemy(const bool reversed /*= false*/)
|
||||
{
|
||||
const size_t roomnum = levx + levy*maxwidth;
|
||||
if (roomnum >= SDL_arraysize(level))
|
||||
if (!INBOUNDS_ARR(roomnum, level))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue