1
0
Fork 0
mirror of https://github.com/TerryCavanagh/VVVVVV.git synced 2024-11-05 02:39:41 +01:00

Use SDL_abs instead of std::abs

This prevents issues when calling std::abs with a float on some older
compilers. While it would normally be promoted to an int, std::abs is
special due to being overloaded despite being a C function. This can
cause errors due to the compiler being unable to find a float overload.
SDL_abs doesn't have this problem, since it's a normal C function.
This commit is contained in:
leo60228 2021-01-01 16:38:33 -05:00 committed by Ethan Lee
parent 775ac4c40c
commit c4893a133f
2 changed files with 6 additions and 6 deletions

View file

@ -4389,8 +4389,8 @@ void entityclass::fixfriction( int t, float xfix, float xrate, float yrate )
if (entities[t].vx > 6) entities[t].vx = 6.0f;
if (entities[t].vx < -6) entities[t].vx = -6.0f;
if (std::abs(entities[t].vx-xfix) <= xrate) entities[t].vx = xfix;
if (std::abs(entities[t].vy) < yrate) entities[t].vy = 0;
if (SDL_abs(entities[t].vx-xfix) <= xrate) entities[t].vx = xfix;
if (SDL_abs(entities[t].vy) < yrate) entities[t].vy = 0;
}
void entityclass::applyfriction( int t, float xrate, float yrate )
@ -4410,8 +4410,8 @@ void entityclass::applyfriction( int t, float xrate, float yrate )
if (entities[t].vx > 6.00f) entities[t].vx = 6.0f;
if (entities[t].vx < -6.00f) entities[t].vx = -6.0f;
if (std::abs(entities[t].vx) < xrate) entities[t].vx = 0.0f;
if (std::abs(entities[t].vy) < yrate) entities[t].vy = 0.0f;
if (SDL_abs(entities[t].vx) < xrate) entities[t].vx = 0.0f;
if (SDL_abs(entities[t].vy) < yrate) entities[t].vy = 0.0f;
}
void entityclass::updateentitylogic( int t )

View file

@ -1824,7 +1824,7 @@ void gameinput()
if (game.activetele && game.readytotele > 20 && !game.intimetrial)
{
enter_already_processed = true;
if(int(std::abs(obj.entities[ie].vx))<=1 && int(obj.entities[ie].vy)==0)
if(int(SDL_abs(obj.entities[ie].vx))<=1 && int(obj.entities[ie].vy)==0)
{
//wait! space station 2 debug thingy
if (game.teleportscript != "")
@ -1890,7 +1890,7 @@ void gameinput()
else if (INBOUNDS_VEC(game.activeactivity, obj.blocks))
{
enter_already_processed = true;
if((int(std::abs(obj.entities[ie].vx))<=1) && (int(obj.entities[ie].vy) == 0) )
if((int(SDL_abs(obj.entities[ie].vx))<=1) && (int(obj.entities[ie].vy) == 0) )
{
script.load(obj.blocks[game.activeactivity].script);
obj.removeblock(game.activeactivity);